Vous êtes sur la page 1sur 5

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 :

$ ifconfig

Avec iproute2 on utilisera la ligne de commande suivante :

ip addr

Résultat :
On peut préciser une interface spécifique à la suite de la commande pour n'avoir les informations
que de cette interface

ip addr show lo

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 :

ip link set down eno16777736

ip link set eno16777736 name eth0

ip link set up eth0

Et voila le travail !

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 :

$ ifconfig eth1 up

$ ifconfig eth1 down

Et celles à utiliser avec iproute2 :


$ ip link set down eth1

$ ip link set up eth1

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 :

$ ifconfig eth1 10.0.0.1/24


Maintenant avec iproute2 :

$ ip addr add 10.0.0.1/24 dev eth1

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 :

$ ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1

$ ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth1

$ ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev eth1

On peut également facilement enlever une adresse IPv4 d'une interface avec iproute 2 :
$ ip addr del 10.0.0.1/24 dev eth1

E. Gestion d'une adresse IPv6


Pour ajouter une adresse IPv4 sous net-tools, nous utilisions ces syntaxes :

$ ifconfig eth1 inet6 add 2003:0db5:0:f102::1/64

Voila comment il faudra procéder sous iproute2, on précisera l'option "-6" pour préciser que l'on
parle Ipv6" :
$ ip -6 addr add 2003:0db5:0:f102::1/64 dev eth1

Encore une fois, pour afficher une interface réseau et son adresse IPv6, sous net-tools :
$ ifconfig eth1

Sous iproute2, on retrouve le même fonctionnement que lors de l'attribution de l'IP avec l'option "-
6":
$ ip -6 addr show dev eth1

Et enfin pour supprimer une adresse IPv6 d'une interface réseau, sous net-tools :

$ ifconfig eth1 inet6 del 2002:0db5:0:f102::1/64

Sous iproute2 :

$ ip -6 addr del 2002:0db5:0:f102::1/64 dev eth1

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 :
$ ifconfig eth1 hw ether 08:00:27:75:2a:66

Avec iproute2, on retrouve sensiblement une syntaxe similaire :

$ ip link set dev eth1 address 08:00:27:75:2a:67

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 ;
$ route -n

$ netstat -rn

On utilisera maintenant la commande suivante pour afficher la table de routage :

$ ip route show

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
$ route add default gw 192.168.1.2 eth0

$ route del default gw 192.168.1.1 eth0

Avec iproute2 on peut ajouter une route par défaut comme cela :

$ ip route add default via 192.168.1.2 dev eth0

En revanche si l'on souhaite remplacer la route par défaut, on peut utiliser cette commande :

$ ip route replace default via 192.168.1.2 dev eth0

Pour les routes statiques, voici les commandes sous net-tools en utilisant route :

$ route add -net 172.16.32.0/24 gw 192.168.1.1 dev eth0

$ route del -net 172.16.32.0/24

Et voici les commandes à utiliser pour iproute2 :

$ ip route add 172.16.32.0/24 via 192.168.1.1 dev eth0

$ ip route del 172.16.32.0/24

H.Voir les informations sur les ports


On utilisait auparavant netstat pour lister les connexions actives, en attente et les ports occupés :

$ netstat

$ netstat -l

Le package iproute2 inclut maintenant la commande "ss" qui s'utilise de façon similaire avec les


options habituelles :
$ ss

$ ss -l
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 :

$ arp -an

Avec iproute2, il faut utiliser la commande suivante :

$ ip neigh

Pour ajouter ou supprimer une entrée dans la table de routage, les commandes suivantes étaient
utilisées sous net-tools :

$ arp -s 192.168.1.100 00:0c:29:c0:5a:ef

$ arp -d 192.168.1.100

Voici celles qui faudra utiliser avec iproute2:

$ 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

Voila pour ce tutoriel ! Il peut être bon de garder dans un coin de bureau ces commandes au moins
le temps de la transition, il faudra ensuite que les vieilles habitudes laissent places au nouvelles !

Vous aimerez peut-être aussi