我有一個 AWS Site-to-Site VPN 連線到由 Amazon Virtual Private Cloud (Amazon VPC) 管理的 VPC。在多個互連的網站上存在重複或相同的 IP 位址範圍,我想為我的 Site-to-Site VPN 連線設定 NAT。
簡短說明
AWS VPN 不提供對 VPN 流量套用 NAT 的受管選項。
若要對 VPN 流量套用 NAT,請採取以下其中一項操作:
- 使用 AWS Marketplace 的軟體型 VPN 解決方案,手動設定 NAT。
- 在執行軟體型 VPN 解決方案並使用 iptables 的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體上手動設定 NAT。
以下解決方法中的範例組態使用兩個 VPC。第一個是 AWS 受管 VPN,第二個是您可以用作客戶閘道的軟體型 VPN 解決方案。
**重要:**若要解決 IP 位址重疊問題,您必須同時對來源和目的地 NAT 提供解決方案。私有 NAT 閘道可以執行來源 IP 位址 NAT,但不能同時執行來源和目的地 NAT。但 NAT 執行個體可以同時處理來源和目的地 NAT。
解決方法
允許 VPN 流量
設定 VPC 路由表、安全群組和網路存取控制清單 (網路 ACL),以允許 VPN 流量。
請完成下列步驟:
- 在路由表中,建立一條路由,將網路流量導向您的目的地網路。將彈性網路介面設為軟體型 EC2 Linux 執行個體的目的地。
- 確認路由表具有以網際網路閘道為目的地的預設路由。
- 修改執行個體的安全群組規則,以允許傳入流量。使用連接埠 500 (ISAKMP) 和 4500 (IPsec NAT 穿越) 上的 UDP 封包。
- 關閉來源/目的地檢查,使執行個體能在 VPN 子網路之間轉送 IP 封包。
設定 VPN 連線
- 如果您尚未建立,請為您的’相關解決方案設定一個 Site-to-Site VPN 連線。您可以下載 Site-to-Site VPN 範例組態檔。
- 使用您的發行版套件管理工具,在 EC2 Linux 執行個體上安裝 VPN 解決方案。
**注意:**若要使用 strongSwan 作為 VPN 解決方案,請參閱 GitHub 網站上的 vpn-gateway-strongswan。
設定 iptables
若要設定來源 NAT 的 iptables,請執行以下 sudo iptables 命令:
sudo iptables -t nat -A POSTROUTING -d your_destination_address_or_CIDR -j SNAT --to-source your_IP_address
**注意:**將 your_destination_address_or_CIDR 替換為您的目的地位址或 CIDR,並將 your_IP_address 替換為您的 IP 位址。
對於目的地 NAT,執行以下 sudo iptables 命令:
sudo iptables -t nat -A PREROUTING -j DNAT --to-destination your_IP_address
**注意:**將 your_IP_address 替換為您的 IP 位址。
若要將目前執行的 iptables 組態儲儲存到檔案,請執行以下 sudo iptables-save 命令:
sudo iptables-save > /etc/iptables.conf
若要在啟動時載入 iptables 組態,請在 /etc/rc.local 的 exit 0 陳述式之前輸入以下行:
sudo iptables-restore < /etc/iptables.conf
您也可以選擇測試您的 Site-to-Site VPN 連線。