brctl steht für Bridge Control.
Unter Linux wird dieser Befehl verwendet, um eine Ethernet-Bridge zu erstellen und zu manipulieren.
Dies wird normalerweise verwendet, wenn Sie mehrere Ethernet-Netzwerke auf Ihren Servern haben und diese kombinieren und als ein logisches Netzwerk darstellen möchten.
Wenn Sie beispielsweise eth0 und eth1 haben, können Sie sie kombinieren und nur als br0 darstellen, was wiederum sowohl eth0 als auch eth1 für den Netzwerkverkehr verwendet.
In diesem Tutorial haben wir Folgendes behandelt:
- Neue Ethernet Bridge mit addbr erstellen
- Verfügbare Ethernet-Bridge mit show anzeigen
- Vorhandene Ethernet-Bridge mit delbr löschen
- Eine Schnittstelle zu einer bestehenden Bridge hinzufügen
- Mehrere Schnittstellen zu bestehender Bridge hinzufügen
- Nachverfolgung der MAC-Adresse einer Bridge
- Alterungszeit für Mac-Adresse auf einer Bridge festlegen
- Spanning Tree auf Ethernet Bridge einrichten
- STP-Parameterwerte einer Bridge anzeigen
- Bridge-Parameterwerte ändern
1. Erstellen Sie eine neue Ethernet-Bridge mit addbr
Mit brctl addbr können wir eine neue Ethernet-Bridge erstellen.
Im folgenden Beispiel haben wir auf diesem Server drei Ethernet-Bridges erstellt:dev, stage und prod.
brctl addbr dev brctl addbr stage brctl addbr prod
Bitte beachten Sie, dass dies zu diesem Zeitpunkt nur eine leere Ethernet-Bridge ist, auf der sich kein anderes Ethernet-Netzwerk befindet.
Bitte beachten Sie, dass dieses brctl etwas anders ist als das zuvor besprochene Linux EtherChannel NIC-Bonding.
2. Zeigen Sie die verfügbare Ethernet-Bridge mit show
anMit brctl show können wir alle verfügbaren Ethernet-Bridges auf Ihrem Server anzeigen.
Das folgende Beispiel zeigt alle aktuellen Instanzen der drei Brücken, die wir gerade erstellt haben.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no stage 8000.000000000000 no
Wenn Sie bemerken, dass die letzte Spalte „Schnittstellen“ leer ist. Das bedeutet, dass keiner dieser Bridges derzeit noch ein Ethernet-Gerät zugeordnet ist.
In diesem Zusammenhang:9 Linux-Ethtool-Beispiele zum Manipulieren einer Ethernet-Karte
3. Löschen Sie die vorhandene Ethernet-Bridge mit delbr
Mit brctl delbr können wir eine bestehende Ethernet Bridge löschen.
Das folgende Beispiel löscht die „stage“-Instanz der Ethernet-Bridge.
brctl delbr stage
Wie Sie dem show-Befehl entnehmen können, sehen wir die „stage“-Ethernet-Bridge nicht mehr.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no
Bitte beachten Sie, dass Sie eine Brücke entfernen können, wenn sie aktiv (d. h. aktiv) ist. Sie müssen zuerst die Brücke herunterfahren und dann löschen.
Bitte beachten Sie auch, dass der frühere brctl-Befehl als brcfg.
aufgerufen wurde4. Hinzufügen einer Schnittstelle zu einer bestehenden Bridge
Mit brctl addif können wir eine Schnittstelle zu einer bestehenden Ethernet-Bridge hinzufügen.
Das folgende Beispiel fügt das Ethernet-Netzwerk eth0 zur Bridge „dev“ hinzu, die wir gerade erstellt haben.
Warnung:Versuchen Sie dies nicht auf kritischen Computern, da Sie die Netzwerkverbindung zu diesem Computer verlieren könnten, wenn etwas schief geht. Versuchen Sie dies nur auf einer Testinstanz, auf der Sie Zugriff auf die Konsole haben.
brctl addif dev eth0
Oben:
- Das macht eth0 wirklich zu einem Port der Brücke „dev“.
- Also werden alle Frames, die auf eth0 ankommen, so verarbeitet, als ob sie wirklich an der Bridge ankommen würden.
- Außerdem wird eth0 verwendet, wenn die Frames auf der „dev“-Bridge gesendet werden. Wenn mehrere Schnittstellen Teil der „dev“-Bridge sind, dann ist eth0 ein potenzieller Kandidat, um die ausgehenden Frames von der Bridge zu versenden.
Nach dem Hinzufügen von eth0 zur „dev“-Bridge zeigt der Befehl brctl show Folgendes an.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.0050568954bc no eth0 prod 8000.000000000000 no
Wie Sie der obigen Ausgabe entnehmen können, steht in der letzten Spalte „interfaces“ eth0 für „dev“ Bridge.
Hinweis:Wenn beim Hinzufügen von eth0 zur „dev“-Bridge etwas schief geht, führen Sie den folgenden Befehl von der Konsole aus, um die dev-Bridge zu löschen.
# brctl delbr dev
Beachten Sie außerdem, dass Sie beim Versuch, die Loopback-Schnittstelle zur Bridge hinzuzufügen, den folgenden ungültigen Argumentbefehl erhalten.# brctl addif dev lo
can't add lo to bridge dev:Invalid argument
Wie Sie sich vorstellen können, können Sie der Bridge keine Schnittstelle hinzufügen, die auf dem System nicht vorhanden ist.
# brctl addif dev eth2 interface eth2 does not exist!
5. Mehrere Schnittstellen zu bestehender Bridge hinzufügen
Im obigen Beispiel haben wir der Bridge nur ein Ethernet-Gerät (eth0) hinzugefügt.
Aber die ganze Idee hinter der Verwendung einer Bridge besteht darin, der Bridge weitere Schnittstellen hinzuzufügen.
Im folgenden Beispiel fügen wir sowohl eth0 als auch eth1 zur Bridge „dev“ hinzu.
# brctl addif dev eth0 eth1
Wie Sie der folgenden Ausgabe entnehmen können, sehen wir für die Entwicklungsbrücke zwei Zeilen. In der letzten Spalte „Schnittstellen“ sehen wir sowohl eth0 als auch eth1 für „dev“ Ethernet Bridge.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.0050568954bc no eth0 eth1 prod 8000.000000000000 no
Hinweis:Wenn eine bestimmte Ethernet-Schnittstelle bereits Teil einer Bridge ist, können Sie sie nicht zu einer anderen Bridge hinzufügen.
Grundsätzlich kann ein Netzwerk nur Teil einer Bridge sein. Wenn nicht, erhalten wir die folgende Fehlermeldung, wenn wir versuchen, sie zu einer anderen Bridge hinzuzufügen.
# brctl addif prod eth1 device eth1 is already a member of a bridge; can't enslave it to bridge prod
6. Verfolgen der MAC-Adresse einer Bridge
Mit brctl showmacs können wir alle gelernten MAC-Adressen einer Bridge sehen.
Im folgenden Beispiel sind ab sofort die beiden Mac-Adressen, die mit der Ethernet-Bridge „prod“ verbunden sind. Diese Daten ändern sich abhängig vom aktuellen Status dessen, was mit der Brücke verbunden ist.
# brctl showmacs prod port no mac addr is local? ageing timer 1 00:50:56:89:54:bc yes 0.00 2 00:60:50:46:bc:40 no 0.00
7. Alterungszeit für Mac-Adresse auf einer Bridge festlegen
Im folgenden Beispiel setzen wir die Alterungszeit der MAC-Adresse auf der „dev“-Ethernet-Bridge auf 120 Sekunden.
brctl setaging dev 120
Oben:
- dev ist der Name der Bridge, wo wir diesen Wert setzen
- 120 sind Sekunden
- Wenn also innerhalb von 120 Sekunden kein Frame für „dev“-Bridge erkannt wird, löscht „dev“-Bridge die MAC-Adresse aus der Weiterleitungsdatenbank.
8. Spanning Tree auf Ethernet Bridge einrichten
Mit brctl stp können wir Spanning Tree auf Ethernet Bridge einrichten.
Aber standardmäßig ist Spanning Tree nicht aktiviert, wenn wir eine Bridge erstellen.
Spanning Tree ist hilfreich, wenn Sie mehrere Bridges in Ihrem Netzwerk haben und sie alle zusammenarbeiten können, um den kürzesten Pfad zwischen zwei Ethernets zu finden.
Im folgenden Beispiel aktivieren wir den Spanning Tree auf der „dev“-Ethernet-Bridge.
Wir können entweder on oder yes verwenden, um Spanning Tree zu aktivieren. Die beiden folgenden Befehle werden also genau dasselbe tun.
brctl stp dev on brctl stp dev yes
Wie Sie der folgenden Show-Ausgabe entnehmen können, ist der Wert in der Spalte „STP enabled“ für „dev“ Bridge jetzt „yes“.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 yes prod 8000.000000000000 no
Gehen Sie wie folgt vor, um Spanning Tree auf Ihrer Ethernet-Bridge zu deaktivieren:
# brctl stp dev off # brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no
9. STP-Parameterwerte einer Bridge anzeigen
STP steht für Spanning Tree Protocol.
Sobald Sie stp auf Ihrer Bridge aktiviert haben, können Sie showstp wie unten gezeigt verwenden, um alle stp-Parameterwerte Ihrer Bridge anzuzeigen.
Im Folgenden werden der stp-Parameter und sein aktueller Wert für die „dev“-Brücke angezeigt.
# brctl showstp dev dev bridge id 000a.000000000000 designated root 000a.000000000000 root port 0 path cost 0 max age 19.99 bridge max age 19.99 hello time 1.99 bridge hello time 1.99 forward delay 14.99 bridge forward delay 14.99 ageing time 299.95 hello timer 0.00 tcn timer 0.00 topology change timer 0.00 gc timer 0.00 hash elasticity 4 hash max 512 mc last member count 2 mc init query count 2 mc router 1 mc snooping 1 mc last member timer 0.99 mc membership timer 259.96 mc querier timer 254.96 mc query interval 124.98 mc response interval 9.99 mc init query interval 31.24 flags
10. Bridge-Parameterwerte ändern
Die Standardwerte der Spanning Tree-Parameter für eine bestimmte Bridge können geändert werden. Sie können auch andere Parameterwerte der von Ihnen erstellten Brücke ändern.
Alle folgenden set-Befehle, die in der folgenden Tabelle aufgeführt sind, beginnen mit brctl. Zum Beispiel:
brctl setageing dev 100
Die folgende Tabelle zeigt verfügbare set-Befehle für brctl. Der Zeitwert wird in Sekunden angegeben.
brctl-Befehl | Beschreibung |
---|---|
Brückenzeit einstellen | Alterungszeit festlegen |
setbridgeprio Bridgeprio | Bridge-Priorität einstellen (zwischen 0 und 65535) |
setfd Brückenzeit | Brückenweiterleitungsverzögerung einstellen |
Sethello-Brückenzeit | Begrüßungszeit einstellen |
Maximale Brückenzeit einstellen | Legen Sie das maximale Nachrichtenalter fest |
setgcint Brückenzeit | Garbage-Collection-Intervall in Sekunden festlegen |
sethashel bridge int | Hash-Elastizität festlegen |
sethashmax Bridge int | Hash-Maximum festlegen |
setmclmc Bridge int | Setzen Sie die Anzahl der letzten Multicast-Mitglieder |
setmcrouter bridge int | Multicast-Router einstellen |
setmcsnoop Bridge int | Multicast-Snooping einstellen |
setmcsqc Bridge int | Zähler für Multicast-Startanfragen festlegen |
setmclmi-Brückenzeit | Intervall des letzten Multicast-Mitglieds festlegen |
setmcmi-Brückenzeit | Multicast-Mitgliedschaftsintervall festlegen |
setmcqpi-Brückenzeit | Multicast-Querier-Intervall festlegen |
setmcqi-Brückenzeit | Multicast-Abfrageintervall festlegen |
setmcqri Brückenzeit | Stellen Sie das Antwortintervall für Multicast-Anfragen ein |
setmcqri Brückenzeit | Legen Sie das Abfrageintervall für den Multicast-Start fest |
setpathcost Bridge-Port-Kosten | Pfadkosten festlegen |
setportprio Bridge-Port-Prio | Port-Priorität festlegen (zwischen 0 und 255) |
setportmcrouter Bridge-Port int | Port-Multicast-Router einstellen |
sethashel bridge int | Hash-Elastizitätswert festlegen |
.