Die »haresources«-Datei enthält die Definition des primären Knotens und die zu überwachenden Ressourcen. Als Ressourcen bezeichnet Heartbeat alle Einstellungen und Dienste, welche im Falle eines Falles von einem Knoten zum anderen wechseln. Eine Ressource besteht aus dem Namen des Ressourcen-Skripts (vergleichbar zu Init-Skripten) und optional einer durch »::« getrennten Parameterliste. Heartbeat startet die definierten Ressourcen von links nach rechts und stoppt sie in umgekehrter Reihenfolge.
Der in diesem Beitrag besprochene Aufbau benötigt folgende Ressourcen:
Damit sieht der Inhalt der »haresources«-Datei wie folgt aus:
vpngw1a IPaddr2::10.0.0.1/24/eth1/10.1.0.255 openvpn::vpn SendArp::10.128.0.25/tap0
Abschließend fehlt noch die zentrale Konfiguration von Heartbeat. Sie steht in »ha.cf«. Der Inhalt der Datei ist auf beiden Knoten bis auf eine einzige Zeile (der »ping«-Parameter) identisch:
serial /dev/ttyS0 auto_failback on node vpngw1a node vpngw1b ping 62.91.24.1 62.91.24.2
Der »serial«-Parameter wählt die serielle Schnittstelle des Nullmodemkabels. Fällt der primäre Knoten aus, und hat anschließend der sekundäre Knoten übernommen, so regelt »auto_failback on«, dass der primäre Knoten automatisch wieder übernimmt, sobald er wieder funktionsfähig ist. Mit der Direktive »node« werden die Hostnamen beider Knoten hinterlegt.
Der letzte Parameter »ping« ist der eigentliche Kniff in diesem Setup. Über die konfigurierten IP-Adressen überprüft Heartbeat, ob der Knoten noch mit dem Netzwerk verbunden ist. Er nutzt dazu die IP-Adressen der Firewalls der Außenstelle. So überprüft der jeweilige Knoten, ob seine Anbindung an die Außenstelle noch vorhanden und durchgängig ist.
Gewöhnliche VPN-Devices erkennen das Vorhanden- oder Nichtvorhandensein einer Leitung am Linkstate des jeweiligen Anschlusses. Ist das Gerät jedoch via DSL-Modem am Netz, so ist das VPN-Gerät bezüglich der DSL-Anbindung blind. Das VPN-Gateway wird nicht merken, ob die DSL-Leitung gestört ist oder nicht. Aus Sicht des Geräts besteht die Netzwerkverbindung so lange, wie es eine Ethernet-Verbindung zum DSL-Modem hat. Auch die Konfiguration von OpenVPN ist für den beschriebenen Aufbau sehr überschaubar. Listing 1 zeigt den Inhalt der ».conf«-Datei.
Listing 1: VPN-Konfiguration
dev tun ifconfig 172.16.0.1 172.16.0.2 route 10.128.0.0 255.255.255.0 172.16.0.2 remote 62.91.24.1 remote 62.91.24.2 persist-tun secret vpn.key