Cet article aborde la configuration de l'agrégation de cartes réseau (link aggregation) sous CentOS 7. L'agrégation permet d'augmenter la bande passante et d'assurer la redondance des connexions réseau. Bien que faisant partie des certifications RHCE, sa mise en œuvre pratique peut présenter des défis.
Concepts d'Agrégation de Liens
Il existe trois modes principaux pour l'agrégation de liens : - Mode 0 (Load Balancing) : Les deux cartes réseau fonctionnent en parallèle pour répartir la charge. Ce mode nécessite une configuration de port trunking sur l'équipement réseau (switch) auquel le serveur est connecté.
- Mode 1 (Active-Backup) : Une seule carte réseau est active. Si celle-ci tombe en panne, la seconde prend le relais. C'est un mode purement redondant (failover).
- Mode 6 (Load Balancing) : Similaire au mode 0, il permet la répartition de charge et la redondance sans nécessiter de configuration spécifique sur le switch. C'est le mode le plus recommandé car il offre à la fois performance et résilience sans dépendance externe.
Mise en Œuvre Pratique
Cette section détaille les étapes de configuration sur un environnement virtuel VMware avec CentOS 7. Deux technologies sont disponibles : bonding et team. ### Configuration Manuelle avec le module bonding
Vérification des interfaces réseau physiques et de leur état : ``` [root@hostname ~]# nmcli dev DEVICE TYPE STATE CONNECTION eth0 ethernet connected System eth0 eth1 ethernet connected Wired connection 1 eth2 ethernet connected Wired connection 2 lo loopback unmanaged -- [root@hostname ~]# nmcli con NAME UUID TYPE DEVICE System eth0 ... ethernet eth0 Wired connection 1 ... ethernet eth1 Wired connection 2 ... ethernet eth2
Les interfaces `eth1` et `eth2` doivent être dissociées des connexions existantes pour être réattribuées : ```
[root@hostname ~]# nmcli con del 'Wired connection 1' 'Wired connection 2'
[root@hostname ~]# nmcli con add type ethernet ifname eth1 con-name eth1
[root@hostname ~]# nmcli con add type ethernet ifname eth2 con-name eth2
Modification des fichiers de configuration ifcfg-eth1 et ifcfg-eth2 : Ajoutez les lignes suivantes : MASTER=bond0``SLAVE=yesCréation du fichier de configuration ifcfg-bond0 : ```
TYPE=Bond
BOOTPROTO=none
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
BONDING_OPTS="miimon=100 mode=6 fail_over_mac=1"
Pour les environnements virtuels VMware, le paramètre `fail_over_mac=1` est crucial pour le bon fonctionnement du basculement en cas de défaillance. Sans lui, le mode redondant pourrait ne pas fonctionner correctement. **Note :** Dans un environnement VMware, seul le mode 1 (active-backup) assure un basculement fonctionnel avec `bonding`. Pour utiliser le mode 1, modifiez `BONDING_OPTS` : ```
BONDING_OPTS="miimon=100 mode=1 fail_over_mac=1"
Vérification de l'état de l'agrégation : ``` [root@hostname ~]# cat /proc/net/bonding/bond0
### Configuration avec `nmcli` et `bonding`
Utilisation de la commande `nmcli` pour créer une interface agrégée `bond1` et y attacher les ports `eth1` et `eth2` : ```
[root@hostname ~]# nmcli con add type bond ifname bond1 con-name bond1 mode 1 ipv4.method manual ipv4.address 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 114.114.114.114
[root@hostname ~]# nmcli con add type bond-slave ifname eth1 con-name bond1-port1 master bond1
[root@hostname ~]# nmcli con add type bond-slave ifname eth2 con-name bond1-port2 master bond1
Il est impératif d'ajouter fail_over_mac=1 à la configuration du bond, même avec nmcli, pour les environnements virtuels. Cela peut être fait en éditant le fichier ifcfg-bond1 généré. Après redémarrage du service réseau, l'agrégation devrait être active. ### Configuration avec nmcli et team (Recommandé pour CentOS 7+)
Le module team est une alternative plus moderne et flexible. Création de l'interface team1 avec le runner activebackup : ```
[root@hostname ~]# nmcli con add type team ifname team1 con-name team1 config '{"runner":{"name":"activebackup", "hwaddr_policy":"by_active"}}' ipv4.method manual ipv4.address 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 114.114.114.114
[root@hostname ~]# nmcli con add type team-slave ifname eth1 con-name team1-port1 master team1
[root@hostname ~]# nmcli con add type team-slave ifname eth2 con-name team1-port2 master team1
Dans cet exemple, `"hwaddr_policy":"by_active"` joue un rôle similaire à `fail_over_mac=1` pour `bonding` dans les environnements virtuels. Activation des connexions : ```
[root@hostname ~]# nmcli con up team1-port1
[root@hostname ~]# nmcli con up team1-port2
[root@hostname ~]# nmcli con up team1
Vérification de l'état avec teamdctl : ```
[root@hostname ~]# teamdctl team1 st
Pour simuler une défaillance, désactivez une interface : ```
[root@hostname ~]# ifdown eth1
L'interface active devrait basculer sur eth2. ### Résumé des Méthodes
- Configuration manuelle avec
bonding. - Configuration via
nmcliavecbonding. - Configuration via
nmcliavecteam(méthode privilégiée sous CentOS 7 et versions ultérieures).
Dans les environnements virtuels, seuls les modes de type active-backup (mode 1 pour bonding, activebackup pour team) fonctionnent de manière fiable. Les paramètres spécifiques comme fail_over_mac=1 (bonding) ou "hwaddr_policy":"by_active" (team) sont essentiels. Agrégasion sur Machine Physique
(Section à compléter après tests sur matériel physique...)