Bridge oder Router
Bridge oder Router
Hallo
Aus meinem Titel könnt ihr vielleicht schon entnehmen, dass ich im Grunde nicht so recht weiss was ich brauche. Ich habe einen PC auf dem debian etch und ein 2.6.20.1 Kernel (selbst gebacken) läuft. Nun möchte ich diese debian Box nutzen um meinen Laptop (Win XP) ins Internet zu bringen. Die Debian Box wiederum hängt über WLAN an einem WLAN Router:
WLAN Router <--> eth2 Debian Box eth0 <--> Laptop (Windows XP, Ethernet)
Ich habe es eignetlich schon soweit hinbekommen, dass ich von meinem Laptop bei ausgeschalteten WLAN gewisse Server im Internet anpingen kann. Allerdings klappt das nicht bei jedem und ich hab ehrlich gesagt keine Ahnung warum nicht. Auf der debian box habe ich zu diesem Zwecke einen DNS Server (bind9) installiert.
Im Grunde müsste es doch aber möglich sein, dass die DNS Anfragen vom Laptop einfach über die debian box an den WLAN Router geleitet werden...
In diesem von mir gewünschten Fall ist meine debian Box doch dann eine Bridge und kein router, oder? Und wie stelle ich es an, dass einfach alles was ins Internet gehen soll von eth0 an eth2 weitergereicht wird. Meine ersten Versuche liefen mit iptables ab was wohl schon mal der richtige weg zu sein scheint.
Ich bewege mich auf diesem Gebiet mit gefährlichem Halbwissen und bitte daher um eure Hilfe.
EDIT: Sobald ich zu Hause bin kann ich euch schon mal das iptables Script bzw. die Regeln posten welche ich bisher nutze. Bis dahin könnt ihr vielleicht schon mal mein Grundlegendes Verständniss ein wenig auffrischen.
Aus meinem Titel könnt ihr vielleicht schon entnehmen, dass ich im Grunde nicht so recht weiss was ich brauche. Ich habe einen PC auf dem debian etch und ein 2.6.20.1 Kernel (selbst gebacken) läuft. Nun möchte ich diese debian Box nutzen um meinen Laptop (Win XP) ins Internet zu bringen. Die Debian Box wiederum hängt über WLAN an einem WLAN Router:
WLAN Router <--> eth2 Debian Box eth0 <--> Laptop (Windows XP, Ethernet)
Ich habe es eignetlich schon soweit hinbekommen, dass ich von meinem Laptop bei ausgeschalteten WLAN gewisse Server im Internet anpingen kann. Allerdings klappt das nicht bei jedem und ich hab ehrlich gesagt keine Ahnung warum nicht. Auf der debian box habe ich zu diesem Zwecke einen DNS Server (bind9) installiert.
Im Grunde müsste es doch aber möglich sein, dass die DNS Anfragen vom Laptop einfach über die debian box an den WLAN Router geleitet werden...
In diesem von mir gewünschten Fall ist meine debian Box doch dann eine Bridge und kein router, oder? Und wie stelle ich es an, dass einfach alles was ins Internet gehen soll von eth0 an eth2 weitergereicht wird. Meine ersten Versuche liefen mit iptables ab was wohl schon mal der richtige weg zu sein scheint.
Ich bewege mich auf diesem Gebiet mit gefährlichem Halbwissen und bitte daher um eure Hilfe.
EDIT: Sobald ich zu Hause bin kann ich euch schon mal das iptables Script bzw. die Regeln posten welche ich bisher nutze. Bis dahin könnt ihr vielleicht schon mal mein Grundlegendes Verständniss ein wenig auffrischen.
Zuletzt geändert von mowses am 09.05.2007 21:51:02, insgesamt 1-mal geändert.
-
- Beiträge: 110
- Registriert: 23.03.2007 11:42:46
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: nähe Hannover
-
Kontaktdaten:
ne bridge wäre von vorteil.
ansonsten wird dir sicher
http://www.jwiesemann.de/linux/hautuh.html
weiterhelfen
ansonsten wird dir sicher
http://www.jwiesemann.de/linux/hautuh.html
weiterhelfen
Die Anleitung habe ich mir mal angeschaut. Allerdings ist die ja für ipchains und nicht iptables. Daher ist sie ziemlich alt und gerade in dem Bereich scheint sich ja einiges getan zu haben.
Ich habe nun diesen Thread mit dem Hinweis auf die bridge-utils doku gefunden. Mein Problem ist nur, dass ich an dem Rechner keinen Monitor dran habe. Wenn ich mich also mit den Setting vertue hab ich im Zweifel keinen Zugriff mehr...
Ist denn für meinen Fall eine einfache Bridge ausreichen, oder muss ich da noch mehr machen?
Ich habe nun diesen Thread mit dem Hinweis auf die bridge-utils doku gefunden. Mein Problem ist nur, dass ich an dem Rechner keinen Monitor dran habe. Wenn ich mich also mit den Setting vertue hab ich im Zweifel keinen Zugriff mehr...
Ist denn für meinen Fall eine einfache Bridge ausreichen, oder muss ich da noch mehr machen?
- DynaBlaster
- Beiträge: 958
- Registriert: 25.03.2004 18:18:57
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: DF0://dynablaster.adf
Ich würde das ganze über "normales" Routing machen. Das liegt aber daran, dass ich meine Grundlagen bezüglich Bridging auch eher im Bereich gefährliches Halbwissen ansiedeln würde. Nach meinem Verständnis funktioniert eine Bridge im Grunde wie ein "normaler" Switch/Hub - einfach alle Protokolle/Pakete von allen "gebridgten" Geräten werden unverändert an alle "gebridgten" Geräte weitergegeben - quasi vervielfacht. Wie in dem Fall die Pakete den Kernel passieern und wie dort entsprechende iptables-Regeln aussehen müssten, weiss ich nicht, für "normales" Routing sollte das hier reichen, um das Laptop ins Internet zu bringen.
Im Konfigurations-Interface des WLAN-Routers musst du dann nur noch eine statische Route eintragen, die dem Router mitteilt, dass er das zweite Netz (von eth0 des Debian-PC und dem Laptop) über die IP von eth2 (des Laptop) erreicht. Das bedeutet, dass Netz 1 (WLAN) z.B. 192.168.0.0/24 und Netz 2 (Ethernet) 192.168.1.0/24 sein könnten - auf jeden Fall müssen es unterschiedliche Netze sein. Sollte der WLAN-Router statische Routen nicht unterstützen, kannst du den Traffic vom Laptop durch den Debian-PC maskieren lassen
alternativ bei statischer IP des WLAN-INTERFACES des Debian-Rechners
Sollte die Default-Policy der FORWARD-CHAIN durch ein Script auf Drop gesetzt worden sein, helfen diese Zeilen weiter:
Code: Alles auswählen
echo "1" > /proc/sys/net/ipv4/ip_forward
Code: Alles auswählen
iptables -t nat -A POSTROUTING -i eth0 -o eth2 -j MASQERADE
Code: Alles auswählen
iptables -t nat -A POSTROUTING -i eth0 -o eth2 -j SNAT --to IP von eth2
Code: Alles auswählen
iptables -A FORWARD -i eth0 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT
Wow!
Vielen Dank. Jetzt wo du das mit dem unveränderten weiterreichen der Pakete bei Bridges noch mal erwähnst fällt mir ein, dass ich sowas schon mal irgendwie gelesen hatte. Das soll auch zu Problemen führen, da Router die einen MAC-Filter drin haben dann die Pakete abweisen würden.
Einstellungen am Router vorzunehmen fällt leider aus.
Daher werde ich heute Nachmittag wenn ich zu Haus bin mal die von dir vorgeschlagenen iptables-Regeln versuchen.
Noch mal vielen Dank für deine ausführliche Antwort.
Vielen Dank. Jetzt wo du das mit dem unveränderten weiterreichen der Pakete bei Bridges noch mal erwähnst fällt mir ein, dass ich sowas schon mal irgendwie gelesen hatte. Das soll auch zu Problemen führen, da Router die einen MAC-Filter drin haben dann die Pakete abweisen würden.
Einstellungen am Router vorzunehmen fällt leider aus.
Daher werde ich heute Nachmittag wenn ich zu Haus bin mal die von dir vorgeschlagenen iptables-Regeln versuchen.
Noch mal vielen Dank für deine ausführliche Antwort.
- DynaBlaster
- Beiträge: 958
- Registriert: 25.03.2004 18:18:57
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: DF0://dynablaster.adf
Kleiner Nachtrag:
Ich gehe davon aus, dass auf dem Debian-Rechner kein DHCP- und/oder DNS-Server läuft. In dem Fall musst du dem Laptop eine statische IP-Adresse zuweisen. Als Standard-Gateway trägst du die eth0-IP des Debian-Rechners ein. Damit die DNS-Auflösung klappt, musst du die IP-Adresse des WLAN-Routers verwenden oder die eines öffentlichen DNS-Services wie z.B. OpenDNS --> 208.67.222.222 bzw. 208.67.220.220.
Siehe auch: http://www.opendns.com/start/windows_xp.php
Ich gehe davon aus, dass auf dem Debian-Rechner kein DHCP- und/oder DNS-Server läuft. In dem Fall musst du dem Laptop eine statische IP-Adresse zuweisen. Als Standard-Gateway trägst du die eth0-IP des Debian-Rechners ein. Damit die DNS-Auflösung klappt, musst du die IP-Adresse des WLAN-Routers verwenden oder die eines öffentlichen DNS-Services wie z.B. OpenDNS --> 208.67.222.222 bzw. 208.67.220.220.
Siehe auch: http://www.opendns.com/start/windows_xp.php
Das mit statischer IP und Debian Box als Gateway hatte ich eh vor. einzig die Frage nach dem DNS Server war mir noch nicht so ganz klar. als erstes hatte ich versucht einen DNS server von T-Online auf dem Laptop einzutragen. Das klappte aber nicht so ganz. Was natürlich daran liegen könnte, dass ich nicht über T-Online drin bin. Danach habe ich dann auf der Debian box einen Nameserver eingerichtet. Ich werde es aber noch mal ohne den Nameserver auf der Debian Box und mit dem Router oder einem openDNS Server versuchen.DynaBlaster hat geschrieben:Kleiner Nachtrag:
Ich gehe davon aus, dass auf dem Debian-Rechner kein DHCP- und/oder DNS-Server läuft. In dem Fall musst du dem Laptop eine statische IP-Adresse zuweisen. Als Standard-Gateway trägst du die eth0-IP des Debian-Rechners ein. Damit die DNS-Auflösung klappt, musst du die IP-Adresse des WLAN-Routers verwenden oder die eines öffentlichen DNS-Services wie z.B. OpenDNS --> 208.67.222.222 bzw. 208.67.220.220.
Siehe auch: http://www.opendns.com/start/windows_xp.php
Wieder mal vielen Dank für deine Hilfe. Aber jetzt gib mir doch endlich mal Zeit das zu Hause alles zu probiern. Ich werde hier ja schon ganz ungeduldig.
EDIT: Das mit dem OpenDNS ist auf jeden Fall mal ein Versuch wert denke ich! Abgesehen davon erklären die auch, wie man bind so konfiguriert, dass er die Anfragen an OpenDNS weiterreicht. Das wäre dann auch noch einen Versuch wert. Man so viel zu testen und so wenig Zeit.
Ja Spitze! Auch wenn du mich an einer Stelle schon hast selber denken lassen klappt es!
Führte mich zum Ziel. In der ersten Rule erlaubte das POSTROUTING kein Inputdevide. Daher habe ich eth0 gestrichen. Im MASQUERADE hattest du das "u" vergessen. Nun da ich auf meinem Laptop den openDNS Server eingetragen habe komme ich mit meinem Laptop ins Internet. Also alles bestens. Da kann man mal sehen wie wenige Zeilen einen zum Ziel führen können.
Vielen Dank!
Code: Alles auswählen
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT
Vielen Dank!
- DynaBlaster
- Beiträge: 958
- Registriert: 25.03.2004 18:18:57
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: DF0://dynablaster.adf