Documente Academic
Documente Profesional
Documente Cultură
DHCP es el nombre de un servicio, pero tambin de un protocolo. DHCP es un acrnimo que corresponde a Dinamic Hosts Configuration Protocol, o lo que es lo mismo,Protocolo de Configuracin Dinmica de Hosts. Su funcionamiento se describe en el RFC 1541. El servicio DHCP se encarga de asignar direcciones IP de forma dinmica a las mquinas que lo solicitan. Las ventajas de usar DHCP son muchas y podemos mencionar la comodidad de no tener que asignar direcciones de forma manual en los equipos, la posibilidad de cambiar todas las direcciones asignadas desde el servidor, el control del uso de las direcciones, etc... Para configuracin de redes inalmbricas de libre acceso es especialmente til contar con un servidor DHCP. El servicio DHCP trabaja en cuatro pasos, correspondientes a las cuatro tramas que se envan por la red para su funcionamiento: El cliente DHCP (la mquina que desea obtener una direccin IP) busca si hay algn servidor DHCP en la red. Esto lo hace enviando una trama broadcast que ha recibido el nombre de DHCPDISCOVER o trama de descubrimiento DHCP. Si hay algn servidor DHCP que recibe el DHCPDISCOVER, enviar una trama a la mquina que hizo la solicitud, con una oferta de direccin IP y varias opciones. Si hay varios servidores DHCP, cada uno realizar una oferta. A esta trama de oferta se le conoce comnmente como DHCPOFFER. La mquina cliente elegir una de las ofertas y responder con otra trama broadcast, al objeto de que tanto el servidor cuya oferta ha sido aceptada como los restantes sepan la eleccin del cliente. El servidor cuya oferta fue aceptada anota la direccin como asignada a dicho cliente y el resto borran de memoria las ofertas que le realizaron y que tenan en reserva a la espera de que las aceptara o no. La trama que se enva en este caso se llama DHCPREQUEST. Por ltimo el servidor cuya oferta ha sido aceptada enva una trama conocida como DHCPACK, para indicar que todo el proceso ha sido correcto. Cuando el cliente recibe este DHCPACK comienza a usar la direccin IP y no antes, puesto que en el supuesto de que ocurriese un fallo durante el paso anterior (3) el servidor DHCP no sera consciente de que el cliente est interesado en su oferta de IP y transcurrido un breve periodo de tiempo la ofertara a otro. Por eso es necesario esta ltima trama. Tipos de paquetes DHCP:
DHCP Discover: El paquete de descubrimiento que enva una estacin para obtener una primera respuesta de los servidores DHCP de la red. DHCP Offer: El paquete con la 'oferta' que cada servidor DHCP enva a los clientes que han enviado un Discover. DHCP Request: Solicitud del cliente para quedarse con alguna de las ofertas recibidas. Tambin para renovar la concesin obtenida. DHCP ACK: Confirmacin del servidor al cliente de que puede hacer uso de la direccin IP que le haba ofertado anteriormente.
DHCP NACK: Enviado por el servidor para indicar normalmente que su concesin ha expirado o indicndole que los parmetros son errneos. Por ejemplo si el cliente solicita una IP que no corresponde a lred donde se encuentra situado y el servidor es autoritativo. En cualquier caso le indica al cliente que realice de nuevo el proceso de obtencin de IP. DHCP Inform: Paquete en el que el cliente pide al servidor uno o varios parmetros locales una vez que ha obtenido su direccin IP. DHCP Release: Lo enva el cliente para anunciar que libera su direccin IP. DHCP Decline: El cliente ha detectado que la direccin IP que le oferta el servidor ya est en uso y lo comunica para que el servidor la marque como 'no asignable'. El servidor debe enviar otro OFFER al cliente.
Fichero dhcpd.conf
El fichero de configuracin /etc/dhcp/dhcpd.conf comienza habitualmente con la siguiente declaracin: ddns-update-style interim; o bien: ddns-update-style ad-hoc; Esta declaracin hace referencia a modo de actualizacin de las mquinas que reciben direccin mediante DHCP en el servidor DNS. Para mantener compatibilidad con servidores antiguos se usar el modo ad-hoc. Es preciso modificar la configuracin de las zonas en el fichero de configuracin de los servidores DNS. Otra declaracin importante es la de authoritative. Esta opcin hace que el servidor se considere el que tiene la autoridad sobre las subredes y acte como tal, entendindose que su configuracin es la vlida (por si existen ms servidores DHCP) para las subredes que se definan en su fichero de configuracin. Este parmetro puede ser global y aplicarse a todas las subredes o aplicarse slo a algunas de ellas. El comportamiento del servidor ir encaminado a intentar corregir las malas configuraciones de sus clientes.
Si el servidor DHCP cambia su configuracin y recibe despus una solicitud de renovacin, no conceder dicha renovacin, y enviar un DHCPNACK para indicar al cliente que debe comenzar de nuevo el proceso de solicitud de direccin IP desde el principio. Si un cliente solicita una IP no vlida para la subred en la que se encuentra, el servidor DHCP le enviar un DHCPNACK para indicarle que solicite una nueva direccin IP. Si un ordenador con una MAC no autorizada para el servidor solicita una IP o una renovacin se le denegar.
El comportamiento por defecto de un servidor DHCP es como no autoritativo. Hay dos variables muy importantes referentes al tiempo por el cual el servidor concede una direccin IP:
default_lease_time: es el nmero de segundos por el cual se le asigna una direccin a un cliente. max_lease_time: es el tiempo mximo que un cliente puede retener su direccin IP. El cliente que quiere seguir haciendo uso de la direccin que le ha sido asignada puede hacerlo renovando la concesin tantas veces como le permita el servidor, pero hasta un tiempo mximo definido en esta variable.
Estas dos variables pueden ser redefinidas en el interior de cada declaracin de subred. Para definir una subnet en la cual mi servidor dhcp asignar direcciones debo aadir al fichero las siguientes lneas:
[direc_subred] es la direccin IP de la subred a la cual quiero asignar direcciones. La subred a la que pertenece mi servidor debe aparecer en el fichero de configuracin. [mscara] es la mscara de la subred. [opciones] son las posibles opciones que se usan para las mquinas de esa subred. Cada opcin debe acabar con ;
range: es la ms importante de ellas y la que hay que definir siempre. En ella se define el rango de direcciones IP que se desea asignar. Se indica la primera y la ltima de las direcciones a asignar separadas por un espacio. Ejemplo:
option routers: con esta opcin se indica a las mquinas cliente las posibles gateways o puertas de enlace. Ejemplo:
option domain-name-servers: las mquinas que incluyamos en esta opcin sern los servidores dns que se enviarn a las mquinas cliente. Ejemplo:
option domain-name: sirve para asignar un nombre de dominio a las mquinas cliente. Ejemplo:
option subnet-mask: permite asignar mscaras de red diferentes a las definidas en la declaracin de la subred, en [netmask].
option ntp-server: para especificar un servidor de hora. option broadcast-address: para especificar una direccin de broadcast. option ip-forwarding on/off: para especificar si el host debe habilitar el enrutamiento o no. option netbios-name-servers: para especificar un servidor wins. ddns-updates on/off: para especificar si se realiza la actualizacin en el DNS o no.
option host-name nombre_del_host: para especificar un nombre al host cuando se realiza una reserva. Slo es til si el host no tiene ya asignado un nombre (localmente), ya que si lo tiene asignado esta opcin no tiene validez. ddns-hostname: nombre con el que el host ser registrado en el servidor DNS. Puede contener un nombre FQDN o no, ya que el dominio se puede dar con la opcin ddnsdomainname. Slo se debe especificar aqu el nombre FQDN completo si no se emplea la opcin ddns-domainname. ddns-domainname: nombre de dominio con el que el host ser registrado en el DNS. Si se especifica, en la opcin ddns-hostname slo se debe poner el nombre de host. Ambas opciones formarn el nombre FQDN completo. NOTA: no confundir con la opcin option domain-name, que asignan el nombre a la mquina cliente one-lease-per-client: si a continuacin se aade la palabra on, si un cliente que ya tiene una ip asignada solicita otra, se ver obligado a liberar automticamente la primera. Es un caso a considerar si tenemos msde una interfaz de red. server-identifier x.x.x.x: La ip que corresponda en lugar de x.x.x.x es la interfaz que se considera adecuada para responder a las peticiones. Se usa en el caso de que el servidor tenga varias direcciones IP asignadas a una misma interfaz y se quiera controlar el servicio. netbios-node-type x: en el lugar de la x debemos usar 1, 2, 4 u 8, dependiendo del tipo de comunicacin NetBIOS que deseemos en nuestra red. El 1 corresponde a nodos-B (Broadcast) que resuelven las consultas preguntando mediante broadcast. Es la opcin por defecto en los Windows. El 2 o nodo-P (peer-to-peer) corresponde a usar un servidor WINS, con lo que no hay broadcast. El 4 es el nodo-M (mixed) que usa broadcast y si no obtiene respuesta entonces pregunta a un WINS. El 8 o dodo-H (hybrid) intenta preguntar a un WINS y si no obtiene respuesta usa broadcast.
Una vez terminado puedo emplear dhcpd -t o dhcpd3 -t para validar el fichero. DHCP tambin usa el archivo /var/lib/dhcp/dhcpd.leases para almacenar la base de datos de arrendamiento de clientes.
} donde [nombre] es el nombre que se quiere dar al equipo, [MAC] es la direccin MAC que tiene la tarjeta de red de dicho equipo e [IP] es la direccin IP que se quiere que se le asigne siempre. Si se desea que la mquina cliente sea dada de alta en un servidor DNS se debe incluir la opcin siguiente: ddns-updates on;
Un ejemplo podra ser: host PC01 { ddns-updates on; hardware ethernet 00:50:eb:af:f1:3d; fixed-address 192.168.1.100; }
Concesiones DHCP
En el servidor DHCP, el archivo /var/lib/dhcp/dhcpd.leases almacena la base de datos de arrendamiento (concesiones) del servidor DHCP. Este archivo no debe modificarse manualmente, pues puede provocar alguna incongruencia en el servicio. La informacin sobre la concesin DHCP de cada direccin IP asignada recientemente se almacena de modo automtico en la base de datos de arrendamiento (fichero dhcpd.leases). La informacin incluye el tiempo de concesin, a quin se ha asignado la direccin IP, las fechas iniciales y finales de la renta, y la direccin MAC de la tarjeta de red utilizada para el arrendamiento. Todas las horas de la base de datos de arrendamiento se expresan segn GMT, no con la hora local. La base de datos de arrendamiento se crea nuevamente de vez en cuando para que su tamao no sea excesivo. En primer lugar, el archivo dhcpd.leases se renombra a dhcpd.leases~, y la base de datos temporal se registra en dhcpd.leases. Si el servicio cae no se debe crear un nuevo archivo de concesiones. Si se hace as, se perdern las versiones anteriores del arrendamiento y podran generarse problemas. La solucin correcta consiste en cambiar el nombre del archivo de copia de seguridad dhcpd.leases~ de nuevo a dhcpd.leases y, a continuacin, arrancar el demonio.
Redes compartidas
Todas las subredes que comparten la misma red fsica deben especificarse dentro de una declaracin shared-network. Los parmetros que se definen dentro de shared-network pero
fuera de las declaraciones subnet se consideran parmetros globales. El nombre de sharednetwork debe ser el ttulo descriptivo de la red. shared-network nombre_red { option domain-name "linux.com"; option domain-name-servers ns1.linux.com, ns2.linux.com; option routers 192.168.4.254;
subnet 192.168.4.0 netmask 255.255.255.0 { parmetros u opciones de la subred range 192.168.4.1 192.168.4.31; } subnet 192.168.4.32 netmask 255.255.255.0 { parmetros u opciones de la subred range 192.168.4.33 192.168.4.43; } } La declaracin group puede utilizarse para aplicar parmetros globales a un grupo de declaraciones. Se puede agrupar redes compartidas, subredes, hosts u otros grupos.
-p <portnum> Especifica el nmero de puerto udp en el que dhcpd debera escuchar. Est predeterminado 67. El servidor DHCP transmite las respuestas al cliente a un puerto con un nmero ms grande que el puerto udp especificado. Por ejemplo, si se acepta el puerto predeterminado, 67, el servidor escucha en el puerto 67 y responde en el puerto 68. -f Ejecutar el demonio como un proceso de en primer plano. Casi siempre se usa para la depuracin. -d Registrar el demonio del servidor DCHP en el descriptor de errores estndar. Casi siempre se usa para el depurado. Si no est especificado, el registro ser escrito en /var/log/messages.
-cf filename Especifica la localizacin del archivo de configuracin. La configuracin por defecto es /etc/dhcpd.conf. -lf filename Especifica la ubicacin de la base de datos de concesiones. Si ya existe el archivo de la base de datos de arrendamiento, es muy importante que se use el mismo archivo cada vez que el servidor DHCP se inicia. Esta opcin se suele usar slo para propsitos de depuracin en mquinas que no estn en produccin. La ubicacin por defecto es /var/lib/dhcp/dhcpd.leases. -q No imprime el mensaje de copyright entero cuando inicie el demonio.