PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seit dem anlegen einer eth-bridge gehts inet nicht mehr



jani143
12.03.06, 15:10
Ich bin der Anleitung von OpenVPN.net gefolgt und habe mir mit den bridte-start und stop scripts eine br0 angelegt.
http://openvpn.net/bridge.html#linuxscript
Wenn ich sie einmal anlege, überschreibt er die eth0 mit einem IPv6-record und löscht den v4-eintrag. Nach einem Neustart funktioniert es dann allerdings wieder, wenn ich es nicht mit starten lasse...
Ich kann aber trozdem noch von aussen auf den Rechner zugreifen.
Nur z.B. mit w3m nicht mehr ins inet, also w3m http://213.30.246.173/ oder w3m http://linuxforen.de/ geht nicht mehr.
Kommt nur:
"w3m: Can't load http://linuxforen.de/." bei raus... Ähnlich auch bei allen anderen Programmen, wie Apache/PHP oder so.

Ich hab nicht so wirklich eine Idee, woran es liegt aber währe es möglich, dass, weil wir hier hinter einem Router sitzen, er durch die Brücke den Internet-Gateway (192.168.0.1) nicht mehr findet?
Wenn ja, wie bringe ich dem das dann wieder bei?

Hier meine Netzwerkkonfiguration

server:~ # ifconfig -a
br0 Link encap:Ethernet HWaddr 00:30:84:29:82:87
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::230:84ff:fe29:8287/64 Scope:Link
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7534 errors:0 dropped:0 overruns:0 frame:0
TX packets:6836 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:740296 (722.9 Kb) TX bytes:4560755 (4.3 Mb)

eth0 Link encap:Ethernet HWaddr 00:30:84:29:82:87
inet6 addr: fe80::230:84ff:fe29:8287/64 Scope:Link
UP BROADCAST NOTRAILERS RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:7573 errors:0 dropped:0 overruns:0 frame:0
TX packets:6952 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:862875 (842.6 Kb) TX bytes:4575670 (4.3 Mb)
Interrupt:11 Base address:0x2000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:300 errors:0 dropped:0 overruns:0 frame:0
TX packets:300 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:447882 (437.3 Kb) TX bytes:447882 (437.3 Kb)

sit0 Link encap:IPv6-in-IPv4
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

tap0 Link encap:Ethernet HWaddr 00:FF2:43:48:42
inet addr:192.168.4.1 Bcast:255.255.255.253 Mask:254.0.0.0
inet6 addr: fe80::2ff:d2ff:fe43:4842/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:32 errors:0 dropped:2144 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:2048 (2.0 Kb)

Danke im Voraus, Jani

cyberdyne
13.03.06, 18:15
http://www.linuxforen.de/forums/showthread.php?p=1326994#post1326994

jani143
16.03.06, 07:20
Der Link geht nicht!

vBulletin-Systemmitteilung

Ungültige Angabe: Thema
Wenn Sie einem normalen, gültigen Link im Forum gefolgt sind, wenden Sie sich bitte an den Webmaster.

bla!zilla
16.03.06, 12:27
Poste bitte mal dein Bridge-Start und Bridge-Stop Skripte. Informationen bezühlich Distribution, OpenVPN Version usw. wären auch interessant. Gerne auch einen Netzplan.

jani143
16.03.06, 14:57
Hallo!

Bridge start:


cat /etc/openvpn/bridge-start
#!/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.0.2"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.0.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


Bridge stop:


cat /etc/openvpn/bridge-stop
#!/bin/bash

####################################
# Tear Down Ethernet bridge on Linux
####################################

# Define Bridge Interface
br="br0"

# Define list of TAP interfaces to be bridged together
tap="tap0"

ifconfig $br down
brctl delbr $br

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


Netzaufbau:



[inet] <---> [router] | <----> Server
| -----> Client 1
| -----> Client 2
etc.

router 192.168.0.1
server 192.168.0.2
clients 192.168.0.3-20
ovpn server 192.168.4.1
ovpn client 192.168.4.2 (Verbindung über inet -> router nach intern zum server geroutet)

Das Problem war jetzt, wenn ich die Brücke auf "Server" gestartet habe, kam Server nicht mehr über [router] raus nach [inet].

Danke, Jani

bla!zilla
16.03.06, 19:25
Deine Bridge übernimmt nach dem Start die IP von eth0.



ifconfig $eth 0.0.0.0 promisc up

ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast


Kannst du denn die OpenVPN Clients anpingen?

jani143
17.03.06, 13:44
Ja, kann ich. Allerdings nur vom Server selber. Nicht aus dem LAN, wo der Server drin steht.

arccosx
02.04.08, 15:52
Hi,
was ist denn an Hardware notwendig, um ein solches Bridging durchzuführen?
Ich kann das auf der openvpn.net Seite irgendwie nicht richtig deuten:
In dem dortigen Manual zum Thema Ethernet-Bridging steht, dass man aus Sicherheitsgründen nicht das Netzwerkinterface mit tap bridgen soll, dass sich mit dem Internet verbindet.


Make sure to only bridge TAP interfaces with private ethernet interfaces which are protected behind a firewall. Never bridge a TAP interface with the same ethernet interface you use to connect to the internet, as that would create a potential security hole.
Wenn ich aber deine ifconfig sehe, hast du nur einen eth Adapter. Der wird ja dann sowohl Internet als auch LAN ansprechen. Könnte es vielleicht daran liegen?

Ich habe bei mir auch einen Server im LAN stehen, der eine direkte Verbindung ins Internet hat. Auch nur mit einer Ethernetkarte.

Kann man mit so einer Hardware Konfiguration denn überhaupt ein VPN Netz aufbauen, oder braucht man in jedem Fall zwei eth-Adapter?

superbear
02.04.08, 15:57
hi arccosx,

also ich habe einen Rootserver, und der hat auch nur eine Netzwerkkarte und das ganze geht super, also ist es keine hardware anforderung!
Aber beim Bridging kann man total viele Fehler machen, daher denke ich liegt es eher an einer fehlkonfiguration wenn was nicht geht.

superbear

arccosx
02.04.08, 16:16
Danke für die schnelle Antwort superbear.
Verbinden kann ich mich zum OpenVPN Server. Allerdings habe ich das bisher nur aus dem gleichen LAN testen können.

Meine Idee ist es den Clienten des VPN Servers IP Adressen aus dem LAN zu geben. In meinem Fall also aus dem 172.20.126.0/24 Netz. Ich habe mich dafür an dem Ethernet-Bridging HowTo auf der openvpn.net Homepage orientiert.

bridge-start.sh funktioniert
openvpn starten funktioniert auch
verbinden geht auch (wobei ich wie gesagt nicht testen kann, ob er die IP Adressen richtig vergibt)

Was jetzt allerdings nicht mehr geht, ist die Verbindung vom Server ins Internet oder LAN. Vom Lan/Internet auf den Server geht aber noch.

Beende ich den OpenVPN Server und führe bridge-stop aus, verabschiedet sich der Server vom Netzwerk.
"Network not reachable".
Das behebt sich erst nach einem Neustart wieder.

Ich habe gesehen, dass du das gleiche Problem hattest (http://www.linuxforen.de/forums/showthread.php?t=241037&highlight=openvpn+bridging). Wie hast du es gelöst?

Gruß

superbear
02.04.08, 16:55
Ja ich erinnere mich, dass das bei mir am Anfang auch Probleme gemacht hat. Ich meine ich habe mein StartScript verändert, weil die ServerIP auf 0.0.0.0 gesetzt wird und das device in den Promiscuous Mode versetzt wird, was nicht so gut ist, weil man dann logischerweise den Server nicht mehr erreichen kann.

Mein StartScript:

!/bin/bash

#################################
# Erstellt eine Netzwerkbrücke unter Linux
# Benötigt: bridge-utils
#################################

# Definiert den Bridge Adapter
br="br0"

# Definiert eine Liste von TAP Adaptern,die gebridged werden sollen,
# Beispiel tap="tap0 tap1 tap2".
tap="tap0"

# Definiert den physischen Ethernet Adapter der gebridged werden soll,
# mit dem TAP Adapter, siehe oben.
eth="eth0"
eth_ip="<ServerIP>"
eth_netmask="<NetMask der ServerIP>"
eth_broadcast="<ServerIP>"

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

StopScript:

#!/bin/bash

####################################
# Herunterfahren der Ethernet Bridge unter Linux
####################################

# Definiert den Bridge Adapter
br="br0"

# Definiert eine Liste von TAP Adaptern die vorher gebridged wurden.
tap="tap0"

ifconfig $br down
brctl delbr $br

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

damit die Clients im VPN auch Internet über den Server bekommen (falls es ein Full-Tunnel ist) musst du noch ein paar Forwarding Regeln für IPTables einstellen.

iptables.sh:

#!/bin/bash

iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT

Ich hoffe das hilft dir weiter.

PS: Ich glaube das war ne Quick and Dirty Lösung, denn ich erinnere mich daran, dass da noch irgendwo eine kleine Ungereimtheit war. Aber es läuft bis heute super.

arccosx
03.04.08, 11:19
Hi,
ich hab dein Start-Skript mal so übernommen. Bis auf die Broadcasting Adresse, die bei mir nicht auf dem Server liegt sondern eine andere Adresse im Netzwerk hat.
War auch sonst alles gleich, bis auf die Auskommentierung des ifconfig Kommandos.
Mal sehen ob es diesmal besser klappt.
Danke schonmal!


edit:
Leider nein. Habe auch probiert die Broadcasting Adresse auf den Server zu legen. Immernoch kein Kontakt zur Außenwelt vom Server aus.