Amazon-Web-Services

如何配置 AWS VPN <-> 子網 <-> NAT <-> Internet

  • June 15, 2019

我已經為通信提供商設置了站點到站點 VPN(用於移動數據連接)。

他們有子網 192.168.0.0/21。它通過 vgw(虛擬網關)連接到子網 10.0.1.0/24。子網通過 igw(網際網路網關)連接到網際網路。

子網的路由表現在看起來像這樣連結:

10.0.0.0/16 local
0.0.0.0/0 igw-xxx
192.168.0.0/21 vgw-xxx

到目前為止,以下工作:

  • 從 ec2 實例到網際網路的連接,反之亦然
  • 從 ec2 實例到移動終端設備的連接,反之亦然

現在我需要允許終端設備訪問網際網路。

我認為需要有一個 NAT 網關。所以我在子網中添加了一個 NAT 網關,並將 igw 替換為 nat。但這導致不再與實例建立連接,因為這只路由出站流量(我後來在手冊中讀到了)。

那麼我還有什麼其他選擇?如何配置終端設備 (linux) 以使用此 nat 網關。

VPC 的 VPN 連接並非旨在以這種方式工作。

您無法通過 VPC 對等連接、Site-to-Site VPN 連接或 AWS Direct Connect 將流量路由到 NAT 網關。這些連接另一端的資源不能使用 NAT 網關。

https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html

VPN 連接另一端的任何東西都可以通過 VPC 並訪問 Internet 的唯一方法是實施沒有邊緣到邊緣流量的解決方案。

這方面的一個例子是 Squid HTTP 代理伺服器,在客戶端的 HTTP 代理設置上配置。使用 HTTP 代理,客戶端建立到代理的連接(在 EC2 實例上)並要求建立到目標的第二個連接。這是兩個獨立的 TCP 連接——VPN 另一端的一個設備連接到一個 EC2 實例,一個 EC2 實例連接到 Internet。這兩個獨立的連接是有效的原因。無法將流量直接從 VPN 連接路由到 VPC 中的任何其他類型的網關設備——只能路由到 EC2 目標和其他明確支持它的基於 ENI 的服務。

引用自:https://serverfault.com/questions/971461