Unterabschnitte

BRIDGE - Ethernet Bridging

Die Einleitung

Hierbei handelt sich um eine vollwertige Ethernet-Bridge, die nach dem Spanning-Tree-Algorithmus arbeitet. Für den Anwender scheint der Rechner an den konfigurierten Ports danach wie ein Layer-3-Switch zu arbeiten.

Weiterführende Informationen zum Thema Bridging finden Sie hier: auf der Homepage des Linux Bridge Projektes.

Die ausführliche und verbindliche Beschreibung des Briding Standards. Vor allem die Informationen ab Seite 153 sind interessant. Bitte beachten Sie, daß der Linux Bridging Code noch nach dem Standard von 1998 arbeitet. Dort gibt es z.B. nur 16 Bit Werte für die Pathcost.

Hier kann man sich die unterschiedlichen Zeitwerte für das Spanning Tree Protocoll berechnen lassen:

Wie STP arbeitet kann man auf dieser Seite anhand einiger Beispiele sehen:

Das Menü im Setup-Programm

Das Menü im Setup-Programm ist wie folgt aufgebaut:

  4. Service administration  
  x. Bridge    
  1. View documentation
  2. Edit configuration
  3. Show status
  4. Start bridge
  5. Stop bridge
  6. Advanced configuration file handling
  0. Exit

Änderung der Konfiguration

Die Konfiguration kann über den Menüpunkt 'Edit configuration' geändert werden. Standardmäßig wird der Editor aufgerufen, der in der Environment-Konfiguration über die Variable 'EDITOR' festgelegt wurde. Wurden Änderungen an der Konfiguration vorgenommen, sollte der Server neu gebootet werden, damit diese aktiviert werden.

Die Konfigurationsdatei

In der Konfigurationsdatei, die über das Menü zugänglich ist, sind folgende Parameter vorhanden; wer sie von Hand editieren will findet sie unter
/etc/config.d/bridge

Die Parameter

START_BRIDGE

Für die Aktivierung des Bridge Service muss diese Variable lediglich auf den Wert 'yes' gestellt werden. Die Einstellung 'no' schaltet den Bridge Service ab.

Gültige Werte: yes, no

Standardeinstellung: START_BRIDGE='yes'

BRIDGE_BOOTDELAY

Startup-Verzögerung
Da eine Bridge mindestens 2 x BRIDGE_x_FORWARD_DELAY in Sekunden an Zeit benötigt um aktiv zu werden ist diese Zeitspanne abzuwarten, wenn die Devices beim Start von eisfair sofort benötigt werden um z.B. Syslog-Meldungen zu verschicken oder sich per DSL einzuwählen. Diese Zeit sollte also in diesem Fall mindestens 30 betragen.

Gültige Werte: Zeit in Sekunden

Standardeinstellung: BRIDGE_BOOTDELAY='30'

BRIDGE_N

Anzahl der voneinander unabhängigen Bridges Jede Bridge ist von den anderen vollkommen isoliert zu betrachten. Es wird pro Bridge ein virtuelles Ethernet-Device angelegt, beginnend bei br0.

Gültige Werte: 0 - 16

Standardeinstellung: BRIDGE_N='1'

BRIDGE_x_NAME

An dieser Stelle kann eine Beschreibung hinterlegt werden, z. B. zum Zweck dieser Bridge oder irgend etwas anderes. Bridge wertet diesen Parameter nicht aus.

Gültige Werte: alles

Standardeinstellung: BRIDGE_x_NAME=''

BRIDGE_x_ACTIVE

Über diesen Parameter wird eingestellt, ob der Datensatz aktiv sein soll.

Gültige Werte: yes, no

Standardeinstellung: BRIDGE_x_ACTIVE'='no'

BRIDGE_x_IPADDR

IP-Adresse für das Bridge-Gerät.

Gültige Werte: IP addr

Standardeinstellung: BRIDGE_x_IPADDR='192.168.6.254'

BRIDGE_x_NETWORK

Die Netzwerkadresse. Dieses ist bei Class-C-Netzen gleich der IP-Adresse der Karte, jedoch mit letztem Octett = 0. Bei anderen Netzen/Netmask entsprechend.

Gültige Werte: network

Standardeinstellung: BRIDGE_x_NETWORK='192.168.6.0'

BRIDGE_x_NETMASK

Konfiguriert die Netzwerkmaske für das Netz. Der Wert in der Beispiel-Datei gilt für ein Class-C-Netz und braucht z.B. für Netze der Form 192.168.X.0 normalerweise nicht geändert werden.

Gültige Werte: Netmask

Standardeinstellung: BRIDGE_x_NETMASK='255.255.255.0'

BRIDGE_x_STP

Das Spanning Tree Protokoll auf der Bridge aktivieren?

Das Spanning-Tree-Protokoll erlaubt es, mehrere redundante Verbindungen zu anderen Switches zu unterhalten ohne daß es zu einem logischen Broadcast-Kurzschluß kommt. Die schnellste Verbindung wird hierbei aktiv gelassen und die anderen Verbindungen automatisch gekappt. Sollte die aktive Verbindung irgendwann getrennt werden, wird die nächst-langsamere Verbindung aktiviert. Dieser Fail-Over dauert jedoch eine Weile.

Gültige Werte: yes, no

Standardeinstellung: BRIDGE_x_STP='no'

BRIDGE_x_PRIO

Welche Priorität hat diese Bridge (STP-spezifisch), optional

Nur gültig wenn BRIDGE_x_STP='yes' gesetzt wird!

Die Bridge-Priorität ist wichtig für das STP-Protokoll, damit dieses richtig funktionieren kann. Der Node mit der geringsten Priorität in der aktuellen Landschaft gewinnt die Wahl zur root-Bridge. Die selbe Priorität sollte nur einmal vorkommen. Die Node mit der geringsten Priorität sollte die größte Bandbreite haben, da diese alle 2 Sekunden (oder HELLO-Time) Steuerpakete verschickt und auch der Haupt-Traffic über sie abgewickelt wird.

Gültige Werte: 0 - 65536 in Schritten von 4096

Standardeinstellung: BRIDGE_x_PRIO=''

BRIDGE_x_HELLO

Stellt die HELLO Time ein (STP-spezifisch), optional

Nur gültig wenn BRIDGE_x_STP='yes' gesetzt wird!

Die HELLO-Time ist der Zeitabstand in Sekunden, in dem die sogenannten Hello-Pakete von der root Bridge verschickt werden. Diese Pakete sind sozusagen Heartbeat-Pakete, die für die automatische Konfiguration des STP-Netzwerkes nötig sind.

Gültige Werte: 1 - 10

Standardeinstellung: BRIDGE_x_HELLO='2'

BRIDGE_x_MAX_MESSAGE_AGE

Die maximale Gültigkeitsdauer des letzten HELLO-Paketes (STP-spezifisch), optional

Nur gültig wenn BRIDGE_x_STP='yes' gesetzt wird!

Wenn innerhalb dieser Zeit (in Sekunden) kein neues HELLO-Paket kommt, wird eine neue Wahl der Root-Bridge ausgelöst. Deshalb darf dieser Wert _nie_ weniger als die HELLO-Time betragen und kann auch hier nicht kleiner als 2x die HELLO-Time eingestellt werden.

Gültige Werte: 6 - 40

Standardeinstellung: BRIDGE_x_MAX_MESSAGE_AGE='20'

BRIDGE_x_FORWARD_DELAY

Verzögerung, nach der ein Bridge-Port auf aktiv gestellt werden kann (STP-spezifisch), optional

Nur gültig wenn BRIDGE_x_STP='yes' gesetzt wird!

Wenn ein Bridge-Port deaktiviert war und erneut aktiviert werden soll, z.B. auch wenn der Port grade neu hinzugekommen ist, dauert es diese Zeitspanne (in Sekunden) x 2 bis der Port in den Forwarding State wechselt. Dieser Parameter ist maßgebend für die Dauer eines möglichen Failovers verantwortlich.
Die Zeitspanne ist etwa diese: BRIDGE_x_MAX_MESSAGE_AGE + (2 x BRIDGE_x_FORWARD_DELAY) in Sekunden.

Daraus ergibt sich im Default: 20 + (2 x 15) = 50 Sekunden Die Failover-Zeit kann minimiert werden, wenn die Hello-Time auf 1 Sekunde und die Max_Message_Age auf 2 Sekunden gestellt wird. Das Forward Delay kann dann auf ein Minimum von 2 Sekunden (2 x Hello) eingestellt werden: 2 + (2 x 2) = 6 Sekunden. Schneller geht's nicht.

Gültige Werte: 4 - 30

Standardeinstellung: BRIDGE_x_FORWARD_DELAY='15'

BRIDGE_x_DEVICE_N

Wie viele Netzwerkdevices gehören der Bridge an?

Anzahl der Devices, die fest an die Bridge gebunden werden sollen. Kann auch 0 sein, wenn die Bridge nur als Platzhalter für eine IP-Adresse sein soll, die dann von einem an die Bridge gebundenen VPN-Tunnel übernommen werden soll.

Gültige Werte: 0 - 16

Standardeinstellung: BRIDGE_x_DEVICE_N='2'

BRIDGE_x_DEVICE_x_NAME

Bei diesem Parameter wird das Interface angegeben.

Es wird die Verwendung von Udev Namen wie 'enx123456789782' oder 'enp3s0' empfohlen, damit wird die größte Sicherheit in der Verwendung der Netzwerknamen erreicht.

Wenn es zu Problemen mit den Klassischen Namen wie 'eth0', 'eth1' kommt, ist z.B. 'net0' oder 'lan0' eine gute Wahl. Die Verwendung von 'eth0' oder 'eth1' wird nicht empfohlen.

Der Name kann, wenn der Editor „ece“ eingestellt ist, auch aus dem Dialog eingefügt werden. Somit sind keine Kryptischen Zeichen einzugeben.

Gültige Werte: net0, lan0, eth0, enx*, enp* etc..

Standardeinstellung: BRIDGE_x_DEVICE_x_NAME='net0'

BRIDGE_x_DEVICE_x_BUSID

Bei der Verwendung von 'net', 'lan' oder 'eth' als Netzwerknamen ist die Angabe von der Kernel-BUS-ID des Netzwerk-Geräes zwingend erforderlich. Bei der Verwendung von Udev Namen wie 'enx' oder 'enp' ist die Kernel-BUS-ID nicht erforderlich und kann dann leer bleiben.

Gültige Werte: Kernel bus id, '0000:00:00.0'

Standardeinstellung: BRIDGE_x_DEVICE_x_BUSID=''

BRIDGE_x_DEVICE_x_PRIO

STP-Priorität (optional)

Nur gültig wenn BRIDGE_x_STP='yes' gesetzt wird!

Ist nur relevant, wenn mehrere Verbindungen mit der selben Path_Cost zum selben Ziel führen. Der Port mit der geringsten Priorität wird dann ausgewählt.

Gültige Werte: 0 - 255 in Schritten von 16

Standardeinstellung: BRIDGE_x_DEVICE_x_PRIO='128'

BRIDGE_x_DEVICE_x_COST

STP-Traffic-Kosten (optional)

Nur gültig wenn BRIDGE_x_STP='yes' gesetzt wird!

Bestimmt die Traffic-Kosten für diesen Port. Desto geringer der Wert, desto höher ist die Bandbreite oder desto geringer die Kosten für Traffic. Die vorgeschlagene Berechnungsgrundlage ist 1000000/kBit/s, was zu den in Tabelle aufgelisteten Werten führt.

Tabelle: Traffic-Kosten in Abhängigkeit von der Bandbreite.
1WLAN hat jedoch Netto weniger Bandbreite, daher sollte man hier ca. 190 angeben
Bandbreite Einstellung BRIDGE_x_DEVICE_x_COST
64 kBit 15625
128 kBit 7812
256 kBit 3906
10 MBit 100
11 MBit 901
54 MBit 33
100 MBit 10
1 GBit 1


Gültige Werte: siehe Tabelle

Standardeinstellung: BRIDGE_x_DEVICE_x_COST='100'

Anmerkungen

Eine Bridge leitet jede Art von Ethernet-Daten weiter - somit lässt sich z.B. auch ein normales DSL-Modem z.B. Über WLAN ansprechen als hätte es eine Funkschnittstelle. Es wird kein Paket, welches die Bridge passiert auf irgendwelche unerwünschten Aktivitäten hin untersucht (Firewall), wodurch der Einsatz z.B. als WLAN-Access-Point nur unter sorgfältiger Abwägung der Sicherheitsrisiken zu empfehlen ist.

eis 2017-05-03