Eu tenho trabalhado com tabelas de rotas personalizadas no Linux e estou um pouco confuso com parte da documentação e comportamento do comando "ip route". Parece que os únicos valores válidos devem ser de 0 a 255, mais os nomes definidos em / etc / iproute2 / rt_tables:
255 local
254 main
253 default
0 unspec
Isso deixaria 1-252 para tabelas personalizadas. Tentar usar um nome de tabela indefinido gera um erro:
$ ip route show table kermit
Error: argument "kermit" is wrong: table id value is invalid
No entanto, parece que posso usar números muito superiores a 255 sem erros:
$ 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
Em algum momento, as coisas ficam ainda mais estranhas. No maxint (2 ^ 31), ele "transborda" para a tabela local (255):
$ ip route show table 2147483647
[no output]
$ ip route show table 2147483648
[exact output of table 255 (local)]
Alguém pode explicar o que está acontecendo? Na verdade, existem maxint tabelas de roteamento personalizadas que podem ser usadas?
$ 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
(sem saída). O comportamento anterior pode ter sido mostrar a tabela "unspec" 0 (não 255), mas 0 incluirá 255 (e qualquer outra tabela).