Cliente DHCP dhclient

De ProyectoFedora


Contenido

El Cliente DHCP ISC

El ISC dhclient es uno de los clientes DHCP posibles para Linux y que es el cliente DHCP por omisión al configurar alguna interfase de red como para que obtenga su configuración por medio de ese protocolo.

Detalles dhclient Fedora

Revisando en Fedora 8, tenemos por ejemplo que el comando efectivo de arranque de dhclient al configurar una interfase para que se configure vía DHCP es:

/sbin/dhclient -1 -q -cf /etc/dhclient-eth0.conf -lf /var/lib/dhclient/dhclient-eth0.leases -pf /var/run/dhclient-eth0.pid eth0

Puede usted revisar man dhclient y man dhclient.conf para revisar todos los detalles más a continuación listamos lo que significa cada uno de estos parámetros y cuáles se pueden ajustar fácilmente y cuáles no.

-1 
Provoca que dhclient intente una vez obtener su configuración, si falla, dhclient termina y sale con código de salida dos. Puede corregirse con PERSISTENT_DHCLIENT=yes|no|1|0 en ifcfg-<if>
-q 
Quite, callado, evita cualquier mensaje menos los errores en la salida estandar de errores (descriptor).
-cf /etc/dhclient-eth0.conf 
Especifica un archivo de configuración alternativo, por omisión es /etc/dhclient.conf.
-lf /var/lib/dhclient/dhclient-eth0.lease 
Especifica un archivo alternativo para mantener la información de la información recibida, por omisión es /var/lib/dhcpd/dhclient.leases.
-pf /var/run/dhclient-eth0.pid 
Especifica un archivo alternativo para almacenar el identificador del proceso PID, por omisión es /var/run/dhclient.pid.
eth0 
Es la interfase que se debe configurar con DHCP, si se omite, se intenta identificar todas las interfases y configurarlas vía DHCP. Se filtran las interfases de no difusión (non-broadcast).

Caso NetworkManager

Si está usando NetworkManager en Fedora, dhclient es arrancando desde él y la línea de comandos que podemos observar es:

/sbin/dhclient -d -sf /usr/libexec/nm-dhcp-client.action -pf /var/run/dhclient-ath0.pid \
       -lf /var/lib/dhclient/dhclient-ath0.lease -cf /var/run/nm-dhclient-ath0.conf ath0

Abajo los comentarios correspondientes, sin repetir los ya comentados arriba.

-d 
Forza a dhclient a correr en el frente, esto es necesario para correr bajo NM.
-sf /usr/libexec/nm-dhcp-client.action 
Ruta al guión de configuración de red invocado por dhclient una vez se obtiene el "lease". Si no se especifica, se usa /sbin/dhclient-script.
-lf /var/lib/dhclient/dhclient-ath0.lease 
No lo estoy repitiendo, es a drede, note que es "lease" y no "leases", NM guarda el "lease" en otro archivo distinto.
-cf /var/run/nm-dhclient-ath0.conf 
Especifica un archivo de configuración alternativo, por omisión es /etc/dhclient.conf.

/var/run/nm-dhclient-ath0.conf

Es interesante notar que no debe crear este archivo de cero ya que NM fusiona éste a partir de /etc/dhclient-ath0.conf.

# Created by NetworkManager
# Merged from /etc/dhclient-ath0.conf

timeout 30 ; # 60 es el valor por omision
send host-name "movil.gomix.org";  # temporary RHL ifup addition
also request ntp-servers;

Configuración Fedora

En el caso general de la configuración de una interfase de red en Fedora, los parámetros de configuración, al menos para las interfases Ethernet, se mantienen en archivos planos ubicados en /etc/sysconfig/network-scripts/ifcfg-ethx. Entonces nuestra primera pregunta es si debemos tocar /etc/dhclient-eth0.conf. Mi respuesta es que si, usted puede ajustar este archivo, una vez creado por el sistema, para afinar el comportamiento de su cliente dhclient en esa interfase en particular. Si vemos el contenido de ese archivo, en una condición típica tenemos:

send host-name "gomix-pc.neotechgw.com";  # temporary RHL ifup addition

En este escenario dhclient envía el nombre de la máquina al servidor DHCP. Esta opción de configuración puede provenir de system-config-network. Para editar /etc/dhclient-eth0.conf hay que tener cuidado de que no se sobrescriban las configuraciones con algún otro programa para mantener la consistencia, o abandonar dichos programas de gestión, realmente depende de su nivel como administrador de redes.

Si bien la mayoría de los parámetros de dhclient son aceptables, algunos parámetros pueden ser modificados para acomodar situaciones especiales o para entonación. Abajo una configuración muy sofisticada para un laptop, la suya puede ser muy simple, incluso vacía ya que los valores por omisión suelen hacer buen trabajo.

timeout 60;
retry 60;
reboot 10;
select-timeout 5;
initial-interval 2;
reject 192.33.137.209;

interface "eth0" {
send host-name "andare.fugue.com";
send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
send dhcp-lease-time 3600;
supersede domain-name "fugue.com rc.vix.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name;
require subnet-mask, domain-name-servers;
script "/sbin/dhclient-script";
media "media 10baseT/UTP", "media 10base2/BNC";
}

alias {
interface "eth0";
fixed-address 192.5.5.213;
option subnet-mask 255.255.255.255;
}

Para ver los detalles consulte man dhclient y man dhclient.conf.

Referencias