Comportamento do cliente DHCP

1

Esta é uma pergunta sobre os padrões de protocolo da Internet.

  • O cliente DCHP (dhcpcd-5.2.10 do Android 4.x) inicializa uma interface
  • O cliente DHCP envia uma mensagem DHCPDISCOVER
  • O servidor DHCP envia uma mensagem DHCPOFFER
  • Em seguida, o cliente envia uma mensagem DHCPREQUEST que contém um "endereço IP solicitado" diferente de "Seu endereço IP" do DHCPOFFER e não contém "Identificador do servidor DHCP".

Eu vejo isso da captura de pacotes (pode ser aberta com o Wireshark) no dispositivo dhcp-server.

RFC 2131 diz:

The client broadcasts a DHCPREQUEST message that MUST include 
the 'server identifier' option to indicate which server 
it has selected, and that MAY include other options specifying 
desired configuration values.  
The 'requested IP address' option MUST be set to the value
of 'yiaddr' in the DHCPOFFER message from the server.

Pergunta: o comportamento correto do cliente DHCP? Os padrões de maio mudaram?

    
por someuser 17.12.2013 / 07:57

1 resposta

1

Eu estou indo para uma resposta ... (mais espaço;)

Primeiro uma pergunta. Você está tendo um atraso na obtenção de um IP correto do servidor? Como eu vejo, demorou mais de um minuto e meio para obter um IP correto (192.168.1.33). Se for esse o caso, talvez devêssemos olhar mais de perto para os pedidos.

Acho que o protocolo está correto do jeito que está agora.

Eu filtrava apenas o tráfego de / para o LenovoMo de / para o MS-NLB-PhysServer. (Pelo menos eu acho que eu fiz;)
eu usei filtro em ((((eth) && !(bootp.hw.mac_addr == 00:bb:3a:89:67:be)) && !(bootp.hw.mac_addr == b4:98:42:d6:63:c1)) && !(bootp.hw.mac_addr == e0:69:95:74:b2:43)) && !(bootp.hw.mac_addr == 78:e4:00:9d:fd:6b)

Isto é o que eu tenho (clique com o botão direito e escolha "abrir em nova aba" para uma versão maior):

  • ObservandoaprimeirasolicitaçãoDHCP(linha1),seuclientesolicita192.168.1.35.

  • Recupera um NAK DHCP (nenhum IP correto) do servidor.
  • O cliente entra no modo de descoberta do DHCP e envia vários pacotes para descoberta (como deveria).
  • O servidor envia uma oferta DHCP (também várias vezes) e acho que está oferecendo 192.168.1.33.

  • Nalinha9,osclientestentamnovamenteobter192.168.1.35comumasolicitaçãoDHCP.(duasvezes,porque?talvezsejateimoso;)(épermitidoaoclienteenviarváriassolicitações)
  • Novamente,oservidorrespondecomoDHCPNAK.
  • ...
  • Issocontinuaporminutos.
  • ...
  • Finalmente,nalinha#63,oclientefazumasolicitaçãoDHCPcomIP192.168.1.33
    coma"Option: (54) DHCP Server Identifier" (como deveria). (veja abaixo)

Não tenho certeza (ainda) por que demora tanto tempo, mas todas as solicitações DHCP feitas pelo cliente (até a linha 63) estão solicitando 192.168.1.35 e, portanto, são solicitações de RENOVAÇÃO o mesmo IP durante INIT-REBOOT .

Question: is correct behavior of the DHCP-client? May standards have changed?

Mas ... acho que a resposta para a pergunta é ...
SIM , este é o comportamento correto do cliente
e NÃO , os padrões não mudaram;)


    
por 17.12.2013 / 19:21