跳至内容

如何在 VPC CIDR 上为通过 Site-to-Site VPN 连接的流量配置 NAT?

2 分钟阅读
0

我有一个与 Amazon Virtual Private Cloud (Amazon VPC) 管理的 VPC 的 AWS Site-to-Site VPN 连接。在多个互连的站点上存在重复或相同的 IP 地址范围,我想为我的 Site-to-Site VPN 连接配置 NAT。

简短描述

AWS VPN 不提供将 NAT 应用于 VPN 流量的托管选项。

要将 NAT 应用于 VPN 流量,请执行以下操作之一:

  • 使用 AWS Marketplace 提供的基于软件的 VPN 解决方案手动配置 NAT。
  • 在运行基于软件的 VPN 解决方案和 iptables 的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例上手动配置 NAT。

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

**重要事项:**要解决 IP 地址重叠问题,必须为源 NAT 和目标 NAT 提供解决方案。私有 NAT 网关可以执行源 IP 地址 NAT,但它们不能同时执行源 NAT 和目标 NAT。但是,NAT 实例可以同时处理源 NAT 和目标 NAT。

解决方法

允许 VPN 流量

配置您的 VPC 路由表、安全组和网络访问控制列表(网络 ACL)以允许 VPN 流量。

完成以下步骤:

  1. 在路由表中,创建路由,将网络流量引导到目标网络。将弹性网络接口设置为基于软件的 EC2 Linux 实例的目标。
  2. 确认您的路由表中有一条默认路由,以互联网网关为目标。
  3. 修改实例的安全组规则以允许入站流量。在端口 500 (ISAKMP) 和 4500 (IPsec NAT-Traversal) 上使用 UDP 数据包。
  4. 关闭源/目标检查,以便实例可以在您的 VPN 子网之间转发 IP 地址数据包。

配置 VPN 连接

  1. 如果您还没有 Site-to-Site VPN 连接,请为相关解决方案配置 Site-to-Site VPN 连接。您可以下载 Site-to-Site VPN 示例配置文件
  2. 使用您的发行版的包管理器在 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 配置,请在 exit 0 语句之前在 /etc/rc.local 中输入以下行:

sudo iptables-restore < /etc/iptables.conf

或者,您可以测试 Site-to-Site VPN 连接

AWS 官方已更新 4 个月前