Помогите разобраться с ARP-балансировкой.
Балансирую два роутера FreeBSD_8.2, на каждом поднимаю по два CARP интерфейса с одним общим ip (192.168.1.10/16) но разными vhid, и разумеется включаю net.inet.carp.arpbalance=1 и net.inet.carp.preempt=1:routerA:
ifconfig_em0="inet 192.168.1.2 netmask 255.255.0.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass 192.168.1.10/16"
cloned_interfaces="carp1"
ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.10/16"routerB:
ifconfig_em0="inet 192.168.1.3 netmask 255.255.0.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.10/16"
cloned_interfaces="carp1"
ifconfig_carp1="vhid 2 pass testpass 192.168.1.10/16"Все делаю по man'y!
И вот что получается:routerA# ifconfig
carp1: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
inet 192.168.1.10 netmask 0xffff0000
carp: BACKUP vhid 1 advbase 1 advskew 100routerB# ifconfig
carp1: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
inet 192.168.1.10 netmask 0xffff0000
carp: MASTER vhid 1 advbase 1 advskew 0Поднимается только по одному carp, на роутере A - бэкап, на B - мастер, и в итоге весь трафик обрабатывает только роутер B, хотя отказоустойчивость работает - вырубаю B, сразу же включается A.
Я так понимаю что для балансировки нужно чтобы на роутере А должен быть один carp - мастер (с vhid 1), а другой carp - бэкап (c vhid2); а на роутере B одни carp - бэкап (с vhid1), а другой carp - мастер (c vhid2)... тогда и будет балансироваться!Может я что-то не допонимаю? Кто с carp'ом имел дело, поясните что сделал не так, пожалуйста?
Делал на 8.2 балансировку по ману, все работало. Какая реакция системы на команды "ifconfig carp0 create" и "ifconfig carp0 vhid 2 pass testpass 192.168.1.10/16" ?
> Делал на 8.2 балансировку по ману, все работало. Какая реакция системы на
> команды "ifconfig carp0 create" и "ifconfig carp0 vhid 2 pass testpass
> 192.168.1.10/16" ?мне кажется все банальнее
не обратили внимание, что cloned_interfaces 2 раза получается, это не значит, что он два раза выполнится, а выполнится последний!!!! (такова обработка rc конфигов)надо поправить так:
cloned_interfaces="carp0 carp1"
> надо поправить так:
> cloned_interfaces="carp0 carp1"+1
>> Делал на 8.2 балансировку по ману, все работало. Какая реакция системы на
>> команды "ifconfig carp0 create" и "ifconfig carp0 vhid 2 pass testpass
>> 192.168.1.10/16" ?
> мне кажется все банальнее
> не обратили внимание, что cloned_interfaces 2 раза получается, это не значит,
> что он два раза выполнится, а выполнится последний!!!! (такова обработка rc
> конфигов)
> надо поправить так:
> cloned_interfaces="carp0 carp1"так и сделал! все заработало)! спасибо!
Поясните по балансировке!
То есть получается что половину всех хостов сети будет обслуживать один роутер, а другую половину другой, так?? В этом и есть вся балансировка?
>>> Делал на 8.2 балансировку по ману, все работало. Какая реакция системы на
>>> команды "ifconfig carp0 create" и "ifconfig carp0 vhid 2 pass testpass
>>> 192.168.1.10/16" ?
>> мне кажется все банальнее
>> не обратили внимание, что cloned_interfaces 2 раза получается, это не значит,
>> что он два раза выполнится, а выполнится последний!!!! (такова обработка rc
>> конфигов)
>> надо поправить так:
>> cloned_interfaces="carp0 carp1"
> так и сделал! все заработало)! спасибо!Такая проблема:
Настройку carp интерфейсов прописал в /etc/rc.conf, когда сервера перезагружается carp интерфейсы почему-то зависают в состоянии INIT... выполняю /etc/netstart - сразу же определяются кто MASTER, а кто BACKUP и все работает... что может быть???
P.S.
Всего 6 carp'ов (балансировка + отказоустойчивость): 4 на ethernet'e - работают отлично и после перезагрузки определяются кто есть кто; 2 на infiniband'e - вот они то и не хотят сразу работать после ребута((