Назад | Перейти на главную страницу

Активная петля сети CARP

Я должен настроить, несмотря ни на что, кластер из 3 активных OpenBSD 5.5 с CARP на 3 отдельных хостах ESXi 5.5.

Думаю, я близок к концу, но у меня есть это сообщение в / var / log / messages: carp0: обнаружен повтор или сетевой цикл

Вот моя конфигурация:


На каждом ESXi

Стандартные Vswitch, без режима VDS Promiscuous, смена Mac и подделка пакетов ON на каждом vswitch net.reversePathFwsCheckPromisc = 1


УЗЕЛ 1


/etc/hostname.em0 
inet 172.0.0.19 255.255.0.0 NONE 

/etc/hostname.carp0 
inet 172.0.0.16 255.255.0.0 172.0.255.255 balancing ip-unicast carpnodes 1:0,2:100,3:50 pass "password" carpdev em0 

/etc/sysctl.conf 
net.inet.carp.allow=1 
net.inet.carp.preempt=1 
net.inet.carp.log=2 

/etc/pf.conf 
pass quick on em0 inet proto carp from any to any 

ifconfig carp0 
carp0: flags=8843 mtu 1500 
        lladdr 00:00:5e:00:01:01 
        priority: 0 
        carp: carpdev em0 advbase 1 balancing ip-unicast 
                state MASTER vhid 1 advskew 0 
                state BACKUP vhid 2 advskew 100 
                state BACKUP vhid 3 advskew 50 
        groups: carp 
        status: master 
        inet6 fe80::200:5eff:fe00:101%carp0 prefixlen 64 scopeid 0x4 
        inet 172.0.0.16 netmask 0xffff0000 broadcast 172.0.255.255 

УЗЕЛ 2


/etc/hostname.em0 
inet 172.0.0.20 255.255.0.0 NONE 

/etc/hostname.carp0 
inet 172.0.0.16 255.255.0.0 172.0.255.255 balancing ip-unicast carpnodes 1:50,2:0,3:100 pass "password" carpdev em0 

/etc/sysctl.conf 
net.inet.carp.allow=1 
net.inet.carp.preempt=1 
net.inet.carp.log=2 

/etc/pf.conf 
pass quick on em0 inet proto carp from any to any 

ifconfig carp0 
carp0: flags=8843 mtu 1500 
        lladdr 00:00:5e:00:01:01 
        priority: 0 
        carp: carpdev em0 advbase 1 balancing ip-unicast 
                state BACKUP vhid 1 advskew 50 
                state MASTER vhid 2 advskew 0 
                state BACKUP vhid 3 advskew 100 
        groups: carp 
        status: backup 
        inet6 fe80::200:5eff:fe00:101%carp0 prefixlen 64 scopeid 0x4 
        inet 172.0.0.16 netmask 0xffff0000 broadcast 172.0.255.255 

УЗЕЛ 3


/etc/hostname.em0 
inet 172.0.0.21 255.255.0.0 NONE 

/etc/hostname.carp0 
inet 172.0.0.16 255.255.0.0 172.0.255.255 balancing ip-unicast carpnodes 1:100,2:50,3:0 pass "password" carpdev em0 

/etc/sysctl.conf 
net.inet.carp.allow=1 
net.inet.carp.preempt=1 
net.inet.carp.log=2 

/etc/pf.conf 
pass quick on em0 inet proto carp from any to any 

ifconfig carp0 
carp0: flags=8843 mtu 1500 
        lladdr 00:00:5e:00:01:01 
        priority: 0 
        carp: carpdev em0 advbase 1 balancing ip-unicast 
                state BACKUP vhid 1 advskew 100 
                state BACKUP vhid 2 advskew 50 
                state MASTER vhid 3 advskew 0 
        groups: carp 
        status: backup 
        inet6 fe80::200:5eff:fe00:101%carp0 prefixlen 64 scopeid 0x4 
        inet 172.0.0.16 netmask 0xffff0000 broadcast 172.0.255.255 

На каждом узле

Брандмауэр отключен


tcpdump | grep CARP 
12:08:37.098390 CARPv2-advertise 36: vhid=3 advbase=1 advskew=50 demote=0 (DF) [tos 0x10] 
12:08:37.098533 CARPv2-advertise 36: vhid=3 advbase=1 advskew=50 demote=0 (DF) [tos 0x10] 
12:08:37.271021 CARPv2-advertise 36: vhid=2 advbase=1 advskew=0 demote=0 (DF) [tos 0x10] 
12:08:37.271028 CARPv2-advertise 36: vhid=2 advbase=1 advskew=0 demote=0 (DF) [tos 0x10] 
12:08:37.948303 CARPv2-advertise 36: vhid=1 advbase=1 advskew=0 demote=0 (DF) [tos 0x10] 
12:08:37.948415 CARPv2-advertise 36: vhid=1 advbase=1 advskew=0 demote=0 (DF) [tos 0x10] 
12:08:38.280916 CARPv2-advertise 36: vhid=2 advbase=1 advskew=0 demote=0 (DF) [tos 0x10] 
12:08:38.280921 CARPv2-advertise 36: vhid=2 advbase=1 advskew=0 demote=0 (DF) [tos 0x10] 
12:08:38.308264 CARPv2-advertise 36: vhid=3 advbase=1 advskew=50 demote=0 (DF) [tos 0x10] 
12:08:38.308395 CARPv2-advertise 36: vhid=3 advbase=1 advskew=50 demote=0 (DF) [tos 0x10] 
12:08:38.958201 CARPv2-advertise 36: vhid=1 advbase=1 advskew=0 demote=0 (DF) [tos 0x10] 
12:08:38.958305 CARPv2-advertise 36: vhid=1 advbase=1 advskew=0 demote=0 (DF) [tos 0x10] 
12:08:39.290790 CARPv2-advertise 36: vhid=2 advbase=1 advskew=0 demote=0 (DF) [tos 0x10] 
12:08:39.290808 CARPv2-advertise 36: vhid=2 advbase=1 advskew=0 demote=0 (DF) [tos 0x10]

Спасибо за помощь.

Была такая же проблема. Странно то, что у меня есть несколько серверов ESXi на 1 Гбит, а некоторые на 10 Гбит, связанные с разными коммутаторами. Всякий раз, когда я перемещаю любую систему OpenBSD (5.8) на хост с сетью 10 Гбит, я получаю эти ошибки в журналах. Следуя этой статье https://kb.vmware.com/s/article/59235 Я сделал:

esxcli system settings advanced set -o /Net/ReversePathFwdCheckPromisc -i 1

Затем переведите интерфейсы в режим неразборчивой связи, и все заработало нормально.

Используйте следующий фильтр в tcpdump, чтобы проверить исходный адрес для запросов CARP: tcpdump -pni em0 vrrp

После того, как вы включите флаг net.reversePathFwsCheckPromisc, вы должны отключить и снова включить неразборчивый режим для активации.