Como gerar cenário / pacotes de declínio de DHCP

3

Eu tenho um sniffer de pacotes dhcp, que precisa logar se ele vir declínio dhcp resposta vindo do cliente. Eu preciso saber o cenário em que o cliente pode enviar a resposta de declínio dhcp para o servidor dhcp. Eu tentei obter este reproduzir minimizando pequeno intervalo de ip no dhcpserver e alocar IP estáticos duplicados para um cliente diz client_A e executando dhclient em client_B.But client_B aceita ip duplicado (ip que já está com ip client_A), em vez de enviar resposta dhcpdecline .

Esta é uma maneira melhor e garantida de reproduzir o cenário de declínio do dhcp. Os clientes que estou usando são o Ubuntu e para o servidor dhcp várias opções estão disponíveis como vyos / microsoft.

Obrigado e avance !!

    
por user2589882 17.02.2016 / 21:35

1 resposta

1

Parece que deve ser possível, mas vai exigir um pouco de manha ...

Como você sugeriu nos comentários, o dhclient não valida as respostas do servidor DHCP para os endereços dos roteadores, então fui até os documentos e descobri que tipo de situação poderia fazer com que o dhclient enviasse um DHCPDECLINE.

As documentações do

Dhclient mostram que dhclient-script é chamado quando uma concessão é emitida:

...network configuration script invoked by dhclient when it gets a lease. If unspecified, the default CLIENTBINDIR/dhclient-script is used. See dhclient-script(8)for a description of this file.

link

Os documentos

Dhclient-script mostram que antes de configurar o endereço oferecido pelo servidor DHCP, dhclient-script ARPs para ele e gera um DHCPDECLINE se o endereço já existir.

Before actually configuring the address, dhclient-script should somehow ARP for it and exit with a nonzero status if it receives a reply. In this case, the client will send a DHCPDECLINE message to the server and acquire a different address.

link

Eu não tenho uma cópia do Ubuntu para ver no mo (verifique seu / etc / dhclient-script), mas o código-fonte para o dhclient-script do Linux pode ser encontrado aqui link

Estou pensando (mas infelizmente não posso testá-lo) que você poderia fazer o backup do seu dhclient-script existente e editar esta seção

 Must be used on exit.   Invokes the local dhcp client exit hooks, if any.
exit_with_hooks() {
  exit_status=$1
  if [ -f /etc/dhclient-exit-hooks ]; then
    . /etc/dhclient-exit-hooks
  fi
# probably should do something with exit status of the local script
  exit $exit_status
}

Acho que alterar exit $exit_status para exit 1 faria com que qualquer concessão de DHCP fosse recusada ...

Experimente. Se funcionar como eu acho que deveria, ele quebrará totalmente o cliente DHCP, mas deverá gerar um DHCPDECLINE toda vez que você executar o dhclient .

    
por 18.02.2016 / 00:05