¿Cómo hacer que dhclient olvide su último arrendamiento de DHCP?

28

Lo que estoy tratando de lograr es obtener un arrendamiento DHCP de arranque en frío y de estado cero, lo que significa forzar a dhclienttravés del proceso completo de descubrimiento y configuración (DHCPDISCOVER – DHCPOFFER – DHCPREQUEST – DHCPACK en lugar del ciclo DHCPREQUEST – DHCPACK de acceso directo que utiliza un recordatorio dirección). Necesito esto para depurar un problema de configuración de red.

Yo he tratado:

  • enjuagar el arrendamiento actual con dhclient -r, desconectando la conexión actual de Network Manager;
  • matando cualquier resto dhclienty dnsmasqproceso;
  • /var/lib/dhcp/directorio de limpieza , que supuestamente contiene la base de datos de arrendamiento del cliente;
  • sudo restart network-manager.

Pero incluso después de estos pasos, veo en los registros DHCPDISCOVER seguido inmediatamente por DHCPREQUEST de alguna manera que aún se recuerda la dirección.

Claramente, el sistema operativo está almacenando la dirección de alguna otra manera, y me he quedado sin ideas. ¿Alguna ayuda de la comunidad?

ulidtko
fuente
Lo averiguaste. También me encuentro con el mismo problema. También hay archivos de arrendamiento en NetworkManager. Los eliminé también. Por alguna razón, todavía recoge la dirección anterior.
Gudge

Respuestas:

18

Esto hizo el truco para mí (para eth0, ejecutar desde sudo su):

dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient.* ; dhclient -v eth0
Anton Kiselev
fuente
1
Cuando hice esto, obtuve un nuevo contrato de arrendamiento, pero la dirección IP no parece haber sido utilizada por el sistema. Si intento hacer ping al nombre o la dirección IP relacionada, falla. Si uso ifconfigpara verificar la dirección actual, puedo indicarlo.
TafT
Cambio de la rmparte hace este trabajo para mí (sin que esto se utilizó el contrato de arrendamiento antes: dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient* ; dhclient -v eth0)
davejagoda
6

El programa DHCP Client escribe la concesión en un archivo. Simplemente elimine el archivo y reinicie networkmanager.

/var/lib/dhcp/dhclient.leases

Aquí es donde se almacenan los arrendamientos, en mi computadora.

thefourtheye
fuente
2

Lo que está viendo no es su máquina recordando la IP. En syslog, verá DESCUBRIR SOLICITUD DE SOLICITUD ACK, sin embargo, esto no está en el orden en que sucedió. En realidad, fue DESCUBRIR ACUSE DE SOLICITUD DE OFERTA para confirmar que puede rastrear el tráfico entre la PC y el servidor DHCP ascendente. Enviaste DESCUBRE el servidor devuelto OFERTA y obtuviste la IP de la OFERTA para tu SOLICITUD

Sin embargo, hizo todo bien, cuando hizo "dhclient -r" dhclient enviará una LIBERACIÓN de unidifusión y algunos ISP solo aceptan paquetes de multidifusión a su servidor DHCP, por lo que la LIBERACIÓN nunca llegó allí, en lo que respecta al servidor, su contrato de arrendamiento todavía está válido, por lo que le devolvió la misma IP en la OFERTA.

Mate
fuente
¡Gracias por eso! Nunca he entendido por qué el registro siempre muestra DESCUBRIR, SOLICITAR, OFRECER, ACK; ya que la secuencia nunca tuvo sentido. El solo hecho de saber que eso no es realmente lo que sucede me pone muy por delante para resolver mi propio problema. Entonces, mi máquina está obteniendo la DHCPOFFERIP que no quiero, y luego dice "OK", pero si la obligo a intentar obtener algo más, entonces el servidor dice DHCPNACK, y termino sin ninguna red. Supongo que la reserva en el servidor es para el MAC incorrecto.
Auspex
Lo único que puedo pensar es que puedes intentar cambiar "hwaddress ether xx: xx: xx: xx: xx: xx" en / etc / network / interfaces si tu ISP te permite cambiar tu mac sin tener que llamarlos y decirle ellos, y su cable módem no está sustituyendo su Mac sobre la marcha, entonces el servidor debería verlo como alguien nuevo y darle un contrato de arrendamiento de IP vacante.
Matt
El problema era que me estaba dando una IP vacante. ¡Y estaba tratando de forzarlo para que me diera el que supuestamente estaba reservado, ya que el DNS externo apuntaba a ese! Entonces, le envié al administrador de la red la dirección MAC real y le pregunté si realmente estaba reservando una IP para ese MAC.
Auspex
1

Normalmente, dhclient -rdebería hacer el truco; pero si eso no funciona para ti, encontré una solución aquí :

+ Renueve una dirección IP una vez:

Nota: En este ejemplo usaremos la interfaz eth0. La interfaz debe estar configurada para DHCP como en funcionamiento.

  • Abre una terminal y hazlo sudo sua root.
  • Escriba ifconfigpara mostrar la dirección IP actual que recibió de DHCP.
  • Escriba dhcpcd -kpara enviar las señales apropiadas a dhcpcd (es posible que necesite instalar dhcpcd haciendo apt-get install dhcpcd).
  • Ahora recupere la interfaz escribiendo ifup eth0.
  • Escriba ifconfigpara mostrar la nueva dirección IP.

También hay una sección sobre la renovación de la dirección IP cada vez, pero la descripción era para distribuciones basadas en RPM (en contraste con distribuciones basadas en Debian como Ubuntu).

Espero eso ayude :)

Seyed Mohammad
fuente