Nach einigen Suchen habi ich folgendes gefunden:

activ-avtiv OpenVPN-Server

Es werden zwei Server mit Linux, openvpn und python benötigt.
Die Clients tauschen ihre Daten über das VPN-Netz 10.100.100.0/24 aus.
Die Server tauschen ihre Informationen über das VPN-Netz 10.100.200.0/24
aus.

Auf den Servern werden jeweils zwei VPN-Schnittstellen erstellt, tun0
für die Daten und tun1 für das Management.

#ServerA
#/etc/openvpn/vpnA-data.conf
server 10.100.100.0 255.255.255.0
ifconfig 10.100.100.1 10.100.100.2
push "route 10.100.100.0 255.255.255.0"
push "route 10.200.200.0 255.255.255.0"
dev tun
proto udp
user nobody
client-to-client
persist-key
persist-tun
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/vpnsrvA-1.crt
key keys/vpnsrvA-1.key
comp-lzo
verb 3
keepalive 10 60
client-config-dir ccd
management tunnel 5656 /etc/openvpn/pass

#ServerA
#/etc/openvpn/vpnA-m.conf
server 10.100.200.0 255.255.255.0
ifconfig 10.100.200.1 10.100.200.2
#push "route 10.100.100.0 255.255.255.0"
push "route 10.200.200.0 255.255.255.0"
dev tun
proto udp
port 11940
user nobody
persist-key
persist-tun
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/vpnsrvA-1.crt
key keys/vpnsrvA-1.key
comp-lzo
verb 3
keepalive 10 60
client-config-dir ccd
management tunnel 5657 /etc/openvpn/pass

#ServerA
#/etc/openvpn/vpnA-conf.ini
vpnsrvA
mgmt_interface = tun1
data_interface = tun0
remote_mgmt_ip = 10.200.200.6
remote_data_ip = 10.100.100.101
openvpn_mgmt_pass_file = /etc/openvpn/pass
openvpn_mgmt_port = 5656
cube_routed_port = 5657

#ServerB
#/etc/openvpn/vpnB-data.conf
mode server
tls-server
ifconfig 10.100.100.101 10.100.100.102
ifconfig-pool 10.100.100.4 10.100.100.251
route 10.100.100.0 255.255.255.0
push "route 10.100.100.0 255.255.255.0"
push "route 10.200.200.0 255.255.255.0"
dev tun
proto udp
client-to-client
user nobody
persist-key
persist-tun
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/vpnsrvB-1.crt
key keys/vpnsrvB-1.key
comp-lzo
verb 3
keepalive 10 60
client-config-dir ccd
management tunnel 5656 /etc/openvpn/pass

#ServerB
#/etc/openvpn/vpnB-m.conf
client
remote IP-von-ServerA
dev tun
proto udp
port 11940
user nobody
persist-key
persist-tun
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/client-0.crt
key keys/client-0.key
comp-lzo
management tunnel 5657 /etc/openvpn/pass

#ServerB
#/etc/openvpn/vpnB-conf.ini
mgmt_interface = tun1
data_interface = tun0
remote_mgmt_ip = 10.200.200.1
remote_data_ip = 10.100.100.1
openvpn_mgmt_pass_file = /etc/openvpn/pass
openvpn_mgmt_port = 5656
cube_routed_port = 5657

Mit diesen Dateien und dem Python-Script von:
https://github.com/aguynamedben/cube-routed.git kann das System in
Betrieb genommen werden. Dafür werden die VPN-Netze mit
/etc/init.d/openvpn start gestartet und dann das Script mit der
ini-Datei aufgerufen.

#Client
#/etc/openvpn/client-1.conf
client
remote IP-von-ServerA
remote IP-von-ServerB
dev tun
proto udp
user nobody
persist-key
persist-tun
keepalive 10 60
comp-lzo
ca keys/ca.crt
cert keys/client-1.crt
key keys/client-1.key
ns-cert-type server

Was haltet ihr davon? geht es evtl. noch einfacher?

Am 15.01.2015 um 07:31 schrieb pulux:
> 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  -  [email protected]
>> https://ssl.schlittermann.de/mailman/listinfo/lug-dd
> 
> 
> 
> 
> _______________________________________________
> Lug-dd maillist  -  [email protected]
> https://ssl.schlittermann.de/mailman/listinfo/lug-dd
> 

_______________________________________________
Lug-dd maillist  -  [email protected]
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Antwort per Email an