Como ver o que o cliente DHCP faz?

14
  • O cliente dhcp no Linux grava algum registro?
  • Caso contrário, os logs podem ser ativados e como?
  • Se ele grava logs, onde eles podem ser encontrados?
  • Como é um log típico de um cliente dhcp ao obter IP e servidores de nomes de um servidor DHCP?
  • Onde posso encontrar o código fonte do cliente DHCP?

Caso haja diferenças relevantes entre os Linux: Estou interessado no Debian 8.1 (instalação mínima padrão amd64).

Gustave
fonte
1
Você precisará ser mais específico do que "o cliente dhcp no Linux". Existem muitos clientes dhcp diferentes para Linux e todos eles registram maneiras diferentes. Provavelmente existe um padrão para o Debian 8.1, embora eu não consiga lembrar o que é.
qasdfdsaq
Cliente DHCP do Internet Systems Consortium 4.3.1 Copyright 2004-2014 Internet Systems Consortium. Todos os direitos reservados. Para obter informações, visite isc.org/software/dhcp
Gustave

Respostas:

6

O cliente DHCP do ISC é normalmente chamado dhclientna maioria das distribuições Linux. De man dhclient:

O cliente normalmente não imprime saída durante sua sequência de inicialização. Ele pode emitir mensagens detalhadas, exibindo os eventos da sequência de inicialização até que ele tenha adquirido um endereço, fornecendo o argumento da linha de comandos -v. Nos dois casos, o cliente registra mensagens usando o recurso syslog (3).

Existem duas maneiras possíveis de ler o log do sistema. Na maioria dos sistemas que usam systemd, é necessário usá-lo journalctl, enquanto isso cat /var/log/syslogé válido para sistemas que ainda empregam um sistema init tradicional.

Portanto, se o seu sistema estiver usando o recurso de log do systemd, você poderá usá journalctl | grep -Ei 'dhcp'-lo para obter logs do cliente DHCP. Caso contrário, insira cat /var/log/syslog | grep -Ei 'dhcp'.

Aqui está como meu log de cliente DHCP normalmente se parece:

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
fonte
2
No Debian 8.1 journalctl funciona, no ubuntu-14.04.2-server as entradas estão em / var / log / syslog. Obrigado. Mas: existem apenas muito poucas entradas, por exemplo, apenas o endereço IP está registrado, os servidores DNS não. É possível configurar uma saída mais detalhada?
Gustave
3

Uma maneira hacky (mas eficaz) de depurar o dhclient em muitas plataformas Linux é habilitar o rastreamento bash no / sbin / dhclient-script .

O dhclient executa esse script na maioria das variantes de SO que eu verifiquei (RedHat, Debian, etc).

Simplesmente adicionar -xao shebang (primeira linha) nesse script deve permitir o rastreamento de cada linha para o console, por exemplo:

#!/bin/bash -x

Então você pode executar, por exemplo

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

E você deve ver muita saída, não apenas do dhclient-script, mas de todos os .dscripts incluídos no / etc / dhcp *.

A saída de rastreio deve permitir que você descubra o que está acontecendo e que decisões o código está tomando (faça referência ao próprio script ao visualizar a saída).

Geralmente, você pode deduzir as entradas (por exemplo, parâmetros incluindo IP, GATEWAY etc.) que o script recebeu desta saída, mas, se não, você pode adicionar temporariamente algo assim ao script imediatamente antes da saída:

   env | logger -t dhclient-debugging

Em seguida, verifique seu log após executar o dhclient (/ var / log / messages ou / var / log / syslog)

akom
fonte
-3

Por favor, encontre a resposta em linha.

  • O cliente dhcp no Linux grava algum registro?


    Sim.

  • Caso contrário, os logs podem ser ativados e como?


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

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


  • Se ele grava logs, onde eles podem ser encontrados?

    /var/log/dhcpd.log


  • Como é um log típico de um cliente dhcp ao obter IP e servidores de nomes de um servidor DHCP?


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

  • Onde posso encontrar o código fonte do cliente DHCP?


    Link 1
    Link 2

Ruban Savvy
fonte
2
O OP está falando sobre o cliente DHCP . DHCPD é o daemon do servidor DHCP.
Larssend
Parece não haver nenhum arquivo chamado dhcpd.conf no meu sistema. Existe um arquivo /etc/dhcp/dhclient.conf. Não há arquivo syslog.conf, mas um arquivo /etc/rsyslog.conf. Fiz as alterações na configuração desses arquivos, reiniciei o rsyslog, desliguei o eth0 e liguei novamente. Mas nenhum arquivo de log aparece. Eu recebo algumas mensagens DHCP no console. Mesmo após a reinicialização da máquina, não recebo mensagens de log.
Gustave