无法使用 Amazon Linux 2 AMI 对辅助网络接口进行 ping 操作

无法使用 Amazon Linux 2 AMI 对辅助网络接口进行 ping 操作

简而言之:主网络接口上的两个私有 IP 地址都可以 ping 通,但辅助网络接口上的两个私有 IP 地址都无法 ping 通。

很长的故事:

基于此 AWS 文档,使用 Amazon Linux 2 AMI,它将自动配置额外的网络接口和 IP 地址。

对于微型 ec2 实例,理论上它可以有 4 个私有 IP 地址(2 个网络接口,每个网络接口上有 2 个 IP 地址)

我的步骤:

  1. 从 Amazon Linux 2 AMI 创建一个 ec2 实例,在创建过程中设置两个私有 IP 地址
  2. 关联弹性 IP 地址
  3. 创建后,连接一个具有 2 个私有 IP 地址(与主 NIC 相同的子网和相同的安全组)的辅助网络接口。
  4. 登录实例,使用文档中的命令重新启动网络接口:sudo service network restart

ip a输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 0e:31:86:22:95:b4 brd ff:ff:ff:ff:ff:ff
    inet 172.31.1.101/20 brd 172.31.15.255 scope global dynamic eth0
       valid_lft 2509sec preferred_lft 2509sec
    inet 172.31.1.102/20 brd 172.31.15.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::c31:86ff:fe22:95b4/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 0e:ff:4a:aa:cb:66 brd ff:ff:ff:ff:ff:ff
    inet 172.31.2.201/20 brd 172.31.15.255 scope global dynamic eth1
       valid_lft 2325sec preferred_lft 2325sec
    inet 172.31.2.202/20 brd 172.31.15.255 scope global secondary eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::cff:4aff:feaa:cb66/64 scope link
       valid_lft forever preferred_lft forever

ip r输出:

default via 172.31.0.1 dev eth0
default via 172.31.0.1 dev eth1 metric 10001
169.254.169.254 dev eth0
172.31.0.0/20 dev eth0 proto kernel scope link src 172.31.1.101
172.31.0.0/20 dev eth1 proto kernel scope link src 172.31.2.201

ip rule输出:

0:      from all lookup local
32764:  from 172.31.2.202 lookup 10001
32765:  from 172.31.2.201 lookup 10001
32766:  from all lookup main
32767:  from all lookup default

ip route show table 10001输出:

default via 172.31.0.1 dev eth1
172.31.0.0/20 dev eth1 proto kernel scope link src 172.31.2.201

sysctl -ar 'conf.eth.\.arp_'输出:

net.ipv4.conf.eth0.arp_accept = 0
net.ipv4.conf.eth0.arp_announce = 0
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth0.arp_ignore = 0
net.ipv4.conf.eth0.arp_notify = 0
net.ipv4.conf.eth1.arp_accept = 0
net.ipv4.conf.eth1.arp_announce = 0
net.ipv4.conf.eth1.arp_filter = 0
net.ipv4.conf.eth1.arp_ignore = 0
net.ipv4.conf.eth1.arp_notify = 0

通过以上所有配置,主网络接口上的两个私有 IP 地址都可以 ping 通(从另一个 ec2 实例)。但辅助网络接口上的两个 IP 都无法 ping 通(目标主机无法访问)。

此外,将安全组设置为对所有流量、所有来源开放也无济于事。

相关内容