Perché dhclient è ancora in esecuzione quando scelgo IP statico?


15

Modifico dhcp su static in / etc / network / interfaces (come sotto).

# 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

Quindi riavviare l'interfaccia.

$ 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

Quindi entra in gioco il nuovo indirizzo.

Ma DHCP è ancora 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

È normale? In caso contrario, come riavviare l'interfaccia in IP statico mentre si ferma DHCP contemporaneamente?

Molte grazie.


Risposte:


22
  1. Devi prima chiudere l'interfaccia (in modalità dhcp) sudo ifdown eth0
  2. Quindi modificare la configurazione 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. Ripristina l'interfaccia sudo ifup eth0

Altrimenti dhclientnon si spegne correttamente,


1
Ci dispiace, ma qualcuno può approfondire esattamente come ciò differisce da ciò che viene fatto nel PO qui? L'ho letto tre volte e non riesco a dire la differenza.
Fostandy,

Si tratta di modificare ('toccare') il file in modo che la data cambi? Devo solo modificare il file DOPO aver abbattuto l'interfaccia? In tal caso, come posso "annullare" il fatto di averlo modificato in precedenza?
Fostandy,


1
@Bruno - grazie per il chiarimento. Per curiosità cosa fai se hai già modificato irrevocabilmente il /etc/network/interfacesfile? C'è un modo per forzare un ripristino ai valori predefiniti e ricominciare?
Fostandy,

7
Ero sconcertato dal motivo per cui avrebbe dovuto fare la differenza, ma poi un mio amico intelligente lo ha spiegato molto bene. Il problema è che se il file viene modificato e quindi ifdowneseguito, il gestore della rete non sa che è necessario arrestarlo dhclient, poiché tutto ciò che vede nel interfacesfile è una voce statica. Successivamente, l'interfaccia è inattiva, l'emissione ifuplegge correttamente e applica le impostazioni statiche, ma non sa nemmeno che dhclientera stato avviato.
paraciclo

2

Ho avuto lo stesso problema (Ubuntu 16.04). Tuttavia, si trattava di un'istanza cloud e non sono riuscito a scaricare l'interfaccia così facilmente.

Risposta breve: ho rimosso il file /etc/network/interfaces.d/50-cloud-init.cfgseup è stato attivato da quel file specifico.

Risposta lunga: ho configurato l'interfaccia usando /etc/network/interfacescon un indirizzo IP statico, ma ho ancora trovato nel daemon.log che dhclient stava ancora richiedendo IP dal DHCP e dhclient era avviato tramite systemd. In particolare, systemd ha chiamato l'unità networking.service, che ha chiamato ifup, che ha letto sia il file interfaces che il file 50-cloud-init.cfg. Con conseguente alcuni conflitti, ma ancora una rete funzionale.


Ho avuto lo stesso identico problema, e ho imparato a mie spese, che un file successivo (come 99-eth0.cfg) NON stava davvero scavalcando le dichiarazioni precedenti! Quindi, grazie per il tuo contributo;)
Daywalker

1

Ho scoperto che ciò era dovuto al fatto che NetworkManager di gnome era ancora in esecuzione e pensava che fosse responsabile del dispositivo. Con il senno di poi, questo avrebbe dovuto essere ovvio, come psdimostrato dal fatto che NetworkManager stava lanciando dhclient.

Una volta riavviato il mio sistema, il dispositivo è passato a "non gestito" in NetworkManager e ha smesso di provare a configurarlo. Forse avrei potuto ottenere la stessa cosa semplicemente arrestando / riavviando NetworkManager, non ne sono sicuro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.