openvpn Routing ins Clientnetz...

vernichter

Neuer User
Mitglied seit
28 Feb 2008
Beiträge
59
Punkte für Reaktionen
0
Punkte
0
hallo forum
ich habe ein "kleines" Problem mit openvpn auf der Fritzbox.
Ich möchte zwei Standorte mittel Tunnel und Routing durch den Tunnel verbinden.
Der Tunnel selber läuft inzwischen.
Das Routing bereitet mir Probleme...

Mein aktueller stand:
Serverbox 192.168.178.0
Clientbox 192.168.1.0

Ich kann den Server starten und den Client verbinden.
Dabei pusht die Serverbox die Route in ihr Netz auf den Client.
Soweit OK.
Um die Netze in beide Richtungen zu routen muss jedoch auch ins Clientnetz geroutet werden.
Auf der Serverbox geht das bei stehenden Tunnel mit manuell mit
"route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.2 dev tap0"

Da aber die 10.0.0.2 Adresse der Clients nicht statisch ist (wenn später mal mehrere Clients dranhängen) würde ich die Clientbox
die Route in ihr Netz auf den Server "pushen"lassen.
Dort kommt der Push aber nicht an. Da ich "pull" nicht verwenden kann. (geht nicht im Servermodus sagt openvpn)
Wie bekomme ich die Route ins Clientnetz automatisch bei Clientverbindung gesetzt?!


Falls das garnicht geht, könnte ich damit leben dem Client immer dieselbe IP im "Tunnelnetz" zuzuordnen, aber auch dazu finde ich nix in den Anleitungen und Manuals (die ich _wahrscheinlich alle_ gelesen habe...)

Danke für eure Tipps...

mfg
Martin


Hier meine .ovpn´s

SERVER.OVPN
Code:
port 443                                                                                                  
proto tcp                                                                                                 
dev tap0                                                                                                  
dev-node /var/tmp/tun                                                                                     
local 192.168.178.253                                                                                     
mode server                                                                                               
tls-server                                                                                                
keepalive 10 120                                                                                          
tun-mtu 1500                                                                                              
mssfix                                                                                                    
#Zertifikate                                                                                   
ca /var/tmp/ca.crt                                                                                        
cert /var/tmp/fritzboxserver.crt                                                                          
key /var/tmp/fritzboxserver.key                                                                           
dh /var/tmp/dh1024.pem                                                                                    
auth SHA1                                                                                                 
cipher AES-256-CBC
server 10.0.0.0 255.255.255.0                                                                             
route 10.0.0.0 255.255.255.0                                                                              
route-gateway 10.0.0.1
#auf dem client ausfuehren                                                                                
push "route 192.168.178.0 255.255.255.0"

CLIENT.OVPN
Code:
client
port 443
proto tcp-client
dev tap0
dev-node /var/tmp/tun
tun-mtu 1500
mssfix
remote xxxx.xxxxx.xxx 443 
ca /var/tmp/ca.crt
cert /var/tmp/client1.crt
key /var/tmp/client1.key
auth SHA1
cipher AES-256-CBC
pull
verb 4^M
push "route 192.168.1.0 255.255.255.0"
 
Dein Problem kannst du mit dem "client-config-dir" lösen:

Pro Client gibt es darin eine Textdatei, die z.B. IP für den Client, aber auch ein Netz beim Client enthalten kann (denke dran: bei mehrern Clients wird nicht nur route sondern auch iroute benötigt.

Wirf doch mal einen Blick auf openvpn im ds-mod / freetz, da kannst du das sogar über eine GUI einstellen (siehe Screenshot).

Jörg
 

Anhänge

  • ovpn_multiclient.png
    ovpn_multiclient.png
    12.8 KB · Aufrufe: 147
@MaxMuster: wo findet man iroute? Falls es ein Binary ist und von OpenVPN benötigt wird, sollten wir es in Freetz hinzufügen.
 
@Whopie
"iroute" ist der interne Routingbefehl vom OpenVPN, den man z.B. im Client-Config-Dir nutzt. Er sorgt dafür, dass das openvpn intern unterscheiden und routen kann, welches Netz bei welchem Client ist.

Falls es von Interesse ist, zum Thema iroute aus der man-Page:
Code:
This directive can be used to route a fixed subnet from the server 
to a particular client, regardless of where the client is connecting from. 
Remember that you must also add the route to the system routing table as well 
(such as by using the --route directive). 
The reason why two routes are needed is that the --route directive routes the 
packet from the kernel to OpenVPN. 
Once in OpenVPN, the --iroute directive routes to the specific client.

Jörg
 
läuft jetzt, aber noch ein verständnissproblem

Danke für den Tipp!

Mittels client-config-dir und umstellen auf tun statt tap läuft es jetzt.
Allerdings ist mir unklar warum ;-)

In der Client-Config habe ich dem Client1 mittels:
ifconfig-push 10.0.0.55 10.0.0.1
iroute 192.168.1.0 255.255.255.0
eine feste IP zugewiesen und dem Server die Route in das Clientnetz bekanntgegeben.

Ausserdem musste ich in der server.ovpn die route dem Server global bekanntgeben.

route -n auf dem Server bring mir jetzt:

Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 10.0.0.1 255.255.255.0 UG 0 0 0 tun0

Damit läuft es zwar - aber logischer wäre es mir, wenn dort als Gateway die festzugewiesene IP des Clients aus der Clientconfig (10.0.0.55) erschiene.

Hab ich einen Denkfehler?

Auf dem Server erscheinen ausserdem seltsame Meldungen über eine 10.0.0.2 IP vom Point-to-Point Interface. Die 10.0.0.2 scheint aber nicht zu existieren?! Was hat es damit auf sich?


Danke für weitere Hilfe...
Martin
@ Whoopie:
iroute ist afaik "nur" ein Parameter für openvpn. Kein eigenständiges Binary.


Hier meine Konfiguration:
Server.ovpn
Code:
port 443
proto tcp
dev tun0
dev-node /var/tmp/tun
local 192.168.178.253 
mode server
tls-server
keepalive 10 120 
tun-mtu 1500
mssfix 
server 10.0.0.0 255.255.255.0

ca /var/tmp/ca.crt
cert /var/tmp/fritzboxserver.crt
key /var/tmp/fritzboxserver.key
dh /var/tmp/dh1024.pem
auth SHA1
cipher AES-256-CBC

route 192.168.1.0 255.255.255.0
route-gateway 10.0.0.1
 
push "route 192.168.178.0 255.255.255.0" 

client-config-dir /var/tmp/


Client.ovpn (für client1)
Code:
client
port 443
proto tcp-client
dev tun0	
dev-node /var/tmp/tun 

tun-mtu 1500
mssfix

remote xxxxx.xxxxx.xxxx 443
ca /var/tmp/ca.crt 
cert /var/tmp/client1.crt 
key /var/tmp/client1.key 
auth SHA1
cipher AES-256-CBC 

pull

push "route 192.168.1.0 255.255.255.0"

Code:
iroute 192.168.1.0 255.255.255.0
ifconfig-push 10.0.0.55 10.0.0.1
 
Damit läuft es zwar - aber logischer wäre es mir, wenn dort als Gateway die festzugewiesene IP des Clients aus der Clientconfig (10.0.0.55) erschiene.
... Das hast du dir selbst so gewählt ;-) mit:
Code:
route 192.168.1.0 255.255.255.0
route-gateway 10.0.0.1
(die Route bekommt als "next-hop" immer das "route-gateway"). Änder das doch mal in ein
Code:
route 192.168.1.0 255.255.255.0 10.0.0.55
push "route-gateway 10.0.0.1"
denn die Clients sollen die .1 als Gateway nehmen. Das war es dann wohl, was du wolltest?!?

Du könntest dir, wenn du mit der Version 2.1 arbeitest, auch nochmal den "topology" Befehl ansehen, mit "topology subnet" kannst du z.B. ähnlich wie bei "tap" alle Interfaces in ein Netz legen. Ich halte dabei die Openvpn-Webseite insgesamt für eine ganz gute Anlaufstelle für die Erklärung der Befehle...

Die 10.0.0.2 scheint aber nicht zu existieren?! Was hat es damit auf sich?
Auch das ist tatsächlich von dir so konfiguriert worden mit:

Code:
server 10.0.0.0 255.255.255.0
das wird (u.a.) expandiert zu:
Code:
ifconfig 10.0.0.1 10.0.0.2

Jörg
 
Zuletzt bearbeitet:
aha....

Leider ist mein Testclient nach einem remote-reboot nicht mehr zu erreichen.
Ich werde Montag weiter testen (und lernen) und mein Ergebnis posten....

Vielen Dank soweit.

MfG
Martin
 
Kostenlos!

Statistik des Forums

Themen
248,923
Beiträge
2,305,222
Mitglieder
378,647
Neuestes Mitglied
nightdeck