Eine Bridge ist ein Gerät, das zwei oder mehr Netzwerksegmente innerhalb eines logischen Netzwerks trennt. Eine Bridge befindet sich eine Stufe über dem Hub (standardmäßig fungiert eine Linux-Bridge als Switch) – sie überprüft das Ziel des Pakets vor dem Senden. Wenn sich die Zieladresse nicht auf der anderen Seite der Brücke befindet, wird das Paket verworfen. Wohingegen ein Hub das einfachste der Netzwerkgeräte ist – jedes Datenpaket, das von einem Port kommt, wird an alle anderen Ports gesendet. Es liegt dann am empfangenden Computer, zu entscheiden, ob er das Paket annimmt oder nicht. Normalerweise werden Hubs in kleinen Netzwerken verwendet, in denen die Datenmenge, die über das Netzwerk übertragen wird, nicht sehr hoch ist. Für mein Experiment mit dem Xen-Hypervisor wollte ich die Linux-Bridge als Hub statt als Switch fungieren lassen. So habe ich dasselbe erreicht:
So finden Sie die Liste der auf dem Host erstellten Linux-Bridges
Zuerst müssen wir die Liste der auf dem Host erstellten Linux-Bridges finden und die entsprechende Bridge als Hub erstellen. Führen Sie den folgenden Befehl aus, um die Liste der Linux-Bridges auf dem Host zu finden:
[root@centos-1 ~]# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes xenbr0 8000.feffffffffff no vif33.0 vif31.0 vif19.0 vif0.0 peth0
Wie kann eine Bridge als Hub fungieren?
Führen Sie die folgenden Befehle aus, damit die Bridge als Hub fungiert. Hier, setageing einstellen auf 0 , machen Sie Bridge so, dass sie alle MAC-Adressen vergisst, die sie sieht, und wie ein Hub reagiert.
brctl stp <bridge name> off brctl setageing <bridge name> 0 brctl setfd <bridge name> 0
Beispiel:Aus der obigen Liste von Brücken möchte ich xenbr0 erstellen Bridge als Hub.
[root@centos-1 ~]# brctl stp xenbr0 off [root@centos-1 ~]# brctl setageing xenbr0 0 [root@centos-1 ~]# brctl setfd xenbr0 0
Wie verifiziere ich, dass die Bridge als Hub fungiert?
Szenario:Betrachten Sie 3 VMs, die auf dem Linux-Host ausgeführt werden. Beginnen Sie nun mit dem Ping von VM1 zu VM2. Führen Sie auf VM3 tcpdump aus, um die ICMP-Pakete zu sehen, die von VM1 zu VM2 fließen.
So wandeln Sie den obigen Hub in eine Linux-Bridge um
Um nun die obige Einstellung auf dem physischen Host umzukehren, führen Sie einfach den folgenden Befehl aus:
brctl setageing <bridge name> 300
Beispiel:
[root@centos-1 ~]# brctl setageing xenbr0 300
Um es jetzt erneut zu überprüfen, betrachten Sie die gleichen 3 VMs, die auf dem Linux-Host ausgeführt werden. Beginnen Sie nun mit dem Ping von VM1 zu VM2. Führen Sie auf VM3 tcpdump aus und Sie können die ICMP-Pakete nicht sehen, die von VM1 zu VM2 fließen.