您能否在一个或多个子网的路由 table 中设置两个 NAT 网关?

Can you have two NAT gateways in a route table for one or more subnets?

我有以下场景:

我的 VPC 中有一个 PublicPrivate 子网。 public 子网显然会通过 Internet 网关发送流量,而私有则通过单独的 NAT 网关。

我面临的问题是我们的私有子网中有一个邮件 Server/Exchanger。现在,为我们其他 EC2 设备提供服务的 NAT 网关具有弹性 IP 地址。我们需要为 MX 服务器提供一个单独的弹性 IP 地址。可以通过设置另一个 NAT 网关来完成吗?如果是这样,我该如何设置路由 tables/subnets 来处理它?

我想我可能需要创建一个新的子网并将 MX 放在那里,但我不完全确定。

这一切的主要原因是使用了 rDNS(反向 DNS)- 当从我们的 MX 服务器发送电子邮件时,它将有一个原始 IP 地址,该地址应该映射回您的发送 TLD (@ emailaddress.com) 用于垃圾邮件规避。

如果我能让这个 MX 服务器通过新的 NAT 网关路由其传出流量,事情会很棒 - 因为那样我就可以告诉 AWS 将提供的 IP 地址映射到那个 rDNS arpa 东西。

这里最好的课程是什么?

你是对的 - 你应该为 MX 服务器创建另一个子网,并将这些子网的路由表的路由分配给新的 NAT 网关。

https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html

我假设您正在使用负载平衡器来接收到 MX 服务器的流量?如果是这样,您在私有子网上应该没有任何问题。

您应该能够将您的 DNS 设置为指向 NAT 网关以进行反向查找,但如果您使用多个 MX 服务器、AZ 和 NAT 网关,这将很棘手。

一个子网只能关联一条路由table。一条路由 table 可以通过单个网关将流量路由到目的地。

所以你需要一个新的私有子网和一个新路由table。

然后您可以将目的地分配给路线table。

0.0.0.0 => NatGatewayForMx

希望这对您有所帮助。