Re: DHCP: máquinas que consumen dos ips
El Sun, 12 Oct 2014 21:04:33 +0200, José Miguel (sio2) escribió:
> El Sun, 12 de Oct de 2014, a las 11:45:06AM +0000, Camaleón dijo:
>
>> En ese caso quizá te convenga repartir las IP de manera estática
>> ("fixed-
>> address") usando DHCP para evitar que haya duplicados y así te olvidas
>> del problema.
>
> Sé que esa es una solución posible, pero me gustaría no tener que
> utilizarla.
¿Por algún motivo en particular? Dadas las restricciones que tienes con
la asignación de las IP sería lo más lógico ¿no? :-?
>> Si los clientes Windows envían el ID ¿has pensando en configurar los
>> clientes linux para que hagan lo mismo? En "man dhclient.conf" hablan
>> de "dhcp-client-identifier", quizá te pueda servir.
>
> Sé que puedo hacer eso. De hecho, en el mensaje al que respondes creo
> que conté que las pruebas las había hecho exclusivamente con clientes
> linux. La forma de hacer las pruebas consistió en comentar y descomentar
> la línea que hace a dhclient enviar el uid. Sin embargo, esa solución no
> vale cuando se arranca por red.
(...)
¿Tampoco vale en los clientes Windows que arrancan por red o es que sólo
los clientes Linux tiran de PXE? Si es esto último entonces entendido :-)
>> El manual dice que la opción "deny duplicates" evita que un cliente
>> reciba leases adicionales cuando la MAC que está declarada en el host
>> es la misma. Bien, pero quizá eso no implica que mantenga o se le
>> vuelva a asignar el lease anterior, simplemente evita que reciba otro.
>> Y quizá lo haga porque primero da prioridad al ID y luego a la
>> dirección MAC cuando únicamente debería utilizar la dirección MAC para
>> evaluar quién es el cliente que solicita una nueva IP.
>
> Tiene sentido lo que dices y es una posible explicación de por qué no
> funcionan las cosas. Para confirmarla he hecho la siguiente prueba:
>
> 1. El rango de ips posibles, en vez de ser de una ip, es de dos:
> la 192.168.129.66 y la .67.
>
> 2. Primero pide el cliente con un uid (el típico de
> 1:MAC:DE:LA:TARJETA) y luego, sin que envíe al servidor noticia de
> que ya no quiere la ip concedida, con otro distinto uid
> (1:1:1:1:1:1:1)
>
> Si fuera cierto lo que supones y estuviera bien configurado el servidor:
>
> + con "allow duplicates" (o sea, sin nada) en la primera ocasión se
> recibiría una ip (la .66, por ejemplo) y en la segunda ocasión la
> segunda (la .67). Y ya no habría más ips disponibles.
>
> + con "deny duplicates" en la primera ocasión se recibiría una ip (la
> .66, por ejemplo) y en la segunda ocasión, aunque haya una ip
> disponible no se recibiría ninguna, porque el ordenador se negaría a
> entregar una segunda ip ya que hay vigente una concesión para la MAC
> que está requiriendo otra (aunque el uid sea distinto).
>
> Pues he probado, y no ocurre lo previsto: con "deny duplicates" recibo
> primero una ip (la .66) y luego la otra (la .67).
>
> No entiendo nada.
¿Y con "deny duplicates" sigue la .66 ocupada o el servidor la ha
liberado?
Es posible que estemos interpretando mal lo que hace esa variable o que
nos estemos saltando algo básico, como que demos por hecho que el
servidor esté evaluando la petición del cliente recibiendo la información
correcta (MAC duplicadas → no más leases) cuando realmente no es así de
ahí la importancia de los registros para que qué datos son los que le
llegan al servidor.
>> De todas formas, revisa en registro para ver qué es lo que hace
>> exactamente
>
> Estoy mirando /var/lib/dhcp/dhcpd.leases para comprobar todo lo que
> ocurre.
Y también en el cliente podrás obtener información jugosa (creo que esto
va a parar al /var/log/syslog).
>> consulta también la opción "one-lease-per-client", es posible que
>> tengas que combinar ambas para que funcione.
>
> La conocía también probé y no me funcionó. Después de leer tu mensaje,
> me releí el manual:
(...)
> No me pareció que aquí dijera nada acerca de que al cliente sólo lo
> identifique por su MAC (con lo cual es de suponer que lo identifica con
> UID), pero igualemente hice una nueva prueba.
>
> La otra vez que había probado lo había hecho con sólo una ip disponible
> y pensé que a lo mejor el servidor liberaba el resto de concesiones una
> vez que concedía la nueva ip. Así que me decidí a probarlo de nuevo, con
> dos ips disponibles: quizás primero concede la .66, luego la .67, pero
> libera la .66 y así sucesivamente.
>
> Pero tampoco: se concede la .66 y luego, con uid distinto, la .67 sin
> liberar la .66. Pero esto sí tiene explicación: el uid no coincide, así
> que es otro cliente. De hecho, después de recibir la 67, pare el cliente
> sin que se coscase el servidor, me metí en la caché de concesiones,
> cambié el .67 por el .66 para que el cliente al enviar si nueva petición
> le diga al servidor que quiere la .66 y... funcionó: el servidor le dió
> la 66 e revocó la concesión de la 67.
>
> Así que esta segunda opción no sirve en absoluto.
>
> Quizás es que, simplemente, no se puede hacer lo que quiero. Lo que me
> tiene escamado es que el comportamiento con "deny duplicates": o no
> tengo algo bien configurado o no le veo el sentido.
Sí, está rarito.
Y buscando en Google parece que la duda es generalizada :-):
https://forums.novell.com/showthread.php/353997-DHCP-double-leases
https://forums.novell.com/showthread.php/220615-PXE-and-Windows-eating-up-
DHCP-leases
Saludos,
--
Camaleón
Reply to: