Heim  >  Artikel  >  System-Tutorial  >  Analyse des Bindungsmodus der Netzwerkkarte

Analyse des Bindungsmodus der Netzwerkkarte

王林
王林nach vorne
2024-01-11 21:42:18389Durchsuche

Derzeit gibt es sieben Netzwerkkarten-Bindungsmodi (0~6): Bond0, Bond1, Bond2, Bond3, Bond4, Bond5, Bond6

Analyse des Bindungsmodus der Netzwerkkarte

Es gibt drei häufig verwendete:

mode=0: Ausgeglichener Lastmodus mit automatischer Sicherung, erfordert jedoch „Switch“-Unterstützung und -Einstellungen.

mode=1: Automatischer Backup-Modus Wenn eine Leitung getrennt wird, werden andere Leitungen automatisch gesichert.

mode=6: Ausgeglichener Lastmodus mit automatischer Sicherung, keine Notwendigkeit für „Switch“-Unterstützung und -Einstellungen.

Beschreibung:

Es ist zu beachten, dass es nicht ausreicht, den mit der Netzwerkkarte verbundenen Switch speziell zu konfigurieren (diese beiden Ports sollten aggregiert werden), wenn Sie einen Lastausgleich im Modus 0 erreichen möchten Die beiden zum Bonden verwendeten Netzwerkkarten verwenden die gleiche MAC-Adresse. Analysieren Sie nach dem Prinzip (Bond läuft im Modus0):

Im Modus 0 werden die IPs der an die Bindung gebundenen Netzwerkkarten alle auf dieselbe Mac-Adresse geändert. Wenn diese Netzwerkkarten mit demselben Switch verbunden sind, gibt es in der ARP-Tabelle des Switches mehrere Ports, die der Mac-Adresse entsprechen , Wenn der Switch das an diese MAC-Adresse gesendete Paket empfängt, an welchen Port soll es dann weitergeleitet werden? Unter normalen Umständen ist die Mac-Adresse global eindeutig. Eine Mac-Adresse, die mehreren Ports entspricht, wird den Switch definitiv verwirren. Wenn daher die Bindung unter mode0 mit dem Switch verbunden ist, sollten die Ports des Switches aggregiert werden (Cisco heißt Ethernetchannel, Foundry heißt Portgruppe), da nach der Aggregation des Switches auch mehrere Ports unter der Aggregation zu einem gebündelt werden mac-Adresse. Unsere Lösung besteht darin, die beiden Netzwerkkarten an verschiedene Switches anzuschließen.

Im Mode6-Modus muss kein Switch konfiguriert werden, da die beiden für das Bonding verwendeten Netzwerkkarten unterschiedliche MAC-Adressen verwenden.

Anleitung für sieben Bindungsmodi: mod=0, das heißt: (balance-rr)Round-Robin-Richtlinie

Eigenschaften: Die Reihenfolge der Übertragung von Datenpaketen ist sequentiell (das heißt: das erste Paket geht an eth0, das nächste Paket geht an eth1 ... und der Zyklus wird fortgesetzt, bis das letzte übertragen wird. Dieser Modus sorgt für Last). Wir wissen jedoch, dass, wenn ein Verbindungs- oder Sitzungsdatenpaket von verschiedenen Schnittstellen gesendet wird und verschiedene Verbindungen in der Mitte durchläuft, das Problem wahrscheinlich auftritt, dass Datenpakete in der falschen Reihenfolge auf der Clientseite eintreffen Datenpakete, die nicht in der richtigen Reihenfolge ankommen, müssen erneut angefordert werden, sodass der Durchsatz des Netzwerks abnimmt

mod=1, das heißt: (Active-Backup)Active-Backup-Richtlinie

Funktionen: Nur ein Gerät ist aktiv. Wenn ein Gerät ausfällt, wechselt das andere sofort vom Backup- zum Primärgerät. Die MAC-Adresse ist von außen sichtbar. Die MAC-Adresse des Bonds ist von außen eindeutig, um Verwechslungen im Switch zu vermeiden. Dieser Modus bietet nur Fehlertoleranz. Der Vorteil dieses Algorithmus besteht darin, dass er eine hohe Netzwerkverbindungsverfügbarkeit bietet, aber nur eine Schnittstelle im Arbeitszustand ist. Die Ressourcennutzungsrate beträgt 1/N

mod=2, das heißt: (balance-xor)XOR-Richtlinie

Funktionen: Übertragen Sie Pakete basierend auf der angegebenen Übertragungs-HASH-Richtlinie. Die Standardstrategie lautet: (Quell-MAC-Adresse XOR Ziel-MAC-Adresse)% Slave-Nummer. Andere Übertragungsrichtlinien können über die Option xmit_hash_policy angegeben werden. Dieser Modus bietet Lastausgleich und Fehlertoleranz

mod=3, das heißt: Broadcast (Broadcast-Strategie)

Eigenschaften: Übertragen Sie jedes Paket auf jeder Slave-Schnittstelle. Dieser Modus bietet Fehlertoleranz

mod=4, das heißt: (802.3ad) IEEE 802.3ad Dynamische Link-Aggregation

Funktionen: Erstellen Sie eine Aggregationsgruppe, die dieselben Geschwindigkeits- und Duplexeinstellungen verwendet. Gemäß der 802.3ad-Spezifikation arbeiten mehrere Slaves unter demselben aktivierten Aggregat. Die Slave-Auswahl für ausgehenden Datenverkehr basiert auf der Transport-Hash-Richtlinie, die über die Option xmit_hash_policy von der Standard-XOR-Richtlinie in andere Richtlinien geändert werden kann. Es ist zu beachten, dass nicht alle Übertragungsstrategien mit 802.3ad kompatibel sind, insbesondere angesichts des in Kapitel 43.2.4 des 802.3ad-Standards erwähnten Problems der Paketneuordnung. Unterschiedliche Implementierungen können unterschiedliche Anpassungsfähigkeiten aufweisen.

Erforderliche Bedingungen:

Bedingung 1: ethtool unterstützt das Abrufen der Geschwindigkeits- und Duplexeinstellungen jedes Slaves

Bedingung 2: Der Switch unterstützt IEEE802.3ad Dynamic Link Aggregation

Bedingung 3: Die meisten Switches erfordern eine spezielle Konfiguration, um den 802.3ad-Modus zu unterstützen

mod=5, das heißt: (balance-tlb)Adaptiver Übertragungslastausgleich (Adapterübertragungslastausgleich)

Eigenschaften: Benötigt keinen speziellen Schalter (Switch), um Channel Bonding zu unterstützen. Verteilen Sie den ausgehenden Datenverkehr auf jedem Slave basierend auf der aktuellen Auslastung (berechnet basierend auf der Geschwindigkeit). Fällt der Slave, der Daten empfängt, aus, übernimmt ein anderer Slave die MAC-Adresse des ausgefallenen Slaves.

Notwendige Bedingungen für diesen Modus: ethtool unterstützt die Ermittlung der Rate jedes Slaves

mod=6, das heißt: (balance-alb)Adaptiver Lastausgleich (adaptiver Lastausgleich des Adapters)

Funktionen: Dieser Modus umfasst den Balance-TLB-Modus sowie den Empfangslastausgleich (RLB) für IPV4-Verkehr und erfordert keine Switch-Unterstützung. Der Empfangslastausgleich wird durch ARP-Aushandlung erreicht. Der Bonding-Treiber fängt die vom lokalen Computer gesendete ARP-Antwort ab und schreibt die Quell-Hardwareadresse in die eindeutige Hardware-Adresse eines Slaves im Bond um, sodass verschiedene Peers unterschiedliche Hardware-Adressen für die Kommunikation verwenden.

Empfangsverkehr von der Serverseite wird ebenfalls ausgeglichen. Wenn der lokale Computer eine ARP-Anfrage sendet, kopiert der Bonding-Treiber die IP-Informationen des Peers aus dem ARP-Paket und speichert sie. Wenn die ARP-Antwort vom Peer eintrifft, extrahiert der Bonding-Treiber seine Hardwareadresse und initiiert eine ARP-Antwort an einen Slave im Bond. Ein Problem bei der Verwendung der ARP-Aushandlung für den Lastausgleich besteht darin, dass die Hardware-Adresse der Bindung jedes Mal verwendet wird, wenn eine ARP-Anfrage gesendet wird. Nachdem der Peer diese Hardware-Adresse gelernt hat, fließt daher der gesamte empfangene Datenverkehr zum aktuellen Slave. Dieses Problem kann gelöst werden, indem Aktualisierungen (ARP-Antworten) an alle Peers gesendet werden, die ihre eindeutigen Hardwareadressen enthalten, wodurch der Datenverkehr neu verteilt wird. Wenn ein neuer Slave zum Bond hinzugefügt wird oder wenn ein inaktiver Slave reaktiviert wird, muss auch der empfangene Datenverkehr neu verteilt werden. Die empfangene Last wird sequentiell (Roundrobin) auf den Slave mit der höchsten Geschwindigkeit im Bond verteilt. Wenn eine Verbindung wiederhergestellt wird oder ein neuer Slave zum Bond hinzugefügt wird, wird der empfangende Datenverkehr auf alle derzeit aktiven Slaves verteilt. Initiieren Sie eine ARP-Antwort an jeden Client über die angegebene MAC-Adresse. Der unten eingeführte Updelay-Parameter muss auf einen Wert eingestellt werden, der größer oder gleich der Weiterleitungsverzögerung des Switches (Switch) ist, um sicherzustellen, dass die an das andere Ende gesendete ARP-Antwort nicht vom Switch (Switch) blockiert wird.

Erforderliche Bedingungen:

Bedingung 1: ethtool unterstützt das Abrufen der Rate jedes Slaves

Bedingung 2: Der zugrunde liegende Treiber unterstützt das Festlegen der Hardware-Adresse eines bestimmten Geräts, sodass es immer einen Slave (curr_active_slave) gibt, der die Hardware-Adresse des Bonds verwendet, und stellt gleichzeitig sicher, dass jeder Slave im Bond eine eindeutige Hardware-Adresse hat. Wenn curr_active_slave ausfällt, wird seine Hardwareadresse vom neu gewählten curr_active_slave übernommen. Tatsächlich ist der Unterschied zwischen mod = 6 und mod = 6, zuerst eth0-Verkehr auffüllen, dann eth1, ... ethX; mod = 0, werden Sie feststellen, dass der Datenverkehr der beiden Ports sehr stabil ist und grundsätzlich die gleiche Bandbreite aufweist. Und mod=6, Sie werden feststellen, dass der Verkehr am ersten Port sehr hoch ist und der zweite Port nur einen kleinen Teil des Verkehrs ausmacht

Linux-Netzwerk-Port-Bindung:

Durch die Netzwerk-Port-Bindungstechnologie (Bond) können Netzwerk-Port-Redundanz und Lastausgleich leicht erreicht werden, wodurch eine hohe Verfügbarkeit und hohe Zuverlässigkeit erreicht werden. Voraussetzung: Vereinbarung:

2个物理网口分别是:eth0,eth1
绑定后的虚拟口是:bond0
服务器IP是:10.10.10.1

Der erste Schritt besteht darin, die Einstellungsdatei zu konfigurieren:

[root@woo ~]# vi  /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=none

ONBOOT=yes

IPADDR=10.10.10.1

NETMASK=255.255.255.0

NETWORK=192.168.0.0

[root@woo ~]# vi  /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

[root@woo ~]# vi  /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

第二步,修改modprobe相关设定文件,并加载bonding模块:

1.在这里,我们直接创建一个加载bonding的专属设定文件/etc/modprobe.d/bonding.conf

[root@woo ~]# vi /etc/modprobe.d/bonding.conf

alias bond0 bonding

options bonding mode=0 miimon=200

2.加载模块(重启系统后就不用手动再加载了)

[root@woo ~]# modprobe bonding

3.确认模块是否加载成功:

[root@woo ~]# lsmod | grep bonding

bonding 100065 0

第三步,重启一下网络,然后确认一下状况:

[root@db01 ~]# service network restart

Shutting down interface bond0:  [  OK  ]

Shutting down loopback interface:  [  OK  ]

Bringing up loopback interface:  [  OK  ]

Bringing up interface bond0:  [  OK  ]

[root@db01 ~]#  cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: eth0

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth0

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 40:f2:e9:db:c9:c2

Slave Interface: eth1

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 40:f2:e9:db:c9:c3

[root@db01 ~]#  ifconfig | grep HWaddr

bond0     Link encap:Ethernet  HWaddr 40:F2:E9:DB:C9:C2

eth0      Link encap:Ethernet  HWaddr 40:F2:E9:DB:C9:C2

eth1      Link encap:Ethernet  HWaddr 40:F2:E9:DB:C9:C2

从上面的确认信息中,我们可以看到3个重要信息:

1.现在的bonding模式是active-backup

2.现在Active状态的网口是eth0

3.bond0,eth1的物理地址和处于active状态下的eth0的物理地址相同,这样是为了避免上位交换机发生混乱。

任意拔掉一根网线,然后再访问你的服务器,看网络是否还是通的。

第四步,系统启动自动绑定、增加默认网关:

[root@woo ~]# vi /etc/rc.d/rc.local

#追加

ifenslave bond0 eth0 eth1

route add default gw 10.10.10.1

#如可上网就不用增加路由,0.1地址按环境修改.

————————————————————————

留心:前面只是2个网口绑定成一个bond0的情况,如果我们要设置多个bond口,比如物理网口eth0和eth1组成bond0,eth2和eth3组成bond1,

多网口绑定:

那么网口设置文件的设置方法和上面第1步讲的方法相同,只是/etc/modprobe.d/bonding.conf的设定就不能像下面这样简单的叠加了:

alias bond0 bonding

options bonding mode=1 miimon=200

alias bond1 bonding

options bonding mode=1 miimon=200

正确的设置方法有2种:

第一种,你可以看到,这种方式的话,多个bond口的模式就只能设成相同的了:

<span style="”color:#000000;”">alias bond0 bonding

alias bond1 bonding

options bonding max_bonds=2 miimon=200 mode=1

</span>

第二种,这种方式,不同的bond口的mode可以设成不一样:

<span style="”color:#000000;”">alias bond0 bonding

options bond0 miimon=100 mode=1

install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0

</span>

仔细看看上面这2种设置方法,现在如果是要设置3个,4个,甚至更多的bond口,你应该也会了吧!

后记:

miimon 监视网络链接的频度,单位是毫秒,我们设置的是200毫秒。

max_bonds 配置的bond口个数

mode bond模式,主要有以下几种,在一般的实际应用中,0和1用的比较多。

Das obige ist der detaillierte Inhalt vonAnalyse des Bindungsmodus der Netzwerkkarte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:linuxprobe.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen