Hallo, Am Thu, 29 Sep 2005, Arno Lehmann schrieb:
On 28.09.2005 03:22, David Haller wrote: ...
Na ja. Im Prinzip hast Du recht, aber zunächst mal glaube ich ja dass ich nicht wissen kann welche IPs extern gültig sind.
Naja, die des (externen) DNS-Servers sollte wohl gueltig sein... ;)
Also gut, bei den root-Servern lass' ich ja mit mir reden. :-)
*g* Oder die deines Providers... Ggfs. kann man die ja direkt aus der /etc/resolv.conf auslesen oder bei nem extra Router kommt man u.U. auch ran (wenn der Router ein telnet IF hat und man darueber die IP auslesen kann -- Theoretisch koennte man auch eine WUI[1] parsen). Oder man sucht sich ne Liste von IPs zusammen (z.B. die Nameserver von mehreren grossen Providern) und iteriert ueber diese bis man durchkommt oder sowas... Ich hab hier noch z.B. einige IPs von T-Online (dns, mail und news server)... Und die IPs der Root-Server kann man ja auch noch ans Ende der Liste stellen ;) #/bin/bash ... IPLIST=( 194.25.2.129 194.25.2.130 194.25.2.131 ) for ip in ${IPLIST[*]}; do ... done Dabei hilft ein 'dig ns provider.domain' ;) [..]
Äh, ja. Das ist mir klar. Aber irgendwie ist mir grade nicht klar wie das mein Problem löst (zugegeben, ursprünglich nicht meins): Ich will ja wissen ob eine Internetverbindung besteht. Ich kann die IP-Adresse des Upstream-Routers nicht wissen. Ich kann aber, ausgehend von der Kenntnis meines Netzwerks, wissen nach welchem Hop ich "Das Internet" am Draht habe, nämlich nach einem mehr als ich Router intern passiere.
Jep. Oder zur Sicherheit noch ein hop mehr, denn ich kenne das von Modem und DSL, dass zwar der PtP erreichbar und pingbar war, aber alles dahinter nicht. Andererseits weisst du, dass wenn der erste externe Host erreichbar ist, dass dann die Minuten/Volumenzaehler wohl mitlaufen... Da muss man eben aussuchen, was genau man testen will ;) Jedenfalls: die Anzahl internen Hops sollte man i.d.R. kennen, ich kann mir was anderes nur bei wirklich grossen "internen" Netzen vorstellen, dass man mal ueber mehr und mal ueber weniger Hops nach "draussen" geroutet wird. Bsp. wenn man als T-* das T-* Netz als "intern" ansehen kann und auf verschiedenen Wegen zum DE-CIX oder ins DFN-Netz kommen kann ;)
Aber unabhängig davon - das häufigere Problem das ich sehe ist ein anderes, und damit kommt in der Tat Dein ping-Vorschlag besser zurecht als mein traceroute - sind router die gar keine ICMP ttl exceeded, timeouts oder echo replies verschicken. Ich muss da erst auf 'ne IP filtern, ping liefert dann schon das (brauchbare) timeout.
Dann kann man aber nicht unterscheiden ob "ausgefallen"... Naja, dann koennte man ausprobieren ein paar Hops weiter zu einem Host zu pingen der eine TTL-Exceeded Fehlermeldung liefert, so dass man diese von einem Ausfall unterscheiden kann. [..]
... Danke für das schöne Beispiel.
Siehe bitte den Nachtrag!
Wie gross ist eigentlich inzwischen Deine Sammlung solcher ad-hoc-Demontrationen?
Keine Ahnung *g* Sind sicherlich inzwischen deutlich ueber 100... Und ich hebe auch nicht alles auf bzw. habe die teils nur und direkt in eine Mail geschrieben...
Ich hoffe, es ist jetzt klarer, was ich gemeint habe ;)
Ooch, mir schon, nur bin ich bei meiner Lösung von dem - zugegebenermassen nicht besonders häufig zutreffenden - Fall ausgegangen dass ich eben keine garantiert vorhandene externe IP-Adresse kenne
Siehe oben. Das kann man umgehen und IMHO hinreichend zuverlaessig machen. Es muesste dann reichen, so vielleicht alle 3 Monate oder so mal zu schauen, ob die IPs noch bekannt sind[2]. Der Witz ist ja, dass man ja gar nicht bis zur Ziel-IP durchpingen braucht und will :) Das einzige was man braucht ist, dass die Ziel-IP als "routebar" angesehen wird :)
und dass ich nicht wissen kann aus welchem IP-Subnetz mein Provider seine Router versorgt.
Siehe oben, das muss man auch garnicht wenn man das oder die interenen Netze kennt -- dann testet man eben "$extip \not\in $int_networks".
Das ist allerdings bei genau einer Internetanbindung mit festem Vertragspartner bzw. Kabelvermieter eher kein Problem :-)
Dann noch weniger, jep :) -dnh [1] Web User Interface ;) [2] koennte man mittels eines weiteren scripts und cron auch automatisieren ;) -- "The Write Many, Read Never drive. For those people that don't know their system has a /dev/null already." -- Rik Steenwinkel on Exabyte drives