El cliente DHCP de ISC generalmente se llama dhclient
en la mayoría de las distribuciones de Linux. Desde man dhclient
:
El cliente normalmente no imprime ninguna salida durante su secuencia de inicio. Se puede hacer que emita mensajes detallados que muestren los eventos de secuencia de inicio hasta que haya adquirido una dirección proporcionando el argumento de línea de comando -v. En cualquier caso, el cliente registra los mensajes utilizando la función syslog(3).
Hay dos formas posibles de leer el registro del sistema. En la mayoría de los sistemas que usan systemd, debe usar journalctl
, mientras que cat /var/log/syslog
es válido para sistemas que aún emplean un sistema de inicio tradicional.
Por lo tanto, si su sistema utiliza la función de registro de systemd, puede utilizar journalctl | grep -Ei 'dhcp'
para obtener registros de clientes DHCP. De lo contrario, ingresa cat /var/log/syslog | grep -Ei 'dhcp'
.
Este es el aspecto típico de mi registro de cliente DHCP:
Jul 20 14:17:39 trueclient1 NetworkManager[2622]: <info> (wlan1): canceled DHCP transaction, DHCP client pid 3325
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> Activation (wlan1) Beginning DHCPv4 transaction (timeout in 45 seconds)
Jul 20 14:17:42 trueclient1 dhclient: Internet Systems Consortium DHCP Client 4.2.2
Jul 20 14:17:42 trueclient1 dhclient: For info, please visit https://www.isc.org/software/dhcp/
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> (wlan1): DHCPv4 state changed nbi -> preinit
Jul 20 14:17:42 trueclient1 dhclient: DHCPREQUEST on wlan1 to 255.255.255.255 port 67
Jul 20 14:17:42 trueclient1 dhclient: DHCPACK from 10.8.8.1
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> (wlan1): DHCPv4 state changed preinit -> reboot
Una forma ingeniosa (pero efectiva) de depurar dhclient en muchas plataformas Linux es habilitar bash tracing en /sbin/dhclient-script .
dhclient ejecuta ese script en la mayoría de las variantes del sistema operativo que he comprobado (RedHat, Debian, etc.).
Simplemente agregando -x
al shebang (primera línea) en ese script debería permitir rastrear cada línea a la consola, por ejemplo:
#!/bin/bash -x
Entonces puedes ejecutar, por ejemplo
dhclient -r #release lease
dhclient #re-acquire lease
Y debería ver muchos resultados, no solo de dhclient-script, sino de todos los .d
incluidos scripts en /etc/dhcp*.
El resultado del seguimiento debería permitirle averiguar qué está sucediendo y qué decisiones está tomando el código (haga referencia al script mismo al mirar el resultado).
Por lo general, puede deducir las entradas (por ejemplo, parámetros que incluyen IP, GATEWAY, etc.) que recibió la secuencia de comandos de esta salida, pero si no, puede agregar temporalmente algo como esto a la secuencia de comandos justo antes de la salida:
env | logger -t dhclient-debugging
Luego verifique su registro después de ejecutar dhclient (/var/log/messages o /var/log/syslog)