Netzwerk-Bridge: Default-Route wird nicht wieder gesetzt?

20/01/2009 - 09:20 von Ansgar Strickerschmidt | Report spam
Hallo NG,

ich habe hier testweise auf einem alten Rechner mit SuSE 10.0 einen
OpenVPN-Server aufgesetzt, und zwar im Bridging-Mode.
Dazu wird gemàß Anleitung per mitgeliefertem "bridge-start"-Skript ein
Tunnel-Endpunkt-Device tap0 gestartet und mit dem Ethernet-Interface eth0
gebrückt.

Hier ist das Original-Skript:

<Skript Anfang>

#!/bin/bash

#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################

# Define Bridge Interface
br="br0"

# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"

# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="192.168.8.4"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.8.255"

for t in $tap; do
openvpn --mktun --dev $t
done

brctl addbr $br
brctl addif $br $eth

for t in $tap; do
brctl addif $br $t
done

for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done

ifconfig $eth 0.0.0.0 promisc up

ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast

<Skript Ende>

Leider geht dabei im Standardfall die Routing-Information (OK, es ist in
diesem Fall nur eine Default-Route fürs Internet eingestellt, aber
trotzdem...) flöten, so dass ich im Skript hintendran die (Default-)Route
wieder neu setzen muss.
Das muss doch auch eleganter gehen, oder?
Genauso wird beim Beenden des Bridgings (Skript "bridge-stop") das
eth0-Interface nicht sauber wieder in seinen früheren Zustand versetzt.
Was kann man da sinnvollerweise tun? Als Workaround habe ich mal ein
"rcnetwork restart" hintendrangenagelt; das funktioniert, finde ich aber
auch eher die Wildsau-Methode...

Ansgar (lernend)

Mails an die angegebene Adresse erreichen mich - oder auch nicht.
Nützliche Adresse gibt's bei Bedarf!
Mail to the given address may or may not reach me - useful address will be
given when required!
 

Lesen sie die antworten

#1 Stefan Dreyer
20/01/2009 - 11:47 | Warnen spam
Ansgar Strickerschmidt wrote:
ifconfig $eth 0.0.0.0 promisc up



An genau dieser Stelle wird das Ethernet-Interface neu gesetzt, womit
dann deine Defaultroute flöten geht.

Leider geht dabei im Standardfall die Routing-Information (OK, es ist
in diesem Fall nur eine Default-Route fürs Internet eingestellt, aber
trotzdem...) flöten, so dass ich im Skript hintendran die
(Default-)Route wieder neu setzen muss.
Das muss doch auch eleganter gehen, oder?



Leider nein, weil Du ja Dein Ethernet-Interface neu setzt. Es könnte nur
insofern eleganter gehen, als das du die Routing-Informationen aus den
Konfigurationsdateien holst.

Genauso wird beim Beenden des Bridgings (Skript "bridge-stop") das
eth0-Interface nicht sauber wieder in seinen früheren Zustand versetzt.
Was kann man da sinnvollerweise tun? Als Workaround habe ich mal ein
"rcnetwork restart" hintendrangenagelt; das funktioniert, finde ich
aber auch eher die Wildsau-Methode...



Dann musst Du Dein Bridgingskrip so umschreiben, dass es die
Konfiguration aus /etc/sysconfig/network benutzt und wieder alles sauber
setzt.
Bridging per VPN finde ich persönlich eigentlich auch immer unsauber und
nehme lieber Routing. Das spart zum einen Netzwerktraffic und zum
anderen ermöglicht es eine saubere Trennung der Netze. Die ganzen
Probleme, die Dir oben unsauber erscheinen hast Du nàmlich damit erst
gar nicht.
Ich habe z.B. so ein Setup am Laufen, mit dem ich auf das Remotenetzwerk
zugreifen kann. Ein Sonderfall ist dann der Zugriff auf die Drucker, da
die Drucker im Remote-Netzwerk keine Defaultroute gesetzt haben, greife
ich dann per NAT darauf zu.

Ähnliche fragen