• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst, mit Tipp] Bridged Networking

Ich möchte auf meinem System (SuSE 10.2) meine Netzwerkkarte nutzen für verschiedene Anschlüsse, also nach dem Schema:

Interface br0 (Bridge)
Interface eth0 (Standard LAN)
Interface tap0 (TAP)
... usw.

Ich habe durch Suchen gefunden dass man die Tools tunctl und brctl dafür nutzen kann. Was ich allerdings nicht gefunden habe: Wie kann ich es schaffen, das Interface br0 permanent (beim booten) erstellen zu lassen und eth0 standardmässig darauf zu verbinden?

Ich habe verstanden dass ich wenn ich ein Bridge-Interface br0 einrichten möchte, eine Konfigurationsdatei /etc/sysconfig/network/ifcfg-br0 anlegen muss. Aber was genau muss da hinein? Muss ich die ifcfg-Datei für eth0 auch ändern, damit es sich an der Bridge anschliesst?

Es wäre super hilfreich wenn mir jemand ein Beispiel für die o.g. Konfigurations-Dateien geben kann! Wer hat schon Erfahrung mit so einer Konstellation und kann sagen was man tun muss damit es läuft?

Vielen Dank schon mal für eure Hinweise!
 
OP
F

FordPrefect

Member
jengelh schrieb:
/etc/sysconfig/network/ifcfg.template hat n Template für Bridges.
FWIW, tap ist durch tun ersetzt.

Danke für die Antwort. Das Template habe ich gesehen, aber welche der 78 Parameter sind wichtig um eine Bridge zu konfigurieren? Ich möchte ja standardmässig mein bestehendes Interface eth0 darauf verbinden und dann bei Bedarf noch weitere TAP bzw. TUN Interfaces. Muss ich dann die Konfiguration für eth0 auch ändern ... falls ja, wie?

Was bedeutet "FWIW"? ... dieser Slang-Begriff ist mir noch nie begegnet. Ich gehe davon aus dass ich mit 'tunctl' letztlich TUN Interfaces erzeuge, richtig?

Vielen Dank!
 

nbkr

Guru
Bei was Debianartigem geht es so:
http://www.benjaminfleckenstein.de/de/anleitungen/anl_netzwerkbruecke.html
 
OP
F

FordPrefect

Member
nbkr schrieb:
Bei was Debianartigem geht es so:
http://www.benjaminfleckenstein.de/de/anleitungen/anl_netzwerkbruecke.html

Danke für den Tipp! Da steht inhaltlich so ziemlich genau das was ich erreichen möchte. Mein Problem ist nur, dass "/etc/network/interfaces" bei SuSE nicht existiert weil es für diese Konfigurationen ein anderes Konzept gibt.

Wenn ich das aus deinem Link also noch nach SuSE "übersetzen" kann, dann sollte es flutschen :) Wer kann mir einen Tipp geben wo ich was eintragen muss? Oder kennt jemand vielleicht ne ähnliche Anleitung für SuSE?
 
Ist es denn so schwer in ifcfg.template nachzugucken? Nene...
Erstell eine /etc/sysconfig/network/ifcfg-br0 in der steht
Code:
STARTMODE=auto
BOOTPROTO=static
IPADDR=1.3.3.7/24
BROADCAST=1.3.3.255
USERCONTROL=no
NAME=br0
BRIDGE=yes
# Interfaces auflistten (kann auch eth0 sein, aber eth-id-MAC ist flexibler)
BRIDGE_PORTS="eth-id-00:0a:e6:98:ed:d7 eth-id-00:20:18:8c:ce:79"
BRIDGE_FORWARDDELAY=1
BRIDGE_STP=off
und danach
Code:
rcnetwork start br0
Und statt in /etc/sysctl.conf wild rumzupokern macht man
Code:
IP_FORWARD=yes
in /etc/sysconfig/sysctl. Fertig (wegen sysctl vielleicht die sysctl-Tabelle neuladen). Das ist viel einfacher als bei Sternbuntu und Debian.

Wie du da tun reinquetscht (nicht tap...), bleibt als Aufgabe für dich, jedenfalls sollte das Interface wohl schon existieren bevor br0 gestartet wird.
Code:
# /etc/sysconfig/ifcfg-tun0 oder ifcfg-a.tun0 -- je nachdem was geht
PRE_UP_SCRIPT="tunctl sonstwas oder blabla"
 
OP
F

FordPrefect

Member
Hallo,
erst mal danke für die Antwort. Ich weiss nicht warum deine einleitenden Worte so genervt klingen. Für mich jedenfalls ist das Template nicht wirklich selbsterklärend ... aber ich versuche ja was zu lernen :)

Hier nun die Konfigurations-Datei für mein Bridge Interface 'br0' (Datei /etc/sysconfig/network/ifcfg-br0):

Code:
## This is the interface configuration for the bridge br0
STARTMODE=auto
BOOTPROTO=dhcp
NAME=Bridge Interface (br0)
BRIDGE='yes'
BRIDGE_PORTS='eth-id-<MAC Adresse meiner Netzwerkkarte>'
BRIDGE_FORWARDDELAY='1'

Ich habe also eigenmächtig das Interface auf DHCP eingestellt, und im Gegenzug für mein Interface 'eth0' das 'BOOTPROTO' auf 'static':

Code:
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IFPLUGD_PRIORITY='20'
IPADDR=''
MTU=''
NAME='Toshiba America Info Ethernet controller'
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='ifplugd'
UNIQUE='rBUF.ZYV5BD_PbY1'
USERCONTROL='no'
_nm_name='bus-pci-0000:03:08.0'

Meine Frage nun: wenn ich 'ifconfig' eingebe, müsste ich das Interface 'br0' dann in der Liste der Interfaces sehen? Das tu ich nämlich nicht. Selbstverständlich habe ich den 'rcnetwork start ....' zuvor gemacht.

Ergänzend: wenn sich mein Interface 'eth0' wieder wie früher meldet (d.h. mit einer über DHCP bezogenen Adresse), kann ich davon ausgehen dass sich 'eth0' (static) über die Bridge 'br0' (DHCP) verbunden hat?

Danke noch mal für die Hilfe ...
 
FordPrefect schrieb:
Meine Frage nun: wenn ich 'ifconfig' eingebe, müsste ich das Interface 'br0' dann in der Liste der Interfaces sehen? Das tu ich nämlich nicht. Selbstverständlich habe ich den 'rcnetwork start ....' zuvor gemacht.
Und kam sowas wie...?
Code:
    eth0      configuration: eth-id-aa:bb:cc:dd:ee:ff
    eth0      IP address: 1.2.3.4/24
    br0       Ports: [eth-id-00:e0:81:34:6b:45]
Hinter Ports: sollte was stehen. Und nimm am besten auch `/sbin/ip a` - aber auf die Sig achtet ja eh keiner.
Ergänzend: wenn sich mein Interface 'eth0' wieder wie früher meldet (d.h. mit einer über DHCP bezogenen Adresse), kann ich davon ausgehen dass sich 'eth0' (static) über die Bridge 'br0' (DHCP) verbunden hat?
Du kannst davon ausgehen, dass eine komische Situation entsteht, wenn eth0 und br0 sich per DHCP was holen _und_ eth0 in br0 liegt.
 
OP
F

FordPrefect

Member
jengelh schrieb:
FordPrefect schrieb:
Meine Frage nun: wenn ich 'ifconfig' eingebe, müsste ich das Interface 'br0' dann in der Liste der Interfaces sehen? Das tu ich nämlich nicht. Selbstverständlich habe ich den 'rcnetwork start ....' zuvor gemacht.
Und kam sowas wie...?
Code:
    eth0      configuration: eth-id-aa:bb:cc:dd:ee:ff
    eth0      IP address: 1.2.3.4/24
    br0       Ports: [eth-id-00:e0:81:34:6b:45]
Hinter Ports: sollte was stehen. Und nimm am besten auch `/sbin/ip a` - aber auf die Sig achtet ja eh keiner.
Ergänzend: wenn sich mein Interface 'eth0' wieder wie früher meldet (d.h. mit einer über DHCP bezogenen Adresse), kann ich davon ausgehen dass sich 'eth0' (static) über die Bridge 'br0' (DHCP) verbunden hat?
Du kannst davon ausgehen, dass eine komische Situation entsteht, wenn eth0 und br0 sich per DHCP was holen _und_ eth0 in br0 liegt.

Ausgabe von 'ifconfig':
Code:
eth0      Protokoll:Ethernet  Hardware Adresse <MAC Adresse>
          inet Adresse:<IP Adresse>  Bcast:<IP Adresse>  Maske:255.255.252.0
          inet6 Adresse: <IP6 Adresse>/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:428104 errors:0 dropped:0 overruns:0 frame:0
          TX packets:246930 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 Sendewarteschlangenlänge:1000
          RX bytes:246713587 (235.2 Mb)  TX bytes:136839241 (130.5 Mb)

eth1      Protokoll:Ethernet  Hardware Adresse <MAC Adresse>
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:17 errors:0 dropped:29 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 Sendewarteschlangenlänge:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:177 Basisadresse:0xc000 Speicher:ffcff000-ffcfffff

lo        Protokoll:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:114707 errors:0 dropped:0 overruns:0 frame:0
          TX packets:114707 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 Sendewarteschlangenlänge:0
          RX bytes:109903651 (104.8 Mb)  TX bytes:109903651 (104.8 Mb)

Ausgabe von 'ip a':

Code:
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether <MAC Adresse> brd ff:ff:ff:ff:ff:ff
    inet <IP Adresse>/22 brd <IP Adresse> scope global eth0
    inet6 <IP6 Adresse>/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether <MAC Adresse> brd ff:ff:ff:ff:ff:ff
4: sit0: <NOARP> mtu 1480 qdisc noop
    link/sit 0.0.0.0 brd 0.0.0.0

'eth1' ist meine Wireless-Verbindung.

Also ich kann die Bridge 'br0' in den Ausgaben nirgends erkennen. Welche Informationen kann ich dir noch geben damit du sehen kannst was da schief läuft?
 
Ja eigentlich wär' ich davon ausgegangen, dass deine Bridge nach `rcnetwork start br0` da ist. Ist sie wohl nicht. Hast du das Paket bridge-utils drin?
 
OP
F

FordPrefect

Member
jengelh schrieb:
Ja eigentlich wär' ich davon ausgegangen, dass deine Bridge nach `rcnetwork start br0` da ist. Ist sie wohl nicht. Hast du das Paket bridge-utils drin?

Ich denka ja, hier die Ausgabe von smart:

Code:
WARNUNG!: bridge-utils-1.2-12@i586 ist bereits installiert
 
OP
F

FordPrefect

Member
So, nun habe ich nach längerem Studium und Probieren die Konfiguration von Bridge und Schnittstellen zusammen.

Hier die Konfiguration der Bridge (/etc/sysconfig/network/ifcfg-br0):

Code:
BOOTPROTO='dhcp'
NETMASK='255.255.255.0'
STARTMODE='hotplug'
USERCONTROL='no'
DHCLIENT_TIMEOUT=30
BRIDGE='yes'
BRIDGE_PORTS='eth-id-<MAC Adresse>'

und hier das Interface dazu (/etc/sysconfig/network/ifcfg-eth-id-<MAC Adresse>):
Code:
BOOTPROTO='static'
IPADDR='0.0.0.0'
ETHTOOL_OPTIONS=''
IFPLUGD_PRIORITY='20'
MTU=''
NAME='Toshiba America Info Ethernet controller'
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
UNIQUE='rBUF.ZYV5BD_PbY1'
USERCONTROL='no'
_nm_name='bus-pci-0000:03:08.0'

In diesem Zusammenhang scheint wichtig zu sein dass nicht beide -Bridge und Interface- auf DHCP laufen. Daher habe ich das Interface auf 'static' gesetzt, was aber erst dann erfolgreich war als ich die IP Adresse auf '0.0.0.0' gesetzt habe. Alles andere führt zur Verwirrung des Netzwerks :)

Ein offener Punkt bleibt noch: das Bridge-Interface wird nicht automatisch nach dem Booten gestartet. Dazu habe ich auch alle möglichen STARTMODEs versucht. Momentan behelfe ich mich damit, in /etc/init.d/boot.local den Befehl

Code:
ifup br0

abzusetzen.

Hinweise dazu wären willkommen! Ansonsten setze ich das Thema mal auf gelöst und hoffe damit auch anderen einen Hinweis gegeben zu haben.
 
Oben