在 Debian 机器上,我想在两个节点之间为公共 IP 设置一个 VIP,但我想避免使用三个 IP 地址来使 ucarp 在两个节点之间进行通信。
我可以进行设置,以便 ucarp 使用除持有 VIP 之外的其他物理接口进行通信吗?
答案1
首先,这只是经过了轻微的测试...:-)
一个古老且似乎几乎被遗忘的技巧是能够配置多个地址不同的子网但位于同一物理接口上。因此,如果 eth0 是面向公众的接口,则将主设备配置为地址 172.16.0.1/30,将故障转移盒配置为地址 172.16.0.2/30。这些数据包应通过本地交换机转发(从而确保 vrrp 消息可以相互发送),但不会被您的 ISP 转发 [1]。将虚拟地址 (eth0:ucarp) 设置为您的公共 IP。请注意,虚拟 IP 的子网掩码不会是 /32。
我假设您想“避免使用三个 IP 地址”,因为您不想消耗三个公共 IP,而不是因为其他原因。
[1] 除非你的 ISP 配置错误,从私有 IP 转发多播数据包。哎呀!