В конфигурации VRRP я использовал маску подсети / 32, но я никогда не знал причина позади.
Иногда я использую ту же маску подсети, что и основной интерфейс, например / 24, и в некоторых случаях она работает, а в других int, пока я не установил / 32, это не так.
Для Например, на документация Mikrotik указывает на это, но без объяснения:
Примечание: адрес на интерфейсе VRRP должен иметь сетевую маску / 32, если адрес, настроенный на VRRP, находится из той же подсети, что и на любом другом интерфейсе маршрутизатора.
Это действительно требование? Во FreeBSD CARP я не нашел аналогичного требования.
Виртуальный 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-адреса на физическом интерфейсе как a /32, аналогично вашему ограничению VRRP на маршрутизаторах Microtik. Это ограничения, налагаемые реализацией, а не протоколом. Если бы программисты Linux или Microtik реализовали эту концепцию по-другому, возможно, вы могли бы указать любую маску подсети или вообще не указывать. В конце концов, ему не нужна маска подсети, поскольку он может получить эту информацию с физического интерфейса.