Wie kann ich feststellen ob hinter der dyn. IP MEINE Kiste haengt?

voipd

IPPF-Promi
Mitglied seit
5 Mai 2005
Beiträge
3,187
Punkte für Reaktionen
4
Punkte
38
Hallo zusammen,

ich moechte gerne (von aussen) wissen ob meine FritzBox erreichbar ist. Das gilt gleichermassen auch fuer andere Internetdevices. Die FritzBox hat einen DynDNS Eintrag und macht brav ein DynDNS update. Die Box ist pingbar. So weit, so gut.

Nun vergeht einige Zeit und der DynDNS Eintrag ist immer noch pingbar, aber die Box ist z.B. ausgeschaltet, denn die IP Adresse wurde an einen anderen Nutzer neu vergeben.

Meine Frage: Wie erkenne ich ob hinter der IP Adresse des DynDNS Eintrages _meine_ FritzBox oder entsprechendes Geraet steckt.

Eine Moeglichkeit waere einen Webserver auf dem Geraet aufzusetzen. Das halte ich aber fuer "oversized" und nicht immer praktikabel/machbar.

Mir faellt noch ftp oder SNMP ein, aber da tuen mir schon die Spatzen leid.

Fuer Tips waere ich dankbar.

voipd.
 
Spontane Idee: die auf der Box erreichbaren SIP Accounts reichen ja zur eindeutigen Identifizierung aus (letztlich jeder Service, der irgendwie zugeordnet werden kann, aber irgendwie bietet sich SIP hier an).

Wenn Du in Kauf nehmen kannst, dass das Telefon klingelt, wäre die mit sipsak möglich, siehe http://sipsak.org . Mit "sipsak -vvv -I -l 5060 -s sip:$ACCOUNT@$DYNDNS-NAME" kriege ich hier mein Telefon ans klingeln. Unschön ist allerdings, dass sipsak nicht auf ein Accept/Busy etc reagiert, und nicht direkt auf das erste "Ringing" ein Cancel senden kann.

Alternative wäre für Perl-Kundige, ein vermutlich eher kleines Script zu schreiben, dass ein Invite sendet, und den Ack mit einem Cancel beantwortet.
Startpunkt könnte hier http://search.cpan.org/~sullr/Net-SIP-0.37/ sein
 
So nun hole ich das Thema nochmals hoch.

Die Idee ein SIP Invite zu schicken hoert sich gut an, aber ich kann es (aus Mangel an Know How) so erstmal nicht umsetzen?

Gibt es denn noch ein anderes Programm mit dem man den UserString (Agent) abfragen kann.

Natuerlichlich sollte nicht jede Stunde das Telefon einmal klingeln. :rolleyes:


Villeicht hat noch jemand eine neue/weiterfuehrende Idee.

voipd.
 
Vielleicht solltest Du nicht die FBF testen, sondern einen neutralen Ort im Internet, an dem die FBF ihre IP-Adresse hinterlegt. Ist das DynDNS-Verfahren mit Updates bei neuem Online-Status in der FBF korrekt eingerichtet, dann genügt doch, den dyndns-Provider selbst und direkt zu fragen, um die entsprechende IP-Adresse zu erhalten. Für den Test selbst dürfte dann ein ping ausreichen :)

--gandalf.
 
:rolleyes:

GENAU DAS ist das Problem! Die IP Adresse bekomme ich von dem DynDNS Anbieter, bzw. per nslookup. ABER:
Was passiert wenn die Box nicht mehr Online ist, als ausgestoepselt ist oder sonstwie nicht mehr erreichbar ist?
Die IP Adresse die ich vom DynDNS Anbieter abfrage hat mittlerweile jemand anders.
Damit ist die Adresse weiterhin pingbar und ich bin im Glauben, dass alles in Ordnung ist. Ist aber nicht. :-(

Deshalb die Frage: Wie kann ich feststellen, dass sich hinter der abgefragten DynDNS Adresse MEINE (die Richtige) FritzBox verbirgt?

voipd.
 
Periodisch IP der Box per Script auslesen und Ergebnis auf einem Server ablegen.
Wenn Ergebnis älter ist als "Jetzt-Periode", dann ist was faul.
 
andilao schrieb:
Periodisch IP der Box per Script auslesen und Ergebnis auf einem Server ablegen.
Wenn Ergebnis älter ist als "Jetzt-Periode", dann ist was faul.

und wie laesst du auf einer FritzBox (ohne grosse Modifikation) ein Script laufen, gescheige denn auf einem anderem SIP/IP Device?

voipd.
 
Ich denke auch, es gibt zwei Ansätze, den Ausfall des Routers zeitnah festellen zu können:
  • einen identifizierbaren Service zeigen
  • von der Box einen Service regelmäßig (z.B. mit NAT keep alive) in Anspruch nemen/nehmen lassen, z.B. den SIP-Server einer Asterisk mit qualify.

Einen Service z.B. auf einem ungewöhlichen Port, kann man sehr schön mit "nc/netcat" identifizieren.

Den peer-Status der Asterisk kann man abfragen mit
Code:
asterisk -rx "sip show peer 1000" 2>&1 | grep Status
  Status       : OK (56 ms)

Gruß, Stefan
 
Warum nimmst Du nicht einfach die Online-Anzeige von dus.net (oder einem anderen Provider) und baust sie in Deine Homepage ein?
Ist die Zeit bis zur nächsten Rückmeldung zu kurz? Außerdem könntest Du die IP von my.dus.net mit Deiner DynDNS-IP vergleichen.
 
@sago:
sago schrieb:
  • einen identifizierbaren Service zeigen
  • von der Box einen Service regelmäßig (z.B. mit NAT keep alive) in Anspruch nemen/nehmen lassen, z.B. den SIP-Server einer Asterisk mit qualify.

Das verstehe ich nicht soganz. Was meinst du mit "einen identifizierbaren Service zeigen" und mit "Asterisk mit qualify" ?

Ansonsten ist die Idee erstmal gut die ich daraus ableitet, in jede SIP/Fritz Box, sofern noch ein Platz frei ist, einen Account einzutragen, der sich an einem Asterisk Server anmeldet. Dort koennte man den Status pruefen. Aber was genau meist du mit "qualify"?

@Tippfehler:

Welche anderen Anbieter haben dennoch so etwas? Sipgate so viel weis und ...

Das Problem ist aber, dass man dann fuer jede Box einen Account bei dem Anbieter anlegen und pflegen muss.
Auch die Idee ist gut die IP zu vergleichen, aber dazu muesste man scriptgesteuert an diese Daten kommen.


voipd.
 
Wenn man bei Asterisk "Qualify=yes" setzt, bedeutet es, dass Asterisk alle 2 Sekunden prüft, ob der SIP-Client noch erreichbar ist.
Wie man das beim SIP-Client der Fritzbox einstellen kann, kann ich leider auch nicht sagen, vielleicht muß man die ar7.cfg editieren. Bei Asterisk auf der Fritzbox ist das aber ganz einfach einzustellen, muß auch so gemacht werden, wenn man bei dus.net immer erreichbar sein will.

---Edit---
Wie viele Boxen willst Du denn prüfen?
Vielleicht macht es Sinn, irgendwo Asterisk zu installieren und dort ständig alle Boxen anmelden. Sie müssen ja nicht darüber telefonieren, außer Anmelden den Clients keine Rechte geben.
 
Diese Loesung gefaellt mir eigentlich schon ganz gut. Wie das mit "keine Rechte ausser anmelden" funktioniert weiss ich noch nicht, aber sie muessen wirklich nicht miteinander telefonieren. :)
Kann mir jemand mal so eine Minimalkonfiguration erklaeren?

Alle 2 Sekunden ist zuviel, da wird mir zuviel Traffik erzeugt. Alle 60 Sekunden oder sogar alle 5/10 Minuten wuerde reichen. Ist das noch einstellbar?

Edit: Kann es sein, dass du mit "2 Sekunden" das timeout meinst, das default ist und nicht das Abfrageinterval? Das soll bei 60 Sekunden liegen

Es geht hier um 4-8 Boxen. Einen Test-Asterisk habe ich am laufen. Ich habe aber leider auch schon festgestellt, dass sich eine Fritzbox nicht immer automatisch reconnectet, wenn der Asterisk mal ein paar Stunden "weg" war, aber das muss ich dann noch beobachten.

voipd.
 
Zuletzt bearbeitet:
Auch wenn es ein Doppelposting ist, habe ich hier ggf. die Loesung wobei a) der Weg ueber "Qualify" richtig war und zu b) "SIP method options" fuehrt.


SIP method options schrieb:
The SIP method OPTIONS allows a UA to query another UA or a proxy server as to its capabilities. This allows a client to discover information about the supported methods, content types, extensions, codecs, etc. without "ringing" the other party.

For example, before a client inserts a Require header field into an INVITE listing an option that it is not certain the destination UAS supports, the client can query the destination UAS with an OPTIONS to see if this option is returned in a Supported header field.

All UAs MUST support the OPTIONS method.

Kann das jemand mal ausprobieren oder mir helfen wie man das richtig konfiguriert, bzw. einsetzt?


voipd.
 
Keine Rechte:

Vielleicht so etwas im Dialplan?
exten => _X.,1,Playback(invalid)
exten => _X.,2,Hangup

für das Timeout könnte vielleicht auch z. B.
qualify=360000
gesetzt werden für 6 Minuten. (Leider habe ich keine genaue Anleitung gefunden.)
In der sip.conf gibt es ja auch noch z. B.
maxexpirey=28800
defaultexpirey=3600
Da sollte es für Dich eigentlich genug Auswahl geben.
 
Zuletzt bearbeitet:
Tippfehler schrieb:

Das ist die Zeit auf die man wartet bis ein "Ping reply" kommt. Das kann man ruhig auf 2 Sekunden belassen.

Das Abfrageintervall ist fest auf 1 Minute eingestellt.

BTW: Weiss jemand noch wie das mit "SIP method options" funktioniert und ob man das auch ausserhalb vom Asterisk nutzen kann, da es ja eine RFC Vorgabe ist.


voipd.
 
Die Diskussion ist schon etwas weiter, aber ich möchte an meinem Vorschlag nochmals anknüpfen.
gandalf94305 schrieb:
sondern einen neutralen Ort im Internet
Egal ob nun bei einem Polling der FBF von außen oder einem Hinterlegen von Infos seitens der FBF irgendwo - man muss sich entscheiden, welches das minimale Intervall ist, das man der FBF als Ausfall zugesteht, so daß anschließend ein "Down" festgestellt wird.

Hier gäbe es zwei Optionen (Intervall von N Sekunden):

[A] Die FBF hinterlegt alle N/2 Sekunden auf einem Internetserver ihre IP-Adresse mit Timestamp. Von extern kann man nun prüfen, ob die Timestamp älter als N Sekunden ist und somit Up/Down feststellen.

Man verwendet eine triviale Eigenschaft der FBF, um die Funktion zu prüfen, beispielsweise die Möglichkeit, per VPN eine Verbindung auf die Statusseite der FBF aufzubauen. Geht dies zweimal innerhalb von N Sekunden nicht, ist die FBF down. Das Problem mit SIP INVITEs und anderen Funktionen liegt in der Identifikation der FBF. Dies kann zuverlässig nur per Zertifikat erfolgen. Ein solches wird beim VPN verlangt.

--gandalf.
 
voipd schrieb:
Meine Frage: Wie erkenne ich ob hinter der IP Adresse des DynDNS Eintrages _meine_ FritzBox oder entsprechendes Geraet steckt.
Die Frage ist halt: Wie sicher will man sich sein?
In hohem Maße fälschungssicher (so dass sich nicht irgend ein anderes Gerät als meine Box ausgeben kann) ist m.E. eigentlich nur eine kryptografische Authentifizierung der Box (z.B. über eine SSL/TLS-Verbindung oder ssh).
 
@voipd

Nehmen wir mal an, du möchtest 10 Boxen überwachen.

Jetzt legst du in sip.conf 10 Konten an (siehe Asteriskbaukasten) und gibst ihnen alle einen eigenen Context (z.B. context=boxalive) Hier mal ein Beispiel für einen Account.

Code:
[B][U]sip.conf:[/U][/B]
[1000]
callerid=Kunde 1 <1000>
host=dynamic
domain=mein.sip.host
user=1000
secret=geheim
type=friend
nat=yes
qualify=60000  ; 60 Sekunden
canreinvite=no
context=boxalive
insecure=port,invite

Dieser Context werden in extensions.conf leer definiert, z.B.
Code:
[B][U]extensions.conf:[/U][/B]
[boxalive]
exten => _*.,1,NoOp(hier ist doch ein Telefon dran)

Damit sendet Asterisk alle 60 Sekunden ein "sip messages options" (irgendeine zulässige Meldung muss er halt absetzen, astersik verwendet "options"), dass man auf der Asterisk abfragen kann (siehe oben). Auf der Fritzbox braucht man hier garnichts, Asterisk kann es besser.

So kannst du auf einem vserver mit Leichtigkeit die Verfügbarkeit von in diesem Beispiel 10 Boxen überprüfen. Natürlich auch viel mehr.

@Gandalf
Ein Zertifikat braucht man hier sicher nicht. Auf der dyndns-Seite braucht man ja auch kein Zertifikat, um seine dyn.-IP zu hinterlegen. Weshalb sollte der Prüfmechnismus höhere Anforderungen erfüllen als der dyndns-Mechanismus.

Gruß, Stefan
 
@gfuer
TLS/SSL verwendet wie VPN Zertifikate. Das ist also vom Sicherheitsstandpunkt kein Unterschied zu Gandalfs Vorschlag: VPN-Zugriff.

ssh verwendet Schlüssel.
Mit Schlüsseln kann weder eine Authentifizierung noch ein Rückruf des Schlüssels erfolgen. Das ist sicherheitsmäßig weit unter einem Zertifikat angesiedelt.
 
Zuletzt bearbeitet:
@gandalf94305, gfuer

Also es muss nicht sicher sein, denn jede SIP/Fritz Box ist unsicher. Jeder der die IP kennt kann auch dort anklingeln. Stichwort: Telefonieren ohne SIP Provider.

Als Zeit ist eine Zeit von 5 - 10 Minuten als Pruefinterwall ausreichend.


Das Problem besteht bei SIP/Fritz Boxen, dass man dort selten Software installieren kann. Bei der FBF_Wlan, die z.B. mit von der Partie ist, kann ich kein VPN installieren.

Da finde ich die SIP Testmethode doch recht ansprechend.


@sago

So sehe ich das auch erstmal.

Koennte man so eine "Abfrage" auch mit den von tscoreninja oben genannten Tool sipsak machen oder ist diese Feature nur moeglich wenn sich die Clients beim Asterisk registriert haben?


Es wird langsam hell! :p

voipd.
 
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.