Danke für den Hinweis, das werde ich testen. Am 15.01.2015 um 04:37 schrieb Andre Klärner:
Hi pulux,
On Wed 14.01.2015 17:28:41, pulux wrote:
ich bin auf der Suche nach einer openvpn Konfiguration mit zwei openvpn-Servern und n-Clients. Der Datenverkehr soll via client_to_client erfolgen.
Ich habe eine ähnliche Konfiguration am laufen. Einer meiner Server bei mir zuhause unterhält eine ständige VPN-Verbindung in das Firmen-Netz eines meiner Kunden. Jetzt kann ich mich aus meinem Netz zu jedem Host im entfernten Netz meines Kunden verbinden, und "aus meinem Netz" schließt auch die Maschinen ein, die via VPN verbunden sind. Das alles funktioniert auch in der umgekehrten Richtung, also alle Clients des Firmen-Netzes können auf Ressourcen meines Netzes inkl. der VPN-Clients zugreifen.
Ich habe also, wenn ich VPN-Client zu VPN-Client kommuniziere, drei VPN-Verbindungen involviert. Dieses Setup hat sich bewährt, auch wenn die Client to Client - Kommunikation selten benötigt wird.
Ich habe auf dem Firmen-VPN (das via TUN überträgt) folgende Config:
# tun0.conf server 10.0.1.0 255.255.255.0 ifconfig-pool-persist ip-pool.txt port 1194
# client-specific config-options client-config-dir clients-config
# routes advertised by clients route 172.16.0.0 255.255.255.0
push "route 172.16.0.0 255.255.255.0" push "route 192.168.142.0 255.255.255.0"
client-to-client
ping 30 ping-restart 120 persist-tun persist-key
# clients-config/hive.ak-online.be iroute 172.16.0.0 255.255.255.0
## EOF
Mittels client-config-dir habe ich meinem Server eine zusätzliche Konfiguration gepusht, und auf dem Firmen-Server internes Routing ergänzt, sobald der Client (mein Server) online ist.
Mein Server hat auf seiner eigenen Seite noch ein paar Routen gesetzt, die für alle VPN-Clients des Firmen-Servers gelten (192.168.142.0/24 ist das Firmen-LAN).
Mein eigenes VPN ist ein TAP-VPN, das am internen (virtuellen) Switch hängt, und direkt vom DHCP-Server auf IP-Ebene versorgt wird. Damit spare ich mir eine Menge Konfiguration, denn das Routing funktioniert für alle lokalen und remote Clients identisch, da mein Server das Standard-Gateway ist.
Angenommen deine beiden Server stehen in recht zentraler Lage (z.B. zwei Datacenter des Hosters deiner Wahl) und sollen VPN-technisch sich identisch "anfühlen", inkl. der vergebenen Client-IP, würde ich die folgende Konfiguration vorschlagen:
- Leg auf jedem Server eine Bridge an (brctl)
- Konfiguriere auf beiden Servern einen DHCP-Server, der die lokale Bridge befüttert, und sich mit dem jeweils anderen abspricht, welche IPs er vergibt (also ein großes Subnet/"statische" IPs via MAC-Adresse, aber ein Server funktioniert als Fail-Over des anderen (https://www.madboa.com/geek/dhcp-failover/) )
- Konfiguriere einen Server mit dem VPN (TAP-based) und lasse das Interface der lokalen Bridge hinzufügen.
- Konfiguriere den anderen Server mit einem VPN-Client der den ersten Server kontaktiert und einem VPN-Server der analog zum ersten arbeitet. Dabei sollten beide TAP-Interfaces der lokalen Bridge hinzugefügt werden.
- Anschließend kannst du die Clients konfigurieren, mit dynamischen IPs und einem dynamischen DNS kommst du wahrscheinlich am leichtesten, denn die MAC-Adressen von tun und tap-Interfaces kann man leider nicht auf einen bestimmten Wert festlegen (AFAIK, es kann sein das es inzwischen geht), alternativ kann man DHCP natürlich noch über Hostnamen statisch fixieren.
An sich sollte diese Konfiguration recht gut ein zentrales Setup spiegeln, wo beide VPN-Server an einem internen Netz hängen, das DHCP, DNS und Routing abnimmt, und beide Server direkt in das interne Netz patchen.
Wenn du noch Fragen hast, immer her damit, ich mag Spielerei mit Netzwerken ;)
Grüße, Andre
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd