Estou construindo um servidor que possui várias interfaces de rede upstream, cada uma recebendo endereços IP, rotas padrão e outras informações de DHCP de diferentes roteadores.
Para meu aplicativo, preciso saber o gateway de cada interface, para poder definir rotas para hosts e redes específicos por meio da interface apropriada. As rotas padrão que o dhclient define não são úteis e são removidas - mas gostaria de saber o gateway.
- Capturar o pacote de resposta DHCP e analisá-lo é o último recurso.
- É possível obter as informações de cada rota padrão (antes de removê-las), mas provavelmente não será confiável se várias interfaces surgirem simultaneamente.
Como posso interceptar as informações de resposta DHCP de forma eficaz?
Atualizar:
Adicionando:
# Debug how this is being called.
date >> /tmp/dhclient.log
echo "dhclient-script $@" >> /tmp/dhclient.log
env >> /tmp/dhclient.log
ao início de /sbin/dhclient-script me mostrou como eu precisava modificar o dhclient-script.
Se você estiver de fato usando
dhclient
, poderá substituir o script dhclient padrão (geralmente/usr/sbin/dhclient-script
, mas possivelmente em outro lugar) por um script personalizado. Você então tem controle total sobre o que faz com as informações obtidas da concessão de DHCP.Use o script original como ponto de partida e modifique-o para que, em vez de definir a rota padrão, ele grave as informações do gateway em um arquivo.
A página do manual contém detalhes sobre como o script é chamado.