Quando executo route -n
, de onde exatamente (de quais struct
) as informações exibidas são recuperadas?
Tentei executar, strace route -n
mas não me ajudou a encontrar o local certo em que está armazenado.
linux
networking
kernel
linux-kernel
route
sintagma
fonte
fonte
struct
é responsável por manter as informações./etc/sysconfig/network-scripts/ifcfg-${DEV}
casos simples e / ou do que pode ser encontrado em/etc/sysconfig/network-scripts/route-${DEV}
casos mais complicados (caso do Red Hat / CentOS 7) O último arquivo contém a saída deip -r
. Consulte Adicionar uma rota estática no CentOS .Respostas:
O utilitário
route
ouip
obtém suas informações de um pseudo sistema de arquivos chamadoprocfs
. Normalmente é montado embaixo/proc
. Há um arquivo chamado/proc/net/route
, onde você pode ver a tabela de roteamento IP do kernel. Emcat
vez disso, você pode imprimir a tabela de roteamento , mas o utilitário de rota formata a saída legível por humanos, porque os endereços IP são armazenados em hexadecimal.Esse arquivo não é apenas um arquivo normal. É sempre gerado exatamente no momento em que é aberto, com uma tentativa de leitura, como todos os arquivos no sistema de arquivos proc.
Se você está interessado em saber como esse arquivo é gravado, é necessário examinar as fontes do kernel: Essa função gera a tabela de roteamento. Você vê na linha 2510 , o cabeçalho da tabela de roteamento é impresso. A tabela de roteamento parece estar principalmente na estrutura
fib_info
definida no arquivo de cabeçalho ip_fib.h, linha 98 .fonte