Qu'est-ce que la liaison d'interface ?
La liaison (ou liaison de canaux) est une technologie activée par le noyau Linux et Red Hat Enterprise Linux, qui permet aux administrateurs de combiner deux ou plusieurs interfaces réseau pour former une seule interface logique « liée » pour la redondance ou un débit accru. Le comportement des interfaces liées dépend du mode; d'une manière générale, les modes fournissent des services de secours automatique ou d'équilibrage de charge. De plus, ils peuvent fournir une surveillance de l'intégrité des liens.
Pourquoi utiliser la liaison d'interface ?
Les deux raisons importantes pour créer une liaison d'interface sont :
1. Pour fournir une bande passante accrue
2. Pour assurer la redondance face à une panne matérielle
L'une des conditions préalables pour configurer une liaison est d'avoir le commutateur réseau qui prend en charge EtherChannel (ce qui est vrai dans le cas de presque tous les commutateurs).
Modes de liaison
Selon vos besoins, vous pouvez définir le mode de liaison sur l'un des 7 modes ci-dessous.
Mode | Politique | Comment ça marche | Tolérance aux pannes | Équilibrage de charge |
---|---|---|---|---|
0 | Tournoi à la ronde | les paquets sont séquentiellement transmis/reçus via chaque interface une par une. | Oui | Oui |
1 | Sauvegarde active | une carte réseau active pendant qu'une autre carte réseau est endormie. Si la carte réseau active tombe en panne, une autre carte réseau devient active. pris en charge uniquement dans les environnements x86. | Oui | Non |
2 | XOR [OU exclusif] | Dans ce mode, l'adresse MAC du NIC esclave est comparée au MAC de la demande entrante et une fois cette connexion établie, le même NIC est utilisé pour transmettre/recevoir pour le MAC de destination. | Oui | Oui |
3 | Diffusion | Toutes les transmissions sont envoyées sur tous les esclaves | Oui | Non |
4 | Agrégation de liens dynamiques | les cartes réseau agrégées agissent comme une seule carte réseau, ce qui se traduit par un débit plus élevé, mais fournit également un basculement en cas de défaillance d'une carte réseau. L'agrégation de liens dynamiques nécessite un commutateur prenant en charge IEEE 802.3ad. | Oui | Oui |
5 | Équilibrage de charge de transmission (TLB) | Le trafic sortant est distribué en fonction de la charge actuelle sur chaque interface esclave. Le trafic entrant est reçu par l'esclave actuel. Si l'esclave récepteur tombe en panne, un autre esclave reprend l'adresse MAC de l'esclave défaillant. | Oui | Oui |
6 | Équilibrage de charge adaptatif (ALB) | Contrairement à l'agrégation de liens dynamiques, l'équilibrage de charge adaptatif ne nécessite aucune configuration de commutateur particulière. L'équilibrage de charge adaptatif n'est pris en charge que dans les environnements x86. Les paquets de réception sont équilibrés en charge via la négociation ARP. | Oui | Oui |
Création de la liaison réseau à l'aide de nmcli
1. Création de l'interface de liaison
1. Utilisez la commande nmcli connection sans aucun argument pour afficher les connexions réseau existantes. Vous pouvez raccourcir la "connexion ” argument à “contre “. Exemple :
# nmcli connection NAME UUID TYPE DEVICE ens33 59b61d18-90ed-4c3c-97e0-6c9e0528f25f 802-3-ethernet ens33 ens37 c09f18e1-793b-4d60-9107-98762cf593a7 802-3-ethernet ens37
2. Inclure le "ajouter un lien de type ” arguments et toute information supplémentaire pour créer une connexion de liaison réseau. L'exemple suivant crée une interface liée nommée bond0, définit l'interface comme bond0, définit le mode sur "active-backup ", et attribue une adresse IP à l'interface liée.
# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ip4 192.168.219.150/24 Connection 'bond0' (1a75eef0-f2c9-417d-81a0-fabab4a1531c) successfully added.
La commande nmcli con affiche la nouvelle connexion de liaison.
# nmcli connection NAME UUID TYPE DEVICE bond0 1a75eef0-f2c9-417d-81a0-fabab4a1531c bond bond0 ens33 59b61d18-90ed-4c3c-97e0-6c9e0528f25f 802-3-ethernet ens33 ens37 c09f18e1-793b-4d60-9107-98762cf593a7 802-3-ethernet ens37
3. La commande "nmcli con add type bond" crée un fichier de configuration d'interface dans /etc/sysconfig/network-scripts annuaire. Par exemple :
# cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BONDING_OPTS=mode=active-backup TYPE=Bond BONDING_MASTER=yes BOOTPROTO=none IPADDR=192.168.219.150 PREFIX=24 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=bond0 UUID=1a75eef0-f2c9-417d-81a0-fabab4a1531c ONBOOT=yes
4. La commande ip addr affiche la nouvelle interface bond0 :
# ip addr show bond0 5: bond0: [BROADCAST,MULTICAST,MASTER,UP] mtu 1500 qdisc noqueue state DOWN qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff inet 192.168.219.150/24 brd 192.168.219.255 scope global bond0 valid_lft forever preferred_lft forever
2. Création des interfaces esclaves
1. Pour chaque interface que vous souhaitez lier, utilisez le 'nmcli con add type bond-slave ' commande. L'exemple suivant ajoute le ens33 interface en tant qu'esclave de liaison. La commande n'inclut pas l'argument con-name donc un nom est automatiquement généré. Vous pouvez définir le nom des interfaces esclaves avec l'argument con-name.
# nmcli con add type bond-slave ifname ens33 master bond0 Connection 'bond-slave-ens33' (79c40960-6b2c-47ba-a417-988332affed1) successfully added.
2. L'exemple suivant ajoute le ens37 interface en tant que "bond-slave ".
# nmcli con add type bond-slave ifname ens37 master bond0 Connection 'bond-slave-ens37' (46222a52-f2ae-4732-bf06-ef760aea0d7b) successfully added.
3. La commande nmcli con affiche les nouvelles connexions.
# nmcli connection NAME UUID TYPE DEVICE bond0 1a75eef0-f2c9-417d-81a0-fabab4a1531c bond bond0 ens33 59b61d18-90ed-4c3c-97e0-6c9e0528f25f 802-3-ethernet ens33 ens37 c09f18e1-793b-4d60-9107-98762cf593a7 802-3-ethernet ens37 bond-slave-ens33 79c40960-6b2c-47ba-a417-988332affed1 802-3-ethernet -- bond-slave-ens37 46222a52-f2ae-4732-bf06-ef760aea0d7b 802-3-ethernet --
4. Les commandes nmcli con add type bond-slave créent des fichiers de configuration d'interface dans /etc/sysconfig/network-scripts annuaire. Par exemple :
# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens33 TYPE=Ethernet NAME=bond-slave-ens33 UUID=79c40960-6b2c-47ba-a417-988332affed1 DEVICE=ens33 ONBOOT=yes MASTER=bond0 SLAVE=yes
# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens37 TYPE=Ethernet NAME=bond-slave-ens37 UUID=46222a52-f2ae-4732-bf06-ef760aea0d7b DEVICE=ens37 ONBOOT=yes MASTER=bond0 SLAVE=yes
5. La commande ip addr inclut "SLAVE " pour les interfaces ens33 et ens37 et inclut également "master bond0 ".
3. Activer le lien
1. Vous pouvez utiliser la commande nmcli pour afficher les connexions. Affichez d'abord les esclaves, puis affichez l'interface de liaison. Les commandes suivantes font apparaître les esclaves :
# nmcli connection up bond-slave-ens33 # nmcli connection up bond-slave-ens37
2. La commande suivante affiche l'interface bond0 :
# nmcli con up bond0
3. La commande ip addr, ou la commande ip link, affiche maintenant l'esclave et les interfaces de liaison qui sont UP.
# ip link 2: ens33: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff 3: ens37: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff 4: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
Affichage des informations de liaison réseau
1. Chaque interface réseau contient un répertoire dans le répertoire /sys/class/net. Par exemple :
# ls /sys/class/net bond0 bonding_masters ens33 ens36 ens37 lo
2. Dans cet exemple, une liaison réseau nommée « bond0 » existe. Un répertoire du même nom existe et contient des informations de configuration pour cette liaison. Par exemple :
# ls /sys/class/net/bond0 addr_assign_type bonding carrier_changes dormant gro_flush_timeout iflink lower_ens37 operstate queues subsystem uevent address broadcast dev_id duplex ifalias link_mode mtu phys_port_id speed tx_queue_len addr_len carrier dev_port flags ifindex lower_ens33 netdev_group power statistics type
3. Dans ce répertoire se trouve un répertoire de liaison qui contient des informations pour l'interface bond0. Par exemple :
# ls /sys/class/net/bond0/bonding active_slave ad_aggregator ad_select arp_interval fail_over_mac mii_status num_unsol_na queue_id updelay ad_actor_key ad_num_ports ad_user_port_key arp_ip_target lacp_rate min_links packets_per_slave resend_igmp use_carrier ad_actor_sys_prio ad_partner_key all_slaves_active arp_validate lp_interval mode primary slaves xmit_hash_policy ad_actor_system ad_partner_mac arp_all_targets downdelay miimon num_grat_arp primary_reselect tlb_dynamic_lb
4. Il existe également des répertoires qui contiennent des informations pour chacun des esclaves. Par exemple :
# ls /sys/class/net/bond0/lower_ens33 addr_assign_type bonding_slave carrier_changes dev_port flags ifindex master operstate queues subsystem uevent address broadcast device dormant gro_flush_timeout iflink mtu phys_port_id speed tx_queue_len upper_bond0 addr_len carrier dev_id duplex ifalias link_mode netdev_group power statistics type
5. Voici quelques exemples d'affichage de fichiers dans le répertoire /sys/class/net.
# cat /sys/class/net/bonding_masters bond0
# cat /sys/class/net/bond0/operstate up
# cat /sys/class/net/bond0/address 00:0c:29:54:f7:20
# cat /sys/class/net/bond0/bonding/active_slave ens33
# cat /sys/class/net/bond0/bonding/mode active-backup 1
# cat /sys/class/net/bond0/bonding/slaves ens33 ens37
6. Voici un exemple d'affichage du fichier /proc/net/bonding/bond0.
# 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): 100 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
Comment désactiver IPv4 ou IPv6 sur une interface liée
Ces étapes ne sont nécessaires que si bond1 n'utilise pas d'adresse ipv4 ou ipv6
# nmcli connection modify bond1 ipv4.method disabled
et/ou
# nmcli connection modify bond1 ipv6.method ignore