Getrenntes Routing von zwei privaten Netzten

Post Reply
Message
Author
friedrich
Posts: 46
Joined: 29. Jan 2002 0:46

Getrenntes Routing von zwei privaten Netzten

#1 Post by friedrich »

Hallo,

ich habe hier zwei rechner mit jeweils zwei netzwerkkarten unter linux (einer 2.4.18, der andere 2.2.20) laufen. Auf eth1 auf beiden Rechner hängt eine 10.0.0.0/24 Adresse und jeweils auf den eth0 eine IP aus 192.168.0.0/24. Die eth0-Schnittstellen hängen jeweils auf einem Switch, die eth1-Schnittstellen ist jeweils zum anderen Rechner eine Crossover Verbindung.
Default Gateway ist auf allen Rechnern die 192.168.0.1

So ist es vielleicht deutlicher:

def-Gateway (192.168.0.1)
|
_________ Switch ___________
| |
-- eth0 ----- --- eth0 ---
|192.168.0.10 | |192.168.0.20|
|Rechner A | |Rechner B |
|10.0.0.10 | |10.0.0.20 |
|___eth1______| |___eth1_____|
| |
--------- Crossover ---------

Rechner A:
eth0: 192.168.0.10 -> Switch
eth1: 10.0.0.10 -> Crossover zu 10.0.0.20

Rechner B:
eth0: 192.168.0.20 -> Switch
eth1: 10.0.0.20 -> Crossover zu 10.0.0.10

Ich verwende oder vielmehr will die eth1-Schnittstellen (sind 100Mbit, eth0 nur 10Mbit) für Backups zwischen den beiden Rechnern verwenden. Bei einem Test war die Datenübertragungsgeschwindigkeit verhältnismäßig gering (~400Kilobyte/sek) und ein Blick auf den 10Mbit Switch erklärte mir dann durch wildes blinken, hey das Backup geht durch mich hindurch statt durch das Crossover ;)

Ist ja eigentlich logisch, da das default gateway 192.168.0.1 ist und über diesen Switrch zu erreichen ist. Ich dachte jedoch wenn ich eine Verbindung zu 10.0.0.20 von Server A aufbaue, das es automatisch durch eth1 hindurch geht und nicht das default Gateway.. ? Den Backuptest habe ich mit ssh gemacht (ssh 10.0.0.20 cat /var/log/messages* | cat > test), auch mit ssh -b 10.0.0.10 habe ich es probiert.

Ich habe dann mit dem Befehl route versucht den derzeitigen Status zu ändern, so daß die Verbindungen zwischen 10.0.0.10 und 10.0.0.20 nicht über eth0 laufen. Ich habe einige Befehle probiert, auch was ich so in google gefunden habe, was sich jedoch leider so gut wie immer nur auf das routing zwischen zeit netzten bei einem computer herausgestellt hat. Versucht habe ich z.B.

# route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.20 dev eth1
# route add -host 10.0.0.20 dev eth1

selbes auf dem anderen rechner respektive mit der 10.0.0.10

Leider ohne Erfolg. Kann mich jemand zu dem sicherlich nicht allzuweit entfernten Ziel mittels eines Tips stoßen?

rossi

Re: Getrenntes Routing von zwei privaten Netzten

#2 Post by rossi »

Ein "cat /proc/sys/net/ipv4/ip_forward" ergibt "1" nehme ich an. Hast Du mal "tcpdump -i eth1" ? Auf das Blinken würde ich mich nicht unbedingt veralssen. Nächste Frage wäre die nach den Rechnern - ein 486er wird keine 100MBit Leitung voll bedienen können.
Die routen hast Du auch auf beiden Rechner eingestellt (wobei ich fast glaube, das Linux die automatisch erkennen sollte und die nicht explizit gesetzt werden müssen. Bin mir aber nicht sicher) ?

Mehr fällt mir im Moment auch nicht ein.

friedrich
Posts: 46
Joined: 29. Jan 2002 0:46

Re: Getrenntes Routing von zwei privaten Netzten

#3 Post by friedrich »

Danke erstmal für Deine Hilfe.

> Ein "cat /proc/sys/net/ipv4/ip_forward" ergibt "1" nehme ich an.

- Nein bringt 0, das sollte aber auch richtig sein, denn es sollen ja keine Pakete weitergeleitet werden. Es sollen ja lediglich die Daten von Server A nach B und umgekehrt über das 10.0.0.x-Netz laufen und nicht wie derzeit über das 192.168.0.x-Netz.

> wobei ich fast glaube, das Linux die automatisch erkennen sollte und die nicht explizit gesetzt werden müssen.

- Das hat mir jemand aus der Firma auch gesagt. Es wird dann auch eine Route gesetzt, aber nicht mit einem Gateway, sondern das hier setzt linux dann automatisch:

--
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.10 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
--

Sieht eigentlich so aus als ob es damit schon gehen müßte. Aber leider geht der Verkehr trotzdem über eth0 raus, und das obwohl ich eine Verbindung zum 10.0.0.x-Netz aufbaue, das ja an eth1 hängt. Ich habe zum Test auch mal das 10er-Netz auf eth0 mit iptables/ipchains auf den rechner gesperrt, das Ergebnis war, das keine Verbindung mehr hergestellt werden konnte. Also ein Beweis dafür, daß es über die eth0-Schnittstelle geht.

> Nächste Frage wäre die nach den Rechnern - ein 486er wird keine 100MBit Leitung voll bedienen können.

- Einmal ein P2-500 und einmal ein P3-866.

> Hast Du mal "tcpdump -i eth1"

- Ja, heute. Da sind dann auch ein paar Daten drüber gelaufen, aber kaum etwas. Ich habe mir daher das Tool iptraf installiert, daß einem vielfältigen Überblick über den Netzverkehr anzeigen kann. Und bei der Übertragung des Backups liefen 4kbit/s über eth0 und über die eigentlich gewünschte Leitung grade mal 32bit/s o.ä. Sieht fast so auß, als ob nur die Kontrolldaten über eth1 laufen und die eigentlichen Daten über eth0 zurückkommen.

Vielleicht mache ich auch einen Fehler bei SSH? Muß ich mit dem "-b"-Flag arbeiten damit er die richtige Schnittstele (trotz anderem Netz) wählt, also z.B. "ssh -b 10.0.0.20"?

Was mich so wundert ist, daß eine Verbindung in ein Netz, das an eth1 hängt über eth0 läuft.

trinity
Posts: 821
Joined: 12. Oct 2001 10:04

Re: Getrenntes Routing von zwei privaten Netzten

#4 Post by trinity »

Gib hier bitte mal die Ausgabe von route.
Zudem willst du IMHO auch kein gw setzen, so dass der route Befehl eher so aussehen sollte:
route add -net 10.0.0.0 netmask 255.255.255.0 dev eth0

Ich lese gerade, dass nichsts mehr geht wenn du eth0 abklemmst (versuchs es mal mit ziehen der Netzzwerkstecker).
Wenn es trotzdem nicht geht:
1. evtl kaputtes Cross-Over Kabel
2. evtl falscher Kartentreiber
3. evtl. kann dein Board nur eine Netzwerkkarte ansprechen (sowas hab ich leider schon erlebt). Es steht zwar ein Netzdevice (z.B. eth0) zur Verfügung, man kann trotzdem darüber keine Pakete versenden/empfangen.
Last edited by trinity on 15. Aug 2002 20:30, edited 1 time in total.
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)

Post Reply