CARP не переходит в режим резервного копирования
У меня есть 2 компьютера OpenBSD, настроенные как межсетевые экраны между моей сетью и Интернетом. В локальной сети fw1
имеет IP 192.168.0.253
, а также fw2
имеет IP 192.168.0.254
и они делятся 192.168.0.1
используя CARP. На WAN у них есть IP 192.168.1.253
а также 192.168.1.254
и поделиться 172.16.0.1
(настоящий IP является публичным IP). Я настроил его так, чтобы сохранить публичные IP-адреса; У меня недостаточно для того, чтобы назначить каждому файерволу свой собственный IP и использовать CARP для третьего.
Тем не менее, CARP, похоже, не работает правильно. Когда я понижаю fw1
, внутреннее устройство CARP переключается в режим резервного копирования. Однако внешний интерфейс остается в режиме мастера. Как ни странно, fw2
также переходит в режим мастера, когда я понижаю fw1
так что есть 2 мастера.
Есть идеи, почему этот интерфейс не переходит в режим резервного копирования?
1 ответ
Поведение CARP по умолчанию состоит в том, что интерфейсы обрабатываются независимо, поэтому вы можете иметь один главный и другой подчиненный интерфейсы в одном блоке.
Чтобы изменить это поведение, вы должны изменить флаг preempt на 1:
sysctl net.inet.carp.preempt = 1
Вот исключение из FAQ по OpenBSD:
net.inet.carp.preempt
Разрешить хостам в группе избыточности, которые имеют лучшую базу данных и Advskew, выгрузить мастер. Кроме того, эта опция также позволяет переключать группы интерфейсов в случае сбоя одного интерфейса. Если один физический интерфейс с поддержкой CARP выходит из строя, CARP увеличивает счетчик понижений, carpdemote, на 1 в группах интерфейсов, членом которых является интерфейс carp(4), что фактически приводит к аварийному переключению всех членов группы вместе. Значение net.inet.carp.preempt равно 0 (отключено) по умолчанию.