Zum Inhalt springen

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

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  Linux » Logical Volume Manager » dpkg-query » test » Linux/Netzwerk/Konfiguration/Bridging
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
== Bridging ==
== 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.
Bridging fasst mehrere Schnittstellen in einem Netzwerksegment zusammen
* The [https://packages.debian.org/bridge-utils bridge-utils] package is required to create bridged interfaces.
* Dies 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 (z. B. 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] ist erforderlich, um überbrückte Schnittstellen zu erstellen


; Example
; Beispiel
Connect a server to 2 switches (via eth0 and eth1) by defining bridge 0 and give the server an IP address in this subnet:
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
<syntaxhighlight lang="bash" highlight="1" line>
iface br0 inet static
auto br0
  address 10.10.0.15/24
iface br0 inet static
  gateway 10.10.0.1
address 10.10.0.15/24
  bridge_ports eth0 eth1
gateway 10.10.0.1
  up /usr/sbin/brctl stp br0 on
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
; Beispiel
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.)
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
auto br1
* Die virtuelle Schnittstelle wird der Bridge hinzugefügt, wenn die VM gestartet wird.)
iface br1 inet manual
<syntaxhighlight lang="bash" highlight="1" line>
  bridge_ports eth4
auto br1
  up /usr/sbin/brctl setageing br1 0
iface br1 inet manual
  up /usr/sbin/brctl stp br1 off
bridge_ports eth4
up /usr/sbin/brctl setageing br1 0
up /usr/sbin/brctl stp br1 off
</syntaxhighlight>


; Note
; Hinweis
: 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.
: 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 [https://en.wikipedia.org/wiki/Spanning_Tree_Protocol#Data_rate_and_STP_path_costSpanning_Tree_Protocol])
* Bei Cisco-Switches ist dies normalerweise in Ordnung, aber z.&nbsp;B.&nbsp;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 without Switching ===
=== Bridging ohne Switching ===
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.
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 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:
In einigen Konfigurationen ist dies nicht wünschenswert
up /sbin/brctl setageing br0 0
* Wenn die Bridge beispielsweise zwei Trunk-Schnittstellen verbindet und dieselben MAC-Adressen von beiden Schnittstellen aus gesehen werden können, je nach VLAN
up /sbin/brctl stp br0 off
* 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" line>
up /sbin/brctl setageing br0 0
up /sbin/brctl stp br0 off
</syntaxhighlight>

Version vom 21. Februar 2025, 14:42 Uhr

Bridging

Bridging fasst mehrere Schnittstellen in einem Netzwerksegment zusammen

  • Dies 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 (z. B. dom0) zu erstellen und die virtuellen Schnittstellen der Gäste (domU) in die Brücke einzufügen
  • Das Paket [1] 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 [2])
  • Bei Cisco-Switches ist dies normalerweise in Ordnung, aber z. B. 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