Hallo Alle miteinander,
ich habe einen Rechner mit zwei Netzwerkkarten der unter Debian GNU/Linux 3.1 (Sarge) mit Kernel 2.6.11 läuft.
Jetzt möchte ich die Netzwerkkarten testen, indem ich die Ports über ein Crossover-Kabel verbinde und einen Ping mache.
Das Problem dabei ist, dass der ganze Netzwerkverkehr nur lokal abläuft und gar nichts über die physikalischen Ports geht.
Die Karten sind folgendermassen konfiguriert:
eth0 = 192.168.0.1
eth1 = 192.168.0.2
“route -n” ergibt in etwa (abgeschrieben):
Dest. Gateway Flags IFace
192.168.0.1 192.168.0.2 UGH eth1
192.168.0.2 192.168.0.1 UGH eth0
“ping 192.168.0.2” bzw. “ping 192.168.0.1” läuft immer nur Lokal. Es ist egal ob das Kabel steckt oder nicht.
“ping 192.168.0.2 -I eth1” geht ebenfalls nur lokal.
“ping 192.168.0.2 -I eth0” testet immerhin teilweise. Diesmal kann man an den LEDs der Netzwerkkarten sehen, dass wirklich Daten übers Kabel laufen. Es gibt auch einen Unterschied zwischen gestecktem und gezogenem Kabel. Aber der Ping meldet “destination host not reachable” und alle Pakete gehen verloren.
Irgendwie ist Linux zu intelligent und erkennt, dass gar keine Notwendigkeit besteht, über das Kabel die Daten zu senden. Obwohl die Routing-Tabelle IMHO was anderes sagt.
Wenn ich das gleiche unter W2k (schande über mich ;-)) mache, dann funkioniert es wie gedacht. Ein Hardwarefehler sollte es also nicht sein.
Kennt sich irgendjemand mit dieser Problematik aus, bzw. hat ein ähnliches Problem schon mal gelöst?
Vielleicht sind IPTABLES die Lösung? Aber da kenne ich mich gar nicht aus.
Grüsse, euer
Segafredo
Hallo,
deine abgeschriebene Routingtabelle ist unvollständig, es fehlt die Netzmaske!
Ziel Router Genmask Flags Metric Ref Use Iface
192.168.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
sowas könnte helfen, diese Netzmaske definiert eine Punkt-zu-Punkt-Verbindung, die jetzt über Kreuz eingetragen ist.
bis denn
Günter
Hallo Thomas!
Irgendwie ist Linux zu intelligent und erkennt, dass gar keine Notwendigkeit besteht, über das Kabel die Daten zu senden. Obwohl die Routing-Tabelle IMHO was anderes sagt.
Das liegt nicht daran, dass Linux so intelligent wäre, sondern daran, dass die Ausgabe von route -n nicht die ganze Wahrheit darstellt.
route -n zeigt nur die Einträge in der Routing Tabelle “main”. Zusätzlich gibt es standardmäßig aber auch noch die Routing Tabelle “local”, die der Kernel selbständig verwaltet (z.B. beim Hinzufügen und Entfernen von IP Adressen). Der Befehl ip route list table local zeigt Dir eine Route vom Type local für jede der IP-Adressen des Systems.
Durch Manipulation der Routen in der local Tabelle könntest Du das gewünschte Verhalten sicher erzielen (evtl. muss man dazu auch die ARP-Auflösung noch überreden). Aber ehrlich gesagt kommt mir das Szenario eher akademisch vor, oder hast Du einen praktischen Anwendungsfall dafür?
Harald
Hallo Harald,
danke für den Hinweis auf die verschiedenen Routing Tabellen. Ich habe bisher nur “route -C” gekannt. Und deie gecachten Routen waren in meinem Fall immer leer.
Das mit den “ip route list table local” werde ich gleich probieren.
So akademisch ist das übrigens nicht. Ich möchte die Netzwerkkarten von ein paar Rechnern testen und habe aber nicht immer einen anderen Rechner als Gegenstelle zur Verfügung.
Thomas
Hallo Günter,
das war mein Fehler. Ich habe vergessen die Netzmaske mit abzuschreiben. Tatsächlich stand die Netzmaske immer auf 255.255.255.255.
Trotzdem danke für die Anregung
Thomas