Comment configurer le réseau avec ifconfig ?


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
1 2 3 4 5 6
Retour

Félicitations - la leçon est terminée