zwei rechner - eine dose
zwei rechner - eine dose
Hallo,
Ich habe hier zwei Rechner, zwei (offizielle) IP-Adressen aber nur eine Dose (hinter der sich der Switch mit dem restlichen Netzwerk befindet).
nun sollte es doch möglich sein, Rechner A direkt an Die Dose zu hängen, und Rechner B an die zweite Netzwerk-Karte von Rechner A.
Wie sage ich jetzt aber Rechner A, dass er alles was von Rechner B kommt direkt Richtung Dose weiterschieben soll? (bzw. alles was für Rechner B ist an diesen schickt.)
(da B eine eigene IP-Adresse hat braucht A wirklich kein nat oder so zu machen.)
Irgendeine Idee? (oder gerne auch gute Doku.)
Ich habe hier zwei Rechner, zwei (offizielle) IP-Adressen aber nur eine Dose (hinter der sich der Switch mit dem restlichen Netzwerk befindet).
nun sollte es doch möglich sein, Rechner A direkt an Die Dose zu hängen, und Rechner B an die zweite Netzwerk-Karte von Rechner A.
Wie sage ich jetzt aber Rechner A, dass er alles was von Rechner B kommt direkt Richtung Dose weiterschieben soll? (bzw. alles was für Rechner B ist an diesen schickt.)
(da B eine eigene IP-Adresse hat braucht A wirklich kein nat oder so zu machen.)
Irgendeine Idee? (oder gerne auch gute Doku.)
guter tipp !
-----------------------------------------------
http://www.emmes-world.de/linux/DE-Debi ... iGuide.pdf
Der Spiegel (32/2001)
Gott für jeden, Linus Torvalds ist vor allem sympathisch, weil er nicht Bill Gates ist.
Gott für jeden, Linus Torvalds ist vor allem sympathisch, weil er nicht Bill Gates ist.
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Das eigentliche Problem ist: Du willst keinen Router, sondern im Prinzip eine Bridge (oder ProxyARP, wenn man's mag). Anderenfalls müsste ja alle anderen Rechner im Netz wissen, dass sie, um Rechner A zu erreichen, ihre Pakete an Rechner B schicken müssten. Mit einer Bridge geht das Transparent.
Aber 'mal ganz ehrlich: Kauf Dir doch einfach einen billigen 4 Port 100MBit Switch. Kostet echt nicht die Welt und ist um Lichtjahre einfacher... eBay oder der Kistenschieber Deines Vertrauens helfen Dir sicherlich gerne weiter...
Patrick
Aber 'mal ganz ehrlich: Kauf Dir doch einfach einen billigen 4 Port 100MBit Switch. Kostet echt nicht die Welt und ist um Lichtjahre einfacher... eBay oder der Kistenschieber Deines Vertrauens helfen Dir sicherlich gerne weiter...
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Hi Patrick,
Bisher hatte ich einfach nen tinyproxy auf dem einen Rechner installiert und zwischen den beiden Rechner ein privates Netzwerk aufgebaut. Das geht zum Installieren übers Netz und ein bischen "surfen" ganz gut, aber zum sinnvoll arbeiten (z.b. ssh) ist es doch etwas umständlich. Da ich aber eh noch ne zweite IP-Adresse verwenden kann, hatte ich eben überlegt ihn etwas direkter mit ins Netz zu hängen.
Gut, auf ARP-Ebene werden es auf jeden Fall wohl zwei Netze bleiben, aber auf IP-Ebene müsste man die doch ganz gut zusammenbekommen:
Rechner A hat B als Gateway, schickt also alle Pakete dorthin.
B liefert Pakete ganz normal aus, wie wenn sie von ihm selbst stammen. (An der Stelle bin ich mir nicht ganz sicher, was ich dazu noch aktivieren muss. (Hat das was mit IP-Forwarding zu tun?))
In der anderen Richtung, müsste B einfach nur auch ARP-Requests für A beantworten.¹
Dann bekommt er wieder die Pakete und liefert sie entsprechend aus.
(¹Da gibts doch bestimmt auch ne Möglichkeit für, oder?)
Als nächster Schritt könnte B dann auch noch ein bischen Firewall für A spielen.
Switch is hier moment wirklich nicht.
Auserdem löst es das problem nicht sondern umgeht es.
Ok, vielleicht ist die Aufgabe etwas "akademisch" aber mir geht es u.a. auch darum bei den ganzen Netzwerk-Innereien (und deren Umsetzung unter Linux) etwas besser durchzublicken.
Deshalb wird brauchbare Doku auch gerne angenommen.
Bisher hatte ich einfach nen tinyproxy auf dem einen Rechner installiert und zwischen den beiden Rechner ein privates Netzwerk aufgebaut. Das geht zum Installieren übers Netz und ein bischen "surfen" ganz gut, aber zum sinnvoll arbeiten (z.b. ssh) ist es doch etwas umständlich. Da ich aber eh noch ne zweite IP-Adresse verwenden kann, hatte ich eben überlegt ihn etwas direkter mit ins Netz zu hängen.
Gut, auf ARP-Ebene werden es auf jeden Fall wohl zwei Netze bleiben, aber auf IP-Ebene müsste man die doch ganz gut zusammenbekommen:
Rechner A hat B als Gateway, schickt also alle Pakete dorthin.
B liefert Pakete ganz normal aus, wie wenn sie von ihm selbst stammen. (An der Stelle bin ich mir nicht ganz sicher, was ich dazu noch aktivieren muss. (Hat das was mit IP-Forwarding zu tun?))
In der anderen Richtung, müsste B einfach nur auch ARP-Requests für A beantworten.¹
Dann bekommt er wieder die Pakete und liefert sie entsprechend aus.
(¹Da gibts doch bestimmt auch ne Möglichkeit für, oder?)
Als nächster Schritt könnte B dann auch noch ein bischen Firewall für A spielen.
Switch is hier moment wirklich nicht.
Auserdem löst es das problem nicht sondern umgeht es.
Ok, vielleicht ist die Aufgabe etwas "akademisch" aber mir geht es u.a. auch darum bei den ganzen Netzwerk-Innereien (und deren Umsetzung unter Linux) etwas besser durchzublicken.
Deshalb wird brauchbare Doku auch gerne angenommen.
Warum baust Du dann nicht einfach B als Router aus und machst NAT für A? Wenn Du A nicht von außen erreichen mußt ist das wahrscheinllich die einfachste Variante.
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de
xmpp:bert@debianforum.de
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Tschuldigung, aber das ist Schwampf...Pinky75 hat geschrieben:Du brauchst nur einen einzigen Befehl ausführen auf Rechner A
route add IP_VON_B ethX (X sollte die Netzwerkkarte sein, die zu Rechner A geht).
Fertig!
@michas: Proxy-ARP löst genau das Problem, dass die Netze auf ARP Ebene nicht verbunden sind. Rechner B ("Router") beantwortet dann automatisch die ARP Requests für und von Rechner A. Erfordert aber etwas Bastelei.
Wirf 'mal einen Blick ins "Advanced-Routing-HOWTO", da wird sowas erklärt...
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Nun, ich nehme deine Kritik gerne zur Kenntnis, aber ob meine Lösung funktioniert oder nicht, hängt von der Art ab, wie der Router des ISPs konfiguriert ist. Meine Lösung mag zwar nicht funktionieren, wenn die IP über ARP aufgelöst wird, aber wenn im Router als Gateway die IP von Rechner A angegeben ist, ist meine Lösung mit Abstand die einfachste und funktionierende Lösung.pdreker hat geschrieben:Tschuldigung, aber das ist Schwampf...Pinky75 hat geschrieben:Du brauchst nur einen einzigen Befehl ausführen auf Rechner A
route add IP_VON_B ethX (X sollte die Netzwerkkarte sein, die zu Rechner A geht).
Fertig!
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Na gut...
Rechner B ist der Router, Rechner A hängt dahinter, Rechner X hängt im Netzwerk auf "der anderen Seite" von Rechner A. Wie soll Rechner X Rechner B erreichen? Alle Rechner im Netzwerk haben eine Route: localnet -> eth0, alles andere ans Gateway schicken. Rechner A ist aber einfach nicht im Ethernet sichtbar, ARP Requests timen also ohne sonstige Konfig einfach aus, und man bekommt auf IP Ebene "No Route to host" oder "Destination Unreachable".
Route setzen + IP Forwarding + Proxy ARP funktioniert. Kernel Bridging funktioniert auch. Nur die Route alleine reicht nicht, weil der ganze Rest des Netzwerks nicht weiss wo Rechner A zu finden ist. Was natürlich nicht ausschliesst, dass es (IMO allerdings sehr spezielle) Netzwerkkonstellationen gibt, bei denen das geht. Im Allgemeinen geht es nicht.
Ich bleibe dabei: nur die Route zu setzen ist falsch (und damit Schwampf). Aber michas kann das ja 'mal testen.
Mir zu unterstellen ich hätte von IP und Co. keine Ahnung ist auch ganz schön weit aus dem Fenster gelehnt... Aber egal.
Patrick (Netzwerk-/Systemadministrator für ca. 80 Maschinen)
Rechner B ist der Router, Rechner A hängt dahinter, Rechner X hängt im Netzwerk auf "der anderen Seite" von Rechner A. Wie soll Rechner X Rechner B erreichen? Alle Rechner im Netzwerk haben eine Route: localnet -> eth0, alles andere ans Gateway schicken. Rechner A ist aber einfach nicht im Ethernet sichtbar, ARP Requests timen also ohne sonstige Konfig einfach aus, und man bekommt auf IP Ebene "No Route to host" oder "Destination Unreachable".
Route setzen + IP Forwarding + Proxy ARP funktioniert. Kernel Bridging funktioniert auch. Nur die Route alleine reicht nicht, weil der ganze Rest des Netzwerks nicht weiss wo Rechner A zu finden ist. Was natürlich nicht ausschliesst, dass es (IMO allerdings sehr spezielle) Netzwerkkonstellationen gibt, bei denen das geht. Im Allgemeinen geht es nicht.
Ich bleibe dabei: nur die Route zu setzen ist falsch (und damit Schwampf). Aber michas kann das ja 'mal testen.
Mir zu unterstellen ich hätte von IP und Co. keine Ahnung ist auch ganz schön weit aus dem Fenster gelehnt... Aber egal.
Patrick (Netzwerk-/Systemadministrator für ca. 80 Maschinen)
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Ich gebe zu, dass meine Lösung des Problems an gewisse Randbedingungen geknüpft ist. Ich möchte allerdings anmerken, dass der Einsatz eines ARP-Proxies nur notwendig ist, wenn die IP über ARP aufgelöst wird. Das ist nicht der Fall, wenn der Rechner X (in deinem Beispiel) Rechner A als Gateway zu Rechner B eingestellt hat. Somit wäre der ARP-Proxy ein "mit Kanonen auf Spatzen schießen", denn warum einen zusätzlichen Daemon, wenn man mit Bordmitteln weiterkommt? (wer installiert schon Winword um autoexec.bat zu editieren?)
Falls meine Annahme allerdings nicht richtig ist (dazu wäre es einmal wichtig, diese Randbedingung vom Urheber dieses Threads zu erfahren), dann gebe ich dir Recht.
Schön, dass du 80 Rechner administrierst.
Falls meine Annahme allerdings nicht richtig ist (dazu wäre es einmal wichtig, diese Randbedingung vom Urheber dieses Threads zu erfahren), dann gebe ich dir Recht.
Schön, dass du 80 Rechner administrierst.
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Ich wollte erst "Co-Admin / Moderator" schreiben, aber das qualifiziert ja nun für gar nix... Gönn' mir doch meine "Schw*nzverlängerung"Pinky75 hat geschrieben:Schön, dass du 80 Rechner administrierst.
Friede...
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Hey, spitze! Das scheint tatsächlich das zu sein, was ich gesucht hab. Danke.pdreker hat geschrieben:Proxy-ARP löst genau das Problem, dass die Netze auf ARP Ebene nicht verbunden sind. Rechner B ("Router") beantwortet dann automatisch die ARP Requests für und von Rechner A. Erfordert aber etwas Bastelei.
Wirf 'mal einen Blick ins "Advanced-Routing-HOWTO", da wird sowas erklärt...
Und soo schlüm scheint die Bastelei auch nich zu sein.
Noch ne kleine Frage dazu:
Ungefähr so sieht ja jetzt meine Konstruktion aus:
Code: Alles auswählen
A (10.1) ----- (10.2) B (10.3) ----- (10.4) Gateway --- Internet
Könnte ich eigentlich dem lokalen Interface von B nicht auch die IP-Adresse 10.4 anstatt 10.2 zuweisen? (In jedem Segment wären die IPs ja noch eindeutig, und 10.2 hat in obigen Bild eigentlich keine sinnvolle Funktion..)
Fällt dir spontan was ein, was dagegensprechen würde?
dankende Grüße
- michas
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
So wie ich das einschätze, brauchst Du eine zusätzliche IP, ich habe es aber nicht ausprobiert. Die doppelte Vergabe der IPs ist nicht möglich, weil die ARP Requests dann nicht mehr eindeutig beatwortet werden können.
Aber ganz ehrlich: absulutely untested. Ausprobieren...
Patrick
Aber ganz ehrlich: absulutely untested. Ausprobieren...
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Hey, die ganze Theorie funktioniert ja sogar in der Praxis.
Läuft tatsächlich alles problemlos. *freu*
(Ich hab den beiden Interfaces übrigens einfach die gleiche IP zugewiesen.)
Die Konfiguration beschränkt sich auch wirklich nur auf zwei Zeilen, die die entsprechenden Optionen im Kernel aktivieren.
Wo bringt man die denn jetzt am einfachsten unter, wenn man das gleich beim Starten aktiviert haben möchte?
Ein eigenes rc-Script, als ifupdown-script oder gibts da nen eigenen Platz für sowas?
Läuft tatsächlich alles problemlos. *freu*
(Ich hab den beiden Interfaces übrigens einfach die gleiche IP zugewiesen.)
Die Konfiguration beschränkt sich auch wirklich nur auf zwei Zeilen, die die entsprechenden Optionen im Kernel aktivieren.
Wo bringt man die denn jetzt am einfachsten unter, wenn man das gleich beim Starten aktiviert haben möchte?
Ein eigenes rc-Script, als ifupdown-script oder gibts da nen eigenen Platz für sowas?