wusa88
Goto Top

Feste-IP mit Raspberry Pi und OpenVPN. Keine Telefonie durch den Tunnel. Fritzbox

Hallo Zusammen,

ich stehe leider vor dem Problem, dass meine Telefonie von der Fritzbox nicht durch den Tunnel geht.

Ich habe über meinen Provider Zuhause eine IPv6 Adresse.
Per "Feste-IP.net" habe ich einen Zugang von IPv4 auf IPv6 bei mir Zuhause. Das ganze läuft über OpenVPN.
Ich komme vom Mobilfunknetz oder von beliebigen andern IPv4 Adressen auf mein IPv6 OpenVPN Netz.

Ich habe bisher keine Problem beim Verbinden.
Ich bin im Mobilfunknetz, logge mich per OpenVPN ein und bin komplett im Netzwerk.
Rufe ich die Fritz!App Fon auf, leuchten auch beide Anzeigen grün.

Allerdings, wenn ich versuche zu Telefoniere, klingelt es zwar bei dem angerufenem, aber ich bekomme kein Klingeln und auch wenn der andere den Ruf annimmt, ist kein Gespräch zu hören.

Ich habe natürlich auch schon im Internet recherchiert und bin auf diesen Beitrag gestoßen:
Externer Zugriff über VPN - Telefonie mit Fritzbox funktionert nicht - kein Ton (Synology, OpenVPN)

Habe natürlich gleich das Routing versucht, was leider zur folge hatte, dass mein OpenVPN Client keine Verbindung mehr aufbauen konnte.

Folgendes Equipment ist vorhanden:

- IPv6 Zugang über den Provider
- Raspberry Pi mit OpenVPN (IP 192.168.77.50, Standardport von OpenVPN geändert)
- "Übersetzer" von Feste-IP.net. Auch mit dem geändertem Port für OpenVPN. (Verbindung funktioniert!)
- Fritz!Box mit MyFritz!Freigabe und mit IPv6 Freigabe zum Raspberry Pi (ist nötig wegen IPv6 und IPv4)


Ich weiß nun nicht, ob es Probleme bezüglich des Routing gibt, da mein Raspberry mit der ganzen Sache zu tun hat, oder ob es an eimen komplett andern Problem liegt.

Vielleicht hatte schon mal jemand so einen Fall und kann mir hier weiterhelfen.

Vielen Dank

Content-Key: 302561

Url: https://administrator.de/contentid/302561

Printed on: April 18, 2024 at 00:04 o'clock

Member: aqui
aqui Apr 22, 2016 updated at 07:22:26 (UTC)
Goto Top
aber ich bekomme kein Klingeln und auch wenn der andere den Ruf annimmt, ist kein Gespräch zu hören.
Das deutet immer darauf hin das SIP oder RTP (SIP=Verbindungsaufbau, RTP=Voice Daten) irgendwo in einer Firewall hängen bleiben.
SIP nutzt dynamische Ports und das muss die Firewall berücksichtigen.
Hier findest du Hinweise wie das SIP Port Forwarding richtig zu customizen ist:
Preiswerte, VPN fähige Firewall im Eigenbau oder als Fertiggerät
(Kapitel: VoIP bzw. Telefonie mit FritzBox oder Anlage hinter Firewall )
Nimm im Zweifel einen Wireshark Sniffer und sieh dir den VoIP Flow an !

Wie ist dein OVPN Server konfiguriert ?? Machst du Split Tunneling also das du nur einzig dein remotes Netzwerk über den Tunnel routetst oder redirectes du allen Traffic dann in den Tunnel ?
Das wäre noch wichtig zu wissen.
Das VPN selber wird es sicher nicht sein, denn sonst würdest du im remoten LAN nichts erreichen können.
Zu 98% lokale Firewall am Client, die SIP oder RTP Traffic vom Fremdnetz (VPN) blockt.
Habe natürlich gleich das Routing versucht,
Bahnhof ??? OpenVPN ist immer Routing !! Guckst du hier:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Ich weiß nun nicht, ob es Probleme bezüglich des Routing gibt, da mein Raspberry mit der ganzen Sache zu tun hat,
Nein, natürlich nicht wenn man es richtig konfiguriert:
Siehe Tutorial oben oder auch hier:
http://jankarres.de/2013/05/raspberry-pi-openvpn-vpn-server-installiere ... usw.
Mitglied: 114757
114757 Apr 22, 2016 updated at 07:41:35 (UTC)
Goto Top
Ich schätze mal das er den Traffic der OpenVPN-Clients am Raspberry NATet, das wäre für mich jetzt auf den ersten Blick ohne Schaubild des Netzes der Grund das die Pakete dort hängen bleiben, wenn dem so ist, würde ich statt NAT stattdessen eine statische Route in der Fritte auf den Raspberry zeigen lassen.

Also mehr detaillierte Infos zur Config auf den Geräten und man kann dir auch zielgerichtet helfen.

Gruß jodel32
Member: aqui
aqui Apr 22, 2016 updated at 18:18:41 (UTC)
Goto Top
Ich schätze mal das er den Traffic der OpenVPN-Clients am Raspberry NATet
Das wäre ein Grund und natürlich tödlich. Zudem ist es unsinnig den Tunnel internen Traffic zu NATen.
Aber was Kollege jodel32 sagt ist richtig, ohne weitere Details dazu (z.B. OVPN Server config File) kommen wir nicht weiter...
Member: wusa88
wusa88 Apr 22, 2016 at 19:12:15 (UTC)
Goto Top
Hi,

vielen Dank für die Antworten.
Anbei meine Config´s

server.conf:
dev tun
proto tcp6-server
port 63XXX #geänderter VPN Port
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push "redirect-gateway def1 bypass-dhcp"  
#set the dns servers
push "dhcp-option DNS 8.8.8.8"  
push "dhcp-option DNS 8.8.4.4"  
log-append /var/log/openvpn
comp-lzo
duplicate-cn
keepalive 10 120
dh /etc/openvpn/easy-rsa/keys/dh2048.pem

OVPN:
dev tun
client
proto tcp
# Tragen Sie hier bitte die Portmapperadresse OHNE DOPPELPUNKT ein !
remote xxxxxxxx.net 63XXX # geänderter VPN Port
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

Bezüglich des Routing.
Ich habe versucht, die 10.8.0.0 bzw. die 10.8.0.6 die am Client ankommt auf die interne IP/Gateway von dem Raspberry zu Routen.
Was leider zur folge hatte, dass ich mich nicht mehr mit dem VPN Netz verbinden konnte.

Ich werde mich die nächste Zeit durch die Links von aqui lesen.

Wenn ich noch ein Config posten muss, bitte bescheid geben!

Danke
Member: aqui
aqui Apr 23, 2016 updated at 06:19:13 (UTC)
Goto Top
Macht es einen Sinn das du dich freiwillig ausschnüffeln lässt von Google weil du deren DNS verwendest ? Für intelligente Netzwerker ein NoGo.
Das ist kontraproduktiv sowohl aus persönlicher Sicherheit als auch Performance. Sinnvoller ist es den lokalen DNS zu pushen.
Das hat aber ursächlich mit dem Voice Problem nichts zu tun sondern ist nur ein guter Rat.
Ich habe versucht, die 10.8.0.0 bzw. die 10.8.0.6 die am Client ankommt auf die interne IP/Gateway von dem Raspberry zu Routen.
Sory aber das ist routingtechnischer Quatsch !
Das interne 10.8.0.0er Netz ist doch direkt dran am RasPi als virtuelles Interface. Somit "kennt" der RasPi also dieses Netz und auch alle Interfaces und damit auch IP Netze die direkt an ihm angeschlossen sind !
Es ist also völlig unsinnig bzw. überflüssig ihm das nochmals mit einer Route bekannt zu machen. Was soll das bringen...?
Ein netstat -r am RasPi zeigt dir das auch sofort. Identisch das Kommando beim aktiven Client (unixoides OS), da kannst du dann alle Routen sehen die durch den Tunnel gehen (route print bei Winblows)

Allerdings ist das bei dir mit deiner Server Konfig auf deinen Clients überflüssig, denn mit push "redirect-gateway def1 bypass-dhcp" biegst du ja eh das Default Gateway bei den Clients zwangsweise komplett auf den Tunnel, so das sämtlicher Client Traffic über den Tunnel geroutet wird.
In sofern spielen dann einzelne Routen eh keinerlei Rolle mehr.
Voice Traffic (SIP und RTP) müsste also vom Client immer und unter jeden Umständen in den Tunnel geroutet werden.
ACHTUNG:
Essentiell wichtig ist das du natürlich eine statische Route auf deiner FritzBox in das 10er Netz via RasPi LAN IP eingetragen hast !!
Die muss das 10er Netz natürlich kennen.
Dort muss im Setup unter Routing stehen: Zielnetz: 10.8.0.0, Maske: 255.255.255.0, Gateway: 192.168.77.50
(Wobei wir hier jetzt annehmen das die 192.168.77.0 /24 dein lokales Netz ist in dem sich FB .1 und RasPi .50 befinden ?!)

Es wäre mal wichtig zu wissen ob der Voice Traffic wenigstens im lokalen Netzwerk ankommt.
Installiere dir mal tcpdump auf dem RasPi mit apt-get install tcpdump und sniffer mal ob du SIP Traffic dort sehen kannst: tcpdump port 5060
Das zeigt dir SIP Traffic beim Voice Verbindungsaufbau an. Ggf. kannst du mit dem -i Parameter noch den Port mitgeben.
Sprache wird mit RTP übertragen. Ggf. solltest du also mal allen Voice Traffic der zur FritzBox geht mitsniffern um zu sehen was da passiert intern.
tcpdump src 2.3.4.5
oder tcpdump dst 2.3.4.5 Wobei 2.3.4.5 die lokale LAN IP deiner FB hier ist.
Member: wusa88
wusa88 Apr 24, 2016 at 20:09:08 (UTC)
Goto Top
ACHTUNG:
Essentiell wichtig ist das du natürlich eine statische Route auf deiner FritzBox in das 10er Netz via RasPi LAN IP eingetragen hast !!
Die muss das 10er Netz natürlich kennen.
Dort muss im Setup unter Routing stehen: Zielnetz: 10.8.0.0, Maske: 255.255.255.0, Gateway: 192.168.77.50
(Wobei wir hier jetzt annehmen das die 192.168.77.0 /24 dein lokales Netz ist in dem sich FB .1 und RasPi .50 befinden ?!)

Genau das meinte ich mit dem Routing.

Meine Fritzbox hat die .1
Der Raspi die .50
Subnetz ist 255.255.255.0

Ich habe eine statische Route in der Fritzbox eingetragen, genauso wie du es beschrieben hast.
Sobald ich das eintrage und versuche die Verbindung neu aufzubauen, scheitert die Verbindung bzw. der Verbindungsaufbau.
Sobald ich die statische Route wieder entferne, läuft wieder alles wie gewohnt.

Hier auch mal die Ausgabe von "netstat -r"
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         fritz.box       0.0.0.0         UG        0 0          0 eth0
10.8.0.0        10.8.0.2        255.255.255.0   UG        0 0          0 tun0
10.8.0.2        *               255.255.255.255 UH        0 0          0 tun0
172.16.254.0    *               255.255.255.252 U         0 0          0 eth0
192.168.77.0     *               255.255.255.0   U         0 0          0 eth0


Folgende Ausgabe bringt "tcpdump"
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:07:30.217335 IP 192.168.77.50.58352 > fritz.box.sip: SIP, length: 343
22:07:30.220489 IP fritz.box.sip > 192.168.77.50.58352: SIP, length: 373
22:07:30.995535 IP 192.168.77.50.58352 > fritz.box.sip: SIP, length: 494
22:07:30.999184 IP fritz.box.sip > 192.168.77.50.58352: SIP, length: 622

Danke
Member: aqui
aqui Apr 25, 2016 at 08:28:55 (UTC)
Goto Top
Sobald ich das eintrage und versuche die Verbindung neu aufzubauen, scheitert die Verbindung bzw. der Verbindungsaufbau.
Technisch kann das niemals sein !
Wie soll die FB denn sonst wissen wie sie die 10er IP Adressen routen soll ??
Ohne diese statische Route hat die FB einzig nur ihre Default Route die zum Provider zeigt. Ohne diese statische Route ins 10er OVPN Netz muss die FB somit dann die 10er IPs zum ISP senden wo sie auf Nimmerwiedersehen im Nirwana veschwinden, denn das 10er Netz ist ein privates RFC 1918 IP Netz was im Internet nicht geroutet wird. ISP filtern das gnadenlos in den Datenmülleimer.
Es hört sich an als ob generell bei dir was faul ist im Netz...?!
Logisch und technisch ist es nicht zu erklären warum es ohne Route klappt mit syntaktisch richtiger Route aber nicht ? Es sollte genau andersrum sein !!
Was bei dir falsch ist ist die Tatsache das du 2 IP netzwerke am RasPi auf dem eth0 Interface hast !!! 172.16.254.0 und 192.168.77.0
Das darf so niemals sein !
Ferner sieht es so aus als ob der RasPi seine Hostadresse per DHCP bezieht. Bei einem Server ist das ein NoGo !
Einzige Ausnahme du konfigurierst die IP Adresse im DHCP Server der FB fest bezogen auf die Mac Adresse des RasPi so das der immer auf Basis seiner Mac Adresse eine feste IP bekommt.
Die 2 IP Netze sind aber definitiv fehlerhaft dort !
Member: wusa88
wusa88 Apr 25, 2016 updated at 14:14:22 (UTC)
Goto Top
Zitat von @aqui:

Sobald ich das eintrage und versuche die Verbindung neu aufzubauen, scheitert die Verbindung bzw. der Verbindungsaufbau.
Technisch kann das niemals sein !
Wie soll die FB denn sonst wissen wie sie die 10er IP Adressen routen soll ??
Das ganze verstehe ich eben auch nicht.
Ich könnte mir aber vorstellen, dass das ganze vielleicht mit der "Übersetzung" von IPv6 auf IPv4 zusammenhängt?
Das ganze läuft erstmal über den Server von "Feste-IP.net". Von dort aus komme ich dann direkt auf den RasPi wo der OVPN Server läuft. Bzw. die OVPN Verbindung wird direkt über Feste-IP.net aufgebaut und direkt zum RasPi geschickt.
In der Fritzbox ist per IPv6 Freigabe alles zum RasPi freigegeben.

Ohne diese statische Route hat die FB einzig nur ihre Default Route die zum Provider zeigt. Ohne diese statische Route ins 10er OVPN Netz muss die FB somit dann die 10er IPs zum ISP senden wo sie auf Nimmerwiedersehen im Nirwana veschwinden, denn das 10er Netz ist ein privates RFC 1918 IP Netz was im Internet nicht geroutet wird. ISP filtern das gnadenlos in den Datenmülleimer.
Hier kann ich es mir nur vorstellen, dass der RasPi in diesem Fall alles regelt und die FB bisher nichts mit dem 10er Netz zu tun hatte.
Der RasPi hat bisher das 10er Netz zur Verfügung gestellt.
Ich versuche es mal simpel zu erklären, wie ich mir das ganze denke....

Client (in meinem Fall Android) baut eine Verbindung über den vergebenen Namen von Feste-IP.net eine Verbindung zu meinem OVPN Server auf.
Die Verbindung kommt an der Fritzbox an und wird durch die IPv6 Portfreigabe direkt an den RasPi geschickt.
Der RasPi bzw. der OVPN Server vergibt für den Android Client dann das 10er Netz.
Somit ist die Verbindung (vermutlich ohne eingreifen der FB) hergestellt.

Es hört sich an als ob generell bei dir was faul ist im Netz...?!
Logisch und technisch ist es nicht zu erklären warum es ohne Route klappt mit syntaktisch richtiger Route aber nicht ? Es sollte genau andersrum sein !!
Was bei dir falsch ist ist die Tatsache das du 2 IP netzwerke am RasPi auf dem eth0 Interface hast !!! 172.16.254.0 und 192.168.77.0
Das darf so niemals sein !
Warum das so ist, lässt sich mir nicht erklären. Ich habe weder im Router noch irgendwo anders, die 172.16.X.X hinterlegt. Mit Class B hatte ich in meinem Netzwerk noch nichts zu tun. Ich werde das aber prüfen und auch versuchen, heraus zu finden, woher der RasPi die Adresse hat.
Ferner sieht es so aus als ob der RasPi seine Hostadresse per DHCP bezieht. Bei einem Server ist das ein NoGo !
Das ganze werde ich nochmal testen. Normalerweise ist DHCP beim RasPi absichtlich deaktiviert.

Einzige Ausnahme du konfigurierst die IP Adresse im DHCP Server der FB fest bezogen auf die Mac Adresse des RasPi so das der immer auf Basis seiner Mac Adresse eine feste IP bekommt.
Die 2 IP Netze sind aber definitiv fehlerhaft dort !
Member: aqui
aqui Apr 25, 2016 at 16:10:54 (UTC)
Goto Top
Hier kann ich es mir nur vorstellen, dass der RasPi in diesem Fall alles regelt
Nein, das ist Blödsinn. Du musst ihm schon sagen WAS er regeln soll. Von allein macht er das nicht !
Warum das so ist, lässt sich mir nicht erklären.
Das solltest du aber ganz schnell klären !!
Der rasPi bläst ja ein DHCP Broadcast ins Netz und irgendwas antwortet mit dem 172er Netz. Das 192er Netz ist vermutlich die FB, richtig ??
Nimm dir einen Wireshark Sniffer (oder tcpdump) und trace den DHCP Traffic des RasPi mit, dann weisst du woher das kommt.
Zeigt aber das etwas grundsätzlich oberfaul ist in deinem Netz und besonders im IP Adressing und das solltest du de facto erstmal fixen bevor wir hier weitermachen.
Der RasPi darf niemals 2 IPs haben am eth0 Port.
Um ganz sicher zu gehen das der Network Manager da keinen Mist macht editiere die /etc/dhcpcd.conf Datei mit dem nano Editor und füge am Ende das Kommando denyinterfaces eth0
dort ein.
Dann rebootest du den RasPi mit reboot oder sudo shutdown -r now und machst nach dem Reboot dann mal ein ifconfig
Dann dürfte dort nur noch eine einzige IP Adresse auftauchen, nämlich die die er von der FB bekommt !!
Member: wusa88
wusa88 May 01, 2016 updated at 11:17:30 (UTC)
Goto Top
Hallo,

ich habe die 2. IP Adresse von eth0 realisiert und bereinigt.
Danke für den Hinweis!

Ich habe nun nochmal die Route in der FB eingetragen und kann jetzt eine Verbindung mit der eingetragenen Route aufbauen.
Auch die Fritz!App Fon verbindet sich und es fängt an zu klingeln.
Hier mal die Ausgabe von

tcpdump dst [IP von FB]
12:58:44.763560 IP fipbox.fritz.box.42540 > fritz.box.49443: Flags [.], ack 2668301372, win 75, options [nop,nop,TS val 370657 ecr 229985134], length 0
12:58:44.787493 IP fipbox.fritz.box.47963 > fritz.box.49443: Flags [R], seq 1333397960, win 0, length 0
12:58:44.823635 IP fipbox.fritz.box.42540 > fritz.box.49443: Flags [P.], seq 0:166, ack 1, win 75, options [nop,nop,TS val 370658 ecr 229985134], length 166
12:58:45.259586 IP fipbox.fritz.box.42540 > fritz.box.49443: Flags [.], ack 146, win 75, options [nop,nop,TS val 370830 ecr 229985219], length 0
12:58:45.302104 IP fipbox.fritz.box.42540 > fritz.box.49443: Flags [P.], seq 166:217, ack 146, win 75, options [nop,nop,TS val 370830 ecr 229985219], length 51
12:58:45.448583 IP fipbox.fritz.box.42540 > fritz.box.49443: Flags [P.], seq 217:1032, ack 146, win 75, options [nop,nop,TS val 370831 ecr 229985219], length 815
12:58:46.023271 IP fipbox.fritz.box.42540 > fritz.box.49443: Flags [.], ack 799, win 75, options [nop,nop,TS val 371058 ecr 229985283], length 0
12:59:09.648126 ARP, Request who-has fritz.box tell fipbox.fritz.box, length 28
12:59:26.965200 IP fipbox.fritz.box.40206 > fritz.box.sip: SIP, length: 633
12:59:27.777247 IP fipbox.fritz.box.40206 > fritz.box.sip: SIP, length: 326
12:59:27.777835 IP fipbox.fritz.box.40206 > fritz.box.sip: SIP, length: 797
12:59:28.200685 IP fipbox.fritz.box.40206 > fritz.box.sip: SIP, length: 326
12:59:28.660778 IP 10.8.0.6 > fritz.box: ICMP 10.8.0.6 udp port 21000 unreachable, length 128
12:59:29.664347 IP 10.8.0.6.21000 > fritz.box.7078: UDP, length 172
12:59:30.765265 IP 10.8.0.6.21000 > fritz.box.7078: UDP, length 172
12:59:30.765754 IP 10.8.0.6.21000 > fritz.box.7078: UDP, length 172
12:59:30.766215 IP 10.8.0.6.21000 > fritz.box.7078: UDP, length 172
12:59:30.766672 IP 10.8.0.6.21000 > fritz.box.7078: UDP, length 172
12:59:30.767129 IP 10.8.0.6.21000 > fritz.box.7078: UDP, length 172
12:59:30.767582 IP 10.8.0.6.21000 > fritz.box.7078: UDP, length 172
12:59:31.077480 IP 10.8.0.6.21000 > fritz.box.7078: UDP, length 172

Ich kann leider kein Telefonat testen, da bei mir das Mobilfunknetzt sehr bescheiden ist.
Ich werde das ganze aber morgen von einem fremden WLAN testen und sehen was dabei raus kommt.