Ich habe zwei Netzwerke: 192.168.13.0/24 (blau) und 192.168.15.0/24 (grün).
Computer A ist nur mit dem 13-Netz verbunden. Computer B hat zwei Schnittstellen, eine in jedem Netzwerk.
Es gibt einen dritten Computer, der als Router fungiert und das 13-Netz mit dem 15-Netz verbindet (nur in diese Richtung).
Nun möchte ichPing 192.168.15.100von Rechner A nach B. Leider kommt nie eine Antwort. Wenn ich aber statt eines Switches einen Hub verwende, klappt es.
Meiner Meinung nach wandert das Ping-Paket über den Switch zum Router (der die Standardroute/das Standardgateway für A ist). Der Router sendet das Paket zurück an den Switch zu B. Wahrscheinlich empfängt B es über seine 15-Net-Schnittstelle, antwortet aber über seine 15. Schnittstelle? Ist das möglich?
Das Problem ist, dass B möglicherweise nur ein Gateway 192.168.13.50 hat - aber da bin ich mir nicht wirklich sicher (B ist ein eingebettetes System mit eingeschränkten Konfigurationsmöglichkeiten).
Kann mir jemand erklären, was hier passiert? Danke!
Antwort1
In beiden Fällen beginnt der Ping mit einer arp
Anfrage, die MAC-Adresse des Routers abzurufen. Anschließend wird die Ping-Nachricht in ein Layer-2-Paket mit dem Router als Ziel verpackt.
Was passiert, wenn Sie Folgendes verwenden hub
:
- Der Ping wird an alle Clients gesendet (B x 2 und den Router),
- die Schnittstelle B.13.100 verwirft das Paket,
- aber seine 15.100-Schnittstelle bekommt es, wahrscheinlich im Promiscuous-Modus (unter Ignorierung des MAC-Ziels),
- Daher antwortet B direkt an A über seine 13.100-Schnittstelle.
Verwendung einer switch
,
- B erhält das Paket nicht direkt. Der Switchweißdass das A-Paket (dank seiner Ziel-MAC-Adresse) an den Router gerichtet ist und die anderen Ports nicht einbezieht.
- Der Router sollte das Paket normalerweise über seine Schnittstelle 13.50 empfangen,
- und sollte es über seine 15.50-Schnittstelle an B weiterleiten.
- B sollte es über seine 15.100-Schnittstelle erhalten und über seine 13.100-Schnittstelle antworten
- A sollte es direkt bekommen, tut es aber nicht.
Wahrscheinlich liegt ein Problem mit dem Router vor.
Versuchen Sie es mit einem traceroute
Befehl von A über den Switch.
Antwort2
Was Sie wahrscheinlich sehen, ist Folgendes:
- Paket geht aus Schnittstelle A (13.10)
- Wird über den Router zu B weitergeleitet (15.100 über den Router)
- Wird von B empfangen (15.100)
- B will antworten und sagt: „Oh, hey, ich bin im selben Netzwerk!“
- Paket geht aus Schnittstelle B(13.100)
- Wird empfangen von A (13.10)
- Ich sage, das erwarte ich nicht von einem Paket mit 13.100 Tropfen
Sie können dies bestätigen, indem Sie beim Senden des Pings eine Paketverfolgung für A und B ausführen, die Header ansehen und die Quell- und Zieladressen überprüfen.
Die einzige wirkliche Möglichkeit, dieses Problem zu lösen, besteht darin, einen /32-Routing-Eintrag auf Host B hinzuzufügen, um das Paket über 15.100 hinaus zu zwingen, aber das ist nicht gut skalierbar.
Antwort3
a) Machen Sie einen tracert
von Computer A zu Computer B, das sollte zeigen, welche Hops benötigt werden.
b) Welche Standard-Gateways sind auf Computer B eingestellt?
c) Um welchen Switch-Typ handelt es sich? Schicht 2, Schicht 3?
d) Können Sie versuchen, die 13.100-Netzwerkkarte auf Computer B vollständig zu deaktivieren und dann den Computer neu zu starten und ihn anzupingen, um zu sehen, ob das funktioniert?