GNU/Linux >> Tutoriales Linux >  >> Linux

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

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)


Linux
  1. ¿Qué es un servidor web y cómo funciona un servidor web?

  2. Cómo averiguar qué hace un comando de Linux

  3. Que hace ?

  4. ¿Cómo funciona Rm? ¿Qué hace Rm?

  5. ¿Qué hace kill -- -0?

Comando de archivo de Linux:qué hace y cómo usarlo

¿Qué es Docker? ¿Como funciona?

¿Qué es el comando fuente en Linux y cómo funciona?

¿Cómo funciona un balanceador de carga? ¿Qué es el equilibrio de carga?

¿Qué es DHCP y cómo funciona DHCP? (Explicación de los fundamentos de DHCP)

Linux - ¿Cómo puedo ver lo que está esperando el disco IO?