Pourquoi dhclient est toujours en cours d'exécution lorsque je choisis une adresse IP statique?

15

Je modifie dhcp en statique dans / etc / network / interfaces (comme ci-dessous).

# The primary network interface
auto eth0
iface eth0 inet static
netmask 255.255.0.0
address 10.10.130.128
gateway 10.10.1.1

Redémarrez ensuite l'interface.

$ sudo ifdown eth0; sudo ifup eth0
...
$ ifconfig
eth0      Link encap:Ethernet 
          inet addr:10.10.130.128  Bcast:10.10.255.255  Mask:255.255.0.0

La nouvelle adresse entre donc en jeu.

Mais DHCP est toujours là?

$ ps aux | grep dhc
root    ... dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -1 eth0

Est-ce normal? Sinon, comment redémarrer l'interface en IP statique tout en arrêtant DHCP en même temps?

Merci beaucoup.

user276851
la source
2
Duplication possible de Y a
Videonauth

Réponses:

22
  1. Vous devez d'abord fermer l'interface (en mode dhcp) sudo ifdown eth0
  2. Modifiez ensuite la configuration nano /etc/network/interfaces

    # The primary network interface
    auto eth0
    iface eth0 inet static
    netmask 255.255.0.0
    address 10.10.130.128
    gateway 10.10.1.1
    
  3. Ramenez l'interface sudo ifup eth0

Sinon, dhclientne s'arrête pas correctement,

pvc
la source
1
Désolé, mais quelqu'un peut-il expliquer exactement en quoi cela diffère de ce qui se fait dans le PO ici? J'ai lu ceci trois fois et je n'arrive pas à faire la différence.
fostandy
S'agit-il de modifier ('toucher') le fichier pour que la date change? Suis-je censé éditer le fichier seulement APRÈS avoir supprimé l'interface? Si oui, comment puis-je «défaire» le fait que je l'ai déjà édité?
fostandy
1
@Bruno - merci pour la clarification. Par curiosité, que faites-vous si vous avez déjà modifié irrévocablement le /etc/network/interfacesfichier? Existe-t-il un moyen de forcer une réinitialisation aux valeurs par défaut et de recommencer?
fostandy
7
J'étais perplexe quant à la raison pour laquelle cela devrait faire une différence, mais un de mes amis intelligents l'a très bien expliqué. Le problème est que si le fichier est modifié puis ifdownexécuté, le gestionnaire de réseau ne sait pas qu'il doit s'arrêter dhclient, car tout ce qu'il voit dans le interfacesfichier est une entrée statique. Après, l'interface est en panne, l'émission ifuplit correctement et applique les paramètres statiques, mais elle ne sait pas non plus qu'elle dhclienta été démarrée.
paracycle
2

J'ai eu le même problème (Ubuntu 16.04). Cependant, il s'agissait d'une instance cloud et je ne pouvais pas ifdown l'interface aussi facilement.

Réponse courte: j'ai supprimé le fichier /etc/network/interfaces.d/50-cloud-init.cfgifup déclenché par ce fichier spécifique.

Réponse longue: J'ai configuré l'interface en utilisant le /etc/network/interfacesavec une adresse IP statique, mais j'ai toujours trouvé dans le daemon.log que dhclient demandait toujours des IP au DHCP et dhclient a été démarré via systemd. Plus précisément, systemd a appelé l'unité networking.service, qui a appelé ifup, qui lit à la fois le fichier d'interface et le fichier 50-cloud-init.cfg. Entraînant des conflits, mais toujours un réseau fonctionnel.

Patrick Deelman
la source
J'ai eu exactement le même problème, et j'ai appris à la dure, qu'un fichier ultérieur (comme 99-eth0.cfg) ne remplaçait en effet PAS les déclarations précédentes! Alors, merci pour votre contribution;)
Daywalker
1

J'ai trouvé que c'était dû au fait que NetworkManager de gnome fonctionnait toujours et pensait qu'il était en charge de l'appareil. Avec le recul, cela aurait dû être évident, comme l'a psmontré dhclient était lancé par NetworkManager.

Une fois que j'ai redémarré mon système, le périphérique est passé à "non géré" dans NetworkManager et il a cessé d'essayer de le configurer. Peut-être que j'aurais pu réaliser la même chose juste en arrêtant / redémarrant NetworkManager, je ne suis pas sûr.

fostandy
la source