CARP не переключается в обратное состояние.

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

CARP не переключается в обратное состояние.

Непрочитанное сообщение 100matolog » 2010-06-02 10:33:35

Сервер 1

Код: Выделить всё

[root@d3 ~]# cat /etc/rc.conf 
defaultrouter="77.90.250.113"
hostname="d3"
ifconfig_em0="inet 77.*.*.* netmask 255.255.255.240"
ifconfig_fxp0="inet 10.100.101.205 netmask 255.255.255.0"
cloned_interfaces="carp1 carp2"
ifconfig_carp1="vhid 1 pass della-web1 advskew 5 10.100.101.88 255.255.255.0"
ifconfig_carp2="vhid 2 pass della-web2 advskew 10 10.100.101.89 255.255.255.0"

Код: Выделить всё

[root@d3 ~]# cat /etc/sysctl.conf 
#security.bsd.see_other_uids=0
sysctl net.inet.carp.preempt=1
Сервер 2

Код: Выделить всё

[root@d4 ~]# cat /etc/rc.conf 
ifconfig_em0="inet 77.*.*.* netmask 255.255.255.240"
ifconfig_fxp0="inet 10.100.101.206  netmask 255.255.255.0"
cloned_interfaces="carp1 carp2"                                                                                                                                                    
ifconfig_carp1="vhid 1 pass della-web1 advskew 10 10.100.101.88 255.255.255.0"                                                                                                      
ifconfig_carp2="vhid 2 pass della-web2 advskew 5 10.100.101.89 255.255.255.0"

Код: Выделить всё

[root@d4 ~]# cat /etc/sysctl.conf 
#security.bsd.see_other_uids=0
sysctl net.inet.carp.preempt=1
В итоге когда кто-то из серверов вылетает и потом поднимается , то возникает вот такая картина

Код: Выделить всё

carp1: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
	inet 10.100.101.88 netmask 0xff000000 
	carp: MASTER vhid 1 advbase 1 advskew 10
carp2: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
	inet 10.100.101.89 netmask 0xff000000 
	carp: MASTER vhid 2 advbase 1 advskew 5
Тоесть , не возвращает исходное состояние виртуального интерфейса.
Или не должно возвращать исходное состояние?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение skeletor » 2010-06-02 19:50:42

Вот очень похожая ситуация.
http://unix.derkeiler.com/Mailing-Lists ... 01055.html
Но мне кажется, что здесь без ручного допиливания (перевод в down сетевых интерфейсов) не обойтись либо использовать ucarp, в котором можно задавать скрипты во время up/down сетевых интерфейсов.

Extremist
проходил мимо

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Extremist » 2011-09-28 14:06:06

Похожая ситуация. Есть два сервера на обоих по одному carp. Один основной второй резервный.
Но на резервном сервере состояние интерфейса carp0 постоянно MASTER.
Делаю скажем ifconfig carp0 down, а потом ifconfig carp0 up. Интерфейс на пару секунд меняется статус с INIT на BACKUP,
в /var/log/messages кидает такое сообщение kernel: carp0: INIT -> BACKUP. И потом снова становиться MASTER.

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-28 15:42:15

100matolog писал(а):Сервер 1

Код: Выделить всё

[root@d3 ~]# cat /etc/rc.conf 
defaultrouter="77.90.250.113"
hostname="d3"
ifconfig_em0="inet 77.*.*.* netmask 255.255.255.240"
ifconfig_fxp0="inet 10.100.101.205 netmask 255.255.255.0"
cloned_interfaces="carp1 carp2"
ifconfig_carp1="vhid 1 pass della-web1 advskew 5 10.100.101.88 255.255.255.0"
ifconfig_carp2="vhid 2 pass della-web2 advskew 10 10.100.101.89 255.255.255.0"

Код: Выделить всё

[root@d3 ~]# cat /etc/sysctl.conf 
#security.bsd.see_other_uids=0
sysctl net.inet.carp.preempt=1
Сервер 2

Код: Выделить всё

[root@d4 ~]# cat /etc/rc.conf 
ifconfig_em0="inet 77.*.*.* netmask 255.255.255.240"
ifconfig_fxp0="inet 10.100.101.206  netmask 255.255.255.0"
cloned_interfaces="carp1 carp2"                                                                                                                                                    
ifconfig_carp1="vhid 1 pass della-web1 advskew 10 10.100.101.88 255.255.255.0"                                                                                                      
ifconfig_carp2="vhid 2 pass della-web2 advskew 5 10.100.101.89 255.255.255.0"

Код: Выделить всё

[root@d4 ~]# cat /etc/sysctl.conf 
#security.bsd.see_other_uids=0
sysctl net.inet.carp.preempt=1
В итоге когда кто-то из серверов вылетает и потом поднимается , то возникает вот такая картина

Код: Выделить всё

carp1: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
	inet 10.100.101.88 netmask 0xff000000 
	carp: MASTER vhid 1 advbase 1 advskew 10
carp2: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
	inet 10.100.101.89 netmask 0xff000000 
	carp: MASTER vhid 2 advbase 1 advskew 5
Тоесть , не возвращает исходное состояние виртуального интерфейса.
Или не должно возвращать исходное состояние?
Нифига не понял! В какое "исходное состояние"? Это о чем?
skeletor писал(а):Вот очень похожая ситуация.
http://unix.derkeiler.com/Mailing-Lists ... 01055.html
Но мне кажется, что здесь без ручного допиливания (перевод в down сетевых интерфейсов) не обойтись либо использовать ucarp, в котором можно задавать скрипты во время up/down сетевых интерфейсов.
Нафиг ucarp? Запускать демоны вы и с помощью штатного carp сможете, при помощи devd. Как пример:
http://www.freebsd.org/doc/en/books/han ... -hast.html втыкать в пункт "18.18.4.1 Failover Configuration"
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-28 15:43:53

Extremist писал(а):Похожая ситуация. Есть два сервера на обоих по одному carp. Один основной второй резервный.
Но на резервном сервере состояние интерфейса carp0 постоянно MASTER.
Делаю скажем ifconfig carp0 down, а потом ifconfig carp0 up. Интерфейс на пару секунд меняется статус с INIT на BACKUP,
в /var/log/messages кидает такое сообщение kernel: carp0: INIT -> BACKUP. И потом снова становиться MASTER.
Конфиги rc.conf и sysctl.conf в студию
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-28 15:45:34

2 100matolog: на всякий случай уберите на ваших MASTER серверах "advskew 5". Вообще уберите, так оно будет равно 0.
А на BACKUP серверах поставьте advskew 100, а не 10
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Extremist
проходил мимо

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Extremist » 2011-09-28 16:02:33

Конфиги сервера 1

Код: Выделить всё

net.inet.carp.preempt=1
net.inet.carp.arpbalance=1

ifconfig carp0 create
ifconfig carp0 vhid 1 pass password 172.16.24.199/24

Код: Выделить всё

carp0: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
        inet 10.201.24.199 netmask 0xffffff00 
        carp: MASTER vhid 1 advbase 1 advskew 0

Конфиги сервера 2

Код: Выделить всё

net.inet.carp.preempt=1
net.inet.carp.arpbalance=1

ifconfig carp0 create
ifconfig carp0 vhid 1 advskew 100 pass password 172.16.24.199/24

Код: Выделить всё

сarp0: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
        inet 10.201.24.199 netmask 0xffffff00 
        carp: MASTER vhid 1 advbase 1 advskew 100

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-28 16:22:57

Extremist писал(а):...

Код: Выделить всё

net.inet.carp.arpbalance=1
...
Вам оно не надо.
Покажите еще остальные сетевые интерфейсы
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-28 16:31:37

2 Extremist: а еще не вижу net.inet.carp.allow=1
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Extremist
проходил мимо

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Extremist » 2011-09-28 16:38:58

На сколько я понимаю он по умолчанию включен.

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-28 16:46:34

Extremist писал(а):На сколько я понимаю он по умолчанию включен.
Да, но я на всякий случай все равно его выставляю в 1
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Extremist
проходил мимо

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Extremist » 2011-09-28 16:54:24

Что ещё скинуть, конфиги остальных интерфейсов.

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-28 16:57:46

Extremist писал(а):Что ещё скинуть, конфиги остальных интерфейсов.
Да, хосты ведь должны быть в одной подсети
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Extremist
проходил мимо

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Extremist » 2011-09-28 17:16:55

Сервер1

Код: Выделить всё

re0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 
        inet 172.16.24.54 netmask 0xffffff00 broadcast 172.16.24.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
re1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 
        inet aa.aa.aa.aa netmask 0xffffff00 broadcast aa.aa.aa.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
ipfw0: flags=8800<SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0xa 
        inet6 ::1 prefixlen 128 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1394
        inet 172.16.24.54 --> 172.16.24.147 netmask 0xffffffff 
carp0: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
        inet 172.16.24.199 netmask 0xffffff00 
        carp: MASTER vhid 1 advbase 1 advskew 0
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        tunnel inet aa.aa.aa.aa --> cc.cc.cc.cc
        inet 172.16.24.54 --> 10.10.10.7 netmask 0xffffff00 
        options=1<ACCEPT_REV_ETHIP_VER>
Сервер 2

Код: Выделить всё

rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3808<VLAN_MTU,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 
        inet 172.16.24.15 netmask 0xffffff00 broadcast 172.16.24.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 
        inet gg.gg.gg.gg netmask 0xffffff00 broadcast gg.gg.gg.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
re1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 
        inet bb.bb.bb.bb netmask 0xffffff00 broadcast bb.bb.bb.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
ipfw0: flags=8800<SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0xd 
        inet6 ::1 prefixlen 128 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
carp0: flags=8<LOOPBACK> metric 0 mtu 1500
        inet 172.16.24.199 netmask 0xffffff00 
        carp: INIT vhid 1 advbase 1 advskew 100

Extremist
проходил мимо

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Extremist » 2011-09-28 17:28:26

Проверил сейчас на двух виртуальных машинах, всё работает. Осталось разобраться на физических в чём дело.

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-28 18:57:47

Ну я бы сначала поставил у всех фаеров первым правилом "разрешить всё". Если не работает, то
Потом посмотрел бы tcpdump'ом что куда идет. Затем
проверил бы физическую топологию.
На крайняк убрал бы все сетевые интерфейсы кроме нужных
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-28 19:17:29

К последнему пункту: может carp'а смущают ваши ng0 и gif0
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Extremist
проходил мимо

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Extremist » 2011-09-28 21:18:26

На обоих хостах добавил в ipfw allow carp from me to any, и всё заработало.

Аватара пользователя
Mox
лейтенант
Сообщения: 757
Зарегистрирован: 2008-12-16 16:04:14
Откуда: питер
Контактная информация:

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Mox » 2011-09-29 12:17:10

Extremist писал(а):На обоих хостах добавил в ipfw allow carp from me to any, и всё заработало.
Ларчик просто открывался, было бы желание.
"В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов". Мэтт Диллон

Extremist
проходил мимо

Re: CARP не переключается в обратное состояние.

Непрочитанное сообщение Extremist » 2011-09-29 14:04:25

Дело не только в желании, но и в знаниях и способностях.