Tutorials - Ethernet Bridging
Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk
Ethernet Bridging
Diese Seite wurde 5596 mal aufgerufen.
Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.
Editieren Versionen Linkpartnerschaft Bottom Printversion
Keywords: Ethernet Bridging
In diesem Tutorial geht es darum eine Layer 2 Bridge aufzusetzen, die mehrere NICs (Network Interface Card, meist Netzwerkkarten) miteinander transparent verbindet. Dazu erstellen wir zuerst ein Bridge Interface, und fügen anschließend unsere NICs hinzu.
Um unser Vorhaben umsetzen zu können müssen wir zuerst ein paar Kernel Module installieren:
Wir gehen zuerst zu Code maturity level options, und aktivieren dort [*] Prompt for development and/or incomplete code/drivers.
In Loadable module support aktivieren wir folgendes:
- [*] Enable loadable module support
- [*]Set version information on all module symbols
Jetzt haben wir zwei Möglichkeiten:
- 2.6er Kernel
Als nächstes wechseln wir zu Networking->Networking options. Dort sollte es <*> 802.1d Ethernet Bridging geben, wir aktivieren es. Als nächstes aktivieren wir [*] Network packet filtering framework (Netfilter) --->. Hier lassen wir [ ] Network packet filtering debugging deaktiviert, und aktivieren [*] Bridged IP/ARP packets filtering.
Ausserdem müssen wir in Core Netfilter Configuration ---> noch <*> Netfilter Xtables support (required for ip_tables) aktiveren. Damit können wir unter IP: Netfilter Configuration ---> das Modul <*> IP tables support (required for filtering/masq/NAT) aktivieren.
- 2.4er Kernel
Hier gehen wir nach Networking options und aktivieren [*] Network packet filtering (replaces ipchains). Das Modul [ ] Network packet filtering debugging lassen wir deaktiviert. Ausserdem fügen wir unter IP: Netfilter Configuration ---> <*> 802.1d Ethernet Bridging und [*]netfilter (firewalling) support hinzu.
Jetzt müssen wir den Kernel nur noch kompilieren und neustarten...
Als erstes müssen wir eine virtuelles Bridge device erstellen. Das machen wir mit dem folgenden Befehl:
simon@Cottonmouth:~$ brctl addbr br0
Wenn eine loop im routing unwahrscheinlich ist (davon gehe ich aus) können wir das Spanning Tree Protocol abschalten, das machen wir mit:
simon@Cottonmouth:~$ brctl stp br0 off
Als nächstes fügen wir die Devices hinzu:
simon@Cottonmouth:~$ brctl addif br0 eth0
simon@Cottonmouth:~$ brctl addif br0 eth1
Diese Device werden anschließend gebridged. Die Bridging table lernt neue MAC adressen und bridged damit.
Jetzt müssen wir die zwei Interfaces noch aktivieren:
simon@Cottonmouth:~$ ifconfig eth0 down
simon@Cottonmouth:~$ ifconfig eth1 down
simon@Cottonmouth:~$ ifconfig eth0 0.0.0.0 up
simon@Cottonmouth:~$ ifconfig eth1 0.0.0.0 up
Wenn wir wollen, können wir dem bridge device noch eine IP Adresse geben, um die zwei device benutzen zu können:
simon@Cottonmouth:~$ ifconfig br0 <IP> up
Sie können als IP z.B. 10.0.0.1 nehmen.
Falls wir das gemacht haben müssen wir noch routing aktivieren:
simon@Cottonmouth:~$ echo "1" > /proc/sys/net/ipv4/ip_forward
Und natürlich die IP gegebenenfalls als default gateway auswählen:
route add default gw <IP>
So, das wars, die Interfaces sind erstellt.
Jetzt müssen wir nur noch alle Interfaces der Bridge auf fordwarding stellen:
#$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -I FORWARD -j ACCEPT
$IPTABLES -A FORWARD -j DROP
Hier ist das fertige Script, das nur noch angepasst werden muss:
Zuerst nehmen wir den nachfolgenden Code und kopieren es nach /etc/init.d/bridge. Mit chmod 700 /etc/init.d/bridge machen wir das Script ausführbar.
Wenn wir wollen können wir die Bridge automatisch beim Start erstellen lassen: ln -s /etc/init.d/bridge S10bridge
Code:
##!/bin/sh
#
# iptables bridge script
#
#
# http://www.online-tutorials.net
# OUR 2 Devices you can add some more
DEV1=eth2
DEV2=eth0
BRG_DEV=br0
BRG_IP="10.0.0.139"
IPTABLES=/sbin/iptables
case $1 in
start)
echo "Activate routing"
#Bridge erstellen
brctl addbr $BRG_DEV
brctl stp $BRG_DEV off
brctl addif $BRG_DEV $DEV1
brctl addif $BRG_DEV $DEV2
#interfaces neu setzen
ifconfig $DEV1 down > /dev/null
ifconfig $DEV2 down > /dev/null
ifconfig $DEV1 0.0.0.0 up
ifconfig $DEV2 0.0.0.0 up
#bridge eine ip vergeben
#ifconfig $BRG_DEV $BRG_IP up
#echo "1" > /proc/sys/net/ipv4/ip_forward
#route add default gw $BRG_IP
#oder nicht... (mit # auskommentieren falls eine IP zugewissen wurde)
ifconfig $BRG_DEV up
#forwarden
#$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -I FORWARD -j ACCEPT
$IPTABLES -A FORWARD -j DROP
echo "Bridging activated..."
;;
stop)
$IPTABLES -t filter -F INPUT
$IPTABLES -t filter -F OUTPUT
$IPTABLES -t filter -F FORWARD
$IPTABLES -t nat -F POSTROUTING
ifconfig $BRG_DEV down
brctl delbr $BRG_DEV
;;
restart)
$0 stop && $0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac
Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?
Editieren Versionen Linkpartnerschaft Top Printversion
Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, das Tutorial kann wiederhergestellt werden
Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk/Ethernet Bridging