¿Cómo ver qué hace el cliente DHCP?

14
  • ¿El cliente dhcp en Linux escribe algún registro?
  • Si no, ¿se pueden habilitar los registros y cómo?
  • Si escribe registros, ¿dónde se pueden encontrar?
  • ¿Cómo se ve un registro típico de un cliente dhcp al obtener IP y servidores de nombres de un servidor DHCP?
  • ¿Dónde puedo encontrar el código fuente del cliente DHCP?

En caso de que haya diferencias relevantes entre Linux: estoy interesado en Debian 8.1 (instalación mínima predeterminada amd64).

Gustave
fuente
1
Deberá ser más específico que "el cliente dhcp en Linux". Hay muchos clientes dhcp diferentes para Linux y todos registran diferentes formas. Probablemente haya uno predeterminado para Debian 8.1, aunque no puedo recordar qué es.
qasdfdsaq
Internet Systems Consortium DHCP Client 4.3.1 Copyright 2004-2014 Internet Systems Consortium. Todos los derechos reservados. Para obtener información, visite isc.org/software/dhcp
Gustave

Respuestas:

6

El cliente DHCP de ISC generalmente se llama dhclienten 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 secuencia de inicio hasta que haya adquirido una dirección al proporcionar el argumento de línea de comando -v. En cualquier caso, el cliente registra mensajes utilizando la función syslog (3).

Hay dos formas posibles de leer el registro de su sistema. En la mayoría de los sistemas que usan systemd, tiene que usar journalctl, mientras que cat /var/log/sysloges válido para sistemas que aún emplean un sistema init tradicional.

Por lo tanto, si su sistema está utilizando la función de registro de systemd, puede usar journalctl | grep -Ei 'dhcp'para obtener registros de clientes DHCP. De lo contrario, ingrese 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
Larssend
fuente
2
En Debian 8.1 funciona journalctl, en ubuntu-14.04.2-server las entradas están en / var / log / syslog. Gracias. Pero: solo hay muy pocas entradas, por ejemplo, solo se registra la dirección IP, los servidores DNS no. ¿Es posible configurar una salida más detallada?
Gustave
3

Una forma hacky (pero efectiva) de depurar dhclient en muchas plataformas Linux es habilitar el rastreo bash 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 agregar -xal shebang (primera línea) en ese script debería 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 muchos resultados, no solo de dhclient-script, sino de todos los .dscripts incluidos en / etc / dhcp *.

La salida de rastreo debe permitirle descubrir qué está sucediendo y qué decisiones está tomando el código (consulte el script en sí mismo al mirar 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)

akom
fuente
-3

Por favor encuentre la respuesta en línea.

  • ¿El cliente dhcp en Linux escribe algún registro?


    Si lo hace.

  • Si no, ¿se pueden habilitar los registros y cómo?


 1. Edit dhcpd.conf and add this line
  log-facility local7;

 2. Edit syslog.conf and append 
  local7.* /var/log/dhcpd.log


  • Si escribe registros, ¿dónde se pueden encontrar?

    /var/log/dhcpd.log


  • ¿Cómo se ve un registro típico de un cliente dhcp al obtener IP y servidores de nombres de un servidor DHCP?


galaxy dhcpd: DHCPDISCOVER de 00: 0d: 62: d7: a0: 12 a través de eth0
galaxy dhcpd: DHCPOFFER en 192.168.1.5 a 00: 0d: 62: d7: a0: 12 a través de eth0
galaxy dhcpd: DHCPREQUEST para 192.168.1.5 (192.168 .1.1) de 00: 0d: 62: d7: a0: 12 a través de eth0
galaxy dhcpd: DHCPACK en 192.168.1.5 a 00: 0d: 62: d7: a0: 12 a través de eth0

Ruban Savvy
fuente
2
El OP está hablando sobre el cliente DHCP . DHCPD es el demonio del servidor DHCP.
Larssend
Parece que no hay ningún archivo llamado dhcpd.conf en mi sistema. Hay un archivo /etc/dhcp/dhclient.conf. No hay un archivo syslog.conf, sino un archivo /etc/rsyslog.conf. Realicé los cambios de configuración en esos archivos, reinicié rsyslog, apagué eth0 y lo volví a encender. Pero no aparece el archivo de registro. Recibo algunos mensajes DHCP en la consola. Incluso después de reiniciar la máquina, no recibo mensajes de registro.
Gustave