Catégorie : Fedora

17 septembre 2020 /
Lorsque vous essayez d'annuler une transaction yum via yum history undo <id> ou yum history rollback qui inclut systemd dans la liste des paquet, yum va échouer avec cette erreur:

« Error%3A%20Trying%20to%20remove%20%22systemd%22%2C%20which%20is%20protected »

Pour pouvoir faire la transaction yum , on peut renommer ou supprimer(le fichier sera normalement recréer) /etc/yum/protected.d/systemd.conf et puis de relancer la commande. 

Remarque: ces rétrogradations ne sont pas officiellement prises en charge par Redhat. Pensez aux sauvegardes.
 
9 février 2018 /

Pour l’historique les 20 dernières transactions dans l’historique:

yum history list

Modules complémentaires chargés : fastestmirror
ID | Ligne de commande | Date et heure | Action | Modifié
-------------------------------------------------------------------------------
51 | update --skip-broken | 2018-02-09 09:52 | E, I, O, U | 472 EE
50 | -y -q update | 2017-07-24 07:50 | E, I, U | 22 EE
49 | -y -q update | 2017-07-03 07:24 | E, I, U | 73
48 | -y -q update | 2017-06-26 07:41 | E, I, U | 11
47 | -y -q update | 2017-06-19 06:28 | Update | 6
46 | -y -q update | 2017-06-06 07:22 | Update | 4
45 | -y -q update | 2017-05-29 07:24 | E, I, U | 55
44 | -y -q update | 2017-05-24 10:24 | Update | 12
43 | -y -q update | 2017-04-24 06:07 | Update | 18
42 | -y -q update | 2017-04-17 06:09 | E, I, U | 34
41 | -y -q update | 2017-03-30 06:16 | Update | 4
40 | -y -q update | 2017-03-09 07:12 | E, I, U | 60
39 | -y -q update | 2017-02-27 07:10 | E, I, U | 9
38 | -y -q update | 2017-02-20 06:30 | Update | 7
37 | -y -q update | 2017-02-06 06:13 | Update | 1
36 | -y -q update | 2017-01-23 06:20 | E, I, U | 69
35 | -y -q update | 2017-01-16 07:48 | Update | 2
34 | -y -q update | 2017-01-09 06:14 | Update | 51
33 | -y -q update | 2016-12-26 06:32 | E, I, U | 341 EE
32 | -y -q update | 2016-11-03 08:57 | E, I, U | 6

Pour l’historique de toutes les transactions dans l’historique:

yum history list all

Modules complémentaires chargés : fastestmirror
ID | Identifiant utilisateur | Date et heure | Action | Modifié
-------------------------------------------------------------------------------
51 | root | 2018-02-09 09:52 | E, I, O, U | 472 EE
50 | root | 2017-07-24 07:50 | E, I, U | 22 EE
49 | root | 2017-07-03 07:24 | E, I, U | 73
48 | root | 2017-06-26 07:41 | E, I, U | 11
47 | root | 2017-06-19 06:28 | Update | 6
46 | root | 2017-06-06 07:22 | Update | 4
45 | root | 2017-05-29 07:24 | E, I, U | 55
44 | root | 2017-05-24 10:24 | Update | 12
43 | root | 2017-04-24 06:07 | Update | 18
42 | root | 2017-04-17 06:09 | E, I, U | 34
41 | root | 2017-03-30 06:16 | Update | 4
40 | root | 2017-03-09 07:12 | E, I, U | 60
39 | root | 2017-02-27 07:10 | E, I, U | 9
38 | root | 2017-02-20 06:30 | Update | 7
37 | root | 2017-02-06 06:13 | Update | 1
36 | root | 2017-01-23 06:20 | E, I, U | 69
35 | root | 2017-01-16 07:48 | Update | 2
34 | root | 2017-01-09 06:14 | Update | 51
33 | root | 2016-12-26 06:32 | E, I, U | 341 EE
32 | root | 2016-11-03 08:57 | E, I, U | 6
31 | root | 2016-10-25 10:07 | Update | 1
30 | root | 2016-10-13 12:53 | E, I, U | 6
29 | root | 2016-10-10 09:25 | Update | 7
28 | root | 2016-09-26 10:32 | E, I, U | 6
27 | root | 2016-09-19 11:48 | Update | 21
26 | root | 2016-08-29 12:39 | Install | 1
25 | root | 2016-08-29 12:28 | E, I, U | 14
24 | root | 2016-08-04 10:13 | I, U | 85
23 | root | 2016-05-31 09:23 | I, U | 48
22 | root | 2016-04-21 12:03 | Update | 21
21 | root | 2016-04-13 15:19 | Install | 1
20 | root | 2016-04-11 10:06 | Update | 5
19 | root | 2016-04-01 16:42 | I, U | 58
18 | root | 2016-03-21 11:00 | Update | 8
17 | root | 2016-03-17 14:36 | Install | 2
16 | root | 2016-03-17 14:35 | Install | 73
15 | root | 2016-03-17 14:23 | I, U | 356 EE
14 | root | 2015-11-24 10:10 | Install | 1
13 | root | 2015-11-23 17:24 | Install | 34
12 | root | 2015-11-23 16:50 | Erase | 34
11 | root | 2015-11-23 16:45 | Install | 34
10 | root | 2015-11-23 16:44 | Erase | 1
9 | root | 2015-11-23 16:44 | Install | 1
8 | root | 2015-11-23 14:19 | I, U | 7
7 | root | 2015-11-20 16:40 | Install | 1
6 | root | 2015-11-13 10:48 | I, U | 9 EE
5 | root | 2015-11-13 10:47 | Install | 1
4 | root | 2015-11-13 10:17 | I, U | 112 EE
3 | root | 2015-11-13 10:17 | Install | 2
2 | root | 2015-11-13 10:16 | Install | 1
1 | Système <indéfini> | 2015-11-13 09:53 | Install | 490
history list

Valeurs possibles de la colonne « Action »

Action Abbréviation Description
Downgrade D Un paquet au moins a été mis à niveau à une version antérieure.
Erase E Un paquet au moins a été supprimé.
Install I Un nouveau paquet au moins a été installé.
Obsoleting O Un paquet au mons a été marqué comme obsolète.
Reinstall R Un paquet au moins a été réinstallé.
Update U Un paquet au moins a été mis à jour à une version plus récente.

 

Pour afficher les informations sur une transaction en particulier, ici celle ayant pour ID 45:

yum history info 45

Modules complémentaires chargés : fastestmirror
ID de transaction : 45
Temps de début : Mon May 29 07:24:21 2017
Début de RPMDB : 748:54e74ce1d17f254636f404c98638980f9ebd1c71
Temps de fin : 07:27:20 2017 (179 secondes)
Fin de RPMDB : 748:ebcb654b4396ec5735f4dc2f3268a7c7875911c1
Utilisateur : root
Code retour : Réussi
Ligne de commande : -y -q update
Transaction effectuée avec :
Mis à jour  rpm-4.11.3-21.el7.x86_64 @base
Mis à jour  yum-3.4.3-150.el7.centos.noarch @base
Mis à jour  yum-plugin-fastestmirror-1.1.31-40.el7.noarch @base
Paquets modifiés :
Mis à jour  NetworkManager-1:1.4.0-19.el7_3.x86_64 @updates
Mise à jour 1:1.4.0-20.el7_3.x86_64 @updates
Mis à jour  NetworkManager-libnm-1:1.4.0-19.el7_3.x86_64 @updates
Mise à jour 1:1.4.0-20.el7_3.x86_64 @updates
Mis à jour  NetworkManager-team-1:1.4.0-19.el7_3.x86_64 @updates
Mise à jour 1:1.4.0-20.el7_3.x86_64 @updates
Mis à jour  NetworkManager-tui-1:1.4.0-19.el7_3.x86_64 @updates
Mise à jour 1:1.4.0-20.el7_3.x86_64 @updates
Mis à jour  dracut-033-463.el7.x86_64 @base
Mise à jour 033-463.el7_3.1.x86_64 @updates
Mis à jour  dracut-config-rescue-033-463.el7.x86_64 @base
Mise à jour 033-463.el7_3.1.x86_64 @updates
Mis à jour  dracut-network-033-463.el7.x86_64 @base
Mise à jour 033-463.el7_3.1.x86_64 @updates
Mis à jour  firewalld-0.4.3.2-8.1.el7_3.2.noarch @updates
Mise à jour 0.4.3.2-8.1.el7_3.3.noarch @updates
Mis à jour  firewalld-filesystem-0.4.3.2-8.1.el7_3.2.noarch @updates
Mise à jour 0.4.3.2-8.1.el7_3.3.noarch @updates
Mis à jour  glibc-2.17-157.el7_3.1.x86_64 @updates
Mise à jour 2.17-157.el7_3.2.x86_64 @updates
Mis à jour  glibc-common-2.17-157.el7_3.1.x86_64 @updates
Mise à jour 2.17-157.el7_3.2.x86_64 @updates
Mis à jour  glibc-devel-2.17-157.el7_3.1.x86_64 @updates
Mise à jour 2.17-157.el7_3.2.x86_64 @updates
Mis à jour  glibc-headers-2.17-157.el7_3.1.x86_64 @updates
Mise à jour 2.17-157.el7_3.2.x86_64 @updates
Mis à jour  gtk3-3.14.13-20.el7.x86_64 @base
Mise à jour 3.14.13-20.el7_3.1.x86_64 @updates
Supprimé kernel-3.10.0-514.6.1.el7.x86_64 @updates
Installation kernel-3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  kernel-headers-3.10.0-514.16.1.el7.x86_64 @updates
Mise à jour 3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  kernel-tools-3.10.0-514.16.1.el7.x86_64 @updates
Mise à jour 3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  kernel-tools-libs-3.10.0-514.16.1.el7.x86_64 @updates
Mise à jour 3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  kpartx-0.4.9-99.el7_3.1.x86_64 @updates
Mise à jour 0.4.9-99.el7_3.3.x86_64 @updates
Mis à jour  libgudev1-219-30.el7_3.8.x86_64 @updates
Mise à jour 219-30.el7_3.9.x86_64 @updates
Mis à jour  libnetfilter_conntrack-1.0.4-2.el7.x86_64 @anaconda
Mise à jour 1.0.6-1.el7_3.x86_64 @updates
Mis à jour  libsmbclient-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  libvirt-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-client-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-config-network-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-config-nwfilter-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-interface-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-lxc-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-network-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-nodedev-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-nwfilter-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-qemu-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-secret-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-driver-storage-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-daemon-kvm-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libvirt-lock-sanlock-2.0.0-10.el7_3.5.x86_64 @updates
Mise à jour 2.0.0-10.el7_3.9.x86_64 @updates
Mis à jour  libwbclient-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  polkit-0.112-11.el7_3.x86_64 @updates
Mise à jour 0.112-12.el7_3.x86_64 @updates
Mis à jour  python-firewall-0.4.3.2-8.1.el7_3.2.noarch @updates
Mise à jour 0.4.3.2-8.1.el7_3.3.noarch @updates
Mis à jour  python-perf-3.10.0-514.16.1.el7.x86_64 @updates
Mise à jour 3.10.0-514.21.1.el7.x86_64 @updates
Mis à jour  rdma-7.3_4.7_rc2-5.el7.noarch @base
Mise à jour 7.3_4.7_rc2-6.el7_3.noarch @updates
Mis à jour  samba-client-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  samba-client-libs-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  samba-common-4.4.4-13.el7_3.noarch @updates
Mise à jour 4.4.4-14.el7_3.noarch @updates
Mis à jour  samba-common-libs-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  samba-common-tools-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  samba-libs-4.4.4-13.el7_3.x86_64 @updates
Mise à jour 4.4.4-14.el7_3.x86_64 @updates
Mis à jour  seabios-bin-1.9.1-5.el7_3.2.noarch @updates
Mise à jour 1.9.1-5.el7_3.3.noarch @updates
Mis à jour  seavgabios-bin-1.9.1-5.el7_3.2.noarch @updates
Mise à jour 1.9.1-5.el7_3.3.noarch @updates
Mis à jour  systemd-219-30.el7_3.8.x86_64 @updates
Mise à jour 219-30.el7_3.9.x86_64 @updates
Mis à jour  systemd-libs-219-30.el7_3.8.x86_64 @updates
Mise à jour 219-30.el7_3.9.x86_64 @updates
Mis à jour  systemd-sysv-219-30.el7_3.8.x86_64 @updates
Mise à jour 219-30.el7_3.9.x86_64 @updates
Mis à jour  tuned-2.7.1-3.el7_3.1.noarch @updates
Mise à jour 2.7.1-3.el7_3.2.noarch @updates
history info

Pour annuler la dernière transaction:

yum history undo last

Pour annuler une transaction en particulier, ici celle ayant pour ID 51:

yum history undo 51

Pour rejouer une transaction en particulier, ici celle ayant pour ID 51:

yum history redo 51

17 août 2017 /

Installation

sudo yum update -y
sudo yum install httpd -y
sudo yum install perl perl-CGI -y
sudo systemctl start httpd.service
sudo systemctl enable httpd.service

Création d’un fichier de test CGI

Pour cela on va créer un répertoire de test:

mkdir /var/www/test_cgi
vi /var/www/test_cgi/hello.cgi

Et on y ajoute cela:

#!/usr/bin/perl
print "Content-type: text/html\n\n"; # Obligatoire
print "<h2>Hello world!</h2>";

Chargement du module mod_cgi.so dans Apache

On peux vérifier les modules présent dans la configuration principale d’Apache:

grep -n "LoadModule" /etc/httpd/conf/httpd.conf

Si il n’est pas présent, on va l’ajouter, pour cela on va localiser le module:

find /etc/httpd/modules/ -iname "*cgi*"

Cela devrait nous retourner:

/etc/httpd/modules/mod_cgi.so

Une fois trouvé, on ajoute cette ligne au fichier de configuration d’apache:

LoadModule cgi_module modules/mod_cgi.so

Particularité sur Ubuntu pour activer le module cgi:

sudo a2enmod cgi
sudo service apache2 restart

Déclaration du répertoire du script test dans httpd.conf

vi /etc/httpd/conf/httpd.conf

Puis on y ajoute ça:

<Directory "var/www/test_cgi">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>

On modifie également cette ligne comme ceci:

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

qui devient:

#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /test_cgi/ "/var/www/test_cgi/"

Attribution des droits

chmod 755 hello.cgi

On redémarre Apache:

sudo systemctl restart httpd.service

On peux maintenant tester le script à cette adresse:

http://@IP/hello.cgi

11 février 2017 /

Voici comment configurer une agrégation de liens sur les ports Ethernet dans CentOS6 et RH6.
Dans mon cas, j’ai deux cartes (eth0 & eth1) qui formeront une interface d’agrégat (bond0).

L’agrégation peut fonctionner suivant plusieurs modes qui détermineront son fonctionnement:

Mode 0 : Round Robin , équilibrage de charge

La transmission des paquets se fait de façon séquentielle sur chacune des cartes actives dans l’agrégat. Ce mode augmente la bande passante et gère la tolérance de panne.

Mode 1 : Active – passive

Ce mode ne gère que la tolérance de panne. Si une des interfaces est désactivée, une autre du bond prend le relais.

Mode 2 : Balance xor

Une interface est affectée à l’envoi vers une même adresse MAC. Ainsi les transferts sont parallélisés et le choix de l’interface suit la règle : (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d’interfaces.

Mode 3 : Broadcast

Tout le trafic est envoyé par toutes les interfaces

mode 4 : 802.3ad ou LCAP

Ce mode s’appuie sur la norme IEEE 802.3ad Dynamic link aggregation. Toutes les interfaces du groupe sont agrégées de façon dynamique, ce qui augmente la bande passante et gère la tolérance de panne. Cela implique que le switch gère le 802.ad et les interfaces soient compatibles mii-tool et/ou ethtool.

mode 5 : balance-tlb

Adaptive transmit load balancing : seule la bande passante en sortie est load balancée selon la charge calculée en fonction de la vitesse, ceci pour chaque interface. Le flux entrant est affecté à l’interface courante. Si celle-ci devient inactive, une autre prend alors l’adresse MAC et devient l’interface courante.

mode 6 : balance-alb

Adaptive load balancing : ce mode inclut en plus du tlb un load balancing sur le flux entrant et seulement pour un trafic IPV4. L’équilibrage est réalisé au niveau ARP. Le module intercepte les réponses pour y réécrire l’adresse MAC de l’une des interfaces du bond tout en tenant compte des spécificités du protocole ARP. La répartition entre les différentes interfaces, se fait de façon séquentielle ( round robin ).

 

Configuration du noyau via le fichier bonding.conf:

vi /etc/modprobe.d/bonding.conf

 

et on y ajoute cela:

alias bond0 bonding

 

Pour afficher les informations du module d’agrégation:

modinfo bonding

 

Désactivation de NetworkManager:

chkconfig NetworkManager off
service NetworkManager stop


Création de l’interface bond0 :

vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
IPADDR=192.168.122.9
NETMASK=255.255.255.0
GATEWAY=192.168.122.1
TYPE=Bond
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
BONDING_OPTS="mode=0 miimon=100"

Le paramètre « BONDING_OPTS » décrit le mode qui sera utilisé.
Dans notre cas, nous avons configuré l’interface pour fonctionner en mode 0 (Round Robin) et nous avons défini la fréquence des MII link monitoring à 100 (en millisecondes).

 

Modification/Création des deux interfaces qui vont être agrégées :

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=52:54:00:2f:e1:87
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes

vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
HWADDR=52:54:00:fe:50:1c
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes

Redémarrage du service réseau:

service network restart

Vérification de l’agrégation:

ifconfig

bond0     Link encap:Ethernet  HWaddr 52:54:00:2F:E1:87
inet adr:192.168.122.9  Bcast:192.168.122.255  Masque:255.255.255.0
adr inet6: fe80::5054:ff:fe2f:e187/64 Scope:Lien
UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
RX packets:782 errors:0 dropped:0 overruns:0 frame:0
TX packets:282 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:49341 (48.1 KiB)  TX bytes:31605 (30.8 KiB)

eth0      Link encap:Ethernet  HWaddr 52:54:00:2F:E1:87
adr inet6: fe80::5054:ff:fe2f:e187/64 Scope:Lien
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:56921 errors:0 dropped:60 overruns:0 frame:0
TX packets:25795 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:83123782 (79.2 MiB)  TX bytes:1776097 (1.6 MiB)
Interruption:11 Adresse de base:0x8000

eth1      Link encap:Ethernet  HWaddr 52:54:00:2F:E1:87
adr inet6: fe80::5054:ff:fe2f:e187/64 Scope:Lien
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:1528 errors:0 dropped:0 overruns:0 frame:0
TX packets:449 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:418511 (408.7 KiB)  TX bytes:106471 (103.9 KiB)
Interruption:10 Adresse de base:0xa000

lo        Link encap:Boucle locale
inet adr:127.0.0.1  Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:40 errors:0 dropped:0 overruns:0 frame:0
TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:3178 (3.1 KiB)  TX bytes:3178 (3.1 KiB)


On peut également voir son bon fonctionnement avec la commande ip:

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 52:54:00:2f:e1:87 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fe2f:e187/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 52:54:00:2f:e1:87 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fe2f:e187/64 scope link
valid_lft forever preferred_lft forever
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 52:54:00:2f:e1:87 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.9/24 brd 192.168.122.255 scope global bond0
inet6 fe80::5054:ff:fe2f:e187/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever

On peut également afficher les paramètres de l’agrégation, comme le mode utilisé et l’interface esclave:

cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 52:54:00:2f:e1:87
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 52:54:00:fe:50:1c
Slave queue ID: 0

 

Configuration d’un alias ip sur l’agrégation:

cp -p /etc/sysconfig/network-scripts/ifcfg-bond0 /etc/sysconfig/network-scripts/ifcfg-bond0:1
vi /etc/sysconfig/network-scripts/ifcfg-bond0:1

 

Et nous allons adapter les parametres « DEVICE » et « IPADDR » comme ci dessous:

DEVICE=bond0:1
IPADDR=192.168.122.19
NETMASK=255.255.255.0
GATEWAY=192.168.122.1
TYPE=Bond
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
BONDING_OPTS="mode=0 miimon=100"

Redémarrez le service réseau:

service network restart

Vérification:

ifconfig

bond0     Link encap:Ethernet  HWaddr 52:54:00:2F:E1:87
inet adr:192.168.122.9  Bcast:192.168.122.255  Masque:255.255.255.0
adr inet6: fe80::5054:ff:fe2f:e187/64 Scope:Lien
UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
RX packets:1298 errors:0 dropped:0 overruns:0 frame:0
TX packets:431 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:78505 (76.6 KiB)  TX bytes:55055 (53.7 KiB)

bond0:1   Link encap:Ethernet  HWaddr 52:54:00:2F:E1:87
inet adr:192.168.122.19  Bcast:192.168.122.255  Masque:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

eth0      Link encap:Ethernet  HWaddr 52:54:00:2F:E1:87
adr inet6: fe80::5054:ff:fe2f:e187/64 Scope:Lien
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:57180 errors:0 dropped:60 overruns:0 frame:0
TX packets:25870 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:83138488 (79.2 MiB)  TX bytes:1790539 (1.7 MiB)
Interruption:11 Adresse de base:0x8000

eth1      Link encap:Ethernet  HWaddr 52:54:00:2F:E1:87
adr inet6: fe80::5054:ff:fe2f:e187/64 Scope:Lien
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:1786 errors:0 dropped:0 overruns:0 frame:0
TX packets:524 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:433021 (422.8 KiB)  TX bytes:116177 (113.4 KiB)
Interruption:10 Adresse de base:0xa000

lo        Link encap:Boucle locale
inet adr:127.0.0.1  Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:40 errors:0 dropped:0 overruns:0 frame:0
TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:3178 (3.1 KiB)  TX bytes:3178 (3.1 KiB)

On peut également voir son bon fonctionnement avec la commande ip:

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 52:54:00:2f:e1:87 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fe2f:e187/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 52:54:00:2f:e1:87 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fe2f:e187/64 scope link
valid_lft forever preferred_lft forever
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 52:54:00:2f:e1:87 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.9/24 brd 192.168.122.255 scope global bond0
inet 192.168.122.19/24 brd 192.168.122.255 scope global secondary bond0:1
inet6 fe80::5054:ff:fe2f:e187/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever

10 février 2017 /

Voici comment configurer une agrégation de liens sur les ports Ethernet dans CentOS7 et RH7.
Dans mon cas, j’ai deux cartes (ens192 & ens224) qui formeront une interface d’agrégat (bond0).

L’agrégation peut fonctionner suivant plusieurs modes qui détermineront son fonctionnement:

Mode 0 : Round Robin , équilibrage de charge

La transmission des paquets se fait de façon séquentielle sur chacune des cartes actives dans l’agrégat. Ce mode augmente la bande passante et gère la tolérance de panne.

Mode 1 : Active – passive

Ce mode ne gère que la tolérance de panne. Si une des interfaces est désactivée, une autre du bond prend le relais.

Mode 2 : Balance xor

Une interface est affectée à l’envoi vers une même adresse MAC. Ainsi les transferts sont parallélisés et le choix de l’interface suit la règle : (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d’interfaces.

Mode 3 : Broadcast

Tout le trafic est envoyé par toutes les interfaces

mode 4 : 802.3ad ou LCAP

Ce mode s’appuie sur la norme IEEE 802.3ad Dynamic link aggregation. Toutes les interfaces du groupe sont agrégées de façon dynamique, ce qui augmente la bande passante et gère la tolérance de panne. Cela implique que le switch gère le 802.ad et les interfaces soient compatibles mii-tool et/ou ethtool.

mode 5 : balance-tlb

Adaptive transmit load balancing : seule la bande passante en sortie est load balancée selon la charge calculée en fonction de la vitesse, ceci pour chaque interface. Le flux entrant est affecté à l’interface courante. Si celle-ci devient inactive, une autre prend alors l’adresse MAC et devient l’interface courante.

mode 6 : balance-alb

Adaptive load balancing : ce mode inclut en plus du tlb un load balancing sur le flux entrant et seulement pour un trafic IPV4. L’équilibrage est réalisé au niveau ARP. Le module intercepte les réponses pour y réécrire l’adresse MAC de l’une des interfaces du bond tout en tenant compte des spécificités du protocole ARP. La répartition entre les différentes interfaces, se fait de façon séquentielle ( round robin ).

 

Si le module d’agrégation n’est pas chargé, utilisez la commande ci-dessous pour le charger:

 

modprobe --first-time bonding

 

Pour afficher les informations du module d’agrégation:

 

modinfo bonding

 

Création de l’interface bond0 :

 

vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.148.14.244
NETMASK=255.255.255.0
GATEWAY=10.148.14.1
BONDING_OPTS="mode=0 miimon=100"

Le paramètre « BONDING_OPTS » décrit le mode qui sera utilisé.
Dans notre cas, nous avons configuré l’interface pour fonctionner en mode 0 (Round Robin) et nous avons défini la fréquence des MII link monitoring à 100 (en millisecondes).

 

Modification des deux interfaces qui vont être agrégées:

 

vi /etc/sysconfig/network-scripts/ifcfg-ens192

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=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=ens192
UUID=ae1b730e-2c44-4662-83d8-815ae54bb7ed
DEVICE=ens192
ONBOOT=no

devient :

TYPE=Ethernet
BOOTPROTO=none
NAME=ens192
UUID=ae1b730e-2c44-4662-83d8-815ae54bb7ed
DEVICE=ens192
ONBOOT=yes
MASTER=bond0
SLAVE=yes

vi /etc/sysconfig/network-scripts/ifcfg-ens224

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=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=ens224
UUID=796aeb4a-97d4-4763-a350-4f09cb77dbb9
DEVICE=ens224
ONBOOT=no

devient

TYPE=Ethernet
BOOTPROTO=none
NAME=ens224
UUID=796aeb4a-97d4-4763-a350-4f09cb77dbb9
DEVICE=ens224
ONBOOT=yes
MASTER=bond0
SLAVE=yes

Redémarrage du service réseau:

systemctl restart network.service

 

Vérification de l’agrégation:

 

ifconfig

bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 10.148.14.244 netmask 255.255.255.0 broadcast 10.148.14.255
inet6 fe80::20c:29ff:feae:79ef prefixlen 64 scopeid 0x20 ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 17755 bytes 1701509 (1.6 MiB)
RX errors 0 dropped 36 overruns 0 frame 0
TX packets 1555 bytes 138441 (135.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens192: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 7901 bytes 757796 (740.0 KiB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 588 bytes 46424 (45.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens224: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 8927 bytes 855269 (835.2 KiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 795 bytes 73253 (71.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Boucle locale)
RX packets 610 bytes 55904 (54.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 610 bytes 55904 (54.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

On peut également voir son bon fonctionnement avec la commande ip:

ip addr

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: ens192: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
inet 10.148.14.244/24 brd 10.148.14.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feae:79ef/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever

On peut également afficher les paramètres de l’agrégation, comme le mode utilisé et l’interface esclave:

cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ae:79:f9
Slave queue ID: 0

Slave Interface: ens192
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ae:79:ef
Slave queue ID: 0

 

Configuration d’un alias ip sur l’agrégation:

 

cp -p /etc/sysconfig/network-scripts/ifcfg-bond0 /etc/sysconfig/network-scripts/ifcfg-bond0:1

vi /etc/sysconfig/network-scripts/ifcfg-bond0:1

Et nous allons adapter les parametres « DEVICE » et « IPADDR » comme ci dessous:

DEVICE=bond0:1
TYPE=Bond
NAME=bond0:1
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.148.14.216
NETMASK=255.255.255.0
GATEWAY=10.148.14.1
BONDING_OPTS="mode=0 miimon=100"

Redémarrez le service réseau:

systemctl restart network.service

Vérification:

ifconfig

bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 10.148.14.244 netmask 255.255.255.0 broadcast 10.148.14.255
inet6 fe80::20c:29ff:feae:79ef prefixlen 64 scopeid 0x20 ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 23580 bytes 2260763 (2.1 MiB)
RX errors 0 dropped 50 overruns 0 frame 0
TX packets 1828 bytes 182463 (178.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

bond0:1: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 10.148.14.216 netmask 255.255.255.0 broadcast 10.148.14.255
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)

ens192: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 67 bytes 5428 (5.3 KiB)
RX errors 0 dropped 3 overruns 0 frame 0
TX packets 20 bytes 1544 (1.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens224: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 62 bytes 5128 (5.0 KiB)
RX errors 0 dropped 3 overruns 0 frame 0
TX packets 13 bytes 1354 (1.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Boucle locale)
RX packets 661 bytes 60416 (59.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 661 bytes 60416 (59.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

On peut également voir son bon fonctionnement avec la commande ip:

ip addr

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: ens192: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
inet 10.148.14.244/24 brd 10.148.14.255 scope global bond0
valid_lft forever preferred_lft forever
inet 10.148.14.216/24 brd 10.148.14.255 scope global secondary bond0:1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feae:79ef/64 scope link
valid_lft forever preferred_lft forever