Saltar al contenido

¿Cómo ver lo que hace el cliente DHCP?

Solución:

El cliente DHCP de ISC generalmente se llama dhclient en la mayoría de las distribuciones de Linux. De 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 la 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 todavía emplean un sistema de inicialización tradicional.

Por lo tanto, si su sistema está usando la función de registro de systemd, puede usar journalctl | grep -Ei 'dhcp' para obtener los registros del cliente DHCP. De lo contrario, ingrese cat /var/log/syslog | grep -Ei 'dhcp'.

Así es como suele verse 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 hacky (pero efectiva) de depurar dhclient en muchas plataformas Linux es habilitar rastreo de bash en / sbin / dhclient-script.

dhclient ejecuta ese script en la mayoría de las variantes del sistema operativo que he verificado (RedHat, Debian, etc.).

Simplemente agregando -x al shebang (primera línea) en ese script debe permitir el seguimiento de cada línea a la consola, por ejemplo:

#!/bin/bash -x

Entonces puedes correr, por ejemplo

dhclient -r #release lease
dhclient #re-acquire lease

Y debería ver una gran cantidad de resultados, no solo de dhclient-script, sino de todos los .d scripts en / etc / dhcp *.

La salida de seguimiento debería permitirle averiguar qué está sucediendo y qué decisiones está tomando el código (consulte la secuencia de comandos cuando mire la salida).

Por lo general, puede deducir las entradas (por ejemplo, parámetros que incluyen IP, GATEWAY, etc.) que el script recibió de esta salida, pero si no, puede agregar temporalmente algo como esto al script 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)

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *