Come fare in modo che dhclient dimentichi il suo ultimo contratto di locazione DHCP?


28

Quello che sto cercando di ottenere è ottenere un lease DHCP a zero stato con avvio a freddo, il che significa forzare dhclientl'intero processo di rilevamento e configurazione (DHCPDISCOVER – DHCPOFFER – DHCPREQUEST – DHCPACK in contrapposizione al ciclo DHCPREQUEST – DHCPACK abbreviato che utilizza un ricordato indirizzo). Ho bisogno di questo per eseguire il debug di un problema di configurazione di rete.

Ho provato:

  • svuotare il contratto di locazione corrente con dhclient -r, disconnettendo la connessione corrente di Network Manager;
  • uccidere qualsiasi residuo dhcliente dnsmasqprocesso;
  • /var/lib/dhcp/directory di pulizia , che presumibilmente contiene il database di leasing client;
  • sudo restart network-manager.

Ma anche dopo questi passaggi vedo nei registri DHCPDISCOVER immediatamente seguito da DHCPREQUEST di indirizzo in qualche modo ancora ricordato.

Chiaramente, il sistema operativo sta memorizzando l'indirizzo in qualche altro modo, e ho finito le idee. Qualche aiuto dalla community?


L'hai capito. Sto anche incontrando lo stesso problema. Esistono anche file di leasing in NetworkManager. Anche io li ho cancellati. Per qualche motivo raccoglie ancora il vecchio indirizzo.
Rancore il

Risposte:


18

Questo ha fatto il trucco per me (per eth0, corri da sudo su):

dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient.* ; dhclient -v eth0

1
Quando l'ho fatto ho ottenuto un nuovo contratto di locazione, ma l'indirizzo IP non sembra essere stato utilizzato dal sistema. Se provo a pingare il nome o l'indirizzo IP correlato, fallisce. Se uso ifconfigper controllare l'indirizzo corrente, posso individuarlo.
TafT

La modifica della rmparte fa questo lavoro per me (senza questo il contratto di locazione è stato utilizzato prima: dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient* ; dhclient -v eth0)
davejagoda

6

Il programma client DHCP scrive il contratto di locazione in un file. Basta eliminare il file e riavviare networkmanager.

/var/lib/dhcp/dhclient.leases

Qui è dove sono memorizzati i contratti di locazione, nel mio computer.


2

Quello che stai vedendo non è la tua macchina che ricorda l'IP. In syslog vedi SCOPRI LA RICHIESTA DI OFFERTA ACK, tuttavia questo non è nell'ordine in cui è successo. In realtà è andato SCOPRI LA RICHIESTA DI OFFERTA ACK per confermare che puoi sniffare il traffico tra il PC e il server DHCP upstream. Hai inviato SCOPRI il server rispedito OFFERTA e hai ottenuto l'IP dall'OFFERTA per la tua RICHIESTA

Hai fatto comunque tutto bene, quando hai fatto "dhclient -r" dhclient invierà un RILASCIO unicast e alcuni ISP accettano solo pacchetti multicast sul loro server DHCP, quindi il RILASCIO non è mai arrivato lì, per quanto riguarda il server il tuo contratto di locazione è ancora valido, quindi ti ha restituito lo stesso IP nell'OFFERTA.


Grazie per quello! Non ho mai capito perché il registro mostra sempre SCOPRI, RICHIEDI, OFFERTA, ACK; poiché la sequenza non ha mai avuto senso. Il solo fatto di sapere che non è proprio quello che succede mi fa fare molta strada per capire il mio problema. Quindi, la mia macchina sta ottenendo l' DHCPOFFERIP che non desidero, e poi dice "OK", ma se lo costringo a cercare di ottenere qualcos'altro, allora il server dice DHCPNACK, e finisco per non avere alcuna rete. Probabilmente, la prenotazione sul server è per MAC errato.
Auspex,

L'unica cosa che posso pensare, puoi provare è cambiare "hwaddress ether xx: xx: xx: xx: xx: xx" in / etc / network / interfacce se il tuo ISP ti consente di cambiare il tuo mac senza doverli chiamare e dire e il modem via cavo non sta sostituendo al volo il suo mac, quindi il server dovrebbe vederti come nuovo e darti un contratto di locazione ip libero.
Matt,

Il problema era che stava mi dà un IP vacante. E stavo provando a forzarlo per darmi quello che era apparentemente riservato, poiché il DNS esterno puntava a quello! Quindi, ho inviato all'amministratore di rete l'indirizzo MAC attuale e gli ho chiesto se stava davvero riservando un IP per quel MAC.
Auspex,

1

Normalmente, dhclient -rdovrebbe fare il trucco; ma se non funziona per te, ho trovato una soluzione qui :

+ Rinnova un indirizzo IP una volta:

Nota: in questo esempio useremo l'interfaccia eth0. L'interfaccia deve essere configurata per DHCP come attivo e funzionante.

  • Apri un terminale e esegui il sudo suroot.
  • Digitare ifconfigper mostrare l'indirizzo IP corrente ricevuto dal DHCP.
  • Digitare dhcpcd -kper inviare i segnali appropriati a dhcpcd (potrebbe essere necessario installare dhcpcd facendo apt-get install dhcpcd).
  • Ora ripristina l'interfaccia digitando ifup eth0.
  • Digitare ifconfigper mostrare il nuovo indirizzo IP.

C'è anche una sezione sul rinnovo dell'indirizzo IP ogni volta, ma la descrizione era per le distribuzioni basate su RPM (al contrario delle distribuzioni basate su Debian come Ubuntu).

Spero che sia d'aiuto :)

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.