如何在我的 VPC CIDR 上为遍历 VPN 连接的流量配置 NAT?

上次更新日期:2018 年 7 月 17 日

简短描述

AWS VPN 目前没有提供将 NAT 应用于 VPN 流量的托管式选项。您可以使用基于软件的 VPN 解决方案手动配置 NAT,在 AWS Marketplace 中提供了此解决方案的多个选项。您还可以在运行基于软件的 VPN 解决方案以及 iptables 的 Amazon Elastic Compute Cloud (EC2) Linux 实例上手动配置 NAT。

解决方法

此示例配置使用两个 VPC。第一个是 AWS 托管式 VPN,第二个是用作客户网关的基于软件的 VPN 解决方案。

在开始之前,请确保您设置了 AWS VPN 连接。确保使用您发行版的程序包管理器在 EC2 Linux 实例上安装所选的 VPN 解决方案。

允许 VPN 流量

配置您的 VPC 路由表、安全组和 NACL 以允许 VPN 流量: 

  1. 将通向目标网络的路由输入您的路由表中。将您的软件 VPN EC2 实例的弹性网络接口设置为目标。
  2. 确保您的路由表具有目标为 Internet 网关的默认路由。
  3. 在实例的安全组规则中允许使用 UDP 端口 500 (ISAKMP) 和 4500(IPsec NAT 遍历)的入站流量。
  4. 禁用源/目标检查以允许实例转发 IP 数据包。

配置 VPN 连接

基于您选择的解决方案配置 VPN 连接。AWS 基于设备供应商和型号提供了多个可下载示例配置文件。

配置 iptables

基于您要执行的 NAT 的类型,配置 iptables 规则。

对于源 NAT,请使用以下字符串,在括号的位置填充适当的值:

sudo iptables -t nat -A POSTROUTING -d <Destination address or CIDR> -j SNAT --to-source <Your desired IP address>

对于目标 NAT,请使用以下字符串,在括号的位置填充适当的值:

sudo iptables -t nat -A PREROUTING -j DNAT --to-destination <Your desired IP address>

要将正在运行的 iptables 配置保存到文件,请使用以下命令:

sudo iptables-save > /etc/iptables.conf

要在启动时加载此配置,请将以下行放在 /etc/rc.local 中的 exit 0 语句之前:

iptables-restore < /etc/iptables.conf

可选测试您的 AWS VPN 连接。您现在应该看到基于您的 iptables 配置适当地转换流量。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?