Todos nós sabemos que esses comandos geram a mesma saída:
ip route list
ip route list table 254
ip route list table main
E este comando lista algumas regras especiais relacionadas a endereços locais e de broadcast:
ip route list table local
No entanto, substituir local
por zero (conforme listado em /etc/iproute2/rt_tables
) gera muita saída:
ip route list table 0
Por que o último comando é tão diferente?
A tabela local é uma das tabelas padrão: 255, como pode ser visto no repositório upstream :
rt_tables
A tabela 0, aqui escrita unspec também é conhecida internamente como all por iproute2 tools. Não é exatamente uma mesa. Ele representa todas as tabelas e significa não especificar uma em particular. Então, quando você digita um desses:
ele exibirá todas as tabelas de roteamento, incluindo a tabela 254 para a tabela principal (que é a usada quando não especifica a tabela), a tabela 255 para as rotas locais e qualquer outra tabela não vazia que você possa ter criado. Como existem tabelas diferentes em vez de apenas uma, este comando também adicionará na saída o parâmetro extra
table X
(exceto a tabela 254/ main ) para cada tabela X exibida, para que sua saída possa ser reutilizada para adicionar uma entrada de tabela no lugar certo .Como a saída incluirá a tabela local e a tabela principal , ela sempre terá mais linhas do que apenas uma dessas tabelas: saída mais longa.