Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Dec 2019 09:26:44 +0300
From:      =?UTF-8?B?0J3QuNC60LjRgtCwINCU0YDRg9Cx0LA=?= <nikita@druba.su>
To:        freebsd-net@freebsd.org
Subject:   carp synchronous switching
Message-ID:  <999d10e8-f294-4540-237a-8a4406c594ab@druba.su>

next in thread | raw e-mail | index | archive | help
Hi to all!

I have a trouble with simultaneity of switching between carp interfaces.
FreeBSD 12.0
My config for host A:

ifconfig_vlan2_alias0="inet vhid 1 advskew 100 pass password alias 
192.168.2.10/32"
ifconfig_vlan3_alias0="inet vhid 2 advskew 100 pass password alias 
192.168.3.10/32"
ifconfig_vlan4_alias0="inet vhid 3 advskew 100 pass password alias 
192.168.4.10/32"
ifconfig_vlan5_alias0="inet vhid 4 advskew 100 pass password alias 
192.168.5.10/32"
ifconfig_vlan6_alias0="inet vhid 5 advskew 100 pass password alias 
192.168.6.10/32"
ifconfig_vlan7_alias0="inet vhid 6 advskew 100 pass password alias 
192.168.7.10/24"
ifconfig_vlan8_alias0="inet vhid 7 advskew 100 pass password alias 
192.168.8.10/30"
ifconfig_vlan9_alias0="inet vhid 8 advskew 100 pass password alias 
192.168.9.10/30"

For host B the same, but advskew = 1.

Hosts are routers and work correctly, when all carp interface have 
master status at the same host. But if I try to get this state only by 
carp tools, this work good, when one of my hosts have 
net.inet.carp.demotion = 0

But this not always like this. For example, after turning on host A have 
demotion = 1920 and host B = 1440. And in this situation I usually have 
something like this:
# ifconfig | grep carp
carp: MASTER vhid 1 advbase 1 advskew 100
carp: BACKUP vhid 2 advbase 1 advskew 100
carp: BACKUP vhid 3 advbase 1 advskew 100
carp: BACKUP vhid 4 advbase 1 advskew 100
carp: BACKUP vhid 5 advbase 1 advskew 100
carp: BACKUP vhid 6 advbase 1 advskew 100
carp: BACKUP vhid 7 advbase 1 advskew 100
carp: BACKUP vhid 8 advbase 1 advskew 100

I tried to set vhid = 1 for all carp interfaces, but with the same result.

Of cource, net.inet.carp.preempt = 1 for both hosts.

Started from FreeBSD 10, I used script to set the carp value based on 
the value of one of the interfaces, but not sure, that it is right 
decision. May be someone can suggest me what's wrong?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?999d10e8-f294-4540-237a-8a4406c594ab>