![为什么 VRRP 需要 /32 网络掩码?](https://linux22.com/image/754264/%E4%B8%BA%E4%BB%80%E4%B9%88%20VRRP%20%E9%9C%80%E8%A6%81%20%2F32%20%E7%BD%91%E7%BB%9C%E6%8E%A9%E7%A0%81%EF%BC%9F.png)
在 VRRP 配置中,我一直使用 /32 子网掩码,但我不知道背后的原因。
有时我使用相同的子网掩码作为主接口,例如 /24,在某些情况下它可以起作用,而在其他情况下,直到我设置 /32 才起作用。
例如,Mikrotik 文档 指出了这一点,但没有解释:
注意:如果 VRRP 上配置的地址与路由器的任何其他接口上的地址来自同一子网,则 VRRP 接口上的地址必须具有 /32 网络掩码。
这真的是要求吗?在 FreeBSD CARP 上我没有发现类似的要求。
答案1
虚拟 IP 地址(无论是 VRRP、HSRP、GLBP 还是 CARP 使用)就是 IP 地址。它没有子网掩码。
例如,在 Cisco 路由器上,您可以像这样配置 HSRP:
interface GigabitEthernet0/0
ip address 192.168.1.2 255.255.255.0
standby 1 ip 192.168.1.1
VRRP也是同样的道理:
interface GigabitEthernet0/0
ip address 192.168.1.2 255.255.255.0
vrrp 1 ip 192.168.1.1
我认为在 Linux 上,需要将物理接口上的所有附加 IP 地址配置为 /32,类似于 Microtik 路由器上的 VRRP 限制。这些限制是由实现而不是协议施加的。如果 Linux 或 Microtik 程序员以不同的方式实现该概念,也许您可以提供任何子网掩码或根本不提供子网掩码。毕竟,它不需要子网掩码,因为它可以从物理接口获取此信息。