Cisco NAT (VoiP)
Hallo,
ich habe ein kleines Problem mit dem Betrieb eines Asterisk VoiP Servers hinter meiner Cisco Hardware.
Zum Aufbau: Als Interget-Gateway fungiert ein Cisco 886VA Router (Interne IP 192.168.1.1) and diesem hängt eine Cisco SG300 Switch (Interne IP 192.168.1.2), das Switch befindet sich im L3 Modus und es sind zwei VLANs aktiv VLAN 1 und VLAN 3. Im VLAN 3 möchte ich einen Asterisk Server betreiben.
Ich habe nun das Problem, das ich beim telefonieren nur einseitig Audio empfangen kann, d.h. Anrufer können mich hören, ich aber die Anrufer nicht. Laut Asterisk Dokumentation ist dies in 99% der Fälle auf ein NAT Problem zurück zu führen, daher habe ich hier angefangen zu forschen.
Testweise habe ich den Asterisk Server ins VLAN 1 verschoben, hier tritt das Problem nicht auf. Die Konfiguration am Router sieht dabei wie folgt aus:
Wenn ich den Asterisk Server ins VLAN 3 schiebe muss ich mindestens den Port 5060 weiterleiten, sonst kommt gar nichts an:
Von der Telekom Seite weiß ich, dass "UDP (in): Ports 5070, 5080, 30000-31000, 40000-41000" freigegeben sein müssen.
Daher dachte ich mir ich leite die Ports mal an die IP des Servers im VLAN 3 weiter.
Dabei habe ich mich an folgender Anleitung orientiert.
D.h. ich habe folgende Zeile entfernt:
Und dafür folgendes hinzugefügt:
Leider empfange ich noch immer keine eingehendes Audiosignal, wenn der Server im VLAN 3 ist, daher vermute ich, das ich irgendwas falsch mache.
Ich würde mich sehr freuen, wenn mir jemand erklären könnte was ich falsch mache und was halb die Datenpackete nicht da ankommen, wo sie hin sollen.
Mit freundlichen Grüßen
Bernhard
ich habe ein kleines Problem mit dem Betrieb eines Asterisk VoiP Servers hinter meiner Cisco Hardware.
Zum Aufbau: Als Interget-Gateway fungiert ein Cisco 886VA Router (Interne IP 192.168.1.1) and diesem hängt eine Cisco SG300 Switch (Interne IP 192.168.1.2), das Switch befindet sich im L3 Modus und es sind zwei VLANs aktiv VLAN 1 und VLAN 3. Im VLAN 3 möchte ich einen Asterisk Server betreiben.
Ich habe nun das Problem, das ich beim telefonieren nur einseitig Audio empfangen kann, d.h. Anrufer können mich hören, ich aber die Anrufer nicht. Laut Asterisk Dokumentation ist dies in 99% der Fälle auf ein NAT Problem zurück zu führen, daher habe ich hier angefangen zu forschen.
Testweise habe ich den Asterisk Server ins VLAN 1 verschoben, hier tritt das Problem nicht auf. Die Konfiguration am Router sieht dabei wie folgt aus:
interface Vlan1
ip address 192.168.1.1 255.255.255.0
ip nat inside
...
!
interface Dialer1
ip access-group 111 in
ip nat outside
...
!
ip nat inside source list 101 interface Dialer1 overload
ip route 192.168.3.0 255.255.255.0 192.168.1.2
!
dialer-list 1 protocol ip list 101
!
access-list 101 permit ip 192.168.1.0 0.0.0.255 any
access-list 101 permit ip 192.168.3.0 0.0.0.255 any
access-list 101 permit udp any any eq 3478
access-list 101 permit udp any any eq 3479
access-list 101 permit udp any any eq 5060
access-list 101 permit udp any any eq 5070
access-list 101 permit udp any any eq 5080
access-list 101 permit udp any any range 10000 20000
access-list 101 permit udp any any range 30000 31000
access-list 101 permit udp any any range 40000 41000
access-list 111 permit icmp any any administratively-prohibited
access-list 111 permit icmp any any echo-reply
access-list 111 permit icmp any any packet-too-big
access-list 111 permit icmp any any time-exceeded
access-list 111 permit icmp any any unreachable
access-list 111 remark VoiP
access-list 111 permit udp any any eq 3478
access-list 111 permit udp any any eq 3479
access-list 111 permit udp any eq 5060 any
access-list 111 permit udp any eq 5070 any
access-list 111 permit udp any eq 5080 any
access-list 111 permit udp any range 10000 20000 any range 10000 20000
access-list 111 permit udp any range 30000 31000 any range 30000 31000
access-list 111 permit udp any range 40000 41000 any range 40000 41000
access-list 111 permit udp any eq domain any
access-list 111 permit tcp any eq domain any
access-list 111 permit tcp any any eq www
access-list 111 remark SMTP (STARTTLS) TCP
access-list 111 permit tcp any any eq 587
access-list 111 remark IMAP (STARTTLS) TCP
access-list 111 permit tcp any any eq 143
access-list 111 remark IMAP (STARTTLS) UDP
access-list 111 permit udp any any eq 143
access-list 111 remark IMAP (SSL) TCP
access-list 111 permit tcp any any eq 993
access-list 111 permit tcp any any eq ftp
access-list 111 permit tcp any any eq ftp-data
access-list 111 remark FTP passive mode
access-list 111 permit tcp any any gt 1023
access-list 111 permit udp any eq ntp any
access-list 111 permit gre any any
access-list 111 deny ip any any log
Wenn ich den Asterisk Server ins VLAN 3 schiebe muss ich mindestens den Port 5060 weiterleiten, sonst kommt gar nichts an:
ip nat inside source static udp 192.168.3.3 5060 ***dialer-1-ip(statisch)*** 5060 extendable
Von der Telekom Seite weiß ich, dass "UDP (in): Ports 5070, 5080, 30000-31000, 40000-41000" freigegeben sein müssen.
Daher dachte ich mir ich leite die Ports mal an die IP des Servers im VLAN 3 weiter.
Dabei habe ich mich an folgender Anleitung orientiert.
D.h. ich habe folgende Zeile entfernt:
ip nat inside source static udp 192.168.3.3 5060 ***dialer-1-ip(statisch)*** 5060 extendable
Und dafür folgendes hinzugefügt:
ip nat pool VOIPFWD 192.168.3.3 192.168.3.3 netmask 255.255.255.0 type rotary
access-list 100 permit udp any any eq 3478
access-list 100 permit udp any any eq 3479
access-list 100 permit udp any any eq 5060
access-list 100 permit udp any any eq 5070
access-list 100 permit udp any any eq 5080
access-list 100 permit udp any any range 10000 20000
access-list 100 permit udp any any range 30000 31000
access-list 100 permit udp any any range 40000 41000
ip nat inside destination list 100 pool VOIPFWD
Leider empfange ich noch immer keine eingehendes Audiosignal, wenn der Server im VLAN 3 ist, daher vermute ich, das ich irgendwas falsch mache.
Ich würde mich sehr freuen, wenn mir jemand erklären könnte was ich falsch mache und was halb die Datenpackete nicht da ankommen, wo sie hin sollen.
Mit freundlichen Grüßen
Bernhard
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 307385
Url: https://administrator.de/contentid/307385
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
10 Kommentare
Neuester Kommentar
Vermutlich ist deine Konfig nicht vollständig aber es sieht so aus als ob du die Firewall mit dem Application Gateway gar nicht in Betreib hast auf dem Router.
Das solltest du auch schon aus Sicherheitsgründen dringenst machen !
Die Firewall öffnet dir dann Session basiert die richtigen Ports über das Application Gateway.
Hier findest du eine laufende Konfig zum Abtippen:
Cisco 880, 890 und ISR Router Konfiguration mit xDSL, Kabel oder FTTH Anschluss plus VPN und IP-TV
Relevant sind (Standard Konfig weggelassen):
ip inspect name myfw tcp
ip inspect name myfw udp
ip inspect name myfw sip
ip inspect name myfw rtsp
!
interface Dialer0
ip inspect myfw out
ip access-group 111 in
!
access-list 111 permit icmp any any administratively-prohibited
access-list 111 permit icmp any any echo-reply
access-list 111 permit icmp any any packet-too-big
access-list 111 permit icmp any any time-exceeded
access-list 111 permit icmp any any unreachable
access-list 111 permit udp any eq domain any
access-list 111 permit tcp any eq domain any
access-list 111 permit udp any eq 5060 any
access-list 111 deny ip any any
Damit klappt das schon alles problemlos.
Zusätzlich kannst du noch no ip nat service sip udp port 5060 verwenden in der Konfig, das ist aber meist nicht nötig wenn du mit STUN arbeitest auf der Voice Seite.
Die o.a. Konfig rennt getestet mit Asterisk und diversen Cisco_IP_Phones fejhlerlos an einem ADSL und auch VDSL Anschluss.
Forwarden musst du aber nichts. Mit access-list 111 permit udp any eq 5060 any lässt du incomming SIP Calls durch die CBAC Firewall. Mehr ist dafür nicht zu machen. Das RTP Session Handling macht die FW dynamisch....sofern du sie denn aktiviert hast ?!
Wenn man sich deine etwas rumpelige ACL 111 ansieht besteht aber Befürchtung das das nicht der Fall ist (geraten).
Halte dich an das oben zitierte Tutorial. Da ist alles zu dem Thema (und in den Threads noch mehr) haarklein erklärt.
Das solltest du auch schon aus Sicherheitsgründen dringenst machen !
Die Firewall öffnet dir dann Session basiert die richtigen Ports über das Application Gateway.
Hier findest du eine laufende Konfig zum Abtippen:
Cisco 880, 890 und ISR Router Konfiguration mit xDSL, Kabel oder FTTH Anschluss plus VPN und IP-TV
Relevant sind (Standard Konfig weggelassen):
ip inspect name myfw tcp
ip inspect name myfw udp
ip inspect name myfw sip
ip inspect name myfw rtsp
!
interface Dialer0
ip inspect myfw out
ip access-group 111 in
!
access-list 111 permit icmp any any administratively-prohibited
access-list 111 permit icmp any any echo-reply
access-list 111 permit icmp any any packet-too-big
access-list 111 permit icmp any any time-exceeded
access-list 111 permit icmp any any unreachable
access-list 111 permit udp any eq domain any
access-list 111 permit tcp any eq domain any
access-list 111 permit udp any eq 5060 any
access-list 111 deny ip any any
Damit klappt das schon alles problemlos.
Zusätzlich kannst du noch no ip nat service sip udp port 5060 verwenden in der Konfig, das ist aber meist nicht nötig wenn du mit STUN arbeitest auf der Voice Seite.
Die o.a. Konfig rennt getestet mit Asterisk und diversen Cisco_IP_Phones fejhlerlos an einem ADSL und auch VDSL Anschluss.
Wenn ich den Asterisk Server ins VLAN 3 schiebe muss ich mindestens den Port 5060 weiterleiten, sonst kommt gar nichts an:
Von einem VLAN 3 sieht man aber nichts oben in deiner Konfig. Routest du das VLAN 3 auf dem Switch ???Forwarden musst du aber nichts. Mit access-list 111 permit udp any eq 5060 any lässt du incomming SIP Calls durch die CBAC Firewall. Mehr ist dafür nicht zu machen. Das RTP Session Handling macht die FW dynamisch....sofern du sie denn aktiviert hast ?!
Wenn man sich deine etwas rumpelige ACL 111 ansieht besteht aber Befürchtung das das nicht der Fall ist (geraten).
Ich würde mich sehr freuen, wenn mir jemand erklären könnte was ich falsch mache
Vermutlich (geraten) die CBAC Firewall nicht aktiviert und eine falsche Inbound ACL konfiguriert ?? Schwer zu sagen da deine Konfig nur ein Auszug ist.Halte dich an das oben zitierte Tutorial. Da ist alles zu dem Thema (und in den Threads noch mehr) haarklein erklärt.
das Switch befindet sich...
Ist ein Switch nicht männlich ?Wenn ich den Asterisk Server ins VLAN 3 schiebe muss ich mindestens den Port 5060 weiterleiten,
Das musst du bei aktivierter CBAC Firewall so oder so immer machen !Vorweg: Das "access-list 111 permit ahp any any " kannst du vollständig entfernen, denn IPsec AH ist gar nicht NAT fähig, kann also niemals verwendet werden hier.
Ansonsten ist die Grundkonfig soweit richtig ! Kommunikation ist ja aus beiden VLANs möglich, richtig ?
Hier rennt sowas in exakt dem gleichen Design fehlerlos. Telefonie in einem separaten VLAN und ACL 111 sieht so aus:
access-list 111 permit icmp any any administratively-prohibited
access-list 111 permit icmp any any echo-reply
access-list 111 permit icmp any any packet-too-big
access-list 111 permit icmp any any time-exceeded
access-list 111 permit icmp any any unreachable
access-list 111 permit udp any eq domain any
access-list 111 permit tcp any eq domain any
access-list 111 permit udp any eq 5060 any
access-list 111 permit udp any any eq 4500
access-list 111 permit udp any any eq isakmp
access-list 111 permit esp any any
access-list 111 deny ip any any
Man kann nur vermuten das das Problem ggf. in der VPN Konfig steckt, das du vergessen hast das VLAN 3 vom VPN zu excluden etc.
Hast du mal mit einem Wireshark gepüft was passiert wenn die Telefonie in VLAN 3 ist wenn ein incoming Call kommt (outgoing ebenso) und das mal mit dem Verhalten in VLAN 1 verglichen ??
Was genau ist da unterschiedlich ??
Nochwas am Rande...
Könntest du mal ein "sh contr vdsl 0" machen und mal posten hier. Da du den o Patch der Modem SW verwendest wäre mal interessant ob der wirklich in der 38Version aktiv ist.
Grund dafür..siehe hier:
Kann der Cisco 866VAE VDSL-Vectoring? (und ein Blick in die DSL-Firmware)
Anbei der VPN Teil, den ich raus gelöscht habe, da ich ihn als unwichtig erachtet habe:
Ist er auch...es ging nur um die Crypto Map was da an Traffic excluded und included ist.Nebenbei: 8.8.8.8 solltest du besser nicht als DNS verwenden sondern die des lokalen Providers. Google schnüffelt dich damit und deinem Internet verhalten aus. Nur Dummies nutzen diesen DNS....
Vergleich zum VPN findest du auch hier:
IPsec VPN Praxis mit Standort Vernetzung Cisco, Mikrotik, pfSense, FritzBox u.a
Das ist aber in der Tat nicht das Thema...abgesehen von der Crypto Map ACL.
Was du nach den obigen Erkenntnissen mal machen kannst ist testweise mal das CBAC Firewalling wegzunehmen vom Dialer Port und auch jegliche ACLs. Damit wäre der WAN Port dann offen. Ist für einen kurzen Test mal tolerabel.
Dann nochmal einen Call initiieren und checken ob das durchkommt.
Ist das der Fall kann es nur am Firewall Setup liegen.
Es ist insofern komisch denn das VLAN 3 oder VLAN 1 sind ja aus Router Sicht nur 2 ganz normale IP Segmente am Router. Bevorzugen tut er keins davon denn die sind beide absolut gleichbereichtigt.
Ohne FW und ACL muss das dann aber funktionieren.
Spaßeshalber kannst du ja auch mal VLAN 1 deaktivieren und einzig nur mit VLAN 3 arbeiten....das muss dan auch funktionieren.
Es kann eigentlich nur was an der FW oder den ACLs sein.
Hast du parallel mal ein no ip nat service sip udp port 5060 probiert ?