Ethernet-Bridge: Probleme mit Script und OpenSuSe

mschlegel

Erfahrenes Mitglied
Hi
Ich will gerade ein VPN mit openvpn einrichtet und habe dafür folgendes Script
Code:
#!/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="192.168.0.110"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.1.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

Leider kann mein OpenSuSe 10.3 mit dem Befehl brctl nichts anfangen (Command not found), und nach jedem Test muss ich den Rechner neustarten weil sonst das Internet nicht mehr funktioniert.

Kann mir an dieser Stelle eventuell jemand behilflich sein? Ich brauche ein tap-VPN (also mit bridging).

Danke
 
Danke für die Links, aber die auf der WikiSeite wird die Bridge auch mit einem Skript gestartet und gestoppt und dieses hat auch wieder diesen brctl-Befehl (http://openvpn.net/bridge.html ganz unten).

Und genau da haperts ja

EDIT: Ok, Fehler gefunden...die bridge-utils waren nicht installiert.
 
Zuletzt bearbeitet:
Ich muss nochmal ein paar Fragen zu meiner Bridge loswerden. So ganz funktioniert das alles noch nicht ;)

Also im Netzwerk hat der Linux-Server die IP 192.168.0.110
Muss die Bridge jetzt die gleiche IP haben (so hab ich das im Moment) oder eine andere, und die Bridge stellt dann nur eine Verbindung zwischen beiden her?

Ich habe auch einen SSH Port auf den Server weitergeleitet (für Putty) und das funktioniert auch wunderbar (auch mit loopback), aber sobald ich die Bridge starte funktioniert auch das nicht mehr. Ich habe auch folgende iptables-Einträge vorgenommen (ebenfalls aus dem offiziellen HOWTO)
Code:
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT

Kann sich jemand mögliche Fehlerquellen vorstellen?

Die Sache ist langsam ziemlich dringend, da ich bald das Land verlasse und bis dahin muss das funktionieren

Vielen Dank schon mal im Voraus.
-- Marc
 
ICh kenn mich mit Bridges jetzt nicht wirklich aus ... aber rein intuitiv wuerd ich sagen, dass die Bridge ne andere IP braucht.

Um dann den Sicherheitsstandard zu bekommen setzte die Server/Hosts/PCs dahinter per Maskerading auf eine IP (sofern mir bekannt die Bridge-IP) um deren Existenz zu verschleiern, bzw von aussen unsichtbar zu machen.

Wie genau das funktioniert weiss ich jetzt nicht, wie gesagt, ist ne Vermutung mehr nicht. Aber ich dachte mal sowas gelesen zu haben.

Bin selber fuer weitere Infos dankebar. ;)
 
Die IP-Konfiguration war ok.

Inzwischen kann ich zu meinem VPP verbinden, allerdings nur Netzwerkintern. Über die bei DynDNS registrierte Domain funktioniert es nicht und es scheint dass die Firewall dafür verantwortlich ist. Yast zeigt mir in der Konfiguration aber nur eth0 an und laut Doku muss man die Firewall-Regeln speziell für die neuen Adapter anlegen (die geposteten iptable-Befehle sind nach einem Neustart ja wieder weg).
 
So wie es scheint habe ich endlich die Lösung gefunden

im Startskript muss noch ein route-Befehl hinzugefügt werden
Bash:
route add default gw <RouterIP>
im Stopskript muss der selbe Befehl stehen und zusätzlich noch ein ifconfig-Eintrag
Bash:
ifconfig eth0 <RechnerIP> up
route add default gw <RouterIP>

Ich bin jetzt in der Lage über die externe IP mich zu meinem VPN zu verbinden, ein Test von einem externen Netzwerk steht noch aus (im Moment war es eher ein "von hinten durch die Brust" Test).

Diese Einträge habe ich in einem OpenSuse-Forum gefunden. Weder im HOWTO von OpenVPN noch im Wiki habe ich eine Lösung finden können (aber wahrscheinlich ist dies eine spezielles Suse-Problem).

Ich setzt es auf erledigt, sobald ich wirklich sicher bin dass es so funktioniert.

EDIT: jetzt funktioniert alles :)
 
Zuletzt bearbeitet:
Zurück