【问题标题】:EC2 host unreachable on secondary private addressEC2 主机在辅助私有地址上无法访问
【发布时间】:2021-12-07 07:24:29
【问题描述】:

我的 VPC 中有一个子网(s1)。假设 10.1.1.0/24 范围内的子网 1,我启动了 3 台机器(m1,m2,m3),其中有三个私有地址(p1,p2,p3) .m1 也有一个弹性 IP 地址可以从 Internet 访问机器。我只需要一个需要与(m2 或 m3)一次关联的辅助私有地址(p4)。手动选择 P4(只是一个未使用的地址在同一子网中)用于负载平衡。
辅助 ip 关联由脚本协调,因此 (p4) 不会一次绑定到两台机器。

我正在通过ifconfig eth0:1 p4 netmask mask up 绑定 p4 我通过send_arp 发布它。 同样的设置适用于我的本地设置。但我无法在 AWS 环境中工作。
即使在调用 send_arp done arp -a 后显示 mac 地址不完整。
我需要通过 m1 的辅助私有 IP 地址访问 m2 或 m3
这在 AWS 环境中是否可行?

【问题讨论】:

  • P4 is chosen manually 不,您可以使用 AWS 配置分配额外的内部 IP 地址,但不能手动分配。我的意思是 - 你可以分配它,但据我所知,VPC 会丢弃任何流量

标签: amazon-web-services amazon-ec2 amazon-vpc


【解决方案1】:

在 AWS 中,每个私有 IP 地址都附加到一个 ENI(弹性网络接口)。当我们创建 EC2 实例时,AWS 会为我们的实例分配一个 ENI,但如果我们想要拥有多个 IP 地址,我们可以创建自己的 ENI 并将它们分配给我们的 EC2 实例。

为了创建 ENI,我们可以在 AWS 控制台中访问 EC2 -> Network & Security(左侧选项卡)-> Network Interfaces -> Create Network Interface。创建网络接口后,可以手动分配它,或者您可以使用脚本将其分配给您的一个 EC2 实例(更多信息在docs)。

在将 ENI 分配给实例后,我们应该能够通过简单地运行 ifconfig -a 在实例中看到它。不需要其他 ifconfig 调整(至少在 Amazon Linux 2 的情况下,我没有尝试其他发行版)。

【讨论】:

  • 我们可以通过shell脚本在机器内部制作这个吗?
  • 是的,使用 AWS cli attach-network-interface 命令和 create-network-interface 命令。
  • eth1: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether xxxxxxxxxxx txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 附加到实例后找不到 ip 地址
  • 我正在使用centos服务器。
  • 这可能对 CentOS 有帮助:stackoverflow.com/questions/36894073/…
猜你喜欢
  • 1970-01-01
  • 2017-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
相关资源
最近更新 更多