J'ai travaillé avec des tables de routage personnalisées sous Linux, et je suis un peu confus par une partie de la documentation et du comportement de la commande "ip route". Il semble que les seules valeurs valides devraient être 0-255 plus les noms définis dans / etc / iproute2 / rt_tables:
255 local
254 main
253 default
0 unspec
Cela laisserait 1-252 pour les tables personnalisées. La tentative d'utilisation d'un nom de table non défini donne une erreur:
$ ip route show table kermit
Error: argument "kermit" is wrong: table id value is invalid
Cependant, il semble que je puisse utiliser des nombres bien supérieurs à 255 sans erreur:
$ ip route show table 1000
[no output]
$ ip route add 10.10.10.0/24 dev eth0 table 1000
[no output]
$ ip route show table 1000
10.10.10.0/24 dev eth0 scope link
À un moment donné, les choses deviennent encore plus étranges. Directement à maxint (2 ^ 31), il "déborde" dans la table locale (255):
$ ip route show table 2147483647
[no output]
$ ip route show table 2147483648
[exact output of table 255 (local)]
Quelqu'un peut-il expliquer ce qui se passe? Existe-t-il réellement des tables de routage personnalisées maxint qui peuvent être utilisées?
$ ip -V
ip utility, iproute2-ss180813
$ ip route list table 4294967296
Error: argument "4294967296" is wrong: table id value is invalid
$ ip route list table 4294967295
(pas de sortie). Le comportement précédent aurait pu être d'afficher la table "non spécifiée" 0 (pas 255), mais 0 inclura 255 (et tout autre table)