Zum Inhalt springen

Linux/Netzwerk/Konfiguration/Bridging: Unterschied zwischen den Versionen

Aus Foxwiki
Die Seite wurde neu angelegt: „== Bridging == Bridging puts multiple interfaces into the same network segment. This is very popular when connecting a server to multiple switches for high availability or with virtualization. In the latter case it is usually used to create a bridge in the host (eg. dom0) and put the virtual interfaces of the guests (domU) into the bridge. * The [https://packages.debian.org/bridge-utils bridge-utils] package is required to create bridged interfaces. Exam…“
 
K Textersetzung - „–“ durch „-“
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Bridging ==
'''Linux/Netzwerk/Konfiguration/Bridging''' - Bridging fasst mehrere Schnittstellen in einem Netzwerksegment zusammen
Bridging puts multiple interfaces into the same network segment. This is very popular when connecting a server to multiple switches for high availability or with virtualization. In the latter case it is usually used to create a bridge in the host (eg. dom0) and put the virtual interfaces of the guests (domU) into the bridge. * The [https://packages.debian.org/bridge-utils bridge-utils] package is required to create bridged interfaces.


Example: Connect a server to 2 switches (via eth0 and eth1) by defining bridge 0 and give the server an IP address in this subnet:
== Beschreibung ==
Bridging ist sehr beliebt, wenn ein Server für eine hohe Verfügbarkeit oder mit Virtualisierung an mehrere Switches angeschlossen wird
* Im letzteren Fall wird es normalerweise verwendet, um eine Brücke im Host (beispielsweise dom0) zu erstellen und die virtuellen Schnittstellen der Gäste (domU) in die Brücke einzufügen
* Das Paket [https://packages.debian.org/bridge-utilsbridge-utils bridge-utilsbridge-utils] ist erforderlich, um überbrückte Schnittstellen zu erstellen


auto br0
; Beispiel
iface br0 inet static
Verbinden Sie einen Server mit 2 Switches (über eth0 und eth1), indem Sie Bridge 0 definieren und dem Server eine IP-Adresse in diesem Subnetz zuweisen
  address 10.10.0.15/24
<syntaxhighlight lang="bash" highlight="1" line copy>
  gateway 10.10.0.1
auto br0
  bridge_ports eth0 eth1
iface br0 inet static
  up /usr/sbin/brctl stp br0 on
address 10.10.0.15/24
gateway 10.10.0.1
bridge_ports eth0 eth1
up /usr/sbin/brctl stp br0 on
</syntaxhighlight>


If a server is connected to multiple switches then you usually need to run the spanning tree protocol to avoid loops. Therefore STP must be turned on via an "up" command as shown above.
Wenn ein Server mit mehreren Switches verbunden ist, muss normalerweise das Spanning Tree Protocol ausgeführt werden, um Schleifen zu vermeiden
* Daher muss STP wie oben gezeigt über einen "up"-Befehl aktiviert werden


Example: Bridge setup without IP address configuration (use "manual" instead of "static") to "forward" an interface to a guest VM. (The static bridge config contains only 1 physical interface. The virtual interface will be added to the bridge when the VM is started.)
; Beispiel
Bridge-Einrichtung ohne IP-Adresskonfiguration (verwenden Sie "manual" anstelle von "static"), um eine Schnittstelle an eine Gast-VM weiterzuleiten. (Die statische Bridge-Konfiguration enthält nur eine physische Schnittstelle
* Die virtuelle Schnittstelle wird der Bridge hinzugefügt, wenn die VM gestartet wird.)
<syntaxhighlight lang="bash" highlight="1" line copy>
auto br1
iface br1 inet manual
bridge_ports eth4
up /usr/sbin/brctl setageing br1 0
up /usr/sbin/brctl stp br1 off
</syntaxhighlight>


auto br1
; Hinweis
iface br1 inet manual
: Die Linux-Bridge unterstützt nur STP, kein RSTP (Rapid Spanning Tree)
  bridge_ports eth4
* Daher unterstützt sie nur die alten STP-Kosten, nicht die neuen RSTP-Kosten (siehe [https://en.wikipedia.org/wiki/Spanning_Tree_Protocol#Data_rate_and_STP_path_costSpanning_Tree_Protocol])
  up /usr/sbin/brctl setageing br1 0
* Bei Cisco-Switches ist dies normalerweise in Ordnung, aber beispielsweise verwenden Juniper-Switches die RSTP-Kosten, was zu unterschiedlichen Spanning-Tree-Berechnungen und Schleifenproblemen führen kann
  up /usr/sbin/brctl stp br1 off
* Dies kann durch manuelles Einstellen der Kosten behoben werden, entweder auf dem Switch oder auf dem Server
* Die Einstellung der Kosten auf dem Switch wird bevorzugt, da Linux bei jedem Herunterfahren/Hochfahren einer Schnittstelle zu den Standardkosten zurückkehrt


Note: The Linux bridge supports only STP, no RSTP (Rapid Spanning Tree). Therefore it supports only the old STP Costs, not the new RSTP Costs (see [https://en.wikipedia.org/wiki/Spanning_Tree_Protocol#Data_rate_and_STP_path_cost Spanning_Tree_Protocol]). This is usually fine with Cisco Switches, but eg. Juniper switches use the RSTP costs and therefore this may lead to different spanning tree calculations and loop problems. This can be fixed by settings the costs manually, either on the switch or on the server. Setting the cost on the switch is preferred as Linux switches back to the default costs whenever an interface does down/up.
=== Bridging ohne Switching ===
Standardmäßig verhält sich die Linux-Bridge wie ein Switch
* Das bedeutet, dass sie sich die MAC-Adressen hinter einem Switch-Port merkt und Datenpakete nur an den entsprechenden Port weiterleitet, wenn die Ziel-MAC-Adresse bekannt ist - andernfalls werden die Pakete gesendet


In einigen Konfigurationen ist dies nicht wünschenswert
* Wenn die Bridge beispielsweise zwei Trunk-Schnittstellen verbindet und dieselben MAC-Adressen von beiden Schnittstellen aus gesehen werden können, je nach VLAN
* Da die Linux-Bridge keine VLANs unterstützt (dedizierte MAC-Adresstabellen für jedes VLAN), müssen Sie in solchen Konfigurationen das Lernen der MAC-Adressen deaktivieren und die Bridge in einen echten "Bridge"-Modus versetzen, und zwar mit
<syntaxhighlight lang="bash" highlight="1-2" line copy>
up /sbin/brctl setageing br0 0
up /sbin/brctl stp br0 off
</syntaxhighlight>


=== Bridging without Switching ===
<noinclude>
By default the Linux bridge acts like a switch. This means, it remembers the MAC addresses behind a switch port and if the destination MAC address is known, data packets or only forward to the respective port - otherwise packets will be broadcasted.


In some setups this is bad. For example if the bridge connects 2 trunk interfaces and the same MAC addresses may be seen from both interfaces, depending on the VLAN. As the Linux bridge does not support VLANs (dedicated MAC address tables per each VLAN), in such setups you have to disable the MAC address learning and put the bridge into a real "bridge" mode with:
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
=== Links ===
==== Weblinks ====


up /sbin/brctl setageing br0 0
[[Kategorie:Linux/Netzwerk/Konfiguration]]
up /sbin/brctl stp br0 off
 
</noinclude>

Aktuelle Version vom 11. Mai 2025, 20:52 Uhr

Linux/Netzwerk/Konfiguration/Bridging - Bridging fasst mehrere Schnittstellen in einem Netzwerksegment zusammen

Beschreibung

Bridging ist sehr beliebt, wenn ein Server für eine hohe Verfügbarkeit oder mit Virtualisierung an mehrere Switches angeschlossen wird

  • Im letzteren Fall wird es normalerweise verwendet, um eine Brücke im Host (beispielsweise dom0) zu erstellen und die virtuellen Schnittstellen der Gäste (domU) in die Brücke einzufügen
  • Das Paket bridge-utilsbridge-utils ist erforderlich, um überbrückte Schnittstellen zu erstellen
Beispiel

Verbinden Sie einen Server mit 2 Switches (über eth0 und eth1), indem Sie Bridge 0 definieren und dem Server eine IP-Adresse in diesem Subnetz zuweisen

auto br0
iface br0 inet static
address 10.10.0.15/24
gateway 10.10.0.1
bridge_ports eth0 eth1
up /usr/sbin/brctl stp br0 on

Wenn ein Server mit mehreren Switches verbunden ist, muss normalerweise das Spanning Tree Protocol ausgeführt werden, um Schleifen zu vermeiden

  • Daher muss STP wie oben gezeigt über einen "up"-Befehl aktiviert werden
Beispiel

Bridge-Einrichtung ohne IP-Adresskonfiguration (verwenden Sie "manual" anstelle von "static"), um eine Schnittstelle an eine Gast-VM weiterzuleiten. (Die statische Bridge-Konfiguration enthält nur eine physische Schnittstelle

  • Die virtuelle Schnittstelle wird der Bridge hinzugefügt, wenn die VM gestartet wird.)
auto br1
iface br1 inet manual
bridge_ports eth4
up /usr/sbin/brctl setageing br1 0
up /usr/sbin/brctl stp br1 off
Hinweis
Die Linux-Bridge unterstützt nur STP, kein RSTP (Rapid Spanning Tree)
  • Daher unterstützt sie nur die alten STP-Kosten, nicht die neuen RSTP-Kosten (siehe [1])
  • Bei Cisco-Switches ist dies normalerweise in Ordnung, aber beispielsweise verwenden Juniper-Switches die RSTP-Kosten, was zu unterschiedlichen Spanning-Tree-Berechnungen und Schleifenproblemen führen kann
  • Dies kann durch manuelles Einstellen der Kosten behoben werden, entweder auf dem Switch oder auf dem Server
  • Die Einstellung der Kosten auf dem Switch wird bevorzugt, da Linux bei jedem Herunterfahren/Hochfahren einer Schnittstelle zu den Standardkosten zurückkehrt

Bridging ohne Switching

Standardmäßig verhält sich die Linux-Bridge wie ein Switch

  • Das bedeutet, dass sie sich die MAC-Adressen hinter einem Switch-Port merkt und Datenpakete nur an den entsprechenden Port weiterleitet, wenn die Ziel-MAC-Adresse bekannt ist - andernfalls werden die Pakete gesendet

In einigen Konfigurationen ist dies nicht wünschenswert

  • Wenn die Bridge beispielsweise zwei Trunk-Schnittstellen verbindet und dieselben MAC-Adressen von beiden Schnittstellen aus gesehen werden können, je nach VLAN
  • Da die Linux-Bridge keine VLANs unterstützt (dedizierte MAC-Adresstabellen für jedes VLAN), müssen Sie in solchen Konfigurationen das Lernen der MAC-Adressen deaktivieren und die Bridge in einen echten "Bridge"-Modus versetzen, und zwar mit
up /sbin/brctl setageing br0 0
up /sbin/brctl stp br0 off


Anhang

Siehe auch

Links

Weblinks