[Problem] OpenVPN Netzwerke verbinden, bei mir nur "Einbahnstrasse".

camkey

Neuer User
Mitglied seit
31 Okt 2006
Beiträge
28
Punkte für Reaktionen
0
Punkte
1
Hallo IPPFler,

ich versuche seit einiger Zeit zwei Netze mit OpenVPN zu verbinden, und stehe kurz vor Nerwenzusammenbruch:

Situation:

Fritzbox 7270 als Server (192.168.178.1/255.255.255.0), Asus RT-N10 mit TomatoUSB.b52 als Client (192.168.1.1/255.255.255.0).

Openvpn.conf jeweils mit GUI erstellt.

openvpn.conf, client:

Code:
daemon
client
dev tap11
proto tcp-client
remote myserver.dyndns.biz 1194
resolv-retry 30
nobind
persist-key
persist-tun
comp-lzo adaptive
verb 3
script-security 2
up updown.sh
down updown.sh
ca ca.crt
cert client.crt
key client.key
status-version 2
status status

openvpn.conf, Server:
Code:
#  OpenVPN 2.1 Config, Sat Jan  1 01:01:48 CET 2000
proto tcp-server
dev tap0
#Helperline for rc.openvpn to add tap0 to lan bridge
ca /tmp/flash/openvpn/ca.crt
cert /tmp/flash/openvpn/box.crt
key /tmp/flash/openvpn/box.key
dh /tmp/flash/openvpn/dh.pem
tls-server
port 1194
mode server
ifconfig-pool 192.168.178.200 192.168.178.210
push "route 192.168.178.0 255.255.255.0"
route 192.168.178.0 255.255.255.0
ifconfig 192.168.178.199 255.255.255.0
push "route-gateway 192.168.178.199"
client-config-dir /clients_openvpn
topology subnet
push "topology subnet"
max-clients  5
push "route 192.168.178.0 255.255.255.0 192.168.178.199"
route 192.168.1.0 255.255.255.0 192.168.178.220
ifconfig 192.168.178.199 255.255.255.0
push "route-gateway 192.168.178.199"
push "route 192.168.178.0 255.255.255.0"
max-clients 5
client-to-client
tun-mtu 1500
mssfix
verb 3
daemon
cipher BF-CBC
comp-lzo
float
keepalive 10 120
chroot /tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key

Nach der Verbindung habe ich folgende routes:
Client:

Code:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
87.207.92.1     *               255.255.255.255 UH    0      0        0 vlan1
192.168.178.0   192.168.178.199 255.255.255.0   UG    0      0        0 tap11
192.168.178.0   *               255.255.255.0   U     0      0        0 tap11
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
87.207.92.0     *               255.255.252.0   U     0      0        0 vlan1
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         87-207-92-1.dyn 0.0.0.0         UG    0      0        0 vlan1

Server:
Code:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
77.191.183.227  *               255.255.255.255 UH    2      0        0 dsl
192.168.180.1   *               255.255.255.255 UH    2      0        0 dsl
192.168.180.2   *               255.255.255.255 UH    2      0        0 dsl
77.191.183.12   *               255.255.255.255 UH    3      0        0 dsl
192.168.178.0   *               255.255.255.0   U     0      0        0 lan
192.168.178.0   *               255.255.255.0   U     0      0        0 tap0
192.168.179.0   *               255.255.255.0   U     0      0        0 guest
192.168.1.0     192.168.178.220 255.255.255.0   UG    0      0        0 lan
169.254.0.0     *               255.255.0.0     U     0      0        0 lan
default         *               0.0.0.0         U     2      0        0 dsl
Vom client aus kann ich den Server und alle Rechner in seinem Netzerk erreichen. In die umgekehrte Richtung ist die Verbindung tot, d.h. es kommt kein ping an, weder an die OpenVPN-Netzwerkkarte, noch an die anderen Geräte aus dem 192.168.1.0 Netzwerk.
 
That could be true, because there exists only one route on your server that uses the tap0 device:

Code:
192.168.178.0   *               255.255.255.0   U     0      0        0 tap0

You probably want to route 192.168.1.0/255.255.255.0 also to tap0.

Edit: man route
 
Zuletzt bearbeitet:
Deine Server-Config ist etwas "überlastet".

Wenn der Server selbst im Netz 192.168.178.0 ist, darfs du keine Route für das gleiche Netz über das VPN eintragen ("route 192.168.178.0 255.255.255.0").

Ist diese Konfig so von der GUI erzeugt? Eigentlich sollte ein "topology subnet" nur bei "TUN" drin sein, nicht bei TAP.

Mit der "OpenVPN-Netzwerkkarte" meinst du "192.168.178.220"?
Ich vermute hier das Problem: Ist das auch sicher die IP, die der Client bekommt (du hats ja neben dem client-config-dir auch noch einen ifconfig-pool)? Falls der Client z.B. die .200 bekommen hätte, wäre die Route auf dem Server zu .220 natürlich falsch...)

Zudem ist es so natürlich wichtig, dass das Bridging auch wirklich klappt, denn sowohl "tap0" als auch "lan" haben ja das gleiche IP Netz...

Jörg
 
Deine Server-Config ist etwas "überlastet".

Hat die GUI so gemacht (vermutlich nach mehreren(hundert) von Versuchen).

Ist diese Konfig so von der GUI erzeugt?

Ja. Soll ich sie löschen (wenn ja, reicht es mit VI alles zu entfernen und dann mit der GUI neu anlegen)?

Mit der "OpenVPN-Netzwerkkarte" meinst du "192.168.178.220"?


220 auf Client (wird über GUI und Schlüsselnamen eingestellt), 199 auf Server.
du hats ja neben dem client-config-dir auch noch einen ifconfig-pool


Ja
 
Wenn die GUI das so baut, kann man es nicht ändern, die Config wird bei jedem Starten gebaut...
Die Route kommt, weil du vermutlich bei "entferntes Netz" den Eintrag "192.168.178.0 255.255.255.0" gemacht hast? Der sollte weg.

220 auf Client (wird über GUI und Schlüsselnamen eingestellt), 199 auf Server.
Bitt prüfe mal, ob der Client die IP auch wirklich bekommt ("ifconfig" oder im Log). Falls der CN ("Common Name", der "Name" des Zertifikates) nicht 100% stimmt, wird eine IP aus dem Pool genommen, und nicht die voreingestellte in den erweiterten Einstellungen.
Auf jeden Fall solltest du die VPN-IP (192.168.178.220) erreichen können, wenn der Client die hat, sonst kann er auch nix anpingen ;-)

Jörg
 
Zuletzt bearbeitet:
Wenn die GUI das so baut, kann man es nicht ändern, die Config wird bei jedem Starten gebaut...

Toll. Kann ich was anderes editieren, irgedwo muss es ja abgespeichert sein, woraus die Config gebaut wird? Bei anderen routern ist es meistens das NVRAM.

Die Route kommt, weil du vermutlich bei "entferntes Netz" den Eintrag "192.168.178.0 255.255.255.0" gemacht hast? Der sollte weg.

Entferntes Netz gibt es bei "Erweiterte Clientkonfiguration" nicht.
Netz b. Client steht auf 192.168.1.0/255.255.255.0.

Bitt prüfe mal, ob der Client die IP auch wirklich bekommt ("ifconfig" oder im Log).

Bekommt. Kann man auf dem Client mit ifconfig sehen. Von der Clientseite aus, kann ich alles anpingen, beim server endets mit 192.168.178.199.

Brauch ich eine separate IP für die VPN - "Netzwerkarte", oder kann ich sie auf die FB IP legen (192.168.178.1)?
 
Gabaut wird das über ein Skript aus den Angaben in der GUI. Du kannst die natürlich erstmal wieder auf Standards zurücksetzen, musst dann aber alles neu eingeben...

Wenn es eine Brücke sein muss, kann es auch die gleiche IP sein; eigentlich braucht das Interface garkeine keine IP, wenn es dem LAN gebrückt ist, weil ja "lan" eine IP hat.
(Ein seperates Netz (Tunnel) mit Routing ist eigentlich immer "besser" als ein gebrücktes Netz mit TAP,)

Aber nochmal: Du kannst vom Client aus ein Gerät im LAN der FB anpingen, aber nicht umgekehrt??
Mach doch bitte auf dem Gerät dann mal ein "arp -a", dann auch mal ein "ping 192.168.178.220" auf der FB und auch dann ein "arp -an".

EDIT:
Entferntes Netz gibt es bei "Erweiterte Clientkonfiguration" nicht.
Vermutlich eine Unschönheit der GUI. Schreibe mal "temporär" bei "Max. Clients" eine "1" hin, dann sollte der Eintrag "Entferntes Netz" wieder auftauchen, dann dort den Inhalt löschen und die benötigte Zahl der Maximal zu verbindenen Clients wieder setzen. Nach einem Übernehmen sollte der "beanstandete Eintrag" ;-) weg sein.

EDIT2: Noch einfacher: Einmal den Haken bei der "erweiterten Clientkonfig" wegnehmen, "Entferntes Netz" leeren, dann Haken wieder setzen.
 
Zuletzt bearbeitet:
Ein seperates Netz (Tunnel) mit Routing ist eigentlich immer "besser" als ein gebrücktes Netz mit TAP

Ich habe gelesen, dass mit Tunnel einige sachen (z.B. Windowsfreigaben) nicht vernunftig laufen.

Aber nochmal: Du kannst vom Client aus ein Gerät im LAN der FB anpingen, aber nicht umgekehrt??

Genau.

Mach doch bitte auf dem Gerät dann mal ein "arp -a", dann auch mal ein "ping 192.168.178.220" auf der FB und auch dann ein "arp -an".

Ping auf 192.168.178.220 geht nicht.

Noch mal: ifconfig auf dem client liefert:
Code:
tap11      Link encap:Ethernet  HWaddr 00:FF:8A:87:CC:D5
           inet addr:192.168.178.220  Bcast:192.168.178.255  Mask:255.255.255.0
           UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
           RX packets:17498 errors:0 dropped:0 overruns:0 frame:0
           TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:100
           RX bytes:2778168 (2.6 MiB)  TX bytes:4756 (4.6 KiB)

auf dem server (FB):
Code:
tap0      Link encap:Ethernet  HWaddr E2:AE:0D:EC:DC:EB
          inet addr:192.168.178.199  Bcast:192.168.178.255  Mask:255.255.255.0
          UP BROADCAST RUNNING ALLMULTI MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:729 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:504 (504.0 B)  TX bytes:114334 (111.6 KiB)
 
Bitte noch die Ausgabe von "arp -an" nach dem Ping anhängen.

Ist bei einem "brctl show" das Interface "tap0" in der Brücke "lan"? Was ergibt "brctl showmacs lan"

Weitere Frage: Ist auch sicher, dass der Client "antworten darf", also keine Firewall das verhindert?
Hat ein "route add 192.168.178.220 dev tap0" eine Besserung zur Folge?
 
Habe die Erweiterte Clentkonfiguration gelöscht, Client bekommt jetzt 192.168.178.200

"Neue" openvpn.config
Code:
#  OpenVPN 2.1 Config, Mon May 16 20:38:28 CEST 2011
proto tcp-server
dev tap0
#Helperline for rc.openvpn to add tap0 to lan bridge
ca /tmp/flash/openvpn/ca.crt
cert /tmp/flash/openvpn/box.crt
key /tmp/flash/openvpn/box.key
dh /tmp/flash/openvpn/dh.pem
tls-server
port 1194
mode server
ifconfig-pool 192.168.178.200 192.168.178.210
push "route 192.168.178.0 255.255.255.0"
route 192.168.178.0 255.255.255.0
ifconfig 192.168.178.199 255.255.255.0
push "route-gateway 192.168.178.199"
max-clients 5
client-to-client
tun-mtu 1500
mssfix
verb 3
daemon
cipher BF-CBC
comp-lzo
keepalive 10 120
chroot /tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key

arp -an auf server liefert
Code:
? (192.168.178.220) at <incomplete>  on lan
? (192.168.178.2) at 00:08:9B:C7:4E:D3 [ether]  on lan
? (192.168.178.200) at 00:FF:8A:87:CC:D5 [ether]  on lan
? (192.168.178.100) at 00:04:20:26:3E:08 [ether]  on lan
? (192.168.178.106) at 58:1F:AA:B1:7C:A8 [ether]  on lan
? (192.168.178.111) at C0:CB:38:47:EA:F0 [ether]  on lan
? (192.168.178.4) at 00:01:E3:BE:70:8B [ether]  on lan
auf client:
arp -an
Code:
? (87.x.x.x) at 00:17:10:01:D8:0F [ether]  on vlan1
? (192.168.178.1) at 00:24:FE:78:13:8B [ether]  on tap11
? (192.168.178.2) at 00:08:9B:C7:4E:D3 [ether]  on tap11
? (192.168.178.199) at 00:24:FE:78:13:8B [ether]  on tap11
brctl show
Code:
bridge name     bridge id               STP enabled     interfaces
lan             8000.0024fe78138b       no              ath0
                                                        eth0
                                                        tap0
guest           8000.0024fe78138b       no

brctl showmacs lan
Code:
port no mac addr                is local?       ageing timer
  1     00:01:e3:be:70:8b       no                14.73
  2     00:04:20:26:3e:08       no                 6.69
  1     00:08:9b:c7:4e:d3       no                 6.02
  1     00:09:34:1c:aa:ae       no                 3.05
  1     00:18:39:d3:c0:2e       no                 6.10
  2     00:24:fe:4a:25:9c       yes                0.00
  1     58:1f:aa:b1:7c:a8       no                 2.89
  1     c0:cb:38:47:ea:f0       no                 0.01
  3     e2:74:93:94:44:be       yes                0.00

Firewall auf Client ist aus (dürfte IIRC aber keine Rolle spielen, da ich mit der Netzwerkkarte in "richtigem" Netz bin.
 
Zuletzt bearbeitet:
Also der ARP wird beim Client richtig aufgelöst ([noparse](192.168.178.200) at 00:FF:8A:87:CC:D5 [ether] on lan[/noparse]), findet sich aber nicht in der MAC-Tabelle der Bridge?!?
Eigentlich sollte da noch ein Eintrag der Art sein, dass der Client am "tap0" hängt, also sowas ("3 00:ff:8a:87:cc:d5 no x.yz")

Ich frage mich, wie der Server dann dem Client antworten kann, wenn der Ping von da kommt?
Ist der Eintrag da, direkt nachdem du vom Client aus den Server "angepingt" hast??
 
Ich verstehe es auch nicht.

arp -an auf der FB
? (192.168.178.109) at 00:18:DE:93:AE:72 [ether] on lan
? (192.168.178.100) at 00:04:20:26:3E:08 [ether] on lan
? (192.168.178.111) at C0:CB:38:47:EA:F0 [ether] on lan
? (192.168.178.4) at 00:01:E3:BE:70:8B [ether] on lan

das gleiche direkt nach dem ping vom client auf FB
arp -an
? (192.168.178.109) at 00:18:DE:93:AE:72 [ether] on lan
? (192.168.178.200) at 00:FF:8A:87:CC:D5 [ether] on lan
? (192.168.178.100) at 00:04:20:26:3E:08 [ether] on lan
? (192.168.178.111) at C0:CB:38:47:EA:F0 [ether] on lan
? (192.168.178.4) at 00:01:E3:BE:70:8B [ether] on lan

Kommischer Weise funktioniert der ping von FB auf .200 danach.

Heisst es, ich muß weiter auf der Clientseite suchen?
 
Irgendwie scheint es, dass die Suche der MAC nicht klappt. Offentsichtlich kennt die Box zwar die Zuordnung IP zur MAC, aber findet die MAC nicht.

Müsste man sich jetzt weiter heranarbeiten:
- Ist, wenn es klappt, der Eintrag beim "brctl showmacs" vorhanden (siehe oben)?
- Wenn es nicht geht: Ist dann der "arp" Eintrag da, aber nicht der "brctl showmacs"?

Wenn das VPN "frisch gestartet" ist, sollte erstmal kein "arp" Eintrag dazu sein.
Wenn du dann vom Server den Client anpingen willst, findet er die richtige MAC dazu
(also, auch wenn ein Ping nicht geht, ist bei "arp -an" der Eintrag zu sehen?)

Wie ist es "andersrum", wenn du nur vom Server versucht hast, den Client zu erreichen,
ist dann auf dem Client ein arp-Eintrag des Servers zu sehen, nur von dem Server-Versuch,
ohne, dass der Client selbst aktiv gepingt hat??

Jörg
 
Irgendwie bin ich jetzt komplett drausen.

MACS sind auf beiden Seiten in brctl showmac (entsprechende bridge) vorhanden.

Macht es Sinn mit Tunnel zu versuchen?

Stelle ich mir das richtig vor, dass ich dann drei Netzwerke brauche:

Client mit 192.168.1.0, server mit 192.168.178.0 und etwas wo die beiden "Netzwerkkarte" sind (z.b. 192.168.100.0, .1 für Server und .2 für Client)?
Brauche ich da "nur" die Routes eintragen? Was sind die gateways?

Edit:
Ich vermute, dass der client probleme macht, d.h. nicht antworten will.TUN macht's auf jeden Fall auch nicht. Ich werde die FB noch mal gegen eine andere tauschen und Freetz neu kompilieren.

und noch eine komische geschichte, traceroute 192.168.1.1 ausgeführt auf FB ergibt:

traceroute to 192.168.1.1 (192.168.1.1), 30 hops max, 38 byte packets
1 fritz.box (192.168.178.1) 3009.000 ms !H 3010.019 ms !H 3009.140 ms !H
 
Zuletzt bearbeitet:
Ich hänge hier an dem gleichen Problem. Konntest du es letztendlich mit tap lösen?
 
Es war ein problem mit dem Client. Nach dem wechseln auf eine andere Tomato-Version hat's dann sofort geklappt.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.