本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
NAT 閘道使用案例
以下是公有和私有NAT閘道的範例使用案例。
從私有子網存取網際網路
您可以使用公有NAT閘道來啟用私有子網路中的執行個體,將傳出流量傳送至網際網路,同時防止網際網路建立與執行個體的連線。
概要
以下圖表說明此使用案例。有兩個可用區域,每個可用區域中皆有兩個子網。每個子網的路由表決定流量的路由方式。在可用區域 A 中,公有子網中的執行個體可以經由通往網際網路閘道的路由到達網際網路,而私有子網中的執行個體沒有通往網際網路的路由。在可用區域 B 中,公有子網路包含NAT閘道,而私有子網路中的執行個體可以透過路由到達公有子網路中的NAT閘道。私有和公有NAT閘道都會將執行個體的來源私有IPv4地址映射到私有NAT閘道的私有IPv4地址,但在公有NAT閘道的情況下,網際網路閘道接著會將公有NAT閘道的私有IPv4地址映射到與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閘道並更新路由表後,您可以從私有子網路中的執行個體 ping 網際網路上的遠端地址,以測試是否可以連線至網際網路。如需如何執行此作業的範例,請參閱 測試網際網路連線。
如果您可以連線至網際網路,也可以測試網際網路流量是否透過NAT閘道路由:
-
從私有子網中的執行個體追蹤流量的路由。若要執行此作業,請從您私有子網中的 Linux 執行個體執行
traceroute
命令。在輸出中,您應該會在其中一個躍點中看到NAT閘道的私有 IP 地址 (通常是第一個躍點)。 -
在您從私有子網中的執行個體連線到來源 IP 地址時,使用可顯示地址的第三方網站或工具。來源 IP 地址應該是NAT閘道的彈性 IP 地址。
如果這些測試失敗,請參閱疑難排解 NAT 閘道。
測試網際網路連線
以下範例會示範私有子網中的執行個體可否連線到網際網路的測試方式。
-
在您的公有子網中啟動執行個體 (以此做為堡壘主機)。在啟動精靈中,請確定您選取 Amazon Linux AMI,並將公有 IP 地址指派給執行個體。確保您的安全群組規則允許SSH從本機網路的 IP 地址範圍和傳出SSH流量到私有子網路的 IP 地址範圍的傳入流量 (您也可以
0.0.0.0/0
用於此測試的傳入和傳出SSH流量)。 -
在您的私有子網中啟動執行個體。在啟動精靈中,請確定您已選取 Amazon Linux AMI。請勿指派公有 IP 地址給您的執行個體。確保您的安全群組規則允許來自您在公有子網路中啟動之執行個體私有 IP 地址的傳入SSH流量,以及所有傳出ICMP流量。您所選擇的金鑰對必須與您用來在公有子網中啟動執行個體的金鑰對相同。
-
在本機電腦上設定SSH代理程式轉送,並連線至公有子網路中的基礎結構主機。如需詳細資訊,請參閱 設定 Linux 或 macOS 的SSH代理程式轉送 或 設定 Windows 的SSH代理程式轉送。
-
從您的堡壘主機連線到您私有子網中的執行個體,然後從您私有子網中的執行個體測試網際網路連線。如需詳細資訊,請參閱測試網際網路連線。
設定 Linux 或 macOS 的SSH代理程式轉送
從您的本機電腦,將您的私有金鑰新增至身分驗證代理程式。
針對 Linux,請使用以下命令。
ssh-add -c mykeypair.pem
針對 macOS,請使用以下命令。
ssh-add -K mykeypair.pem
使用
-A
選項連線至公有子網路中的執行個體,以啟用SSH代理程式轉送,並使用執行個體的公有地址,如下列範例所示。ssh -A ec2-user@
54.0.0.123
設定 Windows 的SSH代理程式轉送
您可以使用 Windows 中可用的 OpenSSH 用戶端,或安裝您偏好的SSH用戶端 (例如 Pu TTY)。
測試網際網路連線
從您公有子網中的執行個體,使用其私有 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 地址私有NAT閘道,來路由來自允許清單 IP 地址範圍的每個執行個體 IP 地址。
概要
下圖顯示執行個體如何透過 存取內部部署資源 AWS VPN。來自執行個體的流量會透過VPN連線路由至虛擬私有閘道、客戶閘道,然後路由至內部部署網路中的目的地。但是,假設目的地僅允許來自特定 IP 地址範圍 (例如 100.64.1.0/28) 的流量,此將阻止來自這些執行個體的流量到達內部部署網路。
下圖顯示此案例組態的重要元件。VPC 具有其原始 IP 地址範圍加上允許的 IP 地址範圍。VPC 具有來自允許 IP 地址範圍的子網路和私有NAT閘道。來自目的地為內部部署網路之執行個體的流量會在路由至VPN連線之前傳送到NAT閘道。內部部署網路接收來自執行個體的流量,其NAT閘道的來源 IP 地址位於允許的 IP 地址範圍內。
資源
建立或更新資源,如下所示:
-
將允許的 IP 地址範圍與 建立關聯VPC。
-
VPC 在允許的 IP 地址範圍內,在 中建立子網路。
-
在新子網路中建立私有NAT閘道。
-
使用執行個體更新子網路的路由表,將目的地為內部部署網路的流量傳送至NAT閘道。使用私有NAT閘道將目的地為內部部署網路的流量傳送到虛擬私有閘道,將路由新增至子網路的路由表。
路由
以下為與第一個子網相關聯的路由表。每個 VPC 都有一個本機路由CIDR。本機路由可讓子網路中的資源VPC使用私有 IP 地址與 中的其他資源通訊。第三個項目會將目的地為內部部署網路的流量傳送到私有NAT閘道。
目的地 | 目標 |
---|---|
10.0.0.0/16 |
本機 |
100.64.1.0/24 |
本機 |
192.168.0.0/16 |
nat-gateway-id |
以下為與第二個子網相關聯的路由表。每個 VPC 都有一個本機路由CIDR。本機路由可讓子網路中的資源VPC使用私有 IP 地址與 中的其他資源通訊。第三個條目將以內部部署網路為目的地的流量發送至虛擬私有閘道。
目的地 | 目標 |
---|---|
10.0.0.0/16 |
本機 |
100.64.1.0/24 |
本機 |
192.168.0.0/16 |
vgw-id |
實現重疊網路之間的通訊
您可以使用私有NAT閘道來啟用網路之間的通訊,即使網路具有重疊CIDR的範圍。例如,假設 VPC A 中的執行個體需要存取 VPC B 中的執行個體所提供的服務。
概要
下圖顯示此案例組態的重要元件。首先,IP 管理團隊要決定哪些地址範圍可以重疊 (不可路由地址範圍),而哪些範圍不能重疊 (可路由地址範圍)。IP 管理團隊根據請求,從可路由地址範圍的集區中將地址分配給專案。
每個 VPC 都有其原始 IP 地址範圍,這是不可路由的,加上 IP 管理團隊指派給它的可路由 IP 地址範圍。VPC 具有來自其可路由範圍的子網路,並具有私有NAT閘道。私有NAT閘道會從其子網路取得其 IP 地址。VPC B 具有可路由範圍的子網路,並具有 Application Load Balancer 。Application Load Balancer 從其子網取得其 IP 地址。
來自不可路由子網路 VPC A 中執行個體的流量,其目的地為不可路由子網路 VPC B 中的執行個體,會透過私有NAT閘道傳送,然後路由至傳輸閘道。傳輸閘道會將流量傳送至 Application Load Balancer ,此 會將流量路由至 VPC B 不可路由子網路中的其中一個目標執行個體。從傳輸閘道到 Application Load Balancer 的流量具有私有NAT閘道的來源 IP 地址。因此,來自負載平衡器的回應流量會使用私有NAT閘道的地址作為其目的地。回應流量會傳送至傳輸閘道,然後路由至私有NAT閘道,將目的地轉譯為 A 不可路由子網路中的執行個體VPC。
資源
建立或更新資源,如下所示:
-
將指派的可路由 IP 地址範圍與其個別 建立關聯VPCs。
-
從可路由 IP 地址範圍在 VPC A 中建立子網路,並在此新子網路中建立私有NAT閘道。
-
從可路由 IP 地址範圍在 VPC B 中建立子網路,並在此新子網路中建立 Application Load Balancer。註冊不可路由子網中的執行個體以及目標群組,以便用於負載平衡器。
-
建立傳輸閘道以連接 VPCs。確認停用路由傳播。當您VPC將每個 連接到傳輸閘道時,請使用 的可路由地址範圍VPC。
-
在 VPC A 中更新不可路由子網路的路由表,以將所有目的地為可路由地址範圍 VPC B 的流量傳送至私有NAT閘道。更新 VPC A 中可路由子網路的路由表,以將所有目的地為 VPC B 可路由地址範圍的流量傳送至傳輸閘道。
-
更新 VPC B 中可路由子網路的路由表,以將所有目的地為 VPC A 可路由地址範圍的流量傳送至傳輸閘道。
路由
以下是 VPC A 中不可路由子網路的路由表。
目的地 | 目標 |
---|---|
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 |
以下是 VPC B 中不可路由子網路的路由表。
目的地 | 目標 |
---|---|
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 |
靜態 |