Está en la página 1de 6

DHCP

Mediante el protocolo cliente-servidor DHCP (Dynamic Host Configuration Protocol, Protocolo de Configuracin Dinmica de Hosts), un servidor DHCP asigna automticamente IPs a las mquinas que se conectan a la red. Esto es especialmente til en redes inalmbricas y en redes locales dnde la configuracin manual sea dificultosa debido al gran nmero de estaciones. El servidor DHCP ms utilizado es el servidor del ISC (Internet Systems Consortium, isc.org, paquete dhcp3-server) y es el que instalaremos nosotros. Equivalencias en Windows: MS-DHCP.

Cmo funciona DHCP?


Veamos cmo negocian el cliente y el servidor DHCP la concesin de una IP. Si el cliente solicita una direccin IP por primera vez: 1. Solicitud de concesin: cuando arranca un cliente, intenta conseguir una configuracin vlida para la red en la que est. Para ello hace saber a los servidores DHCP que estn a la escucha que un nuevo cliente quiere una IP vlida, enviando un mensaje DHCPDiscover de broadcast (se manda a todas las mquinas de la red) al puerto 68 UDP. Dado que el cliente an no tiene IP, se identifica mediante la MAC (Media Access Control address). Una vez hecho esto, el cliente queda a la espera de una respuesta. 2. Oferta de concesin: en la red puede haber un servidor DHCP o varios. Aquellos servidores DHCP que tengan alguna IP disponible para conceder enviarn un mensaje DHCPOffer de broadcast al puerto 67 UDP, que contendr la IP del servidor DHCP, la IP ofertada y los parmetros de configuracin. Esta informacin se "presta" y es vlida slo durante un determinado perodo de tiempo, transcurrido el cual la oferta caduca. 3. Seleccin de concesin: el cliente captar los DHCPOffer y responder enviando un mensaje DHCPRequest a la IP del servidor solicitando la IP ofrecida. 4. Confirmacin de seleccin: el servidor solicitado enviar un mensaje DHCPAck de broadcast con la confirmacin de la IP y los parmetros definitivos. Una vez recibido este mensaje, el cliente configura su interfaz de red usando la informacin proporcionada por el servidor DHCP. Si el cliente ya tuvo una IP en esa red, el proceso es diferente: 1. Solicitud de renovacin: cuando arranca un cliente que ya tuvo una IP en esa red, intentar recuperar la IP de la concesin anterior, por lo que mandar un mensaje DHCPRequest de broadcast detallando la IP que quiere recuperar, al que slo responder aquel servidor que posea en su intervalo de concesiones la IP requerida. 2. Confirmacin de renovacin: si el cliente puede usar la IP solicitada, el servidor responde con un mensaje DHCPAck. Una vez recibido este mensaje, el cliente configura su interfaz de red usando la informacin proporcionada por el servidor DHCP. Si el cliente no pudiera utilizarla porque la est usando otro cliente o porque el cliente se ha desplazado fsicamente a otra subred y la IP solicitada no es vlida para esa red, entonces el servidor responde con un mensaje DHCPNack, obligando al cliente a iniciar el proceso normal de concesin.

Si el servidor no responde, el cliente autoconfigura su interfaz IP (utilizando la anterior concesin si dispone de ella), e intentar cada cierto tiempo localizar un servidor DHCP y obtener una concesin. La informacin de TCP/IP que se concede al cliente debe ser renovada cada cierto tiempo. Para ello, el cliente enva un mensaje DHCPRequest al servidor, que responder con un mensaje DHCPAck con la informacin de la nueva concesin. Cach de asignaciones del servidor: dado que el servidor DHCP puede pararse y reiniciarse, guarda la lista de direcciones asignadas en el fichero /var/lib/dhcp3/dhcpd.leases. Cuando se inicia el servidor, despus de leer /etc/dhcp3/dhcpd.conf lee /var/lib/dhcp3/dhcpd.leases, estableciendo qu mquinas tienen asignaciones activas. Por ejemplo, si el servidor DHCP ha concedido la IP 192.168.1.10, el contenido de /var/lib/dhcp3/dhcpd.leases ser:
lease 192.168.1.10 { starts 6 2006/04/01 13:36:52; ends 6 2006/04/01 13:46:52; binding state active; next binding state free; hardware ethernet 00:10:60:ba:05:bf; }

Cach de asignaciones del cliente: una vez el cliente dispone de IP, guarda los datos de la asignacin en /var/run/dhclient.eth0.leases, de manera que la prxima vez que el cliente solicite una IP, solicitar la ltima IP concedida. Si el servidor no responde, el cliente autoconfigurar su interfaz con esos datos. El contenido de /var/run/dhclient.eth0.leases (/var/lib/dhcp3/dhclient.leases en ubuntu) ser similar a:
lease { interface "eth0"; fixed-address 192.168.1.10; option subnet-mask 255.255.255.0; option routers 192.168.1.1; option broadcast-address 192.168.1.255; option dhcp-lease-time 600; option dhcp-message-type 5; option dhcp-server-identifier 192.168.1.3; renew 6 2006/4/1 12:49:13; rebind 6 2006/4/1 12:52:58; expire 6 2006/4/1 12:54:13; }

Configurar el servidor DHCP


Para configurar el servidor DHCP del ISC editaremos el archivo /etc/dhcp3/dhcpd.conf. Veamos las principales directivas: Directivas globales: las directivas que no van dentro de un apartado subnet tienen validez global y se aplican por defecto a todas las subnet que definamos. servidor DHCP autoritario. Durante la instalacin se nos advierte de que "la versin 3 del servidor DHCP es no-autoritaria por omisin". Esto significa que si un cliente pide una IP de la que el servidor no sabe nada y la IP es incorrecta para ese segmento de red, el servidor no enviar un DHCPNAK indicdole debe dejar de usar esa IP. Si queremos cambiar este comportamiento debemos indicar explcitamente los segmentos de red sobre los cuales nuestro servidor tiene autoridad mediante la directiva authoritative. Para reasignar la IP a los clientes mal configurados haremos: authoritative;

mscara de red:
option subnet-mask 255.255.255.0;

direccin de broadcast:
option broadcast-address 192.168.1.255;

direccin del gateway:


option routers 192.168.1.10;

tiempo de asignacin de IP (en segundos) por defecto. Un cliente puede solicitar un determinado tiempo de vida para el prstamo. Si no lo hace, el servidor asigna un tiempo de vida por defecto mediante esta directiva:
default-lease-time 604800;

tiempo mximo de asignacin de IP (en segundos, en este caso una semana). Este es el mximo tiempo que el servidor puede realizar prstamos a los clientes. Si un cliente solicita un tiempo de concesin mayor se ignorar su peticin:
max-lease-time 604800;

Directivas locales: las directivas que van dentro de un apartado subnet slo se aplican a esa subnet y sobreescriben las directivas globales. red en la que queremos hacer asignaciones IP:
subnet 192.168.1.0 netmask 255.255.255.0 {

rango de direcciones IP a asignar (se puede especificar ms de un rango). Al definir los rangos hay que tener en cuenta las IPs fijas que hemos definido (servidor DNS, gateway, etc.).
range 192.168.1.7 192.168.1.9; range 192.168.1.90 192.168.1.150;

terminamos de definir la subnet:


}

Asignar IPs fijas: para asignar IP estticas basadas en la MAC del cliente, haremos:
host cliente1 { hardware ethernet 00:00:17:93:8D:05; fixed-address 192.168.1.5; }

Para conocer las MAC tenemos varias opciones: podemos usar Nmap:
# nmap -sP 192.168.1.1-255

otra opcin es hacer un ping a todos los hosts de la red para provocar una respuesta de los mismos. Una vez realizado veremos los hosts y sus direcciones MAC con el comando:

$ ? ? ?

arp -a (192.168.1.1) at 00:03:E3:00:18:F1 [ether] on eth0 (192.168.1.2) at 00:30:05:55:02:ED [ether] on eth0 (192.168.1.4) at 00:0C:6E:1F:32:C4 [ether] on eth0

Cada interfaz de red tiene una direccin IP y una direccin fsica MAC (direccin hardware o direccin Ethernet). ARP (Address Resolution Protocol, Protocolo de Resolucin de Direcciones), es el protocolo que relaciona una direccin fsica con una determinada IP, estando formada la tabla ARP por las direcciones MAC de los hosts que se han comunicado recientemente con nuestra mquina. para obtener la MAC del propio equipo haremos:
# ifconfig

Directivas que afectan al DNS: hay dos directivas que proporcionan al cliente la misma informacin que contiene /etc/resolv.conf: nombre del dominio DNS que se aade al nombre de cada mquina:
option domain-name "atenea.dom";

lista de servidores DNS (separados por ",") que usarn los clientes DHCP. Puede ser el servidor DNS local o los DNS del ISP:
option domain-name-servers 192.168.1.3;

Si no tenemos instalado servidor DNS: esta directiva es obligatoria, y sirve para que el servidor DHCP no intente actualizar el servidor de DNS cuando se acepta o se libera un prstamo:
ddns-update-style none;

Si tenemos instalado en la red un servidor DNS tenemos que incluir las siguientes directivas en /etc/dhcp3/dhcpd.conf para que se comuniquen DHCP y DNS: activa la actualizacin DNS con los valores asignados mediante DHCP:
ddns-updates on;

indica el dominio en el que se actualizan los DNS:


ddns-domainname "atenea.dom";

dominio inverso en el que se actualizan los DNS:


ddns-rev-domainname "in-addr.arpa";

esta lnea indica el mtodo de actualizacin DNS automtica con los valores de la IP asignados por DHCP:
ddns-update-style ad-hoc;

Adems, tendremos que editar /etc/named.conf para configurar adecuadamente cada zona DNS en la que queramos que se actualicen automticamente las IPs concedidas, incluyendo la opcin allow-update:

zone "atenea.dom" in{ type master; file "atenea.dom"; notify no; allow-update{ 127.0.0.1; 192.168.1.10; } } zone "1.168.192.IN-ADDR.ARPA" in{ type master; file "192.168.1.0"; notify no; allow-update{ 127.0.0.1; 192.168.1.10; } }

Varias interfaces de red: si la mquina donde vamos a instalar el servidor DHCP tiene varias interfaces de red, editaremos el archivo /etc/default/dhcp3-server para especificar la tarjeta de red donde queremos activar el servidor DHCP. Por ejemplo, para activar el servidor DHCP en la tarjeta de red eth0 sustituiremos la lnea:
INTERFACES=""

por:
INTERFACES="eth0"

Configurar la interfaz eth0: desactivamos la interfaz de red:


# ifdown eth0

editamos /etc/network/interfaces y asignamos a eth0 la IP adecuada, que ser esttica. activamos la interfaz de red:
# ifup eth0

Reiniciamos el servidor DHCP (el demonio es dhcpd3):


# /etc/init.d/dhcp3-server restart

Configurar los clientes DHCP


Para conectar con un servidor DHCP necesitamos el cliente DHCP (paquete dhcp3-client). Para activarlo, configuraremos la red en modo DHCP: desactivamos la interfaz de red:
# ifdown eth0

editamos /etc/network/interfaces y sustituimos las lneas:

# The primary network interface auto eth0 iface eth0 inet static address 192.168.1.3 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 # dns-* options are implemented resolvconf package, if installed dns-nameservers 80.58.61.250 80.58.61.254 dns-search fransberns.com

por:
# The primary network interface auto eth0 iface eth0 inet dhcp

Si tenemos un porttil y solemos conectarnos a dos redes diferentes, una con servidor DHCP y otra donde tenemos IP esttica, en /etc/network/interfaces tendremos que configurar dos interfaces virtuales para eth0. activamos la interfaz de red:
# ifup eth0

También podría gustarte