Open Source im professionellen Einsatz

IP-Failover

Zum Verteilen öffentlicher IP-Adressen auf die Clusterknoten existieren mehrere Möglichkeiten. Sie können statisch vergeben sein, ohne dass CTDB involviert ist. In diesem Fall spielt CTDB seine High-Availability-Stärken nicht aus. Ferner kann der so genannten LVS-Modus eine einzelne IP-Adresse als öffentliche Clusteradresse verwenden, die der LVS-Master-Knoten an die teilnehmenden Knoten verteilt. Das Setzen der Variablen »CTDB_LVS_PUBLIC_IP« und »CTDB_PUBLIC_INTERFACE« in der Datei »/etc/sysconfig/ctdb« aktiviert diesen Modus.

Bei der dritten Methode verteilt CTDB mehrere öffentliche IP-Adressen dynamisch auf die Knoten. Zusammen mit einem vorgeschalteten Round-Robin-DNS erweitert sie den CTDB-Cluster um Loadbalancing und High Availability. Dazu legt der Admin auf jedem Knoten mit der »/etc/sysconfig/ctdb«-Variablen »CTDB_PUBLIC_ADDRESSES« eine Datei - üblicherweise »/etc/ctdb/public_addresses« - fest, die den Adresspool mit Netzmasken und Netzwerk-Interfaces enthält, aus dem CTDB den Knoten bedienen soll.

Diese Adressenliste braucht nicht auf allen Knoten vorhanden und nicht auf allen Knoten gleich zu sein. Hier kann der Admin auch die Netzwerktopologie im öffentlichen Netz berücksichtigen und beispielsweise Partitionen erstellen. Wenn ein Knoten ausfällt, überträgt CTDB seine öffentlichen IP-Adressen auf andere Clusterknoten, die diese Adressen in ihrer »public_addresses«-Liste enthalten.

Adressen schwenken

Es ist wichtig, zu verstehen, dass das Loadbalancing und die Verteilung der Clients auf die Clusterknoten immer pro Verbindung gelten. Wenn also eine IP-Adresse von einem Knoten auf einen anderen schwenkt, dann sind alle Verbindungen, die gerade an dieser IP-Adresse aktiv waren, verloren - die Clients müssen sich neu verbinden.

Damit es dabei nicht zu Verzögerungen kommt, bedient sich CTDB eines Tricks: Wenn eine IP schwenkt, dann kitzelt der neue (!) CTDB-Knoten den Client mit einem illegalen TCP-ACK-Paket (Tickle-ACK), das die ungültige Sequenznummer »0« und die ACK-Nummer »0« enthält. Der Client schickt als Antwort ein gültiges ACK-Paket, worauf der neue Inhaber der IP-Adresse die Verbindung gültig mit einem RST-Paket schließen darf und den Client so dazu zwingt, die Verbindung zu dem neuen Knoten neu aufzubauen.

Listing 2:
»/etc/ctdb/public_addresses«

01 192.168.45.70/24 eth0
02 192.168.45.71/24 eth0
03 192.168.45.72/24 eth0
04 192.168.45.73/24 eth0
05 192.168.45.74/24 eth0
06 192.168.45.75/24 eth0

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook