Ich habe bei mir zu Hause die AVM FRITZ!Box als alleinigen Router abgelöst und durch eine Juniper SSG 5 Firewall ersetzt. Die FRITZ!Box ist trotzdem noch vorhanden und steht als IP-Client hinter der Firewall, primär um die Internettelefonie zu 1&1 bereitzustellen. Leider hat es etwas gedauert, bis ich die richtigen Einstellungen herausgefunden hatte, damit die Telefonie auch wirklich in beide Richtungen funktionierte.
Von “es geht gar nichts” über “es kann nur einer reden” bis hin zu “meine Frau kann endlich wieder telefonieren” gab es mehrere Stufen. Und um es gleich vorweg zunehmen: Ich bin mir nicht überall zu 100 % sicher, ob ich die Probleme richtig erkannt und gelöst habt. Fakt ist aber, dass es jetzt funktioniert. ;) Ich habe aber nicht noch mehr recherchiert. Hier folgt mein Endstand. Die Software Version der SSG ist 6.3.0r17.0.
Problem
Das Problem schien wohl zu sein, dass
- die SSG keinen ALG für RTP (sondern nur für SIP und RTSP) hat, bzw. dass
- die FRITZ!Box nicht korrekt die nötigen Verbindungen für SIP und RTP offen halten kann, obwohl es hier so beschrieben ist.
Ich hatte dann eine Weile mit den Einstellungen in der FRITZ!Box sowie den ALGs der SSG herumexperimentiert. Leider sieht man auf der SSG ja nicht wirklich, welche Verbindungen von außen blockiert werden. Unter anderem hatte ich das hier von Juniper getestet. Allerdings lief bei mir nie eine Verbindung in diese Regel rein. Es schien ohnehin mehr ein Problem von RTP und weniger von SIP zu sein. (?) Diesen Blogpost hatte ich dann gefunden, der direkt schreibt, dass die SSG keinen ALG für RTP hat.
Lösung
Wie es jetzt läuft:
- Den 30 Sekunden Keepalive auf der FRITZ!Box aktiviert (Telefonie -> Eigene Rufnummern -> Anschlusseinstellungen -> Sprackpakete).
- Die ALGs für SIP und RTSP auf der SSG ausgeschaltet (damit es ein definierter Zustand von “die SSG macht nichts Intelligentes” ist).
- Auf der SSG ein “Port-Forwarding”, also die VIP und Policies für SIP (UDP 5060) und RTP (UDP 7078-7097, scheint FRITZ!Box spezifisch zu sein) eingerichtet, so wie es hier alternativ beschrieben ist. Diese Ports werden also an die FRITZ!Box weitergereicht.
Übersicht der weitergeleiteten Ports:
Und hier ein paar Screenshots. Man kann gut beobachten, dass pro Telefonat genau zwei RTP/RTSP Sessions aufgemacht werden. Bei einem ausgehenden Telefoncall werden die Verbindungen eingehend (!) geöffnet. Bei einem eingehenden Anruf dann entsprechend ausgehen. Außerdem interessant ist der immer erkannte “Fragmented Traffic” am Anfang eines jeden Telefonats. Ich habe während den Gesprächen zwar nichts gemerkt, aber es tritt immer auf. Siehe Bild-Beschreibungen für mehr Infos:
Und hier noch ein Teil der CLI Konfiguration der SSG, welche ja leider für jeden Service der VIP einen einzelnen Eintrag braucht. Nerv.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
set service "udp_5060_sip" protocol udp src-port 0-65535 dst-port 5060-5060 set service "udp_7078_rtp" protocol udp src-port 0-65535 dst-port 7078-7078 set service "udp_7079_rtp" protocol udp src-port 0-65535 dst-port 7079-7079 set service "udp_7080_rtp" protocol udp src-port 0-65535 dst-port 7080-7080 set service "udp_7081_rtp" protocol udp src-port 0-65535 dst-port 7081-7081 set service "udp_7082_rtp" protocol udp src-port 0-65535 dst-port 7082-7082 set service "udp_7083_rtp" protocol udp src-port 0-65535 dst-port 7083-7083 set service "udp_7084_rtp" protocol udp src-port 0-65535 dst-port 7084-7084 set service "udp_7085_rtp" protocol udp src-port 0-65535 dst-port 7085-7085 set service "udp_7086_rtp" protocol udp src-port 0-65535 dst-port 7086-7086 set service "udp_7087_rtp" protocol udp src-port 0-65535 dst-port 7087-7087 set service "udp_7088_rtp" protocol udp src-port 0-65535 dst-port 7088-7088 set service "udp_7089_rtp" protocol udp src-port 0-65535 dst-port 7089-7089 set service "udp_7090_rtp" protocol udp src-port 0-65535 dst-port 7090-7090 set service "udp_7091_rtp" protocol udp src-port 0-65535 dst-port 7091-7091 set service "udp_7092_rtp" protocol udp src-port 0-65535 dst-port 7092-7092 set service "udp_7093_rtp" protocol udp src-port 0-65535 dst-port 7093-7093 set service "udp_7094_rtp" protocol udp src-port 0-65535 dst-port 7094-7094 set service "udp_7095_rtp" protocol udp src-port 0-65535 dst-port 7095-7095 set service "udp_7096_rtp" protocol udp src-port 0-65535 dst-port 7096-7096 set service "udp_7097_rtp" protocol udp src-port 0-65535 dst-port 7097-7097 set service "udp_7078-7097_rtp" protocol udp src-port 0-65535 dst-port 7078-7097 set interface ethernet0/0 vip interface-ip 5060 "udp_5060_sip" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7078 "udp_7078_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7079 "udp_7079_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7080 "udp_7080_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7081 "udp_7081_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7082 "udp_7082_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7083 "udp_7083_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7084 "udp_7084_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7085 "udp_7085_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7086 "udp_7086_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7087 "udp_7087_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7088 "udp_7088_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7089 "udp_7089_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7090 "udp_7090_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7091 "udp_7091_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7092 "udp_7092_rtp" 192.168.86.2 manual set interface ethernet0/0 vip interface-ip 7093 "udp_7093_rtp" 193.168.86.2 manual set interface ethernet0/0 vip interface-ip 7094 "udp_7094_rtp" 194.168.86.2 manual set interface ethernet0/0 vip interface-ip 7095 "udp_7095_rtp" 195.168.86.2 manual set interface ethernet0/0 vip interface-ip 7096 "udp_7096_rtp" 196.168.86.2 manual set interface ethernet0/0 vip interface-ip 7097 "udp_7097_rtp" 197.168.86.2 manual set policy id 26 from "Untrust" to "Trust" "Any-IPv4" "VIP(ethernet0/0)" "udp_5060_sip" permit log set policy id 26 exit set policy id 27 from "Untrust" to "Trust" "Any-IPv4" "VIP(ethernet0/0)" "udp_7078-7097_rtp" permit log set policy id 27 exit set policy id 24 from "Trust" to "Untrust" "Any-IPv4" "Any-IPv4" "SIP" nat src permit log count set policy id 24 exit set policy id 28 from "Trust" to "Untrust" "Any-IPv4" "Any-IPv4" "udp_7078-7097_rtp" nat src permit log count set policy id 28 exit |
Featured image “Telefon” by Simon Samtleben is licensed under CC BY 2.0.
Hello,
Thanks you for your interesting post, I may ask you to do the translation in English or French please ?
Thanks in advance,
Hi Lyacine,
since the FRITZ!Box is only present in Germany, I wrote this post in German. You can try to use the Google translator. ;)
However, the short version is, that the SSG firewall has no ALG for RTP and therefore problems when using VoIP behind it.
I configured a few port-forwardings (VIP + policies) on the SSG to forward the ports to the VoIP-Gateway (FRITZ!Box). See the figure and screenshots for some information.
(Hope that helps…)
Regards, Johannes
Hallo Johannes,
Finde das einen super Blog. Habe auch eine Fritzbox 7390-CH Version.
Allerdings steht die nicht hinter einer Juniper, sondern einer Fortinet60D.
Habe da auch SIP Helper, SIP und RTP Alg deaktiviert. Auch den Signalsierungsport 5060 plus RTP Ports 10000 – 20000 entsprechend auf die FB geforwarded. Ich habe das Problem, dass man mich beim Telefonieren sehr leise hört.
Woran könnte das noch liegen? Ports und RTP (UDP 7078-7097 habe ich allerdings nicht weitergeleitet.
Danke für Deinen Tipp.
Gruss
Andy
Hi Andy,
hm, also als Netzwerker würde ich ganz klar sagen, dass das nicht am Netzwerk liegt, da eine Verbindung ja klappt. Die Lautstärke muss doch am Layer 7 irgendwo liegen.
Kannst du verifizieren, dass es wirklich an dem Konstrukt mit der FortiGate liegt? Das würde mich nämlich echt wundern in dem Kontext.
P.S.: Du kennst die VoIP Funktionen von Wireshark? Schneide mal eine Weile mit, telefoniere etwas, und schau dir dann in Wireshark über Telephony -> VoIP Calls mal die Details an. Da kannst du sogar direkt mithören, was gesagt wurde. ;)
set vip multi-port könnte hier eine Lösung für die Anzahl der VIP Ports sein. VG, Reiner
Oh, danke für den Hinweis. Werde ich beim nächsten Problem dieser Art mal probieren.
Ich habe überlegt, ähnliches mit einer PA-200 zu machen. Leider fehlen bei PAN so ein paar Features, die an einem deutschen VDSL-Anschluss funktionsimplizit wären. Argh.
Blog helfen mir sehr viel, um die Voip zu verstehen, weil ich neue Benutzer von VoIP. Vielen Dank für den Austausch mit uns.