route

La commande route permet d'afficher et de manipuler la table de routage du noyau.

Il est souvent plus simple de manipuler la table de routage avec la commande ip route, mais les deux commandes devraient être connues car route est toujours disponible au contraire de ip route.

Afficher la table de routage

Lorsqu'elle est utilisée sans options, la commande route affiche la table de routage. Par exemple:

$ route
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
172.17.13.0     *               255.255.255.0   U     0      0        0 eth2
193.190.211.0   *               255.255.255.0   U     0      0        0 eth0
192.168.13.0    *               255.255.255.0   U     0      0        0 eth2
172.16.12.0     *               255.255.254.0   U     0      0        0 eth2
default         193.190.211.1   0.0.0.0         UG    0      0        0 eth0

Une option importante pour l'affichage des routes est -n qui permet de préciser que les noms d'hôtes ne doivent pas être résolus. Ne pas résoudre les noms rend souvent la lecture de la table plus facile en cas de problème. Voici le même exemple avec -n:

$ route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
172.17.13.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
193.190.211.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.13.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2
172.16.12.0     0.0.0.0         255.255.254.0   U     0      0        0 eth2
0.0.0.0         193.190.211.1   0.0.0.0         UG    0      0        0 eth0

Dans l'affichage, les champs importants ont la signification suivante:

Destination
L'adresse du réseau de destination ou de l'hôte de destination.
Passerelle ou Gateway
L'adresse de la passerelle si c'est approprié, sinon 0.0.0.0 ou * si elle n'est pas définie
Genmask
Masque de sous-réseau à appliquer à l'adresse de destination. Le masque sera de 255.255.255.255 pour désigner un hôte, et de 0.0.0.0 pour la route par défaut.
Indic ou Flags
Un drapeau indiquant le type de route et des informations. Les lettres les plus importantes sont U qui indique que la route est fonctionnelle (UP, et G qui indiquent la passerelle (Gateway)).
Metric
La métrique ou distance de la route. Cette valeur n'est pas utilisée par le noyau mais par certains démons de routage.
Iface
L'interface sur laquelle cette route est disponible.

Ajouter une route

L'utilisation la plus courante de la commande route est certainement l'ajout de routes supplémentaires. L'option à utiliser pour ajouter une route est add, celle-ci sera accompagnée d'une série d'informations sur la route à configurer.

Pour ajouter une route vers un réseau à travers une passerelle, il faut préciser le réseau, le masque de sous-réseau, et l'adresse du prochain routeur. Pour configurer le réseau, on utilise l'option -net (par opposition à -host) suivie de l'adresse du réseau. Il faut ensuite préciser le masque à l'aide du mot clé netmask suivit du masque de sous-réseau.

Pour donner l'adresse du prochain routeur, que ce soit vers un hôte ou un réseau, il faut utiliser le mot clé gw (pour gateway, passerelle) suivit de l'adresse IP du prochain routeur.

Par exemple, si l'on veut ajouter une route vers le réseau 192.168.55.0/24, et que l'adresse du prochain routeur vers ce réseau est 192.168.0.1, on utilise la commande de la façon suivante:

# route add -net 192.168.55.0 netmask 255.255.255.0 gw 192.168.0.1
$ route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.55.0    192.168.0.1     255.255.255.0   UG    0      0        0 eth1
...

Pour ajouter une route vers un hôte, il suffit d'utiliser la même commande, en remplaçant -net par -host. Il est aussi possible de ne pas préciser -host et de donner directement l'adresse IP de l'hôte. Il n'est plus nécessaire d'ajouter explicitement un masque de sous-réseau.

Par exemple, si l'on veut ajouter une route vers l'hôte 192.168.55.5, via un autre routeur (192.168.0.2) que le précédent, on peut utiliser la commande:

# route add 192.168.55.4 gw 192.168.0.2
$ route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.55.4    192.168.0.2     255.255.255.255 UGH   0      0        0 eth1
192.168.55.0    192.168.0.1     255.255.255.0   UG    0      0        0 eth1
...

Finalement, notez qu'il existe un raccourci pour définir la route par défaut. On peut utiliser le mot clé default pour définir directement l'adresse et le masque de la route par défaut. Le mot clé default est donc l'équivalent de -net 0.0.0.0 netmask 0.0.0.0

Pour ajouter une route par défaut en passant par la passerelle 172.16.13.1 on peut utiliser la commande suivante:

# route default gw 172.16.13.1
$ route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.55.4    192.168.0.2     255.255.255.255 UGH   0      0        0 eth1
192.168.55.0    192.168.0.1     255.255.255.0   UG    0      0        0 eth1
0.0.0.0         172.16.13.1     0.0.0.0         UG    0      0        0 eth1

Supprimer une route

L'autre utilisation courante de la commande route est la suppression de routes. L'option permettant de supprimer une route est del.

Pour supprimer un route, il suffit d'utiliser l'option del et de préciser les paramètres de la même façon que pour la création de la route. Pour une route vers un hôte, on peut préciser directement l'adresse de destination sans plus d'options.

Par exemple, pour supprimer la route vers le réseau 192.168.55.0 créée précédemment, il faut utiliser la commande suivante:

# route del -net 192.168.55.0 netmask 255.255.255.0 gw 192.168.0.1

Les options importantes

Les commandes

add
Permet d'ajouter une route à la table. La route peut être vers un hôte ou un réseau.
del
Permet de supprimer un route de la table de routage.

Préciser les paramètres

-net XXX.XXX.XXX.XXX
Donne l'adresse réseau de destination de la route.
-host XXX.XXX.XXX.XXX
Donne l'adresse de destination de la route dans le cas d'un hôte
netmask XXX.XXX.XXX.XXX
Donne le masque de sous-réseau à appliquer à l'adresse de destination donnée avec -net
gw XXX.XXX.XXX.XXX
Donne l'adresse du prochain routeur de cette route, on parle aussi de passerelle.

Notez que les adresses IP, représentées ici par XXX.XXX.XXX.XXX, peuvent aussi être données à l'aide du nom d'hôte pour les options -host et gw.