我创建了一个 AWS VPC 及其中的三个实例(头,节点A, 和节点B)。我还将它们全部与一个安全组关联,该安全组允许我的 VPC 块内的私有 (RFC-1918) 地址之间完全开放联网。换句话说,这三个源地址中的任何一个都可以接触任何 TCP 或 UDP 端口,或者使用任何 ICMP 协议访问 VPC 网络块 (10.x.0.0/16) 内的任何其他地址。
三个实例之间的网络连接正常。名称已传播到每个实例上的 /etc/hosts 中,并且正常运行。
现在我想使用另一个地址(10.x.0.100)作为该块中的自定义 VIP,将其作为 IP 别名(eth0:0)分配给 nodeA,在该节点上运行服务,然后以各种方式对服务进行建模,并让 nodeB 接管该 VIP(使用类似心跳和起搏器。
我编写了一个单行takevip
shell 脚本,它简单地ifconfig eth0:0 10.X.0.100 ...
执行了 nodeA(且只有一个 nodeA)上的任务。
这就是我被困住的地方。我该如何将此地址注册为在我的虚拟网段内使用?
我尝试过ping -I
10.x.0.100 10.x.0.1`(以我的 VIP 作为源 ping 虚拟路由器)。这会导致 100% 的数据包丢失。(从所有其他实例 ping .0.1 都运行正常,正如预期的那样)。
我已再三检查过ifconfig -a
节点 A 上的接口配置()是否正确,以及节点 B 上是否(目前)没有冲突。