Route oder Bridge?? -- Hilfe [solved]
klaus
nospam at gr7.com
Sam Mai 26 13:05:03 BST 2007
Hallo Mitleser,
es ist geschafft und ich bedanke mich noch mal nachhaltig bei allen
Mitwirkenden. Um etwas für die Nachwelt zu hinterlassen will ich
versuchen zu beschreiben was faul war und wie ich das gestellte Problem
(mehrere Rechner über einen Server mit 2 Netzwerkkarten und einen
vorgeschalteten Hardware-Router ins Internet zu bringen) bewältigt habe:
Zuerst die Erklärung warum der Client immer nur für einige Sekunden ins
Netz kam und dann das LAN crashte: die 2. Netzwerkkarte im Server war
kaputt. Also wenn folgende Fehlermeldung im syslog auftritt deutet das
auf ein Hardwareprohlem hin:
> May 22 14:18:48 cruces kernel: [ 286.872000] NETDEV WATCHDOG: eth1:
> transmit timed out
> May 22 14:18:48 cruces kernel: [ 286.872000] eth1: Tx timed out, lost
> interrupt? TSR=0x3, ISR=0x2, t=66.
Jetzt zum eigentlichen Problem und der Fragestellung Bridge oder Route
(besser NAT):
1. Variante: NAT
Server hat als default gateway 192.168.1.1
Netzwerk 192.168.1.0 -> Server eth0 192.168.1.102 (statische IP) ->
Router 192.168.1.1 (dhcp disabled)
Netzwerk 192.168.47.0 -> Server eth1 192.168.47.47 (statische IP) ->
Client 192.168.47.100 (statische IP - default gateway 192.168.47.47)
[Kleine Anmerkung:
Konfiguration von z.B. eth0 (hier ohne Vergabe einer IP)
ifconfig eth0 0.0.0.0]
Ich führe folgende Aktionen aus (als root):
sudo -s
## Delete all chains that are not in default filter and nat table
> iptables --table nat --delete-chain
> ## Set up IP FORWARDing and Masquerading
> iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
> iptables --append FORWARD --in-interface eth1 -j ACCEPT
> ## Enables packet forwarding by kernel
> echo 1 > /proc/sys/net/ipv4/ip_forward
> ##Apply the configuration
> /etc/init.d/networking restart
Funktionierte mit der neuen Netzwerkkarte einwandfrei. Allerdings immer
nur bis zum nächsten Reboot. Vielleicht könnte noch jemand einen Hinweis
geben wie man das über die Sitzungen rettet.
Da ich aber den Hinweis eine Bridge einzurichten für meine Zwecke als
zielführend betrachtet habe, entschied ich mich für Variante 2.
2. Variante: Bridge
Da bei der Bridge aus zwei Netzsegmente ein Netz entsteht muss dem
Client eine IP aus dem Netz des Routers gegeben werden und das default
gateway ist in dann der Router nicht der Server wie im vorhergehenden
Beispiel. Ich wollte mir es etwas einfacher machen und habe beim Router
wieder dhcp aktiviert. Um die Bridge einzurichten muss vorher brctl
installiert werden. Das passiert mit:
> sudo apt-get install bridge-utils
Jetzt beide interfaces abschalten
> sudo ifdown eth0
> sudo ifdown eth1
Beiden interfaces die IP wegnehmen
> ifconfig eth0 0.0.0.0
> ifconfig eth1 0.0.0.0
Die bridge erzeugen und beide Netzwerkkarten hinzufügen
> brctl addbr myBridge
> brctl addif myBridge eth0
> brctl addif myBridge eth1
und schließlich der bridge sagen, dass sie sich eine IP beim dhcp-server
holen soll
> dhclient myBridge
Wenn eine statische IP für die bridge gewünscht wird, dann statt obigem
> ifconfig mybridge 192.168.1.102 netmask 255.255.255.0
Dann die bridge aktivieren
> ifconfig myBridge up
Um die Angelegenheit in Zukunft automatisch zu erstellen muss die
/etc/network/interfaces etwa so aussehen (danke Michael)
> iface lo inet loopback
>
> auto eth0
>
> iface eth0 inet static
> address 0.0.0.0
>
> auto eth1
>
> iface eth1 inet static
> address 0.0.0.0
>
> auto myBridge
> iface myBridge inet dhcp
> bridge_ports eth0 eth1
> bridge_bridge-prio 65534
> bridge_stp on
> bridge_fd 5
So, ich hoffe damit eine kleine Zusammenfassung für die Zukunft
hinterlassen zu haben, mit der anderen auch geholfen ist. Ich habe nicht
alle Namen der Helfer genannt, will aber allen Danken. Jeder hat sein
Puzzelteil dazugegeben. Hier noch einige Links die mir weitergeholfen haben:
> http://linux-net.osdl.org/index.php/Bridge
> http://www.it-academy.cc/article/1334/LinuxBridgeHOWTO.html
> http://www.galileocomputing.de/openbook/ubuntu/ubuntu11_002.htm#mj7dc51d54fba2bd112a062dbcd3d7ae96
Klaus