02 octobre 2014

Gestion du réseau sous Linux avec iproute2 et CentOS 7

I. Présentation d’iproute2

Les commandes ifconfig, arp, route, et netstat sont certainement les premières qui viennent à l’esprit des sysadmins quand il s’agit de gérer la configuration réseau d’une machine sous Linux. Elles font toutes partie de la suite du paquet “net-tools” développé il y a maintenant longtemps sur les kernels Linux, ce que l’on sait moins, c’est que le développement de ces outils a été stoppé en 2001 et qu’un autre paquet vient peu à peu le remplacer sur les distributions, il s’agit d’iproute2 qui a déjà remplacé totalement les anciennes commandes de net-tools sur CentOS 7 ainsi que sur ArchLinux.
Un message d’erreur comme “ifconfig command not found” peut en interloquer plus d’un, cependant il va falloir vous habituer à le voir car le remplacement de net-tools par iproute2 prend peu à peu de l’ampleur et est destiné à remplacer l’ancien standard de gestion du réseau sous Linux.
Pour rappel, les net-tools sont utilisés depuis maintenant 25 ans sur les OS UNIX, ifconfig avait été à l’origine créé en tant qu’outil TCP/IP sur la version 4.2 de BSD en … 1983 ! Le principal avantage du paquet iproute2 est qu’il permet de réunir tous les anciens outils dans une seule commande via des options, par exemple :
  • ifconfig –> ip addr, ip link
  • route –> ip route
  • arp –> ip neigh
  • vconfig –> ip link
  • iptunnel –> ip tunnel
  • ipmaddr –> ip maddr
  • netstat –> ss
De plus, iproute2, qui est toujours en développement, a pour but de rendre l’implémentation de spécifité réseau via ses commandes comme par exemple la QoS, les VLAN, le channel bonding, etc.
Note : Pour info, l’outil de gestion graphique des connexions réseau d’Ubuntu network manager repose également sur iproute2.
Les habitudes seront certes difficiles à changer, mais il faudra bien y passer car iproute deviendra rapidement le standard de la gestion réseau sous Linux alors autant s’y mettre au plus tôt. Je vais ici vous présenter différentes manières d’exécuter des commandes de gestion réseau avec les commandes iproute2 en vous montrant à chaque fois la méthode net-tools puis iproute2.

II. Quelques exemples de commandes basiques avec iproute2

A. Lister les interfaces

Commençons par le plus simple, lister les interfaces, sous net-tools, on utilisait les commandes suivantes :
Avec iproute2 on utilisera la ligne de commande suivante :
Résultat :
iproute2_02
On peut préciser une interface spécifique à la suite de la commande pour n’avoir les informations que de cette interface

B. Renommer une interface

Un problème que j’ai eu sous CentOS 7 et que je n’ai pas encore compris, est le nom de mon interface principale qui, comme vous pouvez le voir sur le dernier screenshot est.. compliquée. J’ai donc cherché à la renommer avec les commandes suivantes :
Et voila le travail !
iproute2_03

C. Activer ou désactiver une interface réseau

Vous remarquerez que je suis passé par une désactivation/activation de l’interface réseau pour changer son nom, voici les commandes que l’on utilisait avant :
Et celles à utiliser avec iproute2 :

D. Gestion d’une adresse IPV4

Nous allons maintenant voir comment gérer une adresse IPv4 sur une interface réseau. On commence par  ajouter une adresse IP à une interface, ce qui se faisait comme cela sous net-tools :
Maintenant avec iproute2 :
On assigne donc l’IP 10.0.0.1 au device (à l’interface réseau) “eth1″. Avec iproute2, on peut également assigner facilement plusieurs adresses IPv4 à une interface, ce qu’on ne pouvait pas faire avec les commandes net-tools où l’on devait utiliser les alias :
On peut également facilement enlever une adresse IPv4 d’une interface avec iproute 2 :

E. Gestion d’une adresse IPv6

Pour ajouter une adresse IPv4 sous net-tools, nous utilisions ces syntaxes :
Voila comment il faudra procéder sous iproute2, on précisera l’option “-6” pour préciser que l’on parle Ipv6″ :
Encore une fois, pour afficher une interface réseau et son adresse IPv6, sous net-tools :
Sous iproute2, on retrouve le même fonctionnement que lors de l’attribution de l’IP avec l’option “-6“:
Et enfin pour supprimer une adresse IPv6 d’une interface réseau, sous net-tools :
Sous iproute2 :

F. Changer l’adresse MAC d’une interface

La commande pour changer l’adresse MAC d’une interface réseau était la suivante sous net-tools :
Avec iproute2, on retrouve sensiblement une syntaxe similaire :

G. Gestion de la table de routage

La gestion de la table de routage se faisait via la commande “root” et “netstat” pour l’affichage ;
On utilisera maintenant la commande suivante pour afficher la table de routage :
iproute2_04
Voici les commandes que l’on utilisait pour ajouter ou supprimer une route par défaut (0.0.0.0/0) avec net-tools. Pour remplacer une route, il fallait supprimer l’ancienne et ajouter la nouvelle en deux lignes
Avec iproute2 on peut ajouter une route par défaut comme cela :
En revanche si l’on souhaite remplacer la route par défaut, on peut utiliser cette commande :
Pour les routes statiques, voici les commandes sous net-tools en utilisant route :
Et voici les commandes à utiliser pour iproute2 :

H.Voir les informations sur les ports

On utilisait auparavant netstat pour lister les connexions actives, en attente et les ports occupés :
Le package iproute2 inclut maintenant la commande “ss” qui s’utilise de façon similaire avec les options habituelles :

I. Gestion de la table ARP

Pour afficher la table ARP de l’hôte, on utilisait la commande ARP avec les options suivantes sous net-tools :
Avec iproute2, il faut utiliser la commande suivante :
iproute2_05
Pour ajouter ou supprimer un entrée dans la table de routage, les commandes suivantes étaient utilisées sous net-tools :
Voici celles qui faudra utiliser avec iproute2:
1
2
$ ip neigh add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0
$ ip neigh del 192.168.1.100 dev eth0

Aucun commentaire :

Enregistrer un commentaire