Am 01.11.2015 um 15:36 schrieb Heiko Schlittermann:
Moin,
Martin Schuchardt kruemeltee@gmx.de (So 01 Nov 2015 14:13:32 CET):
-----BEGIN PGP SIGNED MESSAGE----- rein aus Interesse, vielleicht kann mir ja jemand den nötigen Denkanstoß geben:
Wenn ich von Rechner A eine traceroute zu einem entfernten Rechner B mache (übers Internet), werden mir ja zwischenpunkte angegeben (i.d.R. Router oder dergleichen). Mache ich das gleiche mit mtr, dann gibts unterschiedliche Punkte (manche Zwischenpunkte antworten auf MTR aber nicht auf traceroute und werden daher bei letzterem gern man mit einem
- angezeigt).
Man macht sowas meist mit ICMP- oder UDP-Paketen, die eine begrenzte Lebensdauer haben, so dass einer der Router die Dinger wegschmeisst und Dich darüber per ICMP benachrichtigt (TTL exceeded in transit)
Wie funktionieren beide Sachen? Worauf basiert diese Fähigkeit, als Zwischenhop zu antworten? Kann ich ggf. einen managed Layer 2 Switch ebenfalls dazu bringen, sich als HOP bei einem mtr oder einem traceroute zu zeigen oder ist dafür ein Router notwendig?
Mit dem Switch auf L2 eher nicht. Jedenfalls nicht mit diesem Verfahren. Das ganze passiert auf L3 mit UDP oder ICMP. Sicher könnte man das auch mit TCP bauen, habe ich aber noch nicht gesehen. Wäre mal eine Praktikumsaufgabe :)
Meinst du tcptraceroute? Das gibt als Pakte schon fertig.
Das benötigt root-Rechte.
Da ich mal ein tcptraceroute ohne root-Rechte benötigte, habe ich eins selbst geschrieben.
http://www.thomas-guettler.de/scripts/tcptraceroute.py.txt
Der Nachteil bei der obigen Variante ohne Root-Rechte ist, dass man die IP-Adressen der Zischenhops nicht sieht.
Aber man kann ganz gut damit erahnen ob die blockierende Firewall nah oder weit weg ist.
Beispiel:
===> tcptraceroute.py heise.de 80 ttl=01: [Errno 113] No route to host ttl=02: [Errno 113] No route to host ttl=03: [Errno 113] No route to host ttl=04: [Errno 113] No route to host ttl=05: [Errno 113] No route to host ttl=06: [Errno 113] No route to host ttl=07: [Errno 113] No route to host ttl=08: [Errno 113] No route to host ttl=09: [Errno 113] No route to host ttl=10: OK
Gruß, Thomas