5. Lire et configurer les adresses réseau d'une interface

Couche réseau

Au niveau réseau de la modélisation, l'unité de donnée manipulée est le paquet. Comme IPv4 et IPv6 sont des réseaux à commutation de paquets, chaque en-tête de paquet comprend les adresses source et destination. C'est sur la base de l'adresse IP destination et du masque réseau qu'un routeur prend ses décisions d'acheminement du trafic utilisateur.

Par définition, une adresse IP désigne à la fois un hôte et le réseau auquel il appartient. La distinction entre la partie réseau et la partie hôte d'une adresse se fait grâce au masque réseau. Il est donc logique que l'adresse et le masque soient les deux paramètres les plus importants dans la configuration IP d'une interface. Voir le document Adressage IPv4.

Dans cette section, le principal outil utilisé est la commande ip du paquet iproute2.

Comment visualiser la liste des adresses IP d'une interface ?

L'exemple d'exécution de la commande $ ip addr ls dev eth0 donné ci-dessous caractérise bien le fait que l'on peut affecter plusieurs adresses réseau à une même interface. Chacune de ces adresses a une portée propre.

À la différence d'une adresse MAC qui n'est visible que dans son réseau local (LAN), une adresse IPv4 ou IPv6 peut être visible à plusieurs niveaux d'interconnexion de réseaux.

$ ip addr ls dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether1 ba:ad:ca:fe:00:1e brd ff:ff:ff:ff:ff:ff
    inet2 192.0.2.30/263 brd 192.0.2.314 scope5 global eth0
       valid_lft forever preferred_lft forever
    inet6 2001:db8:8083:c41e:b8ad:caff:fefe:1e/646 scope global dynamic mngtmpaddr
       valid_lft 86119sec preferred_lft 14119sec
    inet6 fe80::b8ad:caff:fefe:1e/647 scope link
       valid_lft forever preferred_lft forever

1

L'affichage de la liste des adresses englobe les couches liaison de données et réseau.

2

Le premier élément désigne la famille d'adresse. Les deux valeurs présentées ici son inet pour les adresses IPv4 et inet6 pour les adresses IPv6.

3

L'adresse IPv4 est donnée en notation CIDR. La valeur à droite du caractère '/' donne le nombre de bits à 1 du masque réseau. Voir le document Adressage IPv4.

4

L'adresse de diffusion de niveau réseau est donnée après l'indicateur brd. Voir le document Adressage IPv4.

5

Pour chaque adresse affichée, l'indicateur scope précise la portée de l'information. Ici les valeurs sont global lorsqu'une adresse est joignable depuis d'autres réseaux et link lorsque la portée se limite au seul domaine de diffusion.

6

L'adresse IPv6 publique présentée ici est obtenue par configuration automatique sans état ou SLAAC. On reconnaît l'adresse MAC de l'interface dans les 4 hextets de droite avant le '/'. La partie hôte de cette adresse correspond aux 64 bits de poids faible. Voir IPv6.

7

L'adresse IPv6 de lien local est composée automatiquement à partir du préfixe fe80::/10 et de l'adresse MAC au format EUI-64. Cette adresse apparaît dès que l'interface est active sans aucune opération de configuration. Une adresse IPv6 de lien local est nécessaire au fonctionnement du protocole NDP. Voir Neighbor Discovery Protocol.

Pour découvrir la signification des autres champs possibles, il est vivement conseillé de consulter les pages de manuels : $ man ip-address.

Comment ajouter ou supprimer une adresse à une interface ?

[Avertissement] Avertissement

La suppression de l'adresse IP d'une interface entraîne la perte des routes vers les réseaux qui dépendent de ce lien.

La syntaxe de suppression puis d'ajout d'une adresse à une interface Ethernet est donnée ci-dessous.

$ sudo ip addr del 192.168.1.1/24 dev eth0

$ sudo ip addr add 192.168.1.1/24 brd + dev eth0

Comment rendre la configuration permanente sur un système Debian GNU/Linux ?

Avec la distribution Debian GNU/Linux, ainsi que pour les distributions dérivées, les paramètres de configuration des interfaces réseau sont stockés dans le répertoire /etc/network. Le fichier interfaces de ce répertoire rassemble la configuration des interfaces réseau.

Voici l'exemple d'une interface Ethernet configurée à l'aide du protocole DHCP ou Dynamic Host Configuration Protocol.

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet dhcp

Voici un autre exemple avec une configuration statique de l'interface Ethernet. On affecte l'adresse IPv4, le masque réseau, la passerelle par défaut ainsi que le serveur DNS à contacter pour résoudre les noms de domaines.

<snip/>
auto eth0
iface eth0 inet static
        address 192.168.1.10/24
        gateway 192.168.1.1
        dns-nameserver 8.8.8.8

La syntaxe de l'ensemble des options de configuration d'une interface réseau est décrite dans les pages de manuels : $ man interfaces.