Étiquette : fedora

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

17 mai 2016 /

On télécharge sur le site officiel le pilote correspondant ici.

Une fois téléchargé, on rend le fichier exécutable:

chmod +x /home/starmate/Téléchargements/NVIDIA-Linux-x86_64-364.19.run

On passe en root:

sudo su -

On met à jour son système:

dnf update

On installe toute les dépendances:

dnf install kernel-devel kernel-headers gcc dkms acpid

On désactive le pilote « nouveau« :

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

On modifie lefichier /etc/sysconfig/grub:

vi /etc/sysconfig/grub

Pour y ajouter le paramètre »rd.driver.blacklist=nouveau » sur la ligne correspondant au noyau:

GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/swap rd.lvm.lv=fedora/root rhgb quiet rd.driver.blacklist=nouveau"

Mise à jour de la configuration de grub2:

grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Suppression du paquet xorg-x11-drv-nouveau:

dnf remove xorg-x11-drv-nouveau

Génération de l’initramfs:

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut /boot/initramfs-$(uname -r).img $(uname -r)

On redémarre sans le mode graphique, en init 3:

systemctl set-default multi-user.target
reboot

Une fois redémarré et connecté, on passe root:

sudo su -

On lance le script Nvidia téléchargé au debut:

./home/starmate/Téléchargements/NVIDIA-Linux-x86_64-364.19.run

Une fois que tout est terminé, on repasse en mode graphique, en init 5:

systemctl set-default graphical.target

Et on redémarre:

reboot

22 décembre 2015 /

FirewallD est un service qui permet de mettre en place une gestion dynamique du pare-feu sous RedHat, CentOS et Fedora.
Il s’appuie sur l’infrastructure Netfilter.

Les règles gérées par le service FireWallD sont appliquées san savoir besoin de redémarrer le parefeu.
Les règles existantes, toujours utiles, restent donc en place. Et les modules noyaux complémentaires utilisés ne sont pas déchargés.

La seule contraintes concernant FirewallD est qu’il nécessite que l’ensemble des règles de filtrage soient appliquées par lui même de façon à ce que son état (règles en cours) reste synchronisé avec celui du noyau.

Installation:

yum -y install firewalld

Démarrage:

systemctl start firewall

Voici quelques notes pour pouvoir se servir de l’interface du pare-feu sur votre CentOS, Fedora ou RHEL. Les règles ne sont pas prises en tant réel, mais lors du rechargement des règles.

Pour connaître l’activation du pare-feu:

firewall-cmd --state

 

Pour connaître la « zone » par défaut:

firewall-cmd --get-active-zones

 

Regarder les règles existantes sur la zone par defaut :

firewall-cmd –get-default-zone

 

Pour lister les règles de la zone « public »:

firewall-cmd --zone=public --list-all

 

Ajouter http (TCP/80) dynamiquement:

firewall-cmd –add-service http

ou

firewall-cmd --zone=public --add-service=http

 

Ajouter http (TCP/80) pour une prise en compte au redémarrage:

firewall-cmd –permanent –add-service http

ou

firewall-cmd --permanent --zone=public --add-service=http

 

Pour ajouter un port de manière permanente (ici 80 sur tcp):

firewall-cmd --permanent --zone=public --add-port=80/tcp

 

Pour supprimer un port de manière permanente (ici 80 sur tcp):

firewall-cmd --permanent --zone=public --remove-port=80/tcp

 

Pour recharger les règles du pare-feu:

firewall-cmd --reload

ou

systemctl restart firewalld.service

 

Plus d’info ici.

25 octobre 2015 /

Si les bases de données rmp sont corrompues, vous pouvez rencontrer ce genre d’erreur :

rpmdb: Lock table is out of available locker entries rpmdb: Unknown locker ID: 2106 error: db4 error(22) from dbenv->close: Invalid argument error: cannot open Packages index using db3 – Cannot allocate memory (12) error: cannot open Packages database in /var/lib/rpm

Et ça fait peur…

Pour réparer cela, on commence par supprimer les bases corrompues:

rm /var/lib/rpm/__db.00*

Il ne nous reste plus qu’à reconstruire les bases:

rpm --rebuilddb -vv