[AWS] NAT Gateway


NAT Gateway


基礎知識

一、概念

  • 基本設置

NAT Gateway設置時,要指定處於哪個 public subnet 中。

只允許內網訪問外網,比如進行升級。

 

  • 什么是 NAT

NAT網關作為一個網關設備,需要綁定公網IP才能正常工作。創建NAT網關后,您可以為NAT網關綁定彈性公網IP(EIP)。

Ref: 【折騰必懂·理論篇】第八期 NAT、內網穿透、SDN

NAT有三種:靜態NAT動態NATPAT/NAPT。其中最后一種又可分為 SNAT 和 DNAT 

從定義上講,SNAT是原地址轉換,DNAT是目標地址轉換。區分這兩個功能可以簡單的由服務的發起者是誰來區分,內部地址要訪問公網上的服務時,內部地址會主動發起連接,將內部地址轉換成公有ip。網關這個地址轉換稱為SNAT. 當內部需要對外提供服務時,外部發起主動連接,路由器或着防火牆的網關接收到這個連接,然后把連接轉換到內部,此過程是由帶公有ip的網關代替內部服務來接收外部的連接,然后在內部做地址轉換,此轉換稱為DNAT.主要用於內部服務對外發布。
      • SNAT 可以為VPC內無公網IP的ECS實例提供訪問互聯網的代理服務。

雲服務器看來,所有請求都是從路由器發出來的。

      • DNAT 可以將NAT網關上的公網IP映射給ECS實例使用,使ECS實例能夠提供互聯網服務。

再通過nginx的80端口,用到端口映射。

 

  • NAT 的缺陷

下面就是NAT的缺陷。

 

  • 內網穿透技術

STUN, Simple Traversal of UDP through NAT(打洞)

TURN, Traversal Using Relay NAT(轉發),貌似就是這個,通過公網上NAT網關作為了 “媒婆”

 

 

二、創建 NAT網關

 小哥講得很真誠 :) 

Ref: How to Create a NAT Gateway

  

1). 創建public子網和private子網,參見:[AWS] 09 - VPC。這里只配置了子網,其實還沒有分配 IP。

 

2). 首先設置 vpc --> Two Elastic IP Address for 2 NAT Gateway.

彈性 IP 地址 是專為動態雲計算設計的靜態 IPv4 地址。使用彈性 IP 地址,您可以快速將地址重新映射到您的賬戶中的另一個實例,從而屏蔽實例故障。彈性 IP 地址會分配給您的 AWS 賬戶,並且在您釋放它之前一直屬於你。

 

3). 再開始配置 NAT Gateway,並為 NAT Gateway 指定上述剛設置的一個Elastic IP Address 為 自己的IP地址。

  

4). 打開 私有子網 的 Route Table,添加一條路由 指向 NAT Gateway。如此,就連通了 public subnet 與 private subnet 了嘛:)

下圖表示:允許來自所有的 流量 指向 該網關的 Elastic IP Address。

 

 

三、升級為 Highly Available NAT Gateway 

Ref: Let's Create a Highly Available AWS NAT Gateway

如果 Public Subnet 1中的 NAT Gateway掛了,至少希望有另一個還活着的gateway。

其實就是設置了兩個zone。

 

 

訪問測試

一、內網 訪問 Internet

Ref: Test Outbound Internet Access Through the NAT Gateways

  • 設置role

IAM --> roles

  --> create user case: ec2 --> choose policy

  --> Role name is "SSMRole"

 

  一個擁有該POLICY的ROLE,就准備好了。

 

  • 創建、配置 instance

Network,選擇 VPC。

Subnet,選擇 private subnet。

IAM role,配置好的role。

 

  • 測試 Outbound Internet Access

AWS Systems Manager --> run command

 

開機啟動命令設置如下,通過升級指令測試訪問外網效果。

sudo yum update -y

 

Choose instances manually,選擇剛配置好的ec2 instance。

然后按照同樣的步驟,創建另一個私有子網的另一台ec2。

 

 

二、Internet 訪問 內網

  • Lambda function in a VPC

AWS Knowledge Center Videos: How do I give internet access to my Lambda function in a VPC?

個人實踐經驗:

先一同部署了api gateway + lambda function, 然后給lambda function 加上vpc,仍然是可以工作的。

下一步就是如何用該lambda function 去 invoke 屬於同在一個subnet的lambda 即可。

 

End.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM