GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

CentOS / RHEL 7 :So konfigurieren Sie Network Bonding oder NIC-Teaming

Network Interface Bonding hat viele Namen:Port Trunking, Channel Bonding, Link Aggregation, NIC-Teaming und andere. Es kombiniert oder aggregiert mehrere Netzwerkverbindungen zu einer einzigen Channel-Bonding-Schnittstelle. Dadurch können zwei oder mehr Netzwerkschnittstellen als eine fungieren, um den Durchsatz zu erhöhen und Redundanz oder Failover bereitzustellen.

Der Linux-Kernel enthält den Bonding-Treiber zum Zusammenfassen mehrerer physischer Netzwerkschnittstellen zu einer einzigen logischen Schnittstelle (z. B. zum Zusammenfassen von eth0 und eth1 zu bond0). Für jede verbundene Schnittstelle können Sie den Modus und die Linküberwachungsoptionen definieren. Es gibt sieben verschiedene Modusoptionen, die jeweils spezifische Lastausgleichs- und Fehlertoleranzeigenschaften bieten, wie in der folgenden Tabelle gezeigt.

Verbindungsmodi

Abhängig von Ihren Anforderungen können Sie den Bindungsmodus auf einen der folgenden 7 Modi einstellen.

Modus Richtlinie Wie es funktioniert Fehlertoleranz Load-Balancing
0 Round Robin Pakete werden sequentiell nacheinander über jede Schnittstelle gesendet/empfangen. Nein Ja
1 Aktive Sicherung eine NIC aktiv, während eine andere NIC im Ruhezustand ist. Wenn die aktive NIC ausfällt, wird eine andere NIC aktiv. wird nur in x86-Umgebungen unterstützt. Ja Nein
2 XOR [exklusives ODER] In diesem Modus wird die MAC-Adresse der Slave-NIC mit der MAC der eingehenden Anfrage abgeglichen, und sobald diese Verbindung hergestellt ist, wird dieselbe NIC zum Senden/Empfangen für die Ziel-MAC verwendet. Ja Ja
3 Ausstrahlung Alle Übertragungen werden an alle Slaves gesendet Ja Nein
4 Dynamische Link-Aggregation Aggregierte NICs fungieren als eine NIC, was zu einem höheren Durchsatz führt, aber auch Failover bietet, falls eine NIC ausfällt. Dynamic Link Aggregation erfordert einen Switch, der IEEE 802.3ad unterstützt. Ja Ja
5 Lastenausgleich übertragen (TLB) Der ausgehende Datenverkehr wird abhängig von der aktuellen Last auf jeder Slave-Schnittstelle verteilt. Eingehender Datenverkehr wird vom aktuellen Slave empfangen. Fällt der empfangende Slave aus, übernimmt ein anderer Slave die MAC-Adresse des ausgefallenen Slaves. Ja Ja
6 Adaptives Load-Balancing (ALB) Im Gegensatz zu Dynamic Link Aggregation erfordert Adaptive Load Balancing keine besondere Switch-Konfiguration. Adaptive Load Balancing wird nur in x86-Umgebungen unterstützt. Die empfangenen Pakete werden durch ARP-Aushandlung belastet. Ja Ja

Netzwerk-Bonding-Link-Überwachung

Der Bonding-Treiber unterstützt zwei Methoden, um den Verbindungsstatus eines Slaves zu überwachen:

  • MII-Monitor (Media Independent Interface)
    • Dies ist die standardmäßige und empfohlene Linküberwachungsoption.
    • Es überwacht den Trägerstatus der lokalen Netzwerkschnittstelle.
    • Sie können die Überwachungsfrequenz und die Verzögerung festlegen.
    • Verzögerungszeiten ermöglichen es Ihnen, die Switch-Initialisierung zu berücksichtigen.
  • ARP-Monitor
    • Sendet ARP-Anfragen an Peer-Systeme im Netzwerk und verwendet die Antwort als Hinweis darauf, dass die Verbindung aktiv ist.
    • Sie können die Überwachungshäufigkeit und die Zieladressen angeben.

    Netzwerkbindung:Konfiguration

    Erstellen einer Bonding-Schnittstellendatei

    Sie können manuell eine Bonding-Schnittstellendatei in /etc/sysconfig/network-scripts erstellen Verzeichnis. Sie erstellen zuerst die Bindungsschnittstelle und fügen dann die physischen Netzwerkschnittstellen zur Bindung hinzu. Diese physischen Netzwerkschnittstellen werden als „Slaves“ bezeichnet „.

    Für das Beispiel in diesem Beitrag sind die Slaves für die Schnittstelle bond0 ens33 und ens37. Stellen Sie vor der Inbetriebnahme sicher, dass das Bondingmodul richtig geladen ist. Um dies zu überprüfen, verwenden Sie den unten gezeigten Befehl:

    # lsmod |grep bonding
    bonding               122351  0

    Wenn das Modul nicht geladen ist, laden Sie es mit dem Befehl modprobe.

    # modprobe bonding

    1. Das Folgende ist ein Beispiel für eine Bonding-Schnittstellendatei:

    # cat /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    BONDING_OPTS="miimon=1 updelay=0 downdelay=0 mode=active-backup" TYPE=Bond
    BONDING_MASTER=yes
    BOOTPROTO=none
    IPADDR=192.168.2.12
    PREFIX=24
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=bond0
    UUID=bbe539aa-5042-4d28-a0e6-2a4d4f5dd744
    ONBOOT=yes

    2. Das folgende Beispiel definiert ens33 physische Netzwerkschnittstelle als Slave für bond0:

    # cat /etc/sysconfig/network-scripts/ifcfg-ens33 
    TYPE=Ethernet
    NAME=ens33
    UUID=817e285b-60f0-42d8-b259-4b62e21d823d
    DEVICE=ens33
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes

    3. Das folgende Beispiel definiert ens37 physische Netzwerkschnittstelle als Slave für bond0:

    # cat /etc/sysconfig/network-scripts/ifcfg-ens37 
    TYPE=Ethernet
    NAME=ens37
    UUID=f0c23472-1aec-4e84-8f1b-be8a2ecbeade
    DEVICE=ens37
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes

    4. Starten Sie die Netzwerkdienste neu
    Starten Sie die Netzwerkdienste neu, um die Bonding-Schnittstelle zu aktivieren.

    # systemctl restart network

    Falls Sie den Netzwerkdienst nicht neu starten möchten, können Sie die Bonding-Schnittstelle einzeln ausloten:

    # ifup bond0

    Überprüfen Sie die Netzwerkverbindungskonfiguration

    1. Prüfen Sie die neue Schnittstelle in der Ausgabe des Befehls „ip addr show“ :

    # ip addr show
    1: lo: [LOOPBACK,UP,LOWER_UP] mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
        link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
    4: ens37: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
        link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
    5: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP qlen 1000
        link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
        inet 192.168.2.12/24 brd 192.168.2.255 scope global bond0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe54:f720/64 scope link 
           valid_lft forever preferred_lft forever

    2. Überprüfen Sie außerdem den aktuellen Status der Bonding-Schnittstellen und welche Schnittstelle derzeit aktiv ist, indem Sie den folgenden Befehl verwenden:

    # cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: fault-tolerance (active-backup)
    Primary Slave: None
    Currently Active Slave: ens33
    MII Status: up
    MII Polling Interval (ms): 1
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    Slave Interface: ens33
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:54:f7:20
    Slave queue ID: 0
    
    Slave Interface: ens37
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:54:f7:34
    Slave queue ID: 0

    Aus der obigen Befehlsausgabe können wir das ens33 sehen ist der derzeit aktive Slave im Bund.

    Testen der Fehlertoleranz der Verbindungskonfiguration

    1. Da es sich um eine Active-Backup-Bonding-Konfiguration handelt, wird die andere Schnittstelle im Bond zum aktiven Slave, wenn eine Schnittstelle ausfällt. Um diese Funktionalität zu überprüfen, werden wir die aktuelle Schnittstelle ens33 herunterfahren.

    # ifdown ens33

    2. Wenn Sie den Verbindungsschnittstellenstatus erneut überprüfen, werden Sie feststellen, dass der neue aktive Slave die Schnittstelle ens37 ist.

    # cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: fault-tolerance (active-backup)
    Primary Slave: None
    Currently Active Slave: ens37
    MII Status: up
    MII Polling Interval (ms): 1
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    Slave Interface: ens37
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:54:f7:34
    Slave queue ID: 0

    Auch das Bond-Interface wird in Betrieb genommen:

    # ip add show bond0
    5: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP qlen 1000
        link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
        inet 192.168.2.12/24 brd 192.168.2.255 scope global bond0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe54:f720/64 scope link 
           valid_lft forever preferred_lft forever
    CentOS / RHEL 7 :So erstellen Sie eine Schnittstellenbindung mit nmcli


    Cent OS
    1. CentOS / RHEL 7:So ändern Sie die Namen von Netzwerkschnittstellen

    2. CentOS / RHEL 7 :So erstellen Sie ein Network Bonding (NIC-Teaming) mit nmcli

    3. CentOS / RHEL 5:So konfigurieren Sie die Schnittstellenbindung (NIC-Teaming)

    4. So konfigurieren Sie das Netzwerk-Teaming in CentOS/RHEL 7

    5. So konfigurieren Sie Schnittstellen im Promiscuous-Modus unter CentOS/RHEL 7 (dauerhaft)

    So konfigurieren Sie eine virtuelle Netzwerkschnittstelle auf RHEL 8 / CentOS 8

    So konfigurieren Sie die Netzwerkschnittstellenbindung unter RHEL 8 / CentOS 8 Linux

    Konfigurieren Sie das NIC-Bonding (Network Interface Card) in CentOS 7 / RHEL 7

    So konfigurieren Sie NIC-Teaming unter CentOS 8 / RHEL 8

    So konfigurieren Sie die IP-Adresse in CentOS 7 / RHEL 7 und CentOS 6 / RHEL 6

    So ändern Sie den Namen der Netzwerkschnittstelle in eth0 unter CentOS 8 / RHEL 8