Como fazer o dhclient esquecer sua última concessão de DHCP?

28

O que estou tentando obter é obter uma concessão DHCP de estado zero, iniciando a frio, o que significa forçar dhcliento processo completo de descoberta e configuração (DHCPDISCOVER – DHCPOFFER – DHCPREQUEST – DHCPACK, em oposição ao ciclo de atalho DHCPREQUEST – DHCPACK que usa um lembrete endereço). Eu preciso disso para depurar um problema de configuração de rede.

Eu tentei:

  • liberando a concessão atual com dhclient -r, desconectando a conexão atual do Network Manager;
  • matar quaisquer sobras dhcliente dnsmasqprocessos;
  • /var/lib/dhcp/diretório de limpeza , que supostamente contém o banco de dados de concessão do cliente;
  • sudo restart network-manager.

Mas, mesmo após essas etapas, vejo nos logs o DHCPDISCOVER imediatamente seguido pelo DHCPREQUEST do endereço de alguma forma ainda lembrado.

Claramente, o sistema operacional está armazenando o endereço de alguma forma, e fiquei sem ideias. Alguma ajuda da comunidade?

ulidtko
fonte
Você descobriu isso? Também estou enfrentando o mesmo problema. Também existem arquivos de concessão no NetworkManager. Eu os apaguei também. Por alguma razão, ele ainda pega o endereço antigo.
gudge

Respostas:

18

Isso fez o truque para mim (para eth0, execute a partir de sudo su):

dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient.* ; dhclient -v eth0
Anton Kiselev
fonte
1
Quando fiz isso, recebi uma nova concessão, mas o endereço IP não parece ter sido usado pelo sistema. Se eu tentar executar ping no nome ou no endereço IP relacionado, ele falhará. Se eu ifconfigverificar o endereço atual, posso localizar.
TafT 16/08/19
Alterar a rmparte faz este trabalho para mim (sem este contrato de arrendamento antes foi usado: dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient* ; dhclient -v eth0)
davejagoda
6

O programa Cliente DHCP grava a concessão em um arquivo. Basta excluir o arquivo e reiniciar o gerenciador de rede.

/var/lib/dhcp/dhclient.leases

É aqui que as concessões são armazenadas no meu computador.

thefourtheye
fonte
2

O que você está vendo não é sua máquina lembrando o IP. No syslog, você vê DISCOVER PEDIDO OFERTA ACK, no entanto, isso não está na ordem em que aconteceu. Na verdade, foi DISCOVER OFERTA PEDIDO ACK para confirmar que você pode detectar o tráfego entre o PC e o servidor DHCP upstream. Você enviou DESCOBRIR o servidor enviado de volta OFERTA e obteve o IP da OFERTA para sua SOLICITAÇÃO

Você fez tudo certo, no entanto, quando "dhclient -r" dhclient envia um RELEASE unicast e alguns ISPs aceitam pacotes multicast apenas no servidor DHCP, portanto o RELEASE nunca chegou lá, no que diz respeito ao servidor, sua concessão ainda é válido, devolveu o mesmo IP na OFERTA.

Matt
fonte
Obrigado por isso! Eu nunca entendi por que o log sempre mostra DESCOBRIR, SOLICITAR, OFERTA, ACK; como a sequência nunca fez sentido. Só o fato de saber que isso não é o que realmente me leva a um longo caminho para descobrir o meu próprio problema. Portanto, minha máquina está obtendo o DHCPOFFERIP que eu não quero e dizendo "OK", mas se eu forçar a tentar obter mais alguma coisa, o servidor diz DHCPNACKe eu termino sem rede. Em suposição, a reserva no servidor é para o MAC errado.
Auspex
A única coisa que posso pensar é que você pode tentar mudar "hwaddress ether xx: xx: xx: xx: xx: xx" em / etc / network / interfaces se o seu provedor de serviços de Internet permitir que você altere seu mac sem precisar telefonar e informar eles e o seu modem a cabo não estiver substituindo seu Mac em tempo real, o servidor deverá vê-lo como alguém novo e oferecer a você um contrato de IP vago.
Matt
O problema era que ele estava me dando um IP vago. E eu estava tentando forçá-lo a me dar o que estava supostamente reservado, já que o DNS externo estava apontando para aquele! Então, enviei ao administrador da rede o endereço MAC real e perguntei se ele estava realmente reservando um IP para esse MAC.
Auspex
1

Normalmente, dhclient -rdeve fazer o truque; mas se isso não funcionar, encontrei uma solução aqui :

Renove um endereço IP uma vez:

Nota: Neste exemplo, estaremos usando a interface eth0. A interface deve estar configurada para o DHCP como em funcionamento.

  • Abra um terminal e faça o sudo suroot.
  • Digite ifconfigpara mostrar o endereço IP atual que você recebeu do DHCP.
  • Digite dhcpcd -kpara enviar os sinais apropriados para o dhcpcd (pode ser necessário instalar o dhcpcd fazendo isso apt-get install dhcpcd).
  • Agora traga a interface de volta digitando ifup eth0.
  • Digite ifconfigpara mostrar o novo endereço IP.

Há também uma seção sobre a renovação do endereço IP sempre, mas a descrição era para distribuições baseadas em RPM (em contraste com distribuições baseadas em Debian como o Ubuntu).

Espero que ajude :)

Seyed Mohammad
fonte