![从仅具有私有 IP 的 AWS VPC 子网获取流量以通过 Sonicwall 路由到互联网](https://linux22.com/image/687436/%E4%BB%8E%E4%BB%85%E5%85%B7%E6%9C%89%E7%A7%81%E6%9C%89%20IP%20%E7%9A%84%20AWS%20VPC%20%E5%AD%90%E7%BD%91%E8%8E%B7%E5%8F%96%E6%B5%81%E9%87%8F%E4%BB%A5%E9%80%9A%E8%BF%87%20Sonicwall%20%E8%B7%AF%E7%94%B1%E5%88%B0%E4%BA%92%E8%81%94%E7%BD%91.png)
因此,我在 SonicWall TZ105 和 AWS VPC 之间配置并运行了 VPN 隧道。没有问题,到目前为止,它运行良好。
我不知道该怎么做,就是让我的 VPC 中的 EC2 实例能够访问互联网。我希望我的 EC2 实例(只有一个私有 IP)能够通过 SonicWall 路由流量,并能够访问互联网。
我认为我需要结合路由和 NAT 策略来做到这一点?
有人能给我提供线索吗?
谢谢!
答案1
虽然你可能做或不做图示的所有事情,但你的设置本质上与VPC 场景 3。
简而言之...
创建新的 VPC 路由表。
将其默认路由(0.0.0.0/0)设置为指向您的 Sonicwall,它将在 VPC 内分配一个虚拟专用网关标识符——它看起来像vgw-xxxxxxxx
。
将没有公有 IP 地址的实例所在的子网与此新的路由表关联。
您无需在 AWS 端配置任何路由即可允许来自隧道的流量到达实例。这在 VPC 中始终是可能的 - 就路由而言,VPN 是值得信赖的,因此将入站流量路由到实例所在的子网是隐式的。
这会将来自 VPC 实例的 Internet 绑定流量通过 VPN 连接发送出去,其私有 IP 地址保持不变。需要配置 Sonicwall 对流量进行必要的网络地址转换,以允许其使用 Sonicwall 的公共 IP 地址访问 Internet —— 从总体上看,这有望成为此设置中最直接的部分。
看http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html
请注意,如果您现在或将来希望 VPC 内的 EC2 实例拥有 AWS 分配的公共 IP 地址,则需要将这些实例放在 VPC 内的不同子网中。这些子网称为公共子网,它们使用 VPC 的 Internet 网关对象 ( igw-xxxxxxxx
) 进行 Internet 进出访问。
还请注意,如果您正在使用 DynamoDB、SNS、SQS 等 AWS 服务,则可能需要 VPC 中的 NAT 实例或 NAT 网关允许一定程度的出站 Internet 流量通过 VPN 绕过路径,因为几乎所有 AWS 服务(即使在区域内)都要求您的实例能够访问“Internet”才能访问它们。(S3 是一个例外,它允许创建 VPC“端点”,从而无需 Internet 访问)。如果您通过 VPN 连接回程访问这些服务,则会增加成本和延迟,因为您将不必要地为双向流量付费,方法是将其路由到 AWS 区域之外并再次返回。
最后需要注意的是,在进行故障排除时,您会发现 VPC 中的 DNS 解析默认始终有效……即使其余路由完全错误……因为 DNS 解析由 VPC 内部的一些隐藏网络魔法处理。不要让 DNS 正在工作的事实让您感到困惑。(例如:“主机 x 解析,但我实际上无法 ping 它”——是的,它几乎肯定会始终解析,而这一事实并不一定说明您的网络配置。)