Ich richte einen Bash-Skript-Netzwerkmonitor ein, dessen Kern ich verwende ping
.
Wenn ein Host ausfällt, erhalte ich host is unreachable
normalerweise den Standard .
Aber auf einer Box scheint es einen umgeleiteten Ping zu bekommen, den ich nicht verstehen kann.
Mein Netzwerk:
ping
Zählung unten nur der Kürze halber gekürzt.MBP IP:192.168.178.45
|
|
SWITCH#1 ---- Fritz.box (DHCP/Internet) ---- ISP
| \ 192.168.178.1
| \
| \ dav3tc (Apple Time Capsule)
| \__ 192.168.178.29
|
SWITCH#2
| \
| \
| \ wwwelc (Mac mini running 10.11 but turned off)
| \___ 192.168.178.80
\
\ Ubuntu
\__ 192.168.178.28
Beide Maschinen (wir nennen wwwelc
und Ubuntu
) befinden sich im Shutdown-Zustand* und sind WoL
aktiv (mit der Ausnahme, dass der Mac mini noch nicht hochfährt – der Grund wird zu einem späteren Zeitpunkt ermittelt).
Bearbeiten: Es stellte sich heraus, dass sich der Mac mini nur in einem Schlafzustand befand, was schlimmer ist, da er überhaupt nicht aufwachte ... Gegenstand einer anderen, wenn auch möglicherweise verwandten Frage
Vom MBP erhalte ich zwei verschiedene unerreichbare Antworten. Führen Sie von demselben Computer (dem MBP) und in derselben Terminalsitzung / demselben Terminalbildschirm aus:
MBP:~ madivad$ ping -c 3 -W 1 192.168.178.28
PING 192.168.178.28 (192.168.178.28): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
--- 192.168.178.28 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
MBP:~ madivad$ ping -c 3 -W 1 192.168.178.80
PING 192.168.178.80 (192.168.178.80): 56 data bytes
36 bytes from dav3tc.fritz.box (192.168.178.29): Redirect Host(New addr: 192.168.178.80)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 1c50 0 0000 40 01 788a 192.168.178.45 192.168.178.80
Request timeout for icmp_seq 0
36 bytes from dav3tc.fritz.box (192.168.178.29): Redirect Host(New addr: 192.168.178.80)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 8ff4 0 0000 40 01 04e6 192.168.178.45 192.168.178.80
Request timeout for icmp_seq 1
36 bytes from dav3tc.fritz.box (192.168.178.29): Redirect Host(New addr: 192.168.178.80)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 bda5 0 0000 40 01 d734 192.168.178.45 192.168.178.80
--- 192.168.178.80 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
Beide antworten mit dem Erwarteten Request timeout for icmp_seq
und in vielen Paketen sieht man manchmal auch ping: sendto: Host is down
.
Manchmal erscheint eine ähnliche Umleitung, wenn das System hochgefahren ist, aber ich habe jetzt Probleme, sie zu replizieren. Um es damals zu beheben, habe ich einfach den Ethernet-Port heruntergefahren und wieder hochgefahren:
sudo ifconfig en0 down && sudo ifconfig en0 up && exit
Ich habe dies ausgeführt SSH
und ohne das exit
würde es meine Remote-Terminal-Sitzung sperren :)
Hier ist eine Kopie der ping
Ergebnisse, wenn ich das herunterfahre wwwelc
:
64 bytes from 192.168.178.80: icmp_seq=1273 ttl=64 time=0.674 ms
64 bytes from 192.168.178.80: icmp_seq=1274 ttl=64 time=0.528 ms
64 bytes from 192.168.178.80: icmp_seq=1275 ttl=64 time=0.636 ms
64 bytes from 192.168.178.80: icmp_seq=1276 ttl=64 time=0.715 ms
Request timeout for icmp_seq 1277
Request timeout for icmp_seq 1278
Request timeout for icmp_seq 1279
36 bytes from dav3tc.fritz.box (192.168.178.29): Redirect Host(New addr: 192.168.178.80)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 4506 0 0000 40 01 4fd4 192.168.178.45 192.168.178.80
Request timeout for icmp_seq 1280
36 bytes from dav3tc.fritz.box (192.168.178.29): Redirect Host(New addr: 192.168.178.80)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 aaae 0 0000 40 01 ea2b 192.168.178.45 192.168.178.80
Wie wir sehen können, mischt sich die Zeitmaschine wieder ein.
Sie können sehen, wenn die Time Machine nicht angeschlossen ist:
Request timeout for icmp_seq 1462
36 bytes from dav3tc.fritz.box (192.168.178.29): Redirect Host(New addr: 192.168.178.80)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 cb5d 0 0000 40 01 c97c 192.168.178.45 192.168.178.80
Request timeout for icmp_seq 1463
Request timeout for icmp_seq 1464
Request timeout for icmp_seq 1465
Request timeout for icmp_seq 1466
Dann habe ich die Time Machine wieder angeschlossen und ihr Zeit zum Booten gegeben. Meine Pings wwelc
blieben prägnant. Ich habe es aus dem Schlaf geweckt (ich habe es geschafft, es mit aufzuwecken Magic Packet
), mich angemeldet SSH
und es wieder in den Schlaf geschickt (ja, ich bin böse – wach auf, geh wieder schlafen, wach auf, geh wieder schlafen): )
Ich dachte, es würde alles gut werden, aber schließlich sah ich das (Pings-Timeout, sobald es schläft):
64 bytes from 192.168.178.80: icmp_seq=1670 ttl=64 time=0.617 ms
64 bytes from 192.168.178.80: icmp_seq=1671 ttl=64 time=0.588 ms
64 bytes from 192.168.178.80: icmp_seq=1672 ttl=64 time=0.493 ms
64 bytes from 192.168.178.80: icmp_seq=1673 ttl=64 time=0.690 ms
Request timeout for icmp_seq 1674
Request timeout for icmp_seq 1675
Request timeout for icmp_seq 1676
Request timeout for icmp_seq 1677
Request timeout for icmp_seq 1678
36 bytes from dav3tc.fritz.box (192.168.178.29): Redirect Host(New addr: 192.168.178.80)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 f5fb 0 0000 40 01 9ede 192.168.178.45 192.168.178.80
Request timeout for icmp_seq 1679
36 bytes from dav3tc.fritz.box (192.168.178.29): Redirect Host(New addr: 192.168.178.80)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 a2db 0 0000 40 01 f1fe 192.168.178.45 192.168.178.80
Request timeout for icmp_seq 1680
36 bytes from dav3tc.fritz.box (192.168.178.29): Redirect Host(New addr: 192.168.178.80)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 41f4 0 0000 40 01 52e6 192.168.178.45 192.168.178.80
Ich bin nochmal die Time Machine Einstellungen durchgegangen und kann nicht erkennen wo, wie oder warum es in den Ping eingreift. WLAN ist in beiden Einheiten ausgeschaltet.
Hier ist ein Ping zu einem anderen Mac mini:
MBP:~ madivad$ ping 192.168.178.26
PING 192.168.178.26 (192.168.178.26): 56 data bytes
64 bytes from 192.168.178.26: icmp_seq=0 ttl=64 time=66.294 ms
64 bytes from 192.168.178.26: icmp_seq=1 ttl=64 time=2.006 ms
64 bytes from 192.168.178.26: icmp_seq=2 ttl=64 time=1.665 ms
64 bytes from 192.168.178.26: icmp_seq=3 ttl=64 time=20.826 ms
Aus irgendeinem Grund geht das Ping eines Mac mini ( wwwelc
) von meinem MBP über die Zeitmaschine, wenn der Mac mini nicht erreichbar ist.
Irgendwelche Ideen?
Es gibt wirklich keinen Grund zur Sorge - was Sie sehen, sind ICMP-Umleitungen, und sie sind an sich kein Problem.
Der Grund für das, was Sie sehen, ist folgender:
Ihr MBP hat normalerweise die MAC-Adresse von wwwelc in seinem ARP-Cache. Ebenso wissen SWITCH1 und SWITCH2, an welchem ihrer Ports der Rechner mit der MAC-Adresse von wwwelc angeschlossen ist. Das bedeutet, dass er IP-Pakete direkt an die MAC-Adresse von wwwelc senden kann.
Wenn Sie den Mac Mini ausschalten und einige Zeit vergeht, wird die MAC-Adresse schließlich aus den Caches auf Ihren Switches und/oder dem ARP-Cache auf dem MBP geleert.
Stellen Sie sich vor, es befindet sich nicht mehr im Cache des Switches. Das bedeutet, dass der Switch keine andere Wahl hat, als Pakete für diese MAC-Adresse an alle seine Ports zu senden. Dies bedeutet, dass SWITCH1 das Paket sowohl an die Time Capsule als auch an SWITCH2 sendet.
Die Time Capsule empfängt das Paket und fungiert als Router. Es wird versuchen, das Paket an sein Ziel zu leiten. Es stellt fest, dass das Paket tatsächlich für etwas auf der Ethernet-Verbindung bestimmt ist, über die es in die Time Capsule gekommen ist – dh es soll nicht mit den WiFi- oder Internetverbindungsports nach außen geleitet werden.
Für diese Situation haben wir etwas namens ICMP-Umleitungen. Es ist vielen Routern verschiedener Hersteller gemeinsam - es ist also nicht Time Capsule-spezifisch.
Die Time Capsule sendet die ICMP-Umleitung als "nett". Es teilt dem Absender mit, dass er ein Paket erhalten hat, bei dem der Absender es tatsächlich direkt an den nächsten Hop der Route hätte senden können, ohne die Time Capsule einzubeziehen. Es lässt es also wissen, dass es einen Sprung hätte sparen können.
Dh folgende Bedingungen sind erfüllt:
Das Paket kam auf dem gleichen Port an, von dem es weitergeleitet werden soll
Das Netzwerk (Subnetz) der Quell-IP ist dasselbe Netzwerk wie der nächste Hop (dh der Absender hätte es einfach direkt an diesen nächsten Hop senden können).
Das Paket wird nicht an die Quelle weitergeleitet (dh der Absender hat keinen bestimmten zu nehmenden Pfad angegeben).
Das ist also die Erklärung für das, was Sie sehen. Die Time Capsule empfängt das Paket, weil der SWITCH oder MBP nicht weiß, wohin das Paket gesendet werden soll – also sendet es es. Die Time Capsule versucht nett zu sein und sagt, dass das Paket einfacher hätte zugestellt werden können. Und schließlich ist das Ziel wwwelc immer noch ausgefallen, sodass Sie natürlich keine Antworten vom Ziel erhalten werden.
klanomath
Thorbjørn Ravn Andersen