SIP-Blockade bei Internetausfall

TomS

Neuer User
Mitglied seit
13 Nov 2004
Beiträge
199
Punkte für Reaktionen
0
Punkte
16
Hi,

ich habe mit Asterisk SIP-Channels ein Problem, das ich bisher nicht lösen konnte (ist auf mehreren Asterisk-Installationen reproduzierbar).
Aufbau:
Mehrere SIP-Telefone hängen im LAN per SIP am Asterisk
Asterisk hängt über SIP über WAN an 2 Sipgate-Accounts
Asterisk hängt über IAX an dus.net
des weiteren hängen 2 ISDN-Telefone und ein ISDN-Anschluß per quadbri am Asterisk (der ISDN-Part funktioniert aber problemlos)

Wenn nun die Interverbindung ausfällt funktioniert natürlich erstmal Sipgate nicht mehr, aber die SIP-Telefone arbeiten noch, d.h. interne Telefonate und rauswählen über ISDN geht noch.
Nach einigerzeit fängt Asterisk (Ver 1.2.x) nun aber an die Verbindung zu sipgate wieder aufzubauen, was ohne Internet natürlich nicht klappen kann. Er schickt verschiedene DNS-Anfragen zum lokalen DNS um die Adresse von sipgate aufzulösen (probiert verschiedene hostname-Varianten wie sipgate.de.lokal oder SRV-Abfragen).
Ab diesem Zeitpunkt werden die SIP-Telefone von Asterisk nicht mehr bedient. Selbst interne Nummern sind dann über SIP nicht mehr anrufbar. Die Anfrage vom Telefon an Asterisk geht raus, aber Asterisk scheint so damit beschäftigt zu sein die Sipgate-Verbindung wieder aufzubauen, dass alle SIP-Anfragen ignoriert werden. Manchmal, wenn man nach dem Wählen einige Minuten wartet, kann es passieren dass Asterisk doch noch antwortet. Selbst ein "reload" in der Konsole braucht ungewöhnlich lange bis das Kommando ausgeführt wird.
Im ISDN-Bereich ist dabei immer noch alles ok.

Ich konnte mir jetzt nur dadurch helfen, alle ext. SIP-Verbindungen aus der sip.conf zu entfernen. Dann läuft Asterisk auch im Fall eines Internet-Ausfalls ohne Probleme (dass der IAX-Provider nicht erreichbar ist, scheint die SIP-Channels nicht zu stören).

Aber irgendwie ist das ganze recht unbefriedigend. Gibt es eine Möglichkeit Asterisk anzuweisen, dass bei SIP-Providern die grade nicht per DNS auflösbar sind, die Verbindungen deaktiviert werden sollen statt den ganzen SIP-Bereich mit erfolglosen Verbindungsversuchen zu blockieren?

Oder gibt es sonst einen Workaround?

Viele Grüße
Tom
 
Zuletzt bearbeitet:
Richte einen eigenen DNS-Server ein. Die SIP Einträge sollten Gültigkeitszeiten von 24 h haben, so dass es sehr unwahrscheinlich ist, dass Internet ausfällt und zur gleichen Zeit der Eintrag ungültig wird.

Natürlich kann man auch ein Script schreiben, dass die SIP peers deaktiviert wenn keine Internet Verbindung aktiv ist.
 
Thomas007 schrieb:
Richte einen eigenen DNS-Server ein.

Ich hab schon den lokalen DNS-Server im LAN.

Thomas007 schrieb:
Natürlich kann man auch ein Script schreiben, dass die SIP peers deaktiviert wenn keine Internet Verbindung aktiv ist.

Danke für den Tip. Das probier ich aus. Ich muß mich noch einlesen wie man peers über Script deaktiviert.

Ciao,
Tom
 
Die Ip-Adressen der Provider in der hosts ablegen.
In der /etc/nsswitch.conf folgenden Eintrag:

hosts: dns files

Das heisst, zuerst dns, wenn's da nichts gibt in lokalen Dateien, also in der hosts.

Wenn dann ein veralteter Eintrag in deiner hosts steht, passiert ja nichts, das Internet funktioniert eh nicht.

Funktioniert zumindest in der Theorie so, ich kann es nicht probieren, da ich files dns brauche.
 
Hi kombjuder,

auch eine gute Idee. Werd ich als erstes Probieren. Danke!

Habt Ihr solche Probleme auch schon gehabt, oder bin ich einer von wenigen, die von solchen SIP-Blockaden geplagt werden? Macht es Sinn sowas als Bug bei digium zu melden?
 
Hallo Ihr,

ich habe das über ein kleines Skript gelöst, weil bei mir nach der Neueinwahl auch immer nix mehr ging.

Code:
#!/bin/bash

AKTUELL=`host meine_dyndns_adresse.dyndns.org | cut -f 3`
ALT=`cat /var/local/alte_ip`

if [ "$AKTUELL" != "$ALT" ]; then
        /usr/sbin/asterisk -r -x reload >/dev/null 2>/dev/null
        echo $AKTUELL >/var/local/alte_ip
fi

Eventuell muß der Cut-Befehl an die Ausgabe angepaßt werden. Dieses Skript lasse ich alle 5 Minuten aus der Crontab laufen. Das wars.

Hawedieehre.
Fant
 
kombjuder schrieb:

Kann ins Auge gehen.
Es gibt Provider deren DNS-Server lösen LAN-IPs immer zu localhost auf. Das gibt dann lustige Effekte.
 
fant schrieb:
Dieses Skript lasse ich alle 5 Minuten aus der Crontab laufen. Das wars.

Hawedieehre.
Fant

Hallo,

das hilft TomS aber nicht. Sein Problem ist nicht seine eigne IP, sondern das alle externe Ip nicht mehr aufgelöst werden. Dann gehen bei Asterisk auch die internen Clients nicht, da asterisk so mit den externen beschäftigt ist, dass er sich nichtmehr um die internen kümmert.
 
Sers TomS,

was für einen lokalen Nameserver nutzt Du?

Hawedieehre.
Fant
 
Hi fant,

ich verwende bind unter linux als named.
Der löst alle lokalen hosts auf (vor- und rückwärts) und hat als forwarder den DNS eines ext. Providers sowie des DSL-Routers.
 
Du nutzt einen Router? Dann bekommt der Router doch bei jeder Neueinwahl neue Nameserver-Daten mitsamt seiner neuen IP verpaßt.

Laß einfach mal zu Testzwecken Deinen Bind außen vor und trage in der /etc/resolv.conf als Nameserver NUR Deinen Router ein. Vielleicht hilft das schon. Wenn es hilft, dann ist Dein Nameserver irgendwo verbosselt.

Nebenbei: ich nutze hier die Nameserver von D.J.Bernstein (http://cr.yp.to) :
- Djbdns für meine eigenen Sachen (also LAN, WLAN, VPN, ...) auf localhost
- Dnscache auf den Ethernet-Devices, der dann, wenn der Localhost-Djbdns die gesuchte Adresse nicht kennt, im Internet nachfragt.

Also mache einfach mal folgendes und erzähl, ob es geklappt hat:
- resolv.conf ändern.
- checken, ob externe Namen und IPs aufgelöst werden.
- Asterisk (neu) starten
- Check, ob Asterisk funzt.
- Neueinwahl
- Asterisk-Konsole aufrufen und sip reload eingeben
-> checken, ob es geht

Viel Erfolg.

Hawedieehre.
Fant
 
Hi Fant,

Ja, ich nutze einen Router, aber meine ext. IP sowie vorgeschaltete ext. DNS-Server bleiben statisch. Meinen lokalen DNS brauche ich, da meine genze Asterisk-Konfiguration auf Hostnames basiert und nicht auf IP-Adressen.
Wenn ich den Bind als rauswerfe, würden daher alle SIP-Telefone nicht mehr vom Asterisk erreichbar sein.

Es geht bei mir aber nicht um das Problem, dass ich nach einer Neueinwahl Probleme hätte, sonder darum, dass wärend eines Ausfalls des Internets der ganze SIP-Bereich des Asterisk klemmt.

Trotzdem danke für deine Vorschläge.

Ich werde am Wochenende nochmal das Internet abklemmen um die SIP-Probleme nochmal genauer zu prüfen und die hier schon genannten Lösungsversuche durchtesten.

Ciao,
Tom
 

Statistik des Forums

Themen
244,878
Beiträge
2,220,024
Mitglieder
371,604
Neuestes Mitglied
broekar
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.