Está en la página 1de 14

Dynamic Host Configuration Protocol

Guillermo Veitia

6 de marzo de 2009
Índice general

1. Introducci[Pleaseinsertintopreamble]n 2

2. Definiciones 3

3. Historia 4
3.1. Reseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4. Ventajas 5

5. Tipos de asignación 6

6. Funcionamiento 7

7. El archivo /etc/dhcpd.conf 9

8. Instalacion del servidor 12

9. Instalacion del cliente 13

1
Capı́tulo 1

Introducción

DHCP (Dynamic Host Configuration Protocol) es un servicio que permite la confi-


guración automática de computadoras de una red TCP/IP que facilita la obtención de
una cantidad de parámetros que de otra forma el administrador de la red tendrı́a que
hacer de manera manual, operación que consume demasiado tiempo y esfuerzo cuando
se trata de redes grandes. Es ahı́ cuando podemos sacar mas provecho de este servicio.
Viene a ser una especie de plug-and-play para redes informáticas, ya que solo basta
con configurar una maquina como cliente de dicho servidor y listo. Los ordenadores
clientes no tienen ningún control sobre los parámetros que le fueron asignados ya que
todo el trabajo lo hace el servidor DHCP. Es también útil para ofrecerle al administrador
un control remoto y centralizado de la red, ya que de existir cambios en algún otro
servidor que este relacionado con el DHCP, no tenemos que hacerlo de manera directa
sino que cambiamos las entradas pertinentes dentro de la configuración de nuestro
servidor. Los parámetros mas comunes que un servidor DHCP configura son: direcciones
IP, mascaras de red y subred, routers, DNS entre otros. Una vez que el servidor queda
configurado correctamente no se tiene la necesidad de cambiar su configuración, a eso
debemos su confiabilidad.
Se trata de un protocolo en el que el servidor posee una lista de direcciones IP
que va a administrar ya sea de modo dinámico o estático, que va asignando a los
clientes conforme éstas van estando libres, sabiendo en todo momento quién ha estado
en posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha asignado después.
Entonces se dice que DHCP le alquila la dirección IP a la maquina, ya que solo se
la concede por un tiempo determinado, que al expirar la computadora vuelve a pedir
al servidor su dirección. Al asignar las direcciones toma la previsión de que esta no
este previamente asignada, lo cual causarı́a un conflicto, cosa que pasaba antes de la
existencia de estos servidores cuando todo el trabajo se hacia de manera manual.
En este documento explicaremos entonces como montar un servidor DHCP y como
ponerlo en funcionamiento ası́ como también ciertas cosas que hay que conocer y tener
en cuenta antes de montar el servicio.

2
Capı́tulo 2

Definiciones

Servidor DHCP: Ordenador con el software de servidor DHCP instalado y que


proporciona los parámetros de configuración TCP/IP a los clientes que lo solicitan.

Cliente DHCP: computador de la red con software de cliente DHCP instalado


y que realiza peticiones a su servidor DHCP para que le envié los parámetros
necesarios para conectarse a la red.

Gateway (puerta de enlace): es un dispositivo que permite interconectar redes


con protocolos y arquitecturas diferentes a todos los niveles de comunicación. Su
propósito es traducir la información del protocolo utilizado en una red al protocolo
usado en la red de destino. Equipo informático que permite a sus clientes el acceso
a una red exterior, generalmente realizando para ello operaciones de traducción
de direcciones IP (NAT: Network Address Translation).

Broadcast (difusión): es un modo de transmisión de información donde un no-


do emisor envı́a información a una multitud de nodos receptores de manera si-
multánea, sin necesidad de reproducir la misma transmisión nodo por nodo.

Router: es un dispositivo de hardware para interconexión de red de ordenado-


res. Este dispositivo permite asegurar el enrutamiento de paquetes entre redes o
determinar la ruta que debe tomar el paquete de datos.

NIC (Network interface card)Una tarjeta de red permite la comunicación entre


diferentes aparatos conectados entre si y también permite compartir recursos entre
dos o más equipos .

Network Time Protocol (NTP) es un protocolo de Internet para sincronizar los


relojes de los sistemas informáticos a través de ruteo de paquetes en redes con
latencia variable. NTP utiliza UDP como su capa de transporte, usando el puerto
123. Está diseñado para resistir los efectos de la latencia variable.

3
Capı́tulo 3

Historia

3.1. Reseña
1984 nace RARP
1985 publicación BootP
1993 se publica el protocolo DHCP
1994 Servidores Win NT 3.5 lo incluyen
1997 ISC publica version 1.0 para UNIX
1999 Cisco IOS 12.0 con server DHCP
1999 version 2.0 para UNIX (ajsuta a RFC)
2001 Sun añade DHCP al sistema Solaris
2003 se publica DHCPv6.

3.2. Antecedentes
RARP (Reverse Address Resolution Protocol): utilizado para resolver la direc-
ción IP de una dirección hardware dada. Cada MAC tenı́a que ser configurada
manualmente en un servidor central (sólo la dirección IP), obviando datos como
la máscara de subred, puerta de enlace, etc que tenı́an que ser configurados a
mano.
BOOTP (Bootstrap Protocol): protocolo de red UDP, permite a los ordenadores
sin disco obtener una dirección IP automáticamente antes de cargar un sistema
operativo avanzado

Ambos han dado paso a servidores DHCP cuyas ventajas veremos a continuación.

4
Capı́tulo 4

Ventajas

DHCP evita los errores de configuración que se producen por la necesidad de


escribir los valores manualmente en cada equipo.

Reduce el riesgo de conflictos IP (mencionado anteriormente).

Ayuda a evitar los conflictos de direcciones que se producen al configurar un


equipo nuevo en la red con una dirección IP ya asignada.

Permite filtrar las peticiones de IP a través de la MAC address de un computador.

Evita configurar de nuevo los pc’s portátiles en un cambio de red

El administrador podrá conocer fácilmente las direcciones asignadas a los clientes

Eficiencia en el trabajo, ya que lo haremos solo una vez en vez de configurar


manualmente cada una de las maquinas de nuestra red.

Soporta clientes de protocolo BOOTP por lo que se puede migrar a DHCP sin
problemas.

Nos permite establecer limite de tiempo a cada alquiler de dirección, Mayor se-
guridad.

5
Capı́tulo 5

Tipos de asignación

Ya hemos visto anteriormente que los servidores DHCP alquilan las direcciones IP
además de otros parámetros. Ahora procedemos a ver de que manera el DHCP se los
concede a las maquinas. El protocolo DHCP incluye cuatro métodos de asignación de
direcciones IP:

Asignación estática (manual): asocia una dirección IP a una máquina determi-


nada, por lo que es hecha directamente por el administrador. Se suele utilizar
cuando se quiere controlar la asignación de dirección IP a cada cliente, y evitar,
también, que se conecten clientes no identificados. No pueden ser reasignadas por
el servidor a otros clientes después de expirada.

Asignación automática: Asigna solamente direcciones IP de forma permanente


a una máquina cliente la primera vez que hace la solicitud al servidor DHCP,
dejando el resto de la configuración en sus manos. Dura hasta que el cliente la
libera. Después de que se asocia la IP con la MAC address de la maquina el
vinculo es permanente a menos que el administrador intervenga. Estas no pueden
ser reclamadas por el servidor.

Asignación dinámica: el único método que permite la reutilización dinámica de las


direcciones IP. El administrador de la red determina un rango de direcciones IP y
cada computadora conectada a la red está configurada para solicitar su dirección
IP al servidor cuando esta inicia. Esto facilita la instalación de nuevas máquinas
clientes a la red. El servidor mantiene un registro de estas direcciones y las asigna
al estar libres. No necesita interacción alguna por parte del administrador.

BOOTP: direcciones reservadas para el uso de clientes BOOTP. Esto permite


crear un pool de direcciones IP destinadas solo a estos usuarios.

6
Capı́tulo 6

Funcionamiento

El funcionamiento del servicio DHCP se basa en una arquitectura cliente/servidor,


por lo que necesitamos de un servidor DHCP y de al menos un cliente para su fun-
cionamiento. El caso mas simple seria aquel en el que una sola computadora le pide
al servidor su dirección IP (ası́ como el resto de sus parámetros), que en caso de no
existir el servidor DHCP en nuestra red, se verı́a sustituido por un router u otro agente
que conozca la dirección del servidor DHCP. El proceso de asignación de parámetros
empieza cuando un cliente DHCP se inicia, y mientras esta el runlevel init envı́a un
mensaje broadcast de manera que cualquier servidor DHCP (ya sea local o en una red
remota) pueda detectarlo. Se habla de mensajes de broadcast o de difusión debido a
que todavı́a el cliente no tiene su dirección IP y esta es la única manera de que el cliente
reciba la información. En este mensaje indica que se está iniciando y que necesita una
nueva dirección IP. Aquellos servidores DHCP que estén activos contestan a la petición
de alquiler del cliente con otra difusión. Cuando recibe la primera de estas “ofertas” el
cliente siempre la acepta, enviando en ese instante otro mensaje de difusión para infor-
mar que ha recibido una dirección IP y la ha aceptado, y ası́ los demás servidores DHCP
sabrán que la petición ya ha sido atendida. Para finalizar el proceso, el servidor DHCP
que le alquila la dirección IP le manda una especie de “acuse de recibo” al cliente, el
cual puede empezar a usar esta nueva IP sin problemas. Este alquiler de la dirección
y demás parámetros durara por un tiempo determinado (especificado en uno de los
archivos de configuración), luego del cual el cliente debe solicitar una renovación. Esta
es renovada de manera automática siempre y cuando no haya sido requerida por nadie
luego de haber expirado y obviamente si el servidor DHCP sigue en pie. Si la dirección
no estuviese disponible por cualquier razón, se deberá iniciar de nuevo el proceso de di-
fusión para solicitud de un nueva IP. Esto es en modo resumido el recorrido que se hace
para que una máquina cliente obtenga una dirección IP. Para ser mas técnicos podemos
darle nombres a cada uno de los mensajes de difusión mencionados anteriormente:

DHCPDISCOVER: Difusión del cliente buscando servidores DHCP. Se da mien-


tras el cliente esta en estado init.

DHCPOFFER: Respuesta del servidor con una propuesta de parámetros.

7
DHCPREQUEST: El cliente difunde el servidor preferido. Implı́citamente declina
el ofrecimiento de los demás.

DHCPACKNOWLEDGE: fase final en la que el servidor ya ha recibido el re-


quest por lo que manda un paquete DHCPACK que contiene todos los datos del
arrendamiento. En este punto, la configuración se ha completado.

Algunos casos más especı́ficos serian: Si el servidor consigue la dirección buscada y el


cliente la puede recibir el servidor envı́a DHCPACK. Si la dirección no esta disponible
o no se le permite tenerla el servidor envı́a DHCPNACK. Si el servidor no conoce nada
sobre la dirección ignora el request. Si a un cliente se le ha asignado una dirección fija
a través de una declaración host, este tomara obligatoriamente esa dirección IP sin
tener que pasar por asignación dinámica. El servidor antes de asignar una dirección
mira si el cliente tiene una licencia valida, o si hay alguna dirección que ha tenido
anteriormente que no haya sido asignada. De ser axial el servidor chequea si al cliente
se le permite tenerla. Si no, el DHCP libera la dirección de no haberlo hecho antes. Si
no se le asigno, el servidor mirara en el pool de direcciones respectivo que contiene el
rango de direcciones IP que pueden asignársele a dicha maquina. Si se consigue en el
pool una dirección valida para la maquina que no haya sido asignada, se le asigna a el
cliente DHCP. En caso contrario, si la dirección perteneció a alguien dentro de la red,
el DHCP sigue buscando a ver si encuentra otra dirección sin precedentes.
El servidor DHCP genera a partir de una hash table la lista de direcciones IP dis-
ponibles para asignar. Esto significa que las IP no están ordenadas de ninguna manera,
por lo que es imposible predecir el orden en el que el servidor asignara las direcciones
IP.

8
Capı́tulo 7

El archivo /etc/dhcpd.conf

Es el archivo principal para la configuración del servidor DHCP. No tiene un for-


mato fijo, aunque si de debe hacer de cierta manera para que todo funcione bien. El
paquete DHCP no viene directamente con este archivo, por lo cual tenemos que crear
uno nosotros, siguiendo unos formatos preestablecidos para sacar el máximo provecho
de este servicio. Este archivo no presta atención a las mayúsculas, se puede colocar
comentarios donde sea. Cuando el servidor DHCP inicia, lee el archivo de configuración
/etc/dhcpd.conf de la maquina que lo aloja. De ese archivo saca las caracterı́sticas del
la red que va a configurar a continuación. El archivo esencialmente esta comprendido
por una lista de parámetros y una lista de declaraciones. Los parámetros nos muestran
como hacer y cuando hacer determinada operación, ası́ como también que parámetros
proveerle a los clientes. Ej: cuanto tiempo dura el alquiler de la IP, debe o no ofrecer di-
recciones a no clientes, usar tal gateway, etc. Las declaraciones se usan para describir la
forma de la red, para describir clientes, proveer direcciones asignables, aplicar paráme-
tros a un grupo. Todos los parámetros deben estar identificados antes de cualquier
declaración si estas dependen de el. Las que tratan sobre la forma incluyen declaracio-
nes subnet, shared-network, range, host, group, pool y otros. Un formato estandar para
el archivo es:
#Formato del archivo /etc/dhcpd.conf
#Entre los parametros que podemos configurar en este archivo estan:
#Dirección del servidor DNS
#Nombre DNS
#Puerta de enlace de la dirección IP
#Dirección de Publicación Masiva (broadcast address)
#Máscara de subred
#Tiempo máximo de espera del ARP (Protocolo de Resolución de Direcciones)
#MTU (Unidad de Transferencia Máxima) para la interfaz
#Servidores NIS (Servicio de Información de Red)
#Dominios NIS
#Servidores NTP (Protocolo de Tiempo de Red)
#Servidor SMTP

9
#Servidor TFTP
#Nombre del servidor WINS

global parameters...
option domain-name "ldc.usb.ve";
option domain-name-servers hola.ldc.usb.ve, chao.ldc.usb.ve
subnet 192.168.1.0 netmask 255.255.255.0 {
# El rango de direcciones ip que el servidor
# tendra para repartir.
range 192.168.1.201 192.168.1.220;

# Cantidad de tiempo que una ip se


# mantendra valida
default-lease-time 86400;
max-lease-time 86400;

# Gateway que sera usado por los clientes


# de DHCP
option routers 192.168.1.1;

# No reenvia requests de una NIC


# a ninguna otra NIC de la interfaz
option ip-forwarding off;

# Establece la broadcast address y la


# subnet mask que usaran los clientes
# de DHCP
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;

# Establece el servidor NTP que usaran


# los clientes
option ntp-servers 192.168.1.100;

# Establece el DNS que sera usado por


# los clientes DHCP
option domain-name-servers 192.168.1.100;

# Asignacion de ip estaticas. Se especifica


# la MAC address de la maquina
host laser-printer {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.222;

10
}

# Crea un grupo para administrar mejor


# las direcciones IP
group {
group-specific parameters...
host zappo.ldc.usb.ve {
host-specific parameters...
}
host beppo.test.isc.org {
host-specific parameters...
}
}

# Declaracion para crear un pool


# de direcciones que admita solo
# maquinas no clientes
pool {
option domain-name-servers bogus.ldc.usb.ve;
max-lease-time 300;
range 192.168.1.210 192.168.1.220;
allow unknown-clients;
}

# Luego se hace lo mismo con cada subred


# a especificar con los parametros que
# necesitemos
subnet 192.168.2.0 netmask 255.255.255.0 {
}

11
Capı́tulo 8

Instalacion del servidor

Ahora procederemos con la instalación del servidor DHCP, luego de haber repasado
todo lo necesario.

1. Procedemos con la creación del archivo dhcpd.leases, esencial para que el servidor
lleve el registro de las direcciones IP que ha tenido una maquina, axial como otras
informaciones.

touch /var/lib/dhcp/dhcpd.leases

2. Usar alguno de estos comandos para configurar el inicio del servidor DHCP al
inicio para no tener que hacerlo manualmente.

chkconfig dhcpd on
sysv-rc-conf dhcp3-server on

3. Usar alguno de estos comandos para darle ordenes al script en /etc/init.d/dhcpd

service dhcpd start / stop / restart


/etc/init.d/dhcp*-server start / stop / restart

4. Reiniciar el servidor luego de cada edición hecha en alguno de los archivos para
que tomen efecto. Podemos utilizar el comando pgrep dhcpd para verificar si el
proceso se esta ejecutando.

12
Capı́tulo 9

Instalacion del cliente

13