O utilitário route
ou ip
obtém suas informações de um pseudo sistema de arquivos chamado procfs
. Normalmente é montado sob /proc
. Existe um arquivo chamado /proc/net/route
, onde você pode ver a tabela de roteamento IP do kernel. Você pode imprimir a tabela de roteamento com cat
, 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 como esse arquivo é escrito, então você precisa olhar as fontes do kernel:
Essa função produz 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
que é definida no arquivo de cabeçalho ip_fib.h, linha 98 .