当操作系统为 Windows Server 2019 时,ec2 私有子网无法到达 169.254.169.254

dri*_*t13 2 amazon-ec2 amazon-web-services

我有多个 ec2 实例在私有子网中运行(仅允许 vpc 内的流量)。其中一些实例是自定义操作系统,其中一些实例运行 AWS windows server 2012 ami,一些实例运行 AWS windows server 2019 ami。

在所有计算机上,除了 Windows Server 2019 - 我可以通过调用“http://169.254.169.254/latest/meta-data”来检索实例的元数据。在 Windows Server 2019 上 - 它失败了。防火墙已关闭,所有计算机的路由表相同,而且它们之间的唯一区别大多是工作实例运行 EC2Config,而 Windows Server 2019 运行 EC2Launch(当然,操作系统也不同)。

知道什么会导致这种行为吗?

谢谢!!

Ste*_*uan 5

我在 AWS 上拥有的 Windows Server 2019 计算机最近发生了这种情况。根据我有限的理解,路由表中有错误的规则,如图所示,ROUTE PRINT对我来说有以下几行:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      172.31.48.1    172.31.51.191     15
  169.254.169.254  255.255.255.255       172.31.0.1    172.31.51.191     30 **FAULTY**
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
  169.254.169.254  255.255.255.255       172.31.0.1      15 **FAULTY**
Run Code Online (Sandbox Code Playgroud)

这意味着所有流量都通过正确的 172.31.48.1 网关路由,除了路由到黑洞的 169.254.169.254 之外。因此,需要采取补救措施来覆盖错误的路线。例如,一个建议是为 169.254.169.254 创建一个新的路由规则(注意,您需要管理员提升的命令提示符才能运行此命令):

ROUTE ADD 169.254.169.254 mask 255.255.255.255 172.31.48.1 METRIC 10
Run Code Online (Sandbox Code Playgroud)

将度量设置为 10 意味着这条新路由将比故障路由(其优先级度量 15 和 30 较弱)具有更强的优先级。

C:\Windows\system32>route add 169.254.169.254 mask 255.255.255.255 172.31.48.1 metric 10
 OK!
C:\Windows\system32\route print
...
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      172.31.48.1    172.31.51.191     15
  169.254.169.254  255.255.255.255      172.31.48.1    172.31.51.191     10 **NEW**
  169.254.169.254  255.255.255.255       172.31.0.1    172.31.51.191     30 **FAULTY**
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
  169.254.169.254  255.255.255.255       172.31.0.1      15 **FAULTY**
...
Run Code Online (Sandbox Code Playgroud)