Howto: ADSL 24h disconnect macht Router Probleme

Blackvel

Mitglied
Mitglied seit
4 Mai 2004
Beiträge
624
Punkte für Reaktionen
0
Punkte
0
Hi Admins. Kann man das Ding irgendwie Global über alle VOIP Hardware-/Software + alle Router hängen ? :)

Ich habe die Ursache der Probleme gefunden, dass Software/Hardware sich nicht mehr neu bei Sipgate registrieren kann.

Trifft auf alle Router zu, incl. Linux.
Ebenso nicht nur auf Asterisk, sondern auch auf alle ATA's und Hardware Phones.

Ursache:
NAT, DSL mit dynamischer IP.

Wo die Probleme nicht auftauchen:
Kein NAT.
Kein 24h disconnect.
Feste IP bei Provider.
Asterisk direkt auf Linux-Router (keine externip gesetzt, falls doch, dann auch hier!)

Problembeschreibung:
Asterisk kann sich nicht mehr bei Sipgate (die Meldungen kamen zwar bei Nikotel nicht, aber trotzdem ist es falsch, auch für IAX!) registrieren.

Meldungen flooden den Bildschirm:
Sep 23 15:59:18 NOTICE[81925]: chan_sip.c:3922 sip_reg_timeout: Registration for '[email protected]' timed out, trying again
Sep 23 15:59:24 WARNING[81925]: chan_sip.c:673 retrans_pkt: Maximum retries exceeded on call [email protected] for seqno 187 (Critical Request)

Dieses Problem tritt auf, wenn man beim ISP gekickt wird (24h disconnect).
Der Router wählt sich daraufhin wieder neu ein.

Das Problem ist aber NAT, wo unter Linux die ip connection tracking table weiterhin die alten Connections sind.
Code:
udp      17 175 src=192.168.1.2 dst=217.10.79.9 sport=5060 dport=5060 src=217.10.79.9 dst=213.23.37.141 sport=5060 dport=5060 [ASSURED] use=1 mark=0 
udp      17 172 src=192.168.1.2 dst=69.73.19.178 sport=4569 dport=4569 src=69.73.19.178 dst=213.23.37.141 sport=4569 dport=4569 [ASSURED] use=1 mark=0

Das Problem ist jetzt, die alte IP in dem gespeicherten Paket.
Der Router scheint einfach keine neue Connection in die Conntrack Table einzustellen, trotz alldem Asterisk sich ständig versucht, bei Sipgate neu zu registrieren.

NAT denkt wohl, er hätte schon die richtige Connection in der NAT Tabelle.
Aber halt leider mit der falschen Destination, d.h Sipgate schickt das Packet an die falsche Zieladresse.

Workaround.
1. Möglichkeit
Crontab, und den Router nachts z.B um 4am rebooten.
Damit wird die IP resettet, ebenso wird die NAT Tabelle geflusht.

Es tritt nicht nur bei Linux Routern auf!
Auch andere Route haben eine NAT Tabelle, die falsche Einträge beinhaltet!!!

Dann kann z.B per Crontab Asterisk um 4:10am angewiesen werden, einen reload durchzuführen (Aktualisierung der externip dyndns IP).
-> Dies ist leider notwendig, aber Asterisk spezifisch (da sonst One-Way Audio, weil Asterisk sich noch falsche IP merkt).

2. Möglichkeit
Per crontab das ADSL Stoppen und wieder neu starten.
-> Der Router bekommt eine neue IP.
-> Vorteil von crontab : Man macht es nachts, wo es nicht stört.

Dann muss man aber ebenso die NAT Tabelle löschen.
Unter Linux:
rmmod ip_conntrack
insmod ip_conntrack

Ein Schelm der da ist, der connection tracking mit in den Linux Kernel kompiliert hat.
Der hat hier leider das nachsehen, da es scheinbar laut Netfilter Mailinglist keine Möglichkeit gibt, die Tabelle ohne Modul Reload zu flushen.

Hier noch eine Anleitung für einen ATA + Nicht-Linux Router:
1. Im ATA /IP-Telefon wird man nix machen müssen (der merkt sich ja keine IP, oder doch ?)
2. Per Zeitschaltuhr den Router nachts auschalten, und wieder einschalten lassen.

Dann ist die IP eine Neue + NAT Tabelle gelöscht.

Viel Spaß beim Fluchen

Blackvel

PS: Die Welt ist grausam! :)
 
Hier noch eine Anleitung für einen ATA + Nicht-Linux Router:
1. Im ATA /IP-Telefon wird man nix machen müssen (der merkt sich ja keine IP, oder doch ?)
2. Per Zeitschaltuhr den Router nachts auschalten, und wieder einschalten lassen.

Wer einen Linux-Router mit aufgesetztem Asterisk hinter einem ATA486 betreibt, hat die Probleme nicht - warum auch immer. Diese Sache habe ich noch nicht weiter ergründet, es reicht mir einfach, daß alles wunderbar funktioniert.
 
Vielleicht löschen einige Router nach einem Reconnect die NAT -Tabelle, andere widerrum nicht. Also, meiner macht das wohl nicht.
 
das problem gabs auch beim fli4l router bis version 2.08. seit 2.17 ist das problem behoben, lt. newsgroup soll es mit der umstellung auf kernel 2.4x zusammenhängen, der anscheinend eine korrekte neuinitialisierung der nat tabelle vornimmt.
 
Hi Blackvel, danke für deine Ausführungen, jetzt weiss ich wenigstens, worum bei mir dieses Problem auftaucht. Ich kann bestätigen, was du schriebst. Leider funktioniert bei mir aber ein entladen des conntrack Modules nicht weil es busy ist. Ich setze IpCop ein und habe keine "-f" Option.

Leider bleibt mir nur ein

asterisk: "stop now"
ipcop: "restart"
ipcop: update dyndns (die in sip.conf verwendet wird)
asterisk: start

Das ist aber mehr als unbefriedigend. Ich will nicht jede Nacht ein Restart machen, da ich den Serve rauch noch für andere Zwecke verwende.

Gibt es denn nicht noch eine andere Lösung?
 
im normal fall reicht es den asterisk nachts für 2 minuten zustopen. das werden die einträge automatisch gelöscht! außnahmen sind die die andere TimeOutWerte als die Standardwerte verwenden.
 
traxanos schrieb:
im normal fall reicht es den asterisk nachts für 2 minuten zustopen. das werden die einträge automatisch gelöscht! außnahmen sind die die andere TimeOutWerte als die Standardwerte verwenden.

Ok dann wäre das bei meinem debian also sagen wir mal um

04.00 Uhr: /etc/init.d/asterisk stop
04.03 Uhr: /etc/init.d/asterisk start

Aber vorher muss ich noch für eine Neueinwahl des Routers sorgen (inkl dyndns update), sonst passiert mir das ja im laufe der nächsten 24h nach Asterisk restart wieder, da nn kein sip mehr geht :-(

Insgesamt eine ziemliche Frickelei.. (2min kein Telefon ist auch etwas blös finde ich; und was ist, wenn DSL im Laufe des Tages mal ausfällt??-> dann gibts bis 4.03 Uhr kein Telefon))

Ich bin immer nocha uf der Suche nach einer besseren Lösung...
 
Hallo zusammen!

hat jemand eine andere Lösung mittlerweile gefunden?
ich kenne das astipwatch, aber das funzt irgendwie bei mir nicht.
dann hatte ich mal eine tiptel voIP-Box, die ist ja wie ein ata286 und bei manuelle konf (anleitung von sipgate und hier ausm forum) ging der einen tag, mit der tiptel-software ging es ohne probleme (leider konnte ich nicht vergleichen, da das gerät zum kunden ging)

es muss also eine andere lösung geben! die ata-box konnte es auch! muss der registrar oder proxy raus?
das asterisk-hinter-ipcop problem konnte ich bisher leider auch noch nicht lösen

mfg
 
Hier ist die Linux Lösung

Servus,

das mit dem Neustarten ist natürlich alles Quaaak und nicht wirklich eine saubere Lösung, daher:

es gibt eine andere Lösung für Linux Router!

auf dem Router (kernel >2.4.?) ist nach der Neueinwahl folgendes zu tun:

Code:
#  echo 0 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout_stream; echo 0 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout
# sleep 10
# echo 180 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout_stream; echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout

So das wars schon und schon sind alle udp Verbindungen weg und nun versucht es ja Asterisk periodisch sowieso neu, also wird es innerhalb von Sekunden klappen!

Meldet mal, ob es bei Euch klappt!

//update
mit sipgate klappt es bei mir, bei gmx habe ich zwarkeine registry Probleme, aber die neue externe ip bleibt gmx verborgen,sodass noch ein "reload" des asterisk notwendig ist. (Bei sipgate geht es ohne!!)
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,840
Beiträge
2,219,268
Mitglieder
371,543
Neuestes Mitglied
Brainbanger
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.