Le routage est une fonction essentielle de la couche réseau. Les données du trafic utilisateur sont encapsulées en allant de la couche application jusqu'à la couche réseau dans des paquets IP. Ces paquets sont routés jusqu'à l'hôte correspondant à l'adresse IP destination. En fonctionnement normal, un routeur prend ses décisions d'acheminement en analysant l'adresse IP destination de chaque paquet. Ces prises de décisions se font à partir des informations présentes dans la table de routage. |
Cela peut paraître surprenant, mais tout hôte disposant d'un sous-système réseau dans le noyau ou dans un composant équivalent, utilise une table de routage. Bien sûr, pour un système avec une interface Ethernet unique, le nombre d'entrées dans la table de routage est limité.
Dans cette section, le principal outil utilisé est la commande ip du paquet iproute2.
Comment visualiser la table de routage ?
Dans l'exemple ci-dessous, on visualise les tables de routage
IPv4 et IPv6 d'un hôte dont l'interface Ethernet est
nommée eth0
.
$
ip route ls default via 192.0.2.1 dev eth0 192.0.2.0/26 dev eth0 proto kernel scope link src 192.0.2.30$
ip -6 route ls | fmt -t -w80 2001:db8:8083:c41e::/64 dev eth0 proto kernel metric 256 expires 86049sec pref medium fe80::/64 dev eth0 proto kernel metric 256 pref medium default via fe80::b8f1:b6ff:fee4:a0bd dev eth0 proto ra metric 1024 expires 1449sec hoplimit 64 pref medium
Route par défaut. L'entrée de table de
routage qui débute par le mot clé Le mot clé Dans la table de routage IPv4, on trouve en fin de ligne le nom de l'interface à partir de laquelle les paquets sont émis vers la passerelle par défaut. |
|
Réseau local. Le réseau local auquel est raccordé l'hôte est défini automatiquement lors de la configuration de l'interface Ethernet. Ces entrées de table de routage apparaissent automatiquement dès qu'une interface est configurée et active. Dans le cas de la table de routage IPv4 uniquement, la portée de l'information est
précisée avec le mot clé |
|
Apprentissage des routes. Le mot clé
Dans le cas de la table de routage IPv6, l'indicateur |
|
Route de lien local. Avec le protocole
IPv6, la notion de trafic de
diffusion (broadcast) disparaît. C'est
le trafic anycast associé au Neighbor Discovery Protocol qui permet de
contacter les hôtes du voisinage réseau. Pour que les messages
ICMPv6 du protocole
NDP puissent être échangés, il
est nécessaire de disposer d'une route vers le réseau auquel une
interface active est raccordé. Cette route utilise toujours le
préfixe |
La syntaxe de l'ensemble des options de configuration d'une
interface réseau est décrite dans les pages de manuels :
.$
man
ip-route
Comment changer de passerelle par défaut ?
En reprenant la table de routage affichée ci-dessus, imaginons
que la passerelle par défaut IPv4 ne soit plus à l'adresse 192.0.2.1
mais à l'adresse 192.0.2.20
. Voici la syntaxe à utiliser pour
réaliser ce changement.
Pour IPv6, la nouvelle
passerelle par défaut est à l'adresse fe80::20
.
$
sudo ip route del default$
sudo ip route add default via 192.0.2.20$
sudo ip -6 route del default$
sudo ip -6 route add default via fe80::20 dev eth0
Comment ajouter ou supprimer une route statique ?
Imaginons que l'on veuille ajouter une entrée dans la table de routage présentée ci-dessus vers un nouveau réseau dont on connaît l'adresse. Voici la syntaxe à utiliser pour ajouter puis supprimer une entrée de table de routage avec les protocoles IPv4 et IPv6.
$
sudo ip route add 10.1.2.0/26 via 192.0.2.1$
sudo ip route del 10.1.2.0/26$
sudo ip -6 route add 2001:db8:2::/64 via fe80::b8f1:b6ff:fee4:a0bd dev eth0$
sudo ip -6 route del 2001:db8:2::/64