bridge-utils und iptables?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

bridge-utils und iptables?

Beitrag von para » 30.10.2003 22:45:38

Hallo,
hat jemand von euch schonmal die bridge-utils auf nem Rechner zusammen mit iptables benutzt? iptables macht bei mir das routing (dsl<->lan/wlan) wie auch das filtering...
Die bridge funzt soweit (offensichtlich) ganz gut, soll heissen, beide interfaces (lan/wlan) können einzeln ihren Dienst tun, also z.B. ihre jeweiligen Segmente über den router ins Netz bringen. Aber leider kann ich keinen Rechner im jeweils anderen Segment erreichen!
Muss ich bei den iptables-Regeln noch etwas beachten? Ich habe zur Zeit "nur" die zwei einzelnen interfaces durch das bidge-device ersetzt. Da eine bridge transparent ist, sollte das doch reichen, oder?

Bye, Para

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 31.10.2003 21:04:36

Wenn Du den Traffic kontrollieren willst, der gebridget wird, dann brauchst Du ebtables, da iptables sich nicht mit dem Bridging zurechtfindet.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Beitrag von para » 31.10.2003 21:57:15

Hab ich auch schon von gelesen, allerdings will ich den traffic nicht wirklich kontrollieren... Mir reicht es ja schon, wenn sich beide Segmente irgendwie unterhalten können! Zur Zeit kommt nichts im jeweils anderen an, und ich befürchte iptables könnte da ne rolle spielen... Ist das so, oder läuft die bridge software erstmal unabhängig - obwohl sie auf dem selben rechner arbeitet? Wie gesagt, von den Segmenten zum bridge Rechner bzw. router klappt wunderbar...

Para

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 31.10.2003 22:03:52

Hmm, da bewegst Du Dich wahrscheinlich auf wenig ausgetretenen Pfaden... Soll heissen: Router und Bridge auf der gleichen Maschine ist eine relativ ungewöhnliche Config...

Normalerweise würde ich sagen, wenn Du 3 Netzwerkkarten im Rechner hast, sollte das gehen, aber ich habe es nie ausprobiert...

Versuch doch einfach 'mal die iptables Firewall abzuschalten (alles auf ACCEPT und keine Regeln). geht es dann? Anderenfalls: Brauchst Du die Bridge wirklich, oder kannst Du das Netz umkonstruieren, so dass alles im gleichen Subnetz ist (KISS: Keep it simple, stupid...)

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Beitrag von para » 02.11.2003 13:30:48

Das iptables testen hatte ich mir schon vorgenommen... Auf die bridge verzichte ich natürlich gern! Aber:
- wie soll die IP config dann aussehen?
- ist es möglich den beiden internen interfaces dieselbe IP zu geben? Physikalisch sind sie ja getrennt (LAN,WLAN)...
- Falls nicht, ist es ratsam diesen interfaces unterschiedliche IPs zu geben?
- wenn das IP Problem gelöst ist, bist du sicher das die beide Seiten des Netzes erreichbar sind? Der PC in dem beide Karten stecken, müsste ja trotzdem die Rolle eines Hubs für diese beiden Karten spielen, nicht wahr? Lässt sich der Einsatz einer bridge also überhaupt vermeiden?

Fragezeichen, Para

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 03.11.2003 21:41:37

Die notwendige Netzwerkkonstruktion hängt sehr stark davon ab, wie die bestehende Config aussieht...

Welche Geräte sollen denn wie mit eineander verschaltet werden?

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Beitrag von para » 05.11.2003 21:05:42

Alsoooo, zum besseren Verständnis mal ein Bildchen:

Bild

- LAN (inkl. Router) und WLAN haben identische subnets
- die Verbindungen LAN<->WAN und WLAN<->WAN funzen prima
- eth1 und eth2 sind per bridge zusammengefasst zu br0 (router nur eine interne IP)
- iptables sorgt für routing und firewall (kennt für intern nur br0)
- snat, dnat und forwarding für LAN und WLAN klappt (s.o.)

Gesucht ist nun LAN<->WLAN :roll:

Idee? Para

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 06.11.2003 20:34:16

Hmm... als einfachste Lösung fällt mir da folgendes ein: Verpass einem der internen Netze einfach ein anderes Subnetz (oder teile das bestehende Subnetz einfach in 2 (also /25 statt /24 Netmask). Die Routen auf dem Router sollten dann automatisch passend eingestellt werden (von /etc/network/interfaces). Wenn man jetzt auf den Clients den Router als Gateway einträgt sollte das schon gehen... Und alles ohne Bridge...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
bollin
Beiträge: 482
Registriert: 01.11.2003 23:31:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von bollin » 06.11.2003 20:47:42

pdreker hat geschrieben:Verpass einem der internen Netze einfach ein anderes Subnetz (oder teile das bestehende Subnetz einfach in 2 (also /25 statt /24 Netmask).
Noch einfacher geht es vielleicht mit proxy-arp, dann braucht man auch keine bridge:

Code: Alles auswählen

for file in /proc/sys/net/ipv4/conf/eth[12]/proxy_arp;
do
        echo 1 > $file
done
Torsten

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 06.11.2003 20:57:35

Proxy ARP ist ein Verbreichen an allen Netzwerkkonzepten, die je erfunden wurden.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
bollin
Beiträge: 482
Registriert: 01.11.2003 23:31:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von bollin » 06.11.2003 21:15:34

pdreker hat geschrieben:Proxy ARP ist ein Verbreichen an allen Netzwerkkonzepten, die je erfunden wurden.
Oh, hatte ich die heilige Inquisition beleidigt? Zum Glück hat sie alle mit tollen Argumenten vom wahren Gott überzeugt :!:

Torsten

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 06.11.2003 21:52:15

bollin hat geschrieben:Oh, hatte ich die heilige Inquisition beleidigt? Zum Glück hat sie alle mit tollen Argumenten vom wahren Gott überzeugt :!:
Wenn Du eine Erklärung haben willst dann frag danach. Die Tatsache, dass das warum Dich interessiert, spricht *für* Dich, aber dass Du mich scheinbar ganz locker auf eine Stufe mit Leuten stellst, die 1000e Unschuldige zu Tode gefoltert und bei lebendigem Leibe verbrannt haben *pisst* *mich* *echt* *an*. :evil:

So, nachdem das gesagt ist:
Warum sollte man einen Hack (und ProxyARP *ist* ein Hack... oder eigentlich ein Workaround) verwenden, wenn man einfach einen stinknormalen Router aufsetzen kann? Eine Bridge (2-Port Switch) ist übrigens eigentlich nichts anderes als sauberes, standardisiertes und automatisiertes ProxyARP. Mit ProxyARP kann man das Problem lösen, kein Einwand, aber bei Problemen ist ProxyARP wesentlich schlechter zu debuggen, als eine "Standardlösung". Und wieder einmal: K.I.S.S. ist das A&O im Netzwerk. Insbesondere, wenn damit *nicht* sein Geld verdient...

Zu dem "Verbrechen": ProxyARP verletzt die End-to-End Voraussetzung (genau so wie NAT), allerdings gibt es für NAT meistens keine Alternative (es sei denn man hat für zu Hause direkt 3 oder 4 routebare IP Adressen), während man ProxyARP *fast immer* umgehen kann. End-to-End ist eine der fundamentalsten Annahmen, die in IP vorhanden sind, und wenn man das Netz aufbauen kann, ohne diese zu verletzen, dann sollte man das IMVSO auch tun. Vor allem, wenn man ohnehin Kontrolle über das gesamte Netz hat, und es kein zwingendes Argument gibt, dass man die bestehenden IPs unbedingt beibehalten muss.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
bollin
Beiträge: 482
Registriert: 01.11.2003 23:31:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von bollin » 06.11.2003 22:31:15

Falls para Fundamentalisten sowenig mag wie ich, sollte er sich vielleicht auch mal den Abschnitt http://lartc.org/howto/lartc.bridging.proxy-arp.html
im Linux Advanced Routing & Traffic Control HOWTO durchlesen.
An advantage ...
Another advantage ...
Torsten

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 06.11.2003 22:57:00

Man braucht zur Lösung des Problems gar kein "Advanced Routing"... KISS.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Beitrag von para » 07.11.2003 18:52:27

Wow, erstmal danke für EURE Hilfe 8O Immer ruhig bleiben... Ich bevorzuge allerdings auch die "saubere" Variante - vor allem weil ich sie verstehe! ProxyARP ist mir bisher nicht untergekommen :roll:

@Patrick: so (zwei subnets) hatte ich mein Netz vorher ohne bridge aufgebaut! Muss ich wohl nochmal so aufsetzen und diesmal das routing anpassen... Als gateway war der Router damals sowieso eingetragen, damit die subnets auch ins WAN kommen. Wenn ich nun die subnets miteinander verbinden will, muss ich dabei eigentlich auch iptables (ausser für's filtern) nutzen oder "reicht" der route-Befehl?

Pragmatiker, Para

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 07.11.2003 19:16:29

Route sollte reichen... Eigentlich (!) sollte das aber schon automatisch eingerichtet werden, wenn Du die Netzwerkkarten in /etc/network/interface richtig konfiguriert hast. Wenn nicht, lies Dir einfach 'mal die man Page zu "interfaces" durch. Da kann man bei einem Interface einen Befehl angeben, der ausgeführt werden soll, wenn das Interface aktiviert wurde (post-up oder so ähnlich). Doret kannst Du dann den entsprechenden Route Befehl eintragen...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

arzie
Beiträge: 134
Registriert: 17.02.2002 15:51:03

Beitrag von arzie » 07.11.2003 19:29:08

Ich bin zwar nicht der Patrick ...

Was sagt "cat /proc/sys/net/ipv4/ip_forward" ?
Da sollte eine 1 bei rauskommen weil LAN/WLAN -> WAN ja offensichtlich funktioniert.

Und wenn das so ist, dann sollte es eigentlich jetzt schon funktionieren.

Falls nicht, mach mal ein traceroute von einem LAN-Rechner zu einem WLAN Rechner und benutze die IP Addresse und keine Namen. Und fuer diesen Test nichts mit iptables filtern. Also alles auf accept.

Wenn es dann immernoch nicht geht dann ueberpruefe die Subnetmasken.

Gruss
arzie

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Beitrag von para » 07.11.2003 20:09:38

@Patrick: der Befehl heisst einfach nur "up", habe ich jedoch nie für's routing benutzt... Werd's demnächst mal versuchen!

@arzie: IP forwarding is natürlich an, aber das reicht wohl nich :roll: Wofür ist das eigentlich, wenn man bei iptables ohnehin eine FORWARD queue hat?

Para

arzie
Beiträge: 134
Registriert: 17.02.2002 15:51:03

Beitrag von arzie » 07.11.2003 20:35:49

para hat geschrieben: @arzie: IP forwarding is natürlich an, aber das reicht wohl nich :roll: Wofür ist das eigentlich, wenn man bei iptables ohnehin eine FORWARD queue hat?
Para
Damit sagt man dem Kernel das er die FORWARD queue, in der Du dann Filtern kannst, fuettern soll.
Oder besser, das Pakete die nicht an den eigenen Host addressiert sind verarbeitet werden sollen.

arzie

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Beitrag von para » 07.11.2003 22:39:48

Leuchtet :idea: ein! War nur mal ne Frage am Rande...

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Na endlich!

Beitrag von para » 08.11.2003 17:30:49

:D Letztenendes habe ich wieder alles so wie früher (ohne bridge) in zwei subnets aufgeteilt, was mir eh besser gefällt... Was ich damals nur nicht gemacht hatte, war zwei passende policies in mein routing-script einzufügen :oops: Ich denke ich habe zu der Zeit was von den bridge-tools gelesen und die einfache Variante seit dem Moment nicht weiter verfolgt - dabei hatte ich die Lösung immer vor Augen:

Code: Alles auswählen

iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
@Patrick: die route war natürlich auch früher immer schon richtig, nur weil iptables bei mir per default alles dropped, klappte es natürlich nicht :wink:

Danke an alle, Para
Kaum macht man(n)'s richtig, funktioniert's auch!
Running Lenny on: 2.6.20.7

Antworten