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

1 分钟阅读
0

我有一个 AWS VPN 连接到由Amazon Virtual Private Cloud(Amazon VPC)托管的 VPC,其中网络 CIDR 重叠。我想为我的 AWS VPN 配置 NAT。

简短描述

AWS VPN 没有提供将 NAT 应用于 VPN 流量的托管式选项。相反,您可以通过基于软件的 VPN 解决方案手动配置 NAT。AWS Marketplace 中有很多这样的 VPN 解决方案。

NAT 也可以在 Amazon Elastic Compute Cloud (EC2) Linux 实例上手动配置,该实例运行基于软件的 VPN 解决方案和 iptables。

解决方法

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

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

允许 VPN 流量

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

1.    将通向目标网络的路由输入您的路由表中。将您的软件 VPN EC2 实例的弹性网络接口设置为目标。

2.    确保您的路由表具有目标为互联网网关的默认路由。

3.    在实例的安全组规则中允许使用 UDP 端口 500(ISAKMP)和 4500(IPsec NAT 遍历)的入站流量。

4.    关闭源/目标检查以允许实例转发 IP 数据包。

配置 VPN 连接

在相关解决方案中配置 Site-to-Site VPN 连接。AWS 基于设备供应商和型号提供了可下载示例配置文件。

配置 iptables

为源 NAT 或目标 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 Site-to-Site VPN 连接。如果测试成功,则会根据 iptables 配置对流量进行适当的转换。


相关信息

NAT 实例

AWS 官方
AWS 官方已更新 2 年前