DCHP es un protocolo de red que permite a los nodos de una red una dirección IP y obtener sus parámetros de configuración automáticamente.
Desafortunadamente es mayormente utilizado solo para lo primero y se desaprovecha la posibilidad de enviar parámetros de configuración automáticamente.
Parámetros Configurables
Entre los parametros que un servidor de DHCP puede proveer están:
* Dirección del servidor DNS
* Puerta de enlace de la dirección IP
* Nombre DNS
* Puerta de enlace de la dirección IP
* Dirección de Publicación Masiva (broadcast address)
* Máscara de subred
* MTU (Unidad de Transferencia Máxima según siglas en inglés) para la interfaz
* Servidores NTP (Protocolo de Tiempo de Red según siglas en inglés))
* Servidor SMTP
* Servidor TFTP
Todas estas opciones pueden asignarse ya sea en general o particularmente a algún equipo utilizando la dirección MAC como identificador. De las que me resultaron mas útiles son la capacidad de especificar los DNS y el gateway o puerta de enlace de la dirección IP.
Para lograr esto recurrí a uno de mis hacks favoritos poner linux en un ruteador WRT54GL de linksys. Una vez que instale la versión mas reciente de DD-WRT hay que habilitar DNSMasq como servidor local de DNS. DNSMasq tiene incluido un servicio DHCP con el cual remplazaremos el udhcpd que es el servicio “normal” del DD-WRT. uDCHPd utiliza mas RAM que DNSMasq, el utilizar DNSMasq como servicio de DCHP nos da un ahorro de 300kb de RAM, en una unidad como es WRT54GL esos 300kb son un ahorro significante y nos permite utilizarla para otros servicios.
Ahora siguiendo las indicaciones del tutorial del wiki de DDWRT:
- Ve a la interfaz de Web
- ve a Setup->Basic
- DHCP Type = DHCP Server
- DHCP Server = Enable
- Use DNSMasq for DHCP = Habilitado
- Use DNSMasq for DNS = Habilitado
Una vez que este corriendo DNSMasq, puedes utilizar parámetros especiales para configurar opciones para indicar al server DHCP lo que quieres hacer.
Especificar DNS
Por ejemplo para indicar que DNS van a usar los clientes usarías la opcion 6 Domain Server, para indicar que servidores de nombre usar.
dhcp-option=6,x.x.x.x,y.y.y.y
En donde x.x.x.x representa al DNS primario y y.y.y.y al DNS secundario.
Asignar IP estático
Podemos utilizar la dirección MAC de los clientes para asignarles un IP estático.
dhcp-host=AB:CD:EF:11:22:33,192.168.1.10,24h
En este ejemplo el primer parametro que se especifica es la direccion MAC del cliente al cual queremos asignar determinado IP, el segundo parámetro es el IP a asignar, finalizando con la duración de asignación del IP.
Especificar Gateway
Para especificar la puerta de salida o gateway, hacemos uso de la opcion 3 (Router).
dhcp-option=3,x.x.x.x
Aquí el primer parámetro es el tag de opción, 3 en este caso, seguido de la dirección IP del gateway.
Comportamientos alternos
Se puede utilizar mas de un tag por cada parámetro, el uso mas común es crear una etiqueta VLAN para dar un trato diferente a cierto trafico, por ejemplo asignar un gateway diferente para ciertos equipos (para poner el gateway mas veloz solo para ti
). Para hacerlo , usas las siguientes instrucciones para crear el tag Vlan.
dhcp-range=net:2,172.16.51.0,255.255.255.0,static dhcp-option=net:2,3,172.16.51.2
Una vez que inicializaste el tag, lo utilizas así:
dhcp-host=<hwaddr>, net:2, <ipaddr>y
dhcp-option= net:2, <tag>, <ipaddr>
Estos son solo unos ejemplos de las muchas cosas que puedes hacer con parámetros de DHCP, en mi caso utilicé DNSMasq como servidor de DHCP pero estas opciones puedes aplicarlas con cualquier servidor DCHP. Una de las áreas que no explore es utilizar el dhcp para arrancar maquinas por medio de PXE, para tener herramientas de diagnostico en iso en algun servidor.

