Linux verwendet Bond, um zwei Netzwerkkarten zu implementieren und einen einzelnen IP-Beispielcode zu binden

Linux verwendet Bond, um zwei Netzwerkkarten zu implementieren und einen einzelnen IP-Beispielcode zu binden

Um eine hohe Verfügbarkeit des Netzwerks zu gewährleisten, müssen wir möglicherweise mehrere Netzwerkkarten zu einer virtuellen Netzwerkkarte zusammenfassen, um externe Dienste bereitzustellen, sodass selbst der Ausfall einer der physischen Netzwerkkarten nicht zu einer Unterbrechung der Verbindung führt.
Bond wird bei Linux als Bonding, bei IBM als Etherchanel und bei Broadcom als Team bezeichnet. Unabhängig von der Namensänderung besteht der Effekt jedoch darin, dass zwei oder mehr Netzwerkkarten als eine verwendet werden, wodurch die Bandbreite erhöht und die Redundanz verbessert werden kann.

Es gibt zwei Möglichkeiten, die Bindung von zwei Netzwerkkarten zu implementieren: Bindung und Team
Hier schreiben wir zunächst die Bindungsmethode

Bond-unterstützte Modi

Insgesamt werden sieben Bindungsmodi unterstützt [0-6], und die folgenden drei werden häufig verwendet:

  • Modus=0: Standard, Lastausgleichsmodus mit automatischer Sicherung, erfordert jedoch eine Switch-Konfiguration.
  • mode=1: Aktiv-/Standby-Modus. Wenn eine Leitung getrennt wird, übernehmen automatisch die anderen Leitungen. Es ist keine Switch-Konfiguration erforderlich.
  • Modus=6: Lastausgleichsmodus mit automatischer Sicherung, keine Switch-Konfiguration erforderlich.

Für die anderen Modi gelten folgende Erklärungen:

mode=2: Wählen Sie die Seriennummer der Netzwerkkarte = (Quell-MAC-Adresse XOR Ziel-MAC-Adresse) % die Anzahl der Slave-Netzwerkkarten. Andere Übertragungsstrategien können über das Konfigurationselement xmit_hash_policy angegeben werden.
Modus = 3: Broadcast-Strategie verwenden, das Datenpaket wird zur Übertragung an alle Slave-Netzwerkkarten gesendet
mode=4: Dynamische Link-Aggregationsstrategie verwenden. Beim Start wird eine Aggregationsgruppe erstellt. Alle Slave-Netzwerkkarten haben die gleichen Geschwindigkeits- und Duplexeinstellungen. Allerdings hat mode4 zwei notwendige Bedingungen.

1. Unterstützt die Verwendung von ethtool, um die Geschwindigkeits- und Duplexeinstellungen jeder Slave-Netzwerkkarte abzurufen;
2. Der Switch muss den IEEE 802.3ad Dynamic Link Aggregation-Modus unterstützen.
Modus = 5: Wählen Sie die Übertragungsnetzwerkkarte basierend auf der Rate jeder Slave-Netzwerkkarte aus. Erforderliche Voraussetzung: Unterstützt die Verwendung von ethtool, um die Rate jeder Slave-Netzwerkkarte zu ermitteln.

Bond konfigurieren

Netzwerkkarte Bond1-IP Bond-Modus
ens33, ens36 192.168.171.111 Modus 1

Hinweis: Die IP-Adresse ist auf Bond1 konfiguriert, und die physische Netzwerkkarte muss nicht mit einer IP-Adresse konfiguriert werden

#Laden Sie das Bonding-Modul und bestätigen Sie, dass es geladen wurde [root@web01 ~]# modprobe --first-time bonding
[root@web01 ~]# lsmod | grep-Bindung
Bindung 141566 0 
#Bond1-Konfigurationsdatei bearbeiten [root@web01 ~]# cat > /etc/sysconfig/network-scripts/ifcfg-bond1 << EOF
> GERÄT=Bindung1
> TYP=Anleihe
>IPADDR=192.168.171.111
> NETMASK=255.255.255.0
> GATEWAY==192.168.171.2
> DNS1=114.114.114.114
> DNS2=8.8.8.8
> USERCTL=nein
> BOOTPROTO=keine
>ONBOOT=ja
> Ende des Lebens
#Ens33-Konfigurationsdatei ändern [root@web01 ~]# cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
> GERÄT=ens33
> TYP=Ethernet
>ONBOOT=ja
> BOOTPROTO=keine
> DEFROUTE=ja
> IPV4_FAILURE_FATAL=nein
> NMAE=ens33
> MASTER=bond1 # Muss mit dem DEVICE-Wert in der obigen ifcfg-bond0-Konfigurationsdatei übereinstimmen > SLAVE=yes
> Ende des Lebens
#Ens36-Konfigurationsdatei ändern [root@web01 ~]# cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
> GERÄT=ens36
> TYP=Ethernet
>ONBOOT=ja
> BOOTPROTO=keine
> DEFROUTE=ja
> IPV4_FAILURE_FATAL=nein
> NAME=ens36
> MASTER=bood1
> SLAVE=ja
> Ende des Lebens

# Bonding konfigurieren
[root@web01 ~]# cat >> /etc/modules-load.d/bonding.conf << EOF
> Alias ​​bond1 Bindung
> options bonding mode=1 miimon=200 # Laden Sie das Bonding-Modul, und das externe virtuelle Netzwerkschnittstellengerät ist bond1
> Ende des Lebens

#Starten Sie die Netzwerkkarte neu, damit die Konfiguration wirksam wird[root@web01 ~]# systemctl restart network

Hinweis: Wenn der Netzwerkkartendienst nach Abschluss der Konfiguration nicht gestartet werden kann und im Protokoll keine Fehler gefunden werden, können Sie versuchen, NetworkManager zu schließen und die Netzwerkkarte erneut zu starten.

Überprüfen Sie nach dem Neustart des Netzwerks die Informationen jeder Netzwerkkarte

[root@web01 ~]# ip eine Show ens33
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast Master Bond1 Status UP-Gruppe Standard qlen 1000
  Link/Ether 00:0c:29:9f:33:9f brd ff:ff:ff:ff:ff:ff:ff
[root@web01 ~]# ip eine Show ens36
3: ens36: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast Master Bond1 Status UP-Gruppe Standard qlen 1000
  Link/Ether 00:0c:29:9f:33:9f brd ff:ff:ff:ff:ff:ff:ff
[root@web01 ~]# ip a show bond1
7: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue status UP-Gruppe Standard qlen 1000
  Link/Ether 00:0c:29:9f:33:9f brd ff:ff:ff:ff:ff:ff:ff
  inet 192.168.171.111/24 brd 192.168.171.255 Bereich global noprefixroute bond1
    valid_lft für immer preferred_lft für immer
  inet6 fe80::20c:29ff:fe9f:339f/64 Bereichslink 
    valid_lft für immer preferred_lft für immer

Bond1-bezogene Informationen anzeigen

# Zeigen Sie den Schnittstellenstatus von bond1 an [root@web01 ~]# cat /proc/net/bonding/bonding1        
Ethernet Channel Bonding-Treiber: v3.7.1 (27. April 2011)

Bonding-Modus: Lastenausgleich (Round-Robin) # Bonding-Modus MII-Status: aktiv # Schnittstellenstatus MII-Polling-Intervall (ms): 100
Verzögerung beim Hochfahren (ms): 0
Down-Verzögerung (ms): 0

Slave-Schnittstelle: ens33 # Backup-Schnittstelle: ens33
MII-Status: aktiv # Schnittstellenstatus Geschwindigkeit: 1000 Mbit/s # Portrate Duplex: voll
Anzahl der Verbindungsfehler: 0
Permanente HW-Adresse: 00:0c:29:9f:33:9f # Permanente MAC-Adresse der Schnittstelle Slave-Warteschlangen-ID: 0

Slave-Schnittstelle: ens36 # Backup-Schnittstelle: ens36
MII-Status: nach oben
Geschwindigkeit: 1000 Mbit/s
Duplex: voll
Anzahl der Verbindungsfehler: 0
Permanente HW-Adresse: 00:0c:29:9f:33:a9
Slave-Warteschlangen-ID: 0

Wenn dieser Schritt abgeschlossen ist und eine Netzwerkkarte in ens33 oder ens36 ausfällt, hat dies keine Auswirkungen auf die Kommunikation.

Hinweis: Wenn Sie zum Testen eine virtuelle Maschine von VMware Workstation verwenden, führen Sie zum Testen bitte nicht direkt den Befehl ifdown ens33 oder ifdown ens36 aus. Auf diese Weise funktioniert der Test aufgrund der virtuellen Maschine nicht. Sie können die Verbindung im Netzwerkadapter abbrechen.

Dies ist das Ende dieses Artikels über den Beispielcode zur Verwendung von Bond in Linux, um zwei Netzwerkkarten an eine einzelne IP zu binden. Weitere Informationen zum Binden zweier Netzwerkkarten an eine einzelne IP in Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Implementierung der Bindungskonfiguration für duale Netzwerkkarten im Linux-System
  • Beispiel einer Skriptmethode für die Bindung von Linux-Dualnetzwerkkarten
  • Linux nutzt duale Netzwerkkartenbindung und Schraubendreherschnittstelle
  • Konfigurationsprozess der Dual-Netzwerkkarte Firewalld unter Linux (empfohlen)
  • Detaillierte Erläuterung der Linux-Dual-Netzwerkkartenbindung zur Erzielung eines Lastenausgleichs
  • So richten Sie duale Netzwerkkarten in Linux ein
  • Zusammenfassung der Praxis der Konfiguration mit zwei Netzwerkkarten unter Linux

<<:  Implementierung des Durchklickens des transparenten Bereichs unregelmäßiger Formen in Electron

>>:  Detaillierte Analyse, warum MySQL die Verwendung von UUID oder Snowflake-ID als Primärschlüssel nicht empfiehlt

Artikel empfehlen

So wählen Sie den richtigen Index in MySQL

Schauen wir uns zunächst eine Kastanie an EXPLAIN...

SQL-Implementierung von LeetCode (184. Das höchste Gehalt der Abteilung)

[LeetCode] 184. Abteilung Höchstes Gehalt Die Mit...

So handhaben Sie Bilder in Vue-Formularen

Frage: Ich habe in Vue ein Formular zum Hochladen...

Beispiel-Tutorial zur Verwendung der Summenfunktion in MySQL

Einführung Heute werde ich die Verwendung der Sum...

Verwenden von Zabbix zum Überwachen des Ogg-Prozesses (Windows-Plattform)

Dieser Artikel stellt vor, wie man das Ogg-Progra...

Beispiel für Javascript-Bubblesort

Inhaltsverzeichnis 1. Was ist Bubble Sort 2. Gebe...

Unicode-Signatur-BOM-Problem (Byte Order Mark) für UTF-8-Dateien

Beim Debuggen einer chinesischen Zen Cart-Website...

Methode zum dynamischen Laden von Geojson basierend auf Vue+Openlayer

Laden eines oder mehrerer Features <Vorlage>...