我的一些实例已将代码部署到其 /etc/rc.local 中
#!/bin/sh
# Managed by puppet - do not modify
/sbin/route del default
/sbin/route add default gw 11.0.0.254
一开始一切正常,但几分钟后网关变为默认值(11.0.0.1)
我认为这是最近才发生的。
这是为什么?我该如何改变它?
更多信息:
启动后立即生效。实例路由表如下所示...
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 11.0.0.254 0.0.0.0 UG 0 0 0 ens5
11.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ens5
11.0.0.1 0.0.0.0 255.255.255.255 UH 100 0 0 ens5
过了一会儿,看起来就像这样......(当然,失去了互联网访问)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 11.0.0.1 0.0.0.0 UG 0 0 0 ens5
11.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ens5
11.0.0.1 0.0.0.0 255.255.255.255 UH 100 0 0 ens5
如果我手动更改路由表。过了一会儿,它看起来就像这样...
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 11.0.0.254 0.0.0.0 UG 0 0 0 ens5
0.0.0.0 11.0.0.1 0.0.0.0 UG 100 0 0 ens5
11.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ens5
11.0.0.1 0.0.0.0 255.255.255.255 UH 100 0 0 ens5
互联网访问正常,但我不喜欢这种未经请求的更改,也不喜欢这种手动修复,因为这些实例位于自动缩放组中。
答案1
创建一个新子网在您的 VPC 中使用新的路由表它将会有一个指向0.0.0.0/0
的条目11.0.0.254
(即你的 NAT 实例)。
然后将您的应用实例移至此子网。它们将通过 NAT 实例进行外部访问,负载均衡器将能够访问它们,并且您不必与 DHCP 守护程序争夺路由。
子网是免费的,您无需支付额外费用。
希望有帮助:)