OpenVPN Net-to-Net Routing

zanubi

New Member
Hallo,

auch wenn es wahrscheinlich schon 100 Threads zu diesem Thema gibt, ich komme nicht weiter. Wir haben einen vServer angemietet, der als OpenVPN-Gateway dienen soll. In einem anderen Netzwerk steht nun ein Server. Dieser soll von Roadwarriorn, die sich zum vServer verbinden erreichbar sein. Es sieht also in etwa so aus:

[vServer]---[Internet]---[Router]---[Firewall mit portforwarding auf ...]---[Server1]

So sieht es, nun, kann die Firewall nicht als OpenVPN client fungieren, also ist zwischen Router und Firewall ein kleiner weiterer Rechner eingerichtet worden. Dieser soll nun die Brücke vom internen Netz, in dem der Router und die FW sind, zum vServer schlagen und alle durch sollen quasi alle Gerät darin erreichbar sein. Im Prinzip sollte es einfaches Net-to-Net sein, aber es funktioniert nicht.

Nun also schnell zu den IPs:
Die IP des tap-devices am Server ist: 10.0.0.1, die Netzmaske 255.255.255.0
IP des Routers: 192.168.1.1
AußenIP der FW: 192.168.1.9
IP des VPN-Clientrechners: 192.168.1.2
IP des tap-dev des VPN-Clientrechners: 10.0.0.4 (eig DHCP)
interne IP von Server1: 192.168.1.31

Die Verbindundung zum Server an sich funktioniert. Ich kann sogar die interne IP des Clientrechners (192.168.1.2) pingen, aber das wars dann auch. Weder den Testrechner, den ich zwischen Router und FW angebracht habe noch die FW selbst kann gepingt werden.

Die Routen dieses Testrechners sehen u.a. so aus:
Code:
test1:~ # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        *               255.255.255.0   U     0      0        0 eth1
192.168.1.0     *               255.255.0.0   U     0      0        0 eth1
link-local      *               255.255.0.0     U     0      0        0 eth1
loopback        *               255.0.0.0       U     0      0        0 lo

Die Routen des VPN-Clients:
Code:
vpnclient:~# route
Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
10.0.0.0        *               255.255.255.0   U     0      0        0 tap0
192.168.0.0     *               255.255.0.0     U     0      0        0 eth0

Die default Routen habe ich jetzt einmal weggelassen.

Die Config des Server ist:

Code:
port 443
proto tcp-server
mode server
tls-server
dev tap
ifconfig 10.0.0.1 255.255.255.0
ifconfig-pool 10.0.0.2 10.0.0.254
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/cert.crt
key /etc/openvpn/easy-rsa/keys/key.key
client-to-client
dh /etc/openvpn/easy-rsa/keys/dh.pem
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.255.255.0"
push "route 192.168.0.0. 255.255.0.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 6
route 192.168.1.0 255.255.255.0

Ich sitze schon Tage daran, und habe kein funktionierendes Ergebnis. Ich hoffe, die Beschreibung hier, war einigermaßen verständlich, und freue mich über Lösungsansätze!

Herzlichen Dank!

Edit: iptables habe ich jetzt vorübergehend mal deaktivert ...
 
Last edited by a moderator:
folgende Route erscheint mir nicht sinnvoll

Code:
192.168.1.0     *               255.255.0.0   U     0      0        0 eth1

Irgendwie sind deine Angaben etwas verwirrend - Routingtabelle zeigst vom Testrechner, IP-Adressen von allen Rechner ausser dem Testrechner. Und welcher Rechner ist nun der OpenVPN Server?

Welche Rechner sind fuer die Verbindung zum Testrechner nun wirklich relevant? Welche Netze werden wo gerouted und welche Netze werden wo gebridged?
 
Ok, tut mir leid, dass ich so verwirrend beschrieben habe...

Ich versuchs nochmal:

Also im Prinzip lässt sich alles in 3 Teilnetze aufteilen. Das erste ist das VPN-Netz mit 10.0.0.0 und 255.255.255.0. Gut, Nummer 2 ist das in dem Router und Firewall sind. Und Nummer 3 ist dann eben das interne Netz.

So, und jetzt habe ich im Teilnetz 2 zwei neue Rechner (via ESXi) aufgestellt. Einmal einen dezidierten vpnclient und einmal einen Testrechner. Auf diesem Testrechner habe ich nun nen Apache2 installiert. Der vpnclient soll sich jetzt nur zum Server einwählen und quasi das gesamte Teilnetz 2 ans VPN anschließen. So soll bespielsweise auf den Apache am Testrechner von den Roadwarriorn zugegriffen werden und auch auf diverse Portforwards von der Firewall soll zugegriffen werden können.
Ich hoffe ich habe hier noch keinen gravierenden Planungsfehler gemacht...


Und ja du hast recht, diese Route ist überflüssig keine Ahnung, was ich mir dabei gedacht habe ...
IP-Adresse vom Testrechner ist 192.168.1.10.

Der OpenVPN-Server steht in einem Rechenzentrum. Zu ihm sollen sich die Roadwarrior verbinden, gleichzeitig soll er eine Verbindung zum diesem lokalen Netzwerk hier haben und den Roadwarriorn so den Serverzugriff ermöglichen.

Gerouted und gebridged wird in dem Sinne so gut wie gar nicht. Die internen Clients haben die Firewall als Gateway eingestellt und das tuts. Gerouted werden muss halt das Teilnetz 2 ins VPN-Netz, wenn ich das richtig verstehe?


Tut mir leid, dass ich erst jetzt zurückschreibe, hatte einfach zuviel um die Ohren die letzte Woche. Ich hoffe ich habe jetzt die Situation etwas klarer dargestellt, sollte noch immer etwas unklar sein, würde ich mich freuen, wenn man mir das mitteilt, dann kann ichs ggf. nochmal von vorne beschreiben ...

Danke euch für die viele Mühe ... :)
 
Ja, die Beschreibung ist wieder zu unklar.

Ich probier mal aufzuzeichen, was Du evtl. meinen koenntest.

Code:
[Roadwarrior] ---> [vServer] <--- [vpnclient] -- [Testrechner]

OpenVPN ist als Server auf vServer installiert/konfiguriert und sowohl Roadwarrior als auch vpnclient haben einen OpenVPN Client, der sich zu vServer verbindet?

OpenVPN wir im tap-Mode betrieben und bridged somit 10.0.0.0/24 zu allen angebunden VPN-Clients (somit kann sich Roadwarrior mit vpnclient unterhalten).

Stimmen wir soweit ueberein?
 
Fast, der vServer läuft nur nicht im bridged mode sondern im routing mode, wegen Einschränkungen unseres vServer Providers. Dennoch ist die Option client-to-client aktiviert, also sollten alle Clients untereinander kommunizieren können.

Der Roadwarrior soll jetzt Zugriff auf das gesamte Netz, in dem sich vpnclient und Testrechner befinden, bekommen, und so beispielsweise auf einen Webserver auf dem Testrechner zugreifen können.
 
Gut, ich wuerde dann vorschlagen, dass du 2 OpenVPN Instanzen auf dem vServer verwendest: eine fuer die Roadwarrior und eine zweite fuer die Verbindung zwischen vpnclient und vServer.

Fuer die zweite OpenVPN Instanz solltest aber eine andere OpenVPN-Konfiguration verwenden (mit eigenem IP-Adressbereich), so dass die IP-Adressen statisch konfiguriert werden (im Prinzip einfach eine Point-to-Point Verbindung/Konfiguration).

Dann kannst vom vServer das 192.168. Netzwerk via vpnclient (mit der neuen VPN IP Adresse) routen. Testrechner (und Firewall) brauchen ebenfalls einen Routing-Eintrag zu 10.0.0.0/24 via vpnclient (mit der 192.168. IP Adresse).
 
Back
Top