Routing Tabelle bei zwei Netzwerkkarten unter Windows?
Ich habe zwei Netzwerkkarten auf einem Insel-PC. Die eine hat IP-Adresse eth0/192.168.1.10/Subnet 255.255.255.0, die andere eth1/192.168.2.10/Subnet 255.255.255.0
Nun möchte ich von einem Lokalen Client, der auf 192.168.1.10 läuft eine Verbindung zu einem server auf 192.168.2.11 aufbauen.
Wie muss ich die Roting Tabelle einrichten, damit der Request an das richtige Interface (eth1) geleitet wird?
Destination Gateway Netmask Interface
192.168.2.11 ???????? 255.255.255.0 eth1
Ich weiß nicht, was ich hier unter "Gateway" eintagen soll. Wenn dann die Antwort von 192.168.2.11 auf eth1 zurückkommt, muss diese wieder geroutet werden? Sie muss ja an den Client gehen, der auf 192.168.1.10 läuft. Die Karte eth1 weiß von dem ja nichts...wie richte ich das nun ein? Ist es erforderlich, auch hier einen Eintag in die Tabelle zu machen? Oder weiß das Betriebssystem automatisch was zu tun ist?
5 Antworten
Das Geheimnis liegt darin, dass auf deinem Rechner nicht geroutet wird.
Die Ansätze hier sind alle unterschiedlich.
Die Antwort, dass deine Subnetzmaske auf 255.255.0.0 angepasst werden soll macht nicht wirklich Sinn. Dann befinden wir uns im Switching und nicht im Routing.
Die Voraussetzungen hast du schon richtig gesetzt, nämlich dass dein PC (wie ein Router) in beide Netz ein Standbein hat. Du brauchst somit in der Routingtabelle selbst nichts anpassen, da die Netze "directly connected" sind.
Das Problem welches du hast ist, dass dein PC überhaupt nicht routen will. Und das auch zurecht. Warum sollte dein PC Pakete weiterleiten die gar nicht für ihn sind? Das machen deine anderen Hosts im Netzwerk doch auch nicht. Auch wenn sie fünf Netzzugänge bekommen.
Unter Windows kannst du allerdings einen Routing Dienst nachinstallieren. Der nennt sich Routing & RAS. Habe es bisher aber nur auf Server-Systemen gemacht und nutze keinen Windows-Client, kann also gerade nicht nachschauen.
Müsste aber gehen, schau mal hier:
Hier eine genaue Beschreibung, was ich machen will:
Ich habe ein Produkt, das aus einem Client und vielen Servern besteht (Smart Meter). Der Client kann von jedem Server Daten abfragen (Bild a, mit nur einem Server)
Der Übertragungskanal zu den Servern geht über eine PLC Strecke, die langsam und störanfällig ist. Um die Auswirkungen von Störungen und Ausfällen der Strecke auf das Gesamtsystem quantitativ beurteilen zu können, wollen wir den "schlechten Kanal" durch einen Netzwerkemulator simulieren. Dabei wird das Produkt NetDisturb eingesetzt, welches auf einem eigenen PC mit zwei Netzwarkkarten läuft. Ethernet Pakete die bei A reingehen werden verzögert, gestört, usw... und kommen bei B wieder raus. Umgekehrt ist es genauso. D.h. ich schalte den Emulator einfach zwischen Client und dem einen Server (Bild b).
Nun will ich aber Server und Client auf einem einzigen PC simulieren, d.h. statt der echten Geräte schreibe ich jeweils eine Server- und eine
Client Applikation, die beide auf der gleichen Maschine laufen sollen (Bild c) und die Funktion der echten Geräte nachbilden.
Wenn ich nun den Server ansprechen will, befindet der sich ja am gleichen PC wie der Client, con dem der Request ausgeht. Damit ich erzwinge, dass die Kommunikation wirklich über eine Netzwerkkarte nach außen geht und nicht über internes Loop-back läuft, dachte ich mir, ich verwende zwei Netzwerke (192.168.1.0 und 192.168.2.0) die zwei separaten Netzwerkkarten zugeordnet sind.
Der Server läuft als Simulation auf der IP Adresse 192.168.1.10. Wenn mein Client nun eine Verbindung zu 192.168.1.10 aufbaut, sollen die Pakete aber bei A rausgehen, und über den Emulator bei B wieder rein, wo der Server ja registriert ist.
Wie erreiche ich nun, dass eine Verbindung zu 192.168.1.10 nun tatsächlich über A rausgeht? Ich dachte mir, dass man das über einen Routing Eintrag bewerkstelligen kann, weiß aber nicht wie...
Geht das so überhaupt?
Wären Client und Server wie bei b) auf zwei verschiedenen Maschinen, wäre es ja kein Thema und ich bräuchte auch nicht zwei Netzwerke. Nur bei c) weiß ich nicht weiter...
Wäre super, wenn mir hier jemand einen Tipp geben könnte.

Wie sieht denn deine Routingtabelle bis jetzt aus?
ich zeichne mal auf was ich konkret machen möchte, da es sonst nur Verwirrung gibt. Ich melde mich wieder.
Denn es sollten bereits Einträge gemacht werden, da Router uns PCs ihre directly connected Networks in die RT selbstständig eintragen, je nach Konfiguration des Interfaces.
Ein Gateway wäre die Adresse, an die eine Nachricht geschickt wird, falls er keine Route zu dem gewünschten Netz kennt. Heute erfüllt das im Normalfall ein Router;
Falls du also kein Gateway hast, dann brauchst du da auch nichts eintragen
habe nun noch separat geschrieben, was ich genau machen will. Es ist sonst nicht verständlich.
also meiner Meinung nach musst du nur das Subnetz auf 255.255.0.0 umstellen. Dann sind beide Netzwerkkarten im gleichen Subnetz und das Routing sollte funktionieren.
Nein es geht dann trotzdem nicht, und routing ist hier dann ebenfalls der falsche Begriff.
ja du hast insofern recht, dass man dann überhaupt nicht routen muss, wenn sich die Rechner alle im gleichen Subnet befinden.
Nur dass der PC genauso wenig switchen wie routen wird ;) Deine Lösung wird einfach nichts bringen.
Der PC ist ja im gleichen Subnetz. 192.168.2.10 und .11 sind ja beide im 255.255.255.0er-Subnetz (Das Subnetz geht hier dann von 192.168.2.1 - 255).
Somit brauchst du keine Route, da das Subnetz nicht verlassen wird. Hier wird dann mit ARP gearbeitet, um die MAC-Adresse des anderen Gerätes zu erfragen und dann werden die Daten direkt an das Gerät gesendet.
http://www.airnet.de/cr1-gfe/de/html/IntLayTCPIP_learningObject17.xml
Damit das funktioniert brauchst du ein Gerät, welches in beiden Subnets ist, sprich einen Router.
Sofern dein PC nun 2 Karten hat wäre er ja bereits im 192.168.2.0/24er-Netz und könnte direkt (ohne Routing) darauf zugreifen. Folglich musst bei Gateway nichts stehen bzw. ein Platzhalter: (Beispiel von meinem Debian-Server)
Ziel - Router - Netmask - Interface
10.234.1.0 * 255.255.255.192 br0
Dein System versucht somit immer erstmal über verfügbare LAN-Verbindungen (sprich ohne Routing) zuzugreifen.
ich habe es nochmals zusammengeschrieben, was ich genau machen will, da das bisherige zu wirr war, um verstanden zu werden.
Er wird aber dennoch nicht routen, das Problem liegt nicht in der Routingtabelle, sondern im nicht vorhandenen Routingdienst.
tipp mal route in die kommandozeile ein und poste hier, was denn bereits drinsteht.