Jedes gesendete Datenpaket enthält einen TTL-Wert im IP-Paket-Header. Dies bezieht sich auf die Anzahl der Hops, die Daten durchlaufen können, bevor sie verworfen werden. Basierend auf dem Netzwerkverkehr zwischen Hosts ist es möglich vorherzusagen, welches Betriebssystem auf einem System läuft. Jedes Betriebssystem hat seine eigene Art, den TCP/IP-Stack zu implementieren. Eine sehr einfache, aber effektive passive Methode besteht darin, die anfängliche Lebensdauer (TTL) im IP-Header zu untersuchen:
„Lebensdauer überschritten“ Dieser ICMP-Ping-Fehler ist darauf zurückzuführen, dass das Feld „Lebensdauer“ (TTL) einen Nullwert erreicht, oder es gibt eine Zeitüberschreitung für das erneute Zusammensetzen von Segmenten. Als Lösung empfehle ich, den TTL-Wert (Time To Live) zu erhöhen (der höchste Wert ist 255).
Lösung
Führen Sie beispielsweise Traceroute zur IP-Adresse 8.8.8.8 (dem öffentlichen DNS-Server von Google) aus. Und finde die Anzahl der Sprünge zum Ziel.
[root@server ~]# traceroute 8.8.8.8 (in linux distro) C:\>tracert 8.8.8.8 (in Windows OS)
Für mich sind es 6 Sprünge zu 8.8.8.8. Daher ist ein minimaler TTL-Wert von 6 erforderlich, um icmp-Pakete bis 8.8.8.8 zu erreichen und eine Ping-Wiedergabe zu erhalten. Und kann mit einem TTL-Wert von 5 oder weniger nicht an 8.8.8.8 pingen.
Ping-Ergebnisse mit unterschiedlichen TTL-Werten:
[root@server ~]# ping 8.8.8.8 -t 5 (-t 5 is for custom TTL value of 5) PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. From 192.168.1.1 icmp_seq=1 Time to live exceeded From 192.168.1.1 icmp_seq=2 Time to live exceeded From 192.168.1.1 icmp_seq=3 Time to live exceeded From 192.168.1.1 icmp_seq=4 Time to live exceeded
# ping 8.8.8.8 -t 6 (-t 6 steht für benutzerdefinierten TTL-Wert von 6)
PING 8.8.8.8 (8.8.8.8) 56(84) Datenbytes.
64 Bytes ab 8.8.8.8:icmp_req=1 ttl=55 time=48,9 ms
64 bytes ab 8.8.8.8:icmp_req=2 ttl=55 time=49,5 ms
64 bytes ab 8.8.8.8:icmp_req=3 ttl=55 Zeit=50,4 ms
64 Bytes von 8.8.8.8:icmp_req=4 ttl=55 Zeit=49,4 ms