Przejmowanie adresu IP

Przełączanie wspólnego adresu IP pomiędzy różnymi węzłami klastra realizowane jest przy pomocy techniki zwanej IP aliasingiem. Funkcja ta obecna jest w różnych realizacja w jądrze Linuksa od wersji 2.0.x 1.1. Nie wnikając w szczegóły IP aliasing pozwala na tworzenie wirtualnych interfejsów sieciowych o różnych adresach IP, korzystających z jednej karty sieciowej.
\begin{code}
node1 ...
Jak widać w powyższym przykładzie mamy dwa interfejsy sieciowe o różnych adresach IP, ale tym samym adresie MAC co oznacza, że jest to jedna i ta sama karta sieciowa.

W przypadku w systemu pracującego w pełni poprawnie, adres IP klastra przypisany jest wirtualnemu interfejsowi skonfigurowanemu na węźle głównym -- węzeł zapasowy w tym czasie posiada nie posiada takiego interfejsu. W momencie stwierdzania awarii węzła głównego, demon heartbeat'a na węźle zapasowym uruchamia wirtualny interfejs przypisując mu adres IP klastra. Od tej chwili ten węzeł będzie udostępnial usługi całego klastra.

Przełączanie adresu IP w sieci ethernet wiąże się jednak z pewnymi problemami mającymi swoje źródło w sposobie działania sieci ethernet oraz protokołu ARP. Ramki danych w sieci ethernet rozgłaszane są po całej podsieci. Zadaniem kart sieciowych jest przyjęcie tylko tych ramek których docelowy adres MAC jest zgodny z ich własnym adresem. Powiązanie adresu IP z adresem MAC jest zadaniem protokołu ARP, który na podstawie odpowiedzi na okresowo rozsyłane zapytania (ARP requests) ustala te relacje i zapisuje je w cache'u.

W przypadku przełączenia adresu klastra między węzłami, tablice ARP w innych komputerów w sieci (oraz routera) dezauktalizują się. Oczywiście po pewnym czasie ponowione zostaną zapytania ARP i dane w tablicach staną się poprawne, ale może to potrwać nawet 2 min. Może się także zdarzyć, że uszkodzony węzeł będzie jeszcze na tyle sprawny, żeby odpowiadać na zapytania ARP. Taka sytuacja niechybnie doprowadzi do zamieszania w tablicach ARP innych komputerów i routera. Klaster może być w dalszym ciągu niedostępny.

Aby zapobiec temu zjawisku stosuje się technikę zwaną ... gratuitous ARP. Polega ona na wysyłaniu odpowiedzi ARP nie czekając na zapytania. W ten sposób zmiana adresu MAC węzła serwującego usługi klastra jest szybko rozgłaszana w całej podsieci.

Pawel Topa 2003-12-12