本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
NAT閘道使用案例
以下是公用和私有NAT閘道的範例使用案例。
從私有子網存取網際網路
您可以使用公用NAT閘道,讓私有子網路中的執行個體將輸出流量傳送至網際網路,同時防止網際網路建立與執行個體的連線。
概要
以下圖表說明此使用案例。有兩個可用區域,每個可用區域中皆有兩個子網。每個子網的路由表決定流量的路由方式。在可用區域 A 中,公有子網中的執行個體可以經由通往網際網路閘道的路由到達網際網路,而私有子網中的執行個體沒有通往網際網路的路由。在可用區域 B 中,公用子網路包含NAT閘道,而私有子網路中的執行個體可以透過通往公用子網路中NAT閘道的路由連線到網際網路。私有和公用NAT閘道都會將執行個體的來源私IPv4有位IPv4址對應到私有NAT閘道的私有位址,但是在公用NAT閘道的情況下,網際網路閘道會將公用閘道的私人位IPv4址對應至與NAT閘道關聯的NAT彈性 IP 位址。傳送回應流量至執行個體時,無論是公用或私有NAT閘道,NAT閘道都會將位址轉譯回原始來源 IP 位址。
請注意,如果可用區域 A 中的私有子網路中的執行個體也需要連線至網際網路,您可以建立從此子網路到可用區域 B 中NAT閘道的路由。或者,您也可以在每個可用區域中建立NAT閘道 (其中包含需要網際網路存取的資源) 來改善復原能力。如需範例圖表,請參閱範例:在私VPC有子網路中使用伺服器 NAT。
路由
以下是與可用區域 A 中的公用子網路相關聯的路由表格。第一個項目是區域路由;它可讓子網路中的執行個體與VPC使用私有 IP 位址的其他執行個體通訊。第二個項目會將所有其他子網流量傳送到網際網路閘道,使子網中的執行個體能夠存取網際網路。
目的地 | 目標 |
---|---|
VPC CIDR |
區域 |
0.0.0.0/0 | internet-gateway-id |
以下是與可用區域 A 中的私有子網路相關聯的路由表。項目為區域路由,可讓子網路中的執行個體與VPC使用私有 IP 位址的其他執行個體進行通訊。此子網中的執行個體無法存取網際網路。
目的地 | 目標 |
---|---|
VPC CIDR |
本機 |
以下是與可用區域 B 中公用子網路相關聯的路由表格。第一個項目是區域路由,可讓子網路中的執行個體與VPC使用私有 IP 位址的其他執行個體進行通訊。第二個項目會將所有其他子網路流量傳送至網際網路閘道,讓子網路中的NAT閘道能夠存取網際網路。
目的地 | 目標 |
---|---|
VPC CIDR |
區域 |
0.0.0.0/0 | internet-gateway-id |
以下是與可用區域 B 中私有子網路相關聯的路由表格。第一個項目是區域路由;它可讓子網路中的執行個體與VPC使用私有 IP 位址的其他執行個體通訊。第二個項目會將所有其他子網路流量傳送至NAT閘道。
目的地 | 目標 |
---|---|
VPC CIDR |
區域 |
0.0.0.0/0 | nat-gateway-id |
如需詳細資訊,請參閱變更子網路路由表。
測試公用NAT閘道
建立NAT閘道並更新路由表之後,您可以從私有子網路中的執行個體偵測網際網路上的遠端位址,以測試它是否可以連線到網際網路。如需如何執行此作業的範例,請參閱 測試網際網路連線。
如果您可以連線到網際網路,您也可以測試網際網路流量是否透過NAT閘道路由:
-
從私有子網中的執行個體追蹤流量的路由。若要執行此作業,請從您私有子網中的 Linux 執行個體執行
traceroute
命令。在輸出中,您應該會在其中一個躍點 (通常是第一個躍點) 中看到NAT閘道的私人 IP 位址。 -
在您從私有子網中的執行個體連線到來源 IP 地址時,使用可顯示地址的第三方網站或工具。來源 IP 位址應該是NAT閘道的彈性 IP 位址。
如果這些測試失敗,請參閱疑難排解 NAT 閘道。
測試網際網路連線
以下範例會示範私有子網中的執行個體可否連線到網際網路的測試方式。
-
在您的公有子網中啟動執行個體 (以此做為堡壘主機)。在啟動精靈中,請務必選取 Amazon LinuxAMI,並為執行個體指派公用 IP 位址。請確定您的安全性群組規則允許來自區域網路 IP 位址範圍的輸入SSHSSH流量,以及進入私人子網路 IP 位址範圍的輸出流量 (您也可以用
0.0.0.0/0
於此測試的輸入和輸出SSH流量)。 -
在您的私有子網中啟動執行個體。在啟動精靈中,確保您選取了一個 Amazon Linux AMI。請勿指派公有 IP 地址給您的執行個體。確保您的安全群組規則允許來自您在公有子網SSH路中啟動之執行個體私有 IP 位址的輸入流量,以及所有輸出ICMP流量。您所選擇的金鑰對必須與您用來在公有子網中啟動執行個體的金鑰對相同。
-
在您的本機電腦上設定SSH代理程式轉送,並連線至公用子網路中的防禦主機。如需詳細資訊,請參閱 若要設定 Linux 或 macOS 的SSH代理程式轉送 或 若要設定 Windows 的SSH代理程式轉送。
-
從您的堡壘主機連線到您私有子網中的執行個體,然後從您私有子網中的執行個體測試網際網路連線。如需詳細資訊,請參閱測試網際網路連線。
若要設定 Linux 或 macOS 的SSH代理程式轉送
從您的本機電腦,將您的私有金鑰新增至身分驗證代理程式。
針對 Linux,請使用以下命令。
ssh-add -c mykeypair.pem
針對 macOS,請使用以下命令。
ssh-add -K mykeypair.pem
使用啟用SSH代理程式轉送的
-A
選項 Connect 至公有子網路中的執行個體,並使用執行個體的公用位址,如下列範例所示。ssh -A ec2-user@
54.0.0.123
若要設定 Windows 的SSH代理程式轉送
您可以使用 Windows 中可用的「開啟」用SSH戶端,或安裝偏好的用SSH戶端 (例如,PuTTY)。
測試網際網路連線
從您公有子網中的執行個體,使用其私有 IP 地址連線到您私有子網中的執行個體,如下列範例所示:
ssh ec2-user@
10.0.1.123
在私人執行個體中,針對已ICMP啟用的網站執行
ping
指令,測試您是否可以連線到網際網路。ping ietf.org
PING ietf.org (4.31.198.44) 56(84) bytes of data. 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=1 ttl=47 time=86.0 ms 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=2 ttl=47 time=75.6 ms ...
按下鍵盤上的 Ctrl+C 取消
ping
命令。若ping
命令失敗,請參閱 執行個體無法存取網路。(選用) 若您不再需要您的執行個體,請予以終止。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的終止執行個體。
使用允許清單中的 IP 地址存取您的網路
您可以使用私有NAT閘道,使用允許列出的VPCs位址集區啟用內部部署網路之間的通訊。您可以透過具有允許列出 IP 位址範圍內 IP 位址的私人閘道,透過具有允許列出 IP 位址範圍內的私人NAT閘道,從目的地到內部部署網路的子網路路由流量,而不是為每個執行個體指派個別的 IP 位址。
概要
下圖顯示執行個體如何透過存取內部部署資源 AWS VPN。來自執行個體的流量會透過VPN連線路由至虛擬私有閘道,路由至客戶閘道,然後路由至內部部署網路中的目的地。但是,假設目的地僅允許來自特定 IP 地址範圍 (例如 100.64.1.0/28) 的流量,此將阻止來自這些執行個體的流量到達內部部署網路。
下圖顯示此案例組態的重要元件。VPC具有其原始 IP 位址範圍加上允許的 IP 位址範圍。VPC具有來自允許 IP 位址範圍的子網路,並具有私有NAT閘道。來自目的地進入內部部署網路之執行個體的流量會先傳送至NAT閘道,然後再路由傳送至VPN連線。內部部署網路會從具有NAT閘道來源 IP 位址 (來自允許的 IP 位址範圍) 的執行個體接收流量。
資源
建立或更新資源,如下所示:
-
將允許的 IP 位址範圍與VPC.
-
在允許的 VPC IP 位址範圍內建立子網路。
-
在新子網路中建立私有NAT閘道。
-
使用執行個體更新子網路的路由表,以將目的地內部部署網路的流量傳送至NAT閘道。使用私有閘道將目的地內部部署網路的流量傳送到虛擬私人NAT閘道的子網路路由表中新增路由表。
路由
以下為與第一個子網相關聯的路由表。每個都有當地路線VPCCIDR。本機路由可讓子網路中的資源與VPC使用私有 IP 位址中的其他資源進行通訊。第三個項目會將目的地用於內部部署網路的流量傳送至私人NAT閘道。
目的地 | 目標 |
---|---|
10.0.0.0/16 |
本機 |
100.64.1.0/24 |
本機 |
192.168.0.0/16 |
nat-gateway-id |
以下為與第二個子網相關聯的路由表。每個都有當地路線VPCCIDR。本機路由可讓子網路中的資源與VPC使用私有 IP 位址中的其他資源進行通訊。第三個條目將以內部部署網路為目的地的流量發送至虛擬私有閘道。
目的地 | 目標 |
---|---|
10.0.0.0/16 |
本機 |
100.64.1.0/24 |
本機 |
192.168.0.0/16 |
vgw-id |
實現重疊網路之間的通訊
您可以使用私有NAT閘道來啟用網路之間的通訊,即使它們的CIDR範圍重疊也是如此。例如,假設 A 中的執行VPC個體需要存取 VPC B 中執行個體所提供的服務。
概要
下圖顯示此案例組態的重要元件。首先,IP 管理團隊要決定哪些地址範圍可以重疊 (不可路由地址範圍),而哪些範圍不能重疊 (可路由地址範圍)。IP 管理團隊根據請求,從可路由地址範圍的集區中將地址分配給專案。
每個範圍都VPC有其原始 IP 位址範圍 (不可路由),以及由 IP 管理團隊指派給它的可路由 IP 位址範圍。VPC一個具有私有網關的可路由範圍內的子NAT網。私有NAT閘道從其子網路取得其 IP 位址。VPCB 具有 Application Load Balancer 的可路由範圍內的子網路。Application Load Balancer 從其子網取得其 IP 地址。
來自 A 不可路由子網路中執行個體的執行VPC個體的流量 (目的地是 VPC B 的非路由子網路中的執行個體) 會透過私有NAT閘道傳送,然後路由至傳輸閘道。傳輸閘道會將流量傳送至 Application Load Balancer,該應用程式負載平衡器會將流量路由至 VPC B 的非路由子網路中的其中一個目標執行個體。從傳輸閘道到 Application Load Balancer 的流量具有私有NAT閘道的來源 IP 位址。因此,來自負載平衡器的回應流量會使用私有NAT閘道的位址做為其目的地。回應流量會傳送至傳輸閘道,然後路由至私有閘NAT道,該專用閘道會將目的地轉譯為 A 的非路由子網路中的執行個體。VPC
資源
建立或更新資源,如下所示:
-
將指定的可路由 IP 位址範圍與各自的 IP 位址範圍相VPCs關
-
從其可路由 IP 位址範圍在 VPC A 中建立子網路,並在此新子網路中建立私有NAT閘道。
-
從其可路由 IP 位址範圍在 VPC B 中建立子網路,並在此新子網路中建立 Application Load Balancer。註冊不可路由子網中的執行個體以及目標群組,以便用於負載平衡器。
-
建立傳輸閘道以連接VPCs. 確認停用路由傳播。當您將每個設備連接VPC到傳輸閘道時,請使用的可傳遞地址范圍VPC。
-
更新 A 中VPC不可路由子網路的路由表,以將目的地為 VPC B 可路由位址範圍的所有流量傳送至私NAT有閘道。更新 A 中VPC可路由子網路的路由表,以將目的地為 VPC B 可路由位址範圍的所有流量傳送至傳輸閘道。
-
更新 VPC B 中可路由子網路的路由表,將目的地為 A 的可路由位址範圍的VPC所有流量傳送至傳輸閘道。
路由
以下是 A 中VPC不可路由子網路的路由表。
目的地 | 目標 |
---|---|
10.0.0.0/16 |
本機 |
100.64.1.0/24 |
本機 |
100.64.2.0/24 |
nat-gateway-id |
以下是 VPC A 中可路由子網路的路由表。
目的地 | 目標 |
---|---|
10.0.0.0/16 |
本機 |
100.64.1.0/24 |
本機 |
100.64.2.0/24 |
transit-gateway-id |
以下是 B 中VPC不可路由子網路的路由表。
目的地 | 目標 |
---|---|
10.0.0.0/16 |
本機 |
100.64.2.0/24 |
本機 |
以下是 VPC B 中可路由子網路的路由表。
目的地 | 目標 |
---|---|
10.0.0.0/16 |
本機 |
100.64.2.0/24 |
本機 |
100.64.1.0/24 |
transit-gateway-id |
以下為傳輸閘道路由表。
CIDR | 連接 | 路由類型 |
---|---|---|
100.64.1.0/24 |
Attachment for VPC A |
靜態 |
100.64.2.0/24 |
Attachment for VPC B |
靜態 |