Comment faire pour que dhclient oublie son dernier bail DHCP?

28

Ce que j'essaie d'atteindre, c'est d'obtenir un bail DHCP à démarrage à zéro, ce qui signifie forcer dhclientle processus de découverte et de configuration complet (DHCPDISCOVER – DHCPOFFER – DHCPREQUEST – DHCPACK par opposition au cycle DHCPREQUEST – DHCPACK raccourci qui utilise un cycle mémorisé adresse). J'en ai besoin pour déboguer un problème de configuration réseau.

J'ai essayé:

  • vidage du bail actuel avec dhclient -r, déconnexion de la connexion actuelle de Network Manager;
  • tuer tous les restes dhclientet dnsmasqprocessus;
  • /var/lib/dhcp/répertoire de nettoyage , qui contient soi-disant la base de données des baux clients;
  • sudo restart network-manager.

Mais même après ces étapes, je vois dans les journaux DHCPDISCOVER immédiatement suivi par DHCPREQUEST de l' adresse en quelque sorte encore mémorisée.

De toute évidence, le système d'exploitation stocke l'adresse d'une manière ou d'une autre, et je n'ai plus d'idées. Une aide de la communauté?

ulidtko
la source
L'avez-vous compris. Je rencontre également le même problème. Il existe également des fichiers de location sous NetworkManager. Je les ai également supprimés. Pour une raison quelconque, il reprend toujours l'ancienne adresse.
gudge

Réponses:

18

Cela a fait l'affaire pour moi (pour eth0, exécutez à partir de sudo su):

dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient.* ; dhclient -v eth0
Anton Kiselev
la source
1
Lorsque j'ai fait cela, j'ai obtenu un nouveau bail, mais l'adresse IP ne semble pas avoir été utilisée par le système. Si j'essaie de cingler le nom ou l'adresse IP associée, cela échoue. Si j'utilise ifconfigpour vérifier l'adresse actuelle, je peux l'indiquer.
TafT
Modification de la rmpartie rend ce travail pour moi (sans que cela a été utilisé le bail avant: dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient* ; dhclient -v eth0)
davejagoda
6

Le programme client DHCP écrit le bail dans un fichier. Supprimez simplement le fichier et redémarrez networkmanager.

/var/lib/dhcp/dhclient.leases

C'est là que les baux sont stockés, sur mon ordinateur.

thefourtheye
la source
2

Ce que vous voyez, ce n'est pas votre machine qui se souvient de l'IP. Dans syslog, vous voyez DISCOVER REQUEST OFFER ACK mais ce n'est pas dans l'ordre où cela s'est produit. En fait, il est allé DÉCOUVRIR OFFRE DEMANDE ACK pour confirmer cela, vous pouvez flairer le trafic entre le PC et le serveur DHCP en amont. Vous avez envoyé DECOUVRIR le serveur renvoyé OFFRE et vous avez obtenu l'IP de l'OFFRE pour votre DEMANDE

Cependant, vous avez tout fait correctement, lorsque vous avez fait "dhclient -r", dhclient enverra un communiqué de monodiffusion et certains FAI n'acceptent que les paquets de multidiffusion vers leur serveur DHCP, de sorte que le communiqué n'est jamais arrivé, en ce qui concerne le serveur, votre bail est toujours valide, il vous a donc rendu la même IP dans l'OFFRE.

Mat
la source
Merci pour ça! Je n'ai jamais compris pourquoi le journal affiche toujours DISCOVER, REQUEST, OFFER, ACK; car la séquence n'a jamais eu de sens. Le simple fait de savoir que ce n'est pas vraiment ce qui se passe me donne un long chemin à parcourir pour comprendre mon propre problème. Donc, ma machine obtient l' DHCPOFFERadresse IP que je ne veux pas, puis dit "OK", mais si je la force à essayer d'obtenir autre chose, alors le serveur dit DHCPNACK, et je me retrouve sans réseau du tout. À une supposition, la réservation sur le serveur est pour le mauvais MAC.
Auspex
La seule chose que je peux penser, vous pouvez essayer de changer "hwaddress ether xx: xx: xx: xx: xx: xx" dans / etc / network / interfaces si votre FAI vous permet de changer votre mac sans avoir à les appeler et à le dire eux, et votre modem câble ne remplace pas son mac à la volée, alors le serveur devrait vous voir comme quelqu'un de nouveau et vous donner un bail ip vacant.
Matt
Le problème était qu'il était de me donner une adresse IP vacante. Et j'essayais de le forcer à me donner celui qui était censé être réservé, puisque le DNS externe pointait vers celui-là! J'ai donc envoyé à l'administrateur du réseau l'adresse MAC réelle et lui ai demandé s'il réservait vraiment une adresse IP pour ce MAC.
Auspex
1

Normalement, dhclient -rdevrait faire l'affaire; mais si cela ne fonctionne pas pour vous, j'ai trouvé une solution ici :

+ Renouveler une adresse IP une fois:

Remarque: Dans cet exemple, nous utiliserons l'interface eth0. L'interface doit être configurée pour DHCP comme étant opérationnelle et en cours d'exécution.

  • Ouvrez un terminal et faites sudo supour rooter.
  • Tapez ifconfigpour afficher l'adresse IP actuelle que vous avez reçue de DHCP.
  • Tapez dhcpcd -kpour envoyer les signaux appropriés à dhcpcd (vous devrez peut-être installer dhcpcd en faisant apt-get install dhcpcd).
  • Maintenant, sauvegardez l'interface en tapant ifup eth0.
  • Tapez ifconfigpour afficher la nouvelle adresse IP.

Il y a aussi une section sur le renouvellement de l'adresse IP à chaque fois, mais la description concernait les distributions basées sur RPM (contrairement aux distributions basées sur Debian comme Ubuntu).

J'espère que ça aide :)

Seyed Mohammad
la source