Servidor de IPs Dinámicas DHCP

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

Servidor de IPs dinámicas DHCP

Mediante el protocolo cliente-servidor DHCP (Dynamic Host Configuration


Protocol, Protocolo de Configuración Dinámica de Hosts), un servidor DHCP
asigna automáticamente IPs a las máquinas que se conectan a la red. Esto es
especialmente útil en redes inalámbricas y en redes locales dónde la
configuración manual sea dificultosa debido al gran número de estaciones.
El servidor DHCP más 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.

¿Cómo funciona DHCP?


Veamos cómo negocian el cliente y el servidor DHCP la concesión de una IP.

o Si el cliente solicita una dirección IP por primera vez:


1. Solicitud de concesión: cuando arranca un cliente, intenta
conseguir una configuración válida para la red en la que está. Para ello
hace saber a los servidores DHCP que estén a la escucha que un nuevo
cliente quiere una IP válida, enviando un mensaje DHCPDiscover de
broadcast (se manda a todas las máquinas de la red) al puerto 68 UDP.
Dado que el cliente aún 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 concesión: en la red puede haber un servidor DHCP o
varios. Aquellos servidores DHCP que tengan alguna IP disponible
para conceder enviarán un mensaje DHCPOffer de broadcast al puerto
67 UDP, que contendrá la IP del servidor DHCP, la IP ofertada y los
parámetros de configuración. Esta información se "presta" y es válida
sólo durante un determinado período de tiempo, transcurrido el cual la
oferta caduca.
3. Selección de concesión: el cliente captará los DHCPOffer y
responderá enviando un mensaje DHCPRequest a la IP del servidor
solicitando la IP ofrecida.
4. Confirmación de selección: el servidor solicitado enviará un
mensaje DHCPAck de broadcast con la confirmación de la IP y los
parámetros definitivos. Una vez recibido este mensaje, el cliente
configura su interfaz de red usando la información proporcionada por
el servidor DHCP.
o Si el cliente ya tuvo una IP en esa red, el proceso es diferente:
Solicitud de renovación: cuando arranca un cliente que ya tuvo una
IP en esa red, intentará recuperar la IP de la concesión anterior, por lo
que mandará un mensaje DHCPRequest de broadcast detallando la IP
que quiere recuperar, al que sólo responderá aquel servidor que posea
en su intervalo de concesiones la IP requerida.
Confirmación de renovación: 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
información proporcionada por el servidor DHCP.
Si el cliente no pudiera utilizarla porque la está usando otro cliente o
porque el cliente se ha desplazado físicamente a otra subred y la IP
solicitada no es válida para esa red, entonces el servidor responde con
un mensaje DHCPNack, obligando al cliente a iniciar el proceso normal
de concesión.
o Si el servidor no responde, el cliente autoconfigura su interfaz IP (utilizando
la anterior concesión si dispone de ella), e intentará cada cierto tiempo
localizar un servidor DHCP y obtener una concesión.
o La información de TCP/IP que se concede al cliente debe ser renovada cada
cierto tiempo. Para ello, el cliente envía un mensaje DHCPRequest al
servidor, que responderá con un mensaje DHCPAck con la información de la
nueva concesión.
o 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, después de
leer /etc/dhcp3/dhcpd.conf lee /var/lib/dhcp3/dhcpd.leases, estableciendo
qué máquinas 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;

o Caché de asignaciones del cliente: una vez el cliente dispone de IP,


guarda los datos de la asignación en /var/run/dhclient.eth0.leases, de manera
que la próxima 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 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 del ISC


Para configurar el servidor DHCP del ISC editaremos el
archivo /etc/dhcp3/dhcpd.conf. Veamos las principales directivas:
o 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.
o servidor DHCP autoritario. Durante la instalación se nos advierte de
que "la versión 3 del servidor DHCP es no-autoritaria por omisión".
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 indicádole debe dejar de usar esa IP. Si
queremos cambiar este comportamiento debemos indicar
explícitamente 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;

o máscara de red:
option subnet-mask 255.255.255.0;

o dirección de broadcast:
option broadcast-address 192.168.1.255;

o dirección del gateway:


option routers 192.168.1.10;

o tiempo de asignación de IP (en segundos) por defecto. Un cliente


puede solicitar un determinado tiempo de vida para el préstamo. Si no
lo hace, el servidor asigna un tiempo de vida por defecto mediante esta
directiva:
default-lease-time 604800;

o tiempo máximo de asignación de IP (en segundos, en este caso una


semana). Este es el máximo tiempo que el servidor puede realizar
préstamos a los clientes. Si un cliente solicita un tiempo de concesión
mayor se ignorará su petición:
max-lease-time 604800;

o Directivas locales: las directivas que van dentro de un


apartado subnet sólo se aplican a esa subnet y sobreescriben las directivas
globales.
o red en la que queremos hacer asignaciones IP:
subnet 192.168.1.0 netmask 255.255.255.0 {

o rango de direcciones IP a asignar (se puede especificar más 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;

o terminamos de definir la subnet:


}

o Asignar IPs fijas: para asignar IP estáticas basadas en la MAC del cliente,
haremos:
host cliente1 {

hardware ethernet 00:00:17:93:8D:05;

fixed-address 192.168.1.5;
}

o Para conocer las MAC tenemos varias opciones:

o podemos usar Nmap:


# nmap -sP 192.168.1.1-255

o otra opción 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

o Cada interfaz de red tiene una dirección IP y una dirección física MAC
(dirección hardware o dirección Ethernet). ARP (Address Resolution
Protocol, Protocolo de Resolución de Direcciones), es el protocolo que
relaciona una dirección física con una determinada IP, estando
formada la tabla ARP por las direcciones MAC de los hosts que se han
comunicado recientemente con nuestra máquina.
o para obtener la MAC del propio equipo haremos:
# ifconfig

o Directivas que afectan al DNS: hay dos directivas que proporcionan al


cliente la misma información que contiene /etc/resolv.conf:
o nombre del dominio DNS que se añade al nombre de cada máquina:
option domain-name "atenea.dom";

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

o Si no tenemos instalado servidor DNS:

o 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
préstamo:
ddns-update-style none;

o 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:

o activa la actualización DNS con los valores asignados mediante DHCP:


ddns-updates on;

o indica el dominio en el que se actualizan los DNS:


ddns-domainname "atenea.dom";

o dominio inverso en el que se actualizan los DNS:


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

o esta línea indica el método de actualización DNS automática con los


valores de la IP asignados por DHCP:
ddns-update-style ad-hoc;

o Además, tendremos que editar /etc/named.conf para configurar


adecuadamente cada zona DNS en la que queramos que se actualicen
automáticamente las IPs concedidas, incluyendo la opción 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;

o Directivas que afectan a SAMBA: para que los clientes DHCP consulten
a un servidor WINS determinado para traducir los nombres SMB-NetBios a
IPs, configuraremos la dirección del servidor WINS:
option netbios-name-servers 192.168.1.10;

o Además, tendremos que habilitar WINS en el servidor SAMBA agregando las


siguientes líneas a /etc/samba/smb.conf:
wins support = yes

domain master = yes

o Varias interfaces de red: si la máquina 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 línea:
INTERFACES=""

o por:

INTERFACES="eth0"

o Configurar la interfaz eth0:


o desactivamos la interfaz de red:
# ifdown eth0

o editamos /etc/network/interfaces y asignamos a eth0 la IP adecuada,


que será estática.
o activamos la interfaz de red:
# ifup eth0

o 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:
o desactivamos la interfaz de red:
# ifdown eth0

o editamos /etc/network/interfaces y sustituimos las líneas:


# 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

o por:

# The primary network interface

auto eth0

iface eth0 inet dhcp

o Si tenemos un portátil y solemos conectarnos a dos redes diferentes, una con


servidor DHCP y otra donde tenemos IP estática,
en /etc/network/interfaces tendremos que configurar dos interfaces virtuales
para eth0.
o activamos la interfaz de red:
# ifup eth0

También podría gustarte