In meinem letzten Beitrag habe ich mein PeerVPN-Setup zur Realisierung meines Wartungsnetzes vorgestellt. Wenige Stunden später musste ich feststellen, dass ich bei meinem Setup etwas wichtiges nicht bedacht hatte: Bei einem Server-Neustart versuchen die Dienste, die nur über das Wartungsnetze 10.8.1.0/24 erreichbar sein sollen, sich an das srvnet0-Interface zu binden. Das schlägt allerdings fehl, denn der Docker-Container mit dem PeerVPN-Node startet erst wesentlich später, und die srvnet0-Schnittstelle existiert bis zu diesem Zeitpunkt noch nicht. Das wird mit Fehlermeldungen und nicht verfügbaren Diensten bestraft. Die Lösung ist, diese Dienste warten zu lassen, bis srvnet0 verfügbar ist.
In meinem Beitrag “Dezentrales HA Servercluster-VPN mit PeerVPN” habe ich euch PeerVPN vorgestellt - einen kleinen Peer-to-Peer VPN-Server, der sich wunderbar eignet, um seine Hosts miteinander zu vernetzen. Ich betreibe selbst mehrere Server an verschiedenen Standorten, die direkt miteinander Daten austauschen. So kommuniziert beispielsweise jeder Host mit einem zentralen Munin-Server, um Statusupdates zu senden. Auch Icinga-Daemons laufen auf den Hosts und prüfen verschiedene lokale Dienste. Das Ergebnis wird an das Icinga-Backend geschickt.
All diese Kommunikation soll für die Öffentlichkeit nicht einsehbar sein, d.h.:
- Die Existenz von Wartungs- und Verwaltungsdiensten soll verborgen werden
- Die Verbindung soll verschlüsselt werden: Internet und Hoster kann im Zweifel nicht getraut werden
- Nur autorisierte Personen oder Maschinen sollen Zugriff auf bestimmte Dienste haben (z.B. Admin, Munin-Frontend)
Um hochverfügbare Dienste zu hosten, empfiehlt es sich, Server bei mehreren Hostern in verschiedenen, geografisch verteilten Rechenzentren zu betreiben. Die Server-to-Server-Kommunikation innerhalb des Serverclusters sollte dabei verschlüsselt stattfinden. Das lässt sich am einfachsten über ein Cluster-eigenes VPN erreichen - also ein privates Netzwerk, das nur dem sicheren Informationsaustausch der Server untereinander dient. Ich habe mich nach einer passenden VPN-Lösung für ein Projekt umgesehen und habe die für mich perfekte Softwarelösung gefunden: PeerVPN von Tobias Volk.