Comment configurer le réseau avec ifconfig ?

Module Progression
0% Terminé

I. Configuration standard

Maintenant que l’on a vu la théorie, passons un peu à la pratique. Il s’agit ici de concrétiser la création ou la configuration du réseau. Chaque distribution propose une interface graphique différente. Par contre, la commande universelle de configuration d’un réseau, sur GNU/Linux, s’appelle ifconfig.

ASTUCE : il existe également une autre commande permettant également de lister toutes les interfaces, y compris celles qui sont inactives : ip addr.

C’est un peu le couteau suisse du paramétrage réseau. On peut l’utiliser à la fois pour initialiser une interface, modifier un masque réseau, positionner une adresse IP ou encore activer ou désactiver telle ou telle interface.

Exemple : activation de l’interface eth0 avec l’adresse 192.168.1.2

# ifconfig eth0  inet 192.168.1.2   netmask 255.255.255.0

Une fois l’interface générée, il est alors possible de l’activer (ou la désactiver) avec les options up (ou down):

# ifconfig eth0 up

Afin d’interroger une interface, il suffit simplement d’exécuter la commande ifconfig en précisant l’interface que l’on souhaite inspecter :

# ifconfig eth2

Par défaut, sur GNU/Linux, la commande ifconfig seule, sans option, fournit la liste et les propriétés des interfaces actives. Si l’on souhaite visualiser l’ensemble des interfaces, y compris celles qui ne sont pas actives, il faut utiliser l’option –a :

# ifconfig –a

ASTUCE : même si ce n’est pas le plus courant des usages, on peut ajouter une seconde adresse IP à une interface déjà configurée :

# ifconfig eth2:en1 172.18.2.39

En suppléments des options up et down, il existe carrément des commandes permettant d’activer ou désactiver les interfaces réseau : ifup et ifdown. Celles-ci utilisent la configuration mentionnée dans les fichiers se trouvant dans le répertoire /etc/sysconfig/network-scripts.

# ifup eth1
# ifdown eth2

Outre les fichiers de configuration mentionnés ci-dessus, il existe également un fichier network, se trouvant dans le répertoire /etc/sysconfig permettant de préciser les paramètres suivants :

  • NETWORKING  : activation ou non du réseau au démarrage du système
  • HOSTNAME : nom de domaine qualifié (FQDN)
  • GATEWAY : adresse IP de la passerelle permettant le routage
  • GATEWAYDEV  : interface réseau permettant d’accéder à la passerelle
  • NISDOMAIN : appartenance (ou non) à un annuaire de noms NIS
  • DNS1 : adresse IP du serveur DNS primaire
  • DNS2 : adresse IP du serveur DNS secondaire

Les fichiers de configuration ifcfg*, du répertoire /etc/sysconfig/network-scripts contiennent le paramétrage des différentes interfaces réseau et peuvent être soit statique (adresse fixe), soit dynamique (utilisation d’un serveur DHCP) :

II. Configuration avancée : le teaming

En matière de réseau, on peut faire en sorte de redonder son réseau en doublant les interfaces utilisées. Cela s’appelle du teaming ou du bonding. Cela consiste à agréger plusieurs interfaces en une seule afin d’augmenter la bande passante et la résilience.

ATTENTION : ce mode de fonctionnement nécessite le chargement d’un module noyau particulier : le module bonding. De plus, il faut deux interfaces actives pour pouvoir réaliser la pseudo-interface bond0 schématisée sur la capture ci-dessus. Il faut donc déclarer trois fichiers ifcfg* :

  • ifcfg-eth0
  • ifcfg-eth1
  • ifcfg-bond0

Il existe sept modes de bonding que l’on peut paramétrer au niveau du module noyau installé :

  • mode 0 : équilibrage de charge (aussi appelée balance round robin)
  • mode 1 : Sauvegarde active
  • mode 2 : Balance XOR
  • mode 3 : Broadcast
  • mode 4 : 802.3ad
  • mode 5 : balance “Traffic Load Balancing“ ou TLB
  • mode 6 : balance “Adaptive Load Balancing“ ou ALB

Généralement, sur des configurations de production, on a tendance à privilégier les modes 5 ou 6 permettant de changer dynamiquement, à la fois d’interface réseau et d’adresse MAC. Une fois que l’on a configuré le module noyau en éditant le fichier /etc/modprobe.d/bond0.conf de la façon suivante :

alias bond0 bonding
options bond0 miimon mode=5

On peut alors désactiver les deux cartes réseau pour pouvoir paramétrer le bonding et les transformer en interfaces esclaves:

# ifconfig eth0 down
# ifconfig eth1 down

On peut ensuite créer l’interface bond0 avec son adresse Ethernet active (celle, généralement de l’interface eth0 associée) et configurer l’adresse IP à lui attribuer :

# ifconfig bond0 hw ether 00:17:56:BC:02:3A
# ifconfig bond0 192.168.2.3 netmask 255.255.255.0 gateway 192.168.2.1

Après cela, il faut transformer les deux interfaces eth0 et eth1 en esclave inféodées à l’interface bond0 :

# ifenslave bond0 eth0
# ifenslave bond0 eth1

ASTUCE : si l’on a besoin à un quelconque moment de libérer une interface ou d’en remplacer une, il suffit juste d’exécuter la commande suivante :

# ifenslave –d bond0 eth1 (par exemple)

Maintenant, il faut créer les fichiers de configuration, dans le répertoire /etc/sysconfig/network-scripts des différentes interfaces réseau, en commençant par ifcfg-bond0 :

DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.2.3
NETMASK=255.255.255.0
BROADCAST=192.168.2.255
GATEWAY=192.168.2.1
USERCTL=no

Ensuite, on passe à la configuration de ifcfg-eth0 :

DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes

Et pour finir, on passe à celle de ifcfg-eth1, qui ressemble à s’y méprendre au fichier ifcfg-eth0:

DEVICE=eth1
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes

Pour pouvoir démarrer cette configuration, il faut alors redémarrer le service réseau du système, en exécutant l’instruction suivante :

# systemctl restart network

REMARQUE : une particularité des interfaces réseau sous GNU/Linux, c’est qu’il est possible d’attribuer un ou plusieurs alias à une carte réseau, à partir de son interface principale. Cela permet d’attribuer, en réalité plusieurs adresses IP à la même interface.

En effet, lorsqu’une interface dispose de plusieurs adresses IP, la première est considérée en tant qu’adresse principale de l’interface et les suivantes comme des alias. Ceux-ci utilisent alors le nom de l’interface réseau principale, suivi du numéro d’alias séparé du nom, par le caractère ‘:’.

Exemple : pour générer des alias de l’interface eth0

# ifconfig eth0:1 192.168.1.2 netmask 255.255.255.0 up

ATTENTION : le masque mentionné ici correspond au masque de sous-réseau. De plus, pour que cette pseudo-nouvelle interface fonctionne, il ne faut pas oublier de créer son fichier de configuration :

DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
ONBOOT=yes 

Il faut alors activer la nouvelle interface en exécutant la commande ci-dessous :

# ifup eth0:1

Nous allons maintenant passer au module suivant, il sera consacré à l'utilisation de différents outils de diagnostic réseau.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Philippe PIERRE

A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.

philippe-pierre a publié 69 articlesVoir toutes les publications de cet auteur