Maison >Tutoriel système >Linux >Analyse du mode de liaison de la carte réseau
Il existe actuellement sept modes de liaison de carte réseau (0 ~ 6) bond0, bond1, bond2, bond3, bond4, bond5, bond6
Il y en a trois couramment utilisés :mode=0 : mode de charge équilibrée, avec sauvegarde automatique, mais nécessite la prise en charge et les paramètres "Switch".
mode=1 : Mode de sauvegarde automatique Si une ligne est déconnectée, les autres lignes seront automatiquement sauvegardées.
mode=6 : Mode de charge équilibré, avec sauvegarde automatique, pas besoin de support et de paramètres "Switch".
Description :Il est à noter que si vous souhaitez obtenir un équilibrage de charge en mode 0, il ne suffit pas de définir optionsbond0 miimon=100 mode=0. Le switch connecté à la carte réseau doit être spécialement configuré (ces deux ports doivent être agrégés), car. Les deux cartes réseau utilisées pour le bonding utilisent la même adresse MAC. Analysez à partir du principe (le bond fonctionne en mode0) :
En mode 0, les IP des cartes réseau liées à la liaison sont toutes modifiées vers la même adresse mac. Si ces cartes réseau sont connectées au même switch, alors il y aura plusieurs ports correspondant à l'adresse mac dans l'arp du switch. tableau, puis lorsque le commutateur reçoit le paquet envoyé à cette adresse MAC, vers quel port doit-il le transférer ? Dans des circonstances normales, l'adresse MAC est globalement unique. Une adresse MAC correspondant à plusieurs ports confondra certainement le commutateur. Par conséquent, si la liaison sous mode0 est connectée au commutateur, les ports du commutateur doivent être regroupés (cisco est appelé ethernetchannel, Foundry est appelé portgroup), car une fois le commutateur agrégé, plusieurs ports sous l'agrégation sont également regroupés dans un mac Adresse. Notre solution consiste à connecter les deux cartes réseau à des commutateurs différents.
En mode mode6, il n'est pas nécessaire de configurer un switch car les deux cartes réseau utilisées pour la liaison utilisent des adresses MAC différentes.
Instructions pour les sept modes de liaison : mod=0, soit : (balance-rr)Politique de round-robinCaractéristiques : L'ordre de transmission des paquets de données est une transmission séquentielle (c'est-à-dire : le premier paquet va à eth0, le paquet suivant va à eth1... et le cycle continue jusqu'à ce que le dernier soit transmis). équilibrage et tolérance aux pannes ; Mais nous savons que si un paquet de données de connexion ou de session est envoyé depuis différentes interfaces et passe par différents liens intermédiaires, le problème des paquets de données arrivant dans le désordre est susceptible de se produire du côté client, et le les paquets de données arrivant dans le désordre doivent re-demander, donc le débit du réseau diminuera
mod=1, c'est-à-dire : (sauvegarde active)Politique de sauvegarde activeCaractéristiques : Un seul appareil est actif. Lorsqu'un appareil tombe en panne, l'autre passe immédiatement du périphérique de sauvegarde au périphérique principal. L'adresse MAC est visible de l'extérieur, l'adresse MAC du lien est unique pour éviter toute confusion dans le commutateur. Ce mode fournit uniquement une tolérance aux pannes ; on peut voir que l'avantage de cet algorithme est qu'il peut fournir une disponibilité élevée de la connexion réseau, mais son utilisation des ressources est faible. Dans le cas de N interfaces réseau, une seule interface est en état de fonctionnement. Le taux d'utilisation des ressources est de 1/N
mod=2, soit : (balance-xor)Politique XORCaractéristiques : Transmettez des paquets en fonction de la politique de HASH de transmission spécifiée. La stratégie par défaut est : (adresse MAC source XOR adresse MAC de destination) % du numéro d'esclave. D'autres politiques de transmission peuvent être spécifiées via l'option xmit_hash_policy. Ce mode fournit l'équilibrage de charge et la tolérance aux pannes
. mod=3, c'est-à-dire : diffusion (stratégie de diffusion)Caractéristiques : Transmettez chaque paquet sur chaque interface esclave, ce mode offre une tolérance aux pannes
mod=4, soit : (802.3ad) Agrégation de liens dynamiques IEEE 802.3adCaractéristiques : Créez un groupe d'agrégation qui partage les mêmes paramètres de vitesse et de duplex. Selon la spécification 802.3ad, plusieurs esclaves fonctionnent sous le même agrégat activé. Le choix de l'esclave pour le trafic sortant est basé sur la politique de hachage de transport, qui peut être modifiée de la politique XOR par défaut à d'autres politiques via l'option xmit_hash_policy. Il convient de noter que toutes les stratégies de transmission ne sont pas adaptées au 802.3ad, notamment compte tenu du problème de réorganisation des paquets mentionné au chapitre 43.2.4 de la norme 802.3ad. Différentes implémentations peuvent avoir une adaptabilité différente.
Conditions requises :
Condition 1 : ethtool prend en charge l'obtention des paramètres de débit et de duplex de chaque esclave
Condition 2 : Le commutateur prend en charge l'agrégation de liens dynamiques IEEE802.3ad
Condition 3 : La plupart des commutateurs nécessitent une configuration spécifique pour prendre en charge le mode 802.3ad
mod=5, soit : (balance-tlb)Équilibrage de charge de transmission adaptatif (équilibrage de charge de transmission de l'adaptateur)Caractéristiques : Ne nécessite aucun commutateur spécial (commutateur) pour prendre en charge la liaison de canaux. Distribuez le trafic sortant sur chaque esclave en fonction de la charge actuelle (calculée en fonction de la vitesse). Si l'esclave qui reçoit les données tombe en panne, un autre esclave reprend l'adresse MAC de l'esclave défaillant.
Conditions nécessaires pour ce mode : ethtool prend en charge l'obtention du taux de chaque esclave
mod=6, soit : (balance-alb)Équilibrage de charge adaptatif (équilibrage de charge adaptatif de l'adaptateur)Caractéristiques : Ce mode inclut le mode balance-tlb, ainsi que l'équilibrage de charge de réception (rlb) pour le trafic IPV4, et ne nécessite aucune prise en charge de commutateur (switch). L’équilibrage de charge de réception est obtenu via la négociation ARP. Le pilote de liaison intercepte la réponse ARP envoyée par la machine locale et réécrit l'adresse matérielle source en l'adresse matérielle unique d'un esclave dans la liaison, de sorte que différents homologues utilisent des adresses matérielles différentes pour la communication.
Le trafic reçu côté serveur sera également équilibré. Lorsque la machine locale envoie une requête ARP, le pilote de liaison copie les informations IP du homologue à partir du paquet ARP et les enregistre. Lorsque la réponse ARP arrive du homologue, le pilote de liaison extrait son adresse matérielle et initie une réponse ARP à un esclave de la liaison. L'un des problèmes liés à l'utilisation de la négociation ARP pour l'équilibrage de charge est que l'adresse matérielle de la liaison est utilisée à chaque fois qu'une requête ARP est diffusée. Par conséquent, une fois que l'homologue a appris cette adresse matérielle, tout le trafic reçu sera transmis à l'esclave actuel. Ce problème peut être résolu en envoyant des mises à jour (réponses ARP) à tous les homologues contenant leurs adresses matérielles uniques, provoquant ainsi la redistribution du trafic. Lorsqu'un nouvel esclave est ajouté au lien, ou lorsqu'un esclave inactif est réactivé, le trafic reçu doit également être redistribué. La charge reçue est distribuée séquentiellement (roundrobin) sur l'esclave le plus rapide de la liaison. Lorsqu'une liaison est reconnectée ou qu'un nouvel esclave est ajouté à la liaison, le trafic de réception est redistribué entre tous les esclaves actuellement actifs. à chaque client en utilisant l'adresse MAC spécifiée. Le paramètre updelay introduit ci-dessous doit être défini sur une valeur supérieure ou égale au délai de transmission du commutateur pour garantir que la réponse ARP envoyée à l'extrémité opposée ne sera pas bloquée par le commutateur.
Conditions requises :
Condition 1 : ethtool prend en charge l'obtention du taux de chaque esclave
;Condition 2 : le pilote sous-jacent prend en charge la définition de l'adresse matérielle d'un certain périphérique, de sorte qu'il y ait toujours un esclave (curr_active_slave) utilisant l'adresse matérielle de la liaison, tout en garantissant que chaque esclave de la liaison possède une adresse matérielle unique. Si curr_active_slave échoue, son adresse matérielle sera reprise par le curr_active_slave nouvellement élu. En fait, la différence entre mod=6 et mod=0 : mod=6, remplissez d'abord le trafic eth0, puis eth1,...ethX et. mod =0, vous constaterez que le trafic des deux ports est très stable, avec fondamentalement la même bande passante. Et mod=6, vous constaterez que le trafic du premier port est très élevé, et le deuxième port ne représente qu'une petite partie du trafic
Liaison du port réseau Linux :Grâce à la technologie de liaison de port réseau (bond), la redondance des ports réseau et l'équilibrage de charge peuvent être facilement obtenus, obtenant ainsi une haute disponibilité et une haute fiabilité. Accord préalable :
2个物理网口分别是:eth0,eth1 绑定后的虚拟口是:bond0 服务器IP是:10.10.10.1
La première étape consiste à configurer le fichier de paramètres :
[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用的比较多。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!