Sie sind auf Seite 1von 14

Capítulo 24: El Servidor DHCP

Capítulo 24:

El Servidor DHCP
• Introducción.
• Configurando un Servidor DHCP.
• Configurando un Cliente DHCP.
• Recursos Adicionales.


Sistema Operativo Linux


Capítulo 24: El Servidor DHCP

El Servidor DHCP
24.1. Introducción
El protocolo de configuración dinámica de computadoras DHCP (Dynamic Host Configuration
Protocol) es un protocolo de red para asignamiento automático de información de TCP/IP
para las máquinas de los clientes.
Cada cliente DHCP se conecta a un servidor DHCP que le retorna al cliente una configuración
de red que incluye una dirección IP, las direcciones IP de la pasarela y de los servidores DNS.
Nota:
Una pasarela es lo mismo que una puerta de enlace. Comúnmente los dispositivos asociados
a estos conceptos son los routers.

24.1.1. ¿Porqué usar DHCP?


DHCP se usa para entregar rápidamente al cliente la configuración de la red. Cuando se configura
el sistema del cliente, el administrador puede elegir DHCP evitando ingresar la dirección IP, las
direcciones IP de la pasarela y de los servidores DNS. El cliente recupera esta información del
servidor DHCP.
DHCP es especialmente usado cuando se quiere cambiar direcciones IP a un gran número de
computadoras. En vez de reconfigurar cada uno de los sistemas, se puede editar el archivo de
configuración y fijar un nuevo rango de direcciones IP. Si los servidores DNS cambian para una
organización, los cambios se realizan en el servidor DHCP, no en los clientes. Una vez que se
restablecen las sesiones de los clientes los cambios tomarán efecto.
Además, si una laptop o cualquier tipo de computadora móvil es configurada por DHCP, puede
ser movida de oficina en oficina sin ser reconfigurada siempre que cada oficina tenga un servidor
DHCP conectado a la red.

24.2. Configurando un Servidor DHCP


Puede configurar un servidor DHCP al usar el archivo de configuración: dhcpd.conf. Este archivo
puede encontrase en el directorio /etc/ o en el directorio /etc/log.d/conf/services/.
DHCP también utiliza el archivo /var/lib/dhcp/dhcpd.leases para almacenar la base de datos de
arrendamiento de clientes. Vea la sección 24.2.2 La base de datos de arrendamiento para mayor
información.


Sistema Operativo Linux

24.2.1. Archivo de Configuración


El primer paso en la configuración del servidor DHCP es crear el archivo de configuración que
almacena la información de la red para los clientes. Aquí se pueden declarar opciones globales
para todos los clientes, u opciones para cada cliente del sistema.
El archivo de configuración puede contener tabuladores extras o líneas en blanco para un
fácil formateo. Las palabras claves no son case-sensitive, y las líneas que empiezan con # son
consideradas comentarios.
Actualmente se implementan dos esquemas:
• Modo de actualización ad-hoc DNS.
• Modo de actualización interim DHCP-DNS interaction draft.
Estos métodos están en proceso de estandarización y son parte del trabajo de IETF que finalmente
terminará en un estándar. El servidor DHCP debe ser configurado para usar uno de los dos esquemas
actuales. La versión 3.0b2pl11 y las versiones previas usaron el modo ad-hoc; sin embargo, este
ha sido dejado de lado.
Si quiere mantener el mismo comportamiento, añada la siguiente línea en la parte superior de su
archivo de configuración:
ddns-update-style ad-hoc;
Para usar el modo recomendado, añada la siguiente línea en la parte superior de su archivo de
configuración:
ddns-update-style interim;
Lea la página de man sobre dhcp.conf para mayores detalles acerca de los diferentes modos.
Hay dos tipos de sentencias en el archivo de configuración:
• Parámetros:
Un parámetro declarado dice cómo hacer algo (por ejemplo, cuánto tiempo durará un
arrendamiento de dirección IP) o hacer alguna cosa (por ejemplo, se debe proveer de
direcciones IP a clientes desconocidos), o qué parámetros proveer al cliente (por ejemplo,
usar la pasarela 192.168.1.3).
• Declaraciones:
Las declaraciones se usan para describir la topología de la red, para describir los clientes
en la red, para proveer direcciones que puedan ser asignadas a los clientes o para aplicar un
grupo de parámetros a un grupo de declaraciones
En cualquier grupo de parámetros y declaraciones, todos los parámetros deben ser especificados
antes de cualquier grupo de declaraciones.


Capítulo 24: El Servidor DHCP

Las declaraciones acerca de la topología de la red incluye declaraciones de la red compartida


y subredes. Si a un cliente en una subred se le va asignar direcciones en forma dinámica
entonces debe aparecer una declaración de rangos de direcciones dentro de la declaración
de la subred.
Para clientes con asignamiento de direcciones estáticas, o para instalaciones donde sólo
clientes conocidos serán servidos, cada cliente debe tener una declaración.
Algunos parámetros deben empezar con la palabra clave option y son referidas como opciones.
Options configure DHCP options; whereas, parameters configure values that are not optional or
control how the DHCP server behaves.
Los parámetros (incluyendo opciones) declarados antes de una sección encerrada entre llaves ({
}) se consideran parámetros globales. Los parámetros globales se aplican a todas las secciones
debajo de esa declaración.
Nota:
Si cambia el archivo de configuración, los cambios no tomarán efecto hasta que restablezca el
“demonio” DHCP con el comando:

service dhcpd restart


El Ejemplo 24.1., declara una subred (subnet). Debe saber que debe incluir una declaración de
subred por cada subred en su red, si no lo hace el servidor DHCP fallará al empezar.
En el Ejemplo 24.1., las opciones routers, subset-mask, domain-name (nombre del dominio),
domain-name-servers (servidores DNS), time-offset (compensación de tiempo) se usan para
“afectar” a cualquier host configurado debajo de ellas.
En este ejemplo, hay opciones globales por cada cliente DHCP en la subred y un rango declarado.
A los clientes se les asignará una dirección IP dentro del rango expuesto.

subnet 192.168.1.0 netmask 255.255.255.0


{
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
option domain-name “example.com”;
option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
range 192.168.1.10 192.168.1.100;
}

Ejemplo 24.1. Declaración de subred.


Sistema Operativo Linux

Todas las subredes que comparten la misma red física deberían ser declaradas dentro de una
declaración shared-network como se muestra en el Ejemplo 24.2. Los parámetros dentro de
la declaración shared-network pero fuera de la declaración subset son considerados parámetros
globales. El nombre asignado a la declaración shared-network debería ser un título descriptivo
para la red, por ejemplo “labs_iciuni”, que describiría las subredes en el laboratorio “ICIUNI”.

shared-network labs_iciuni
{
option domain-name “iciuni.edu.pe”;
option domain-name-servers ns1.iciuni.edu.pe, ns2.iciuni.edu.pe;
option routers 192.168.1.254;
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.1 192.168.1.31;
}
subnet 192.168.1.32 netmask 255.255.255.0
{
range 192.168.1.33 192.168.1.63;
}
}

Ejemplo 24.2. Declaración de una red compartida.


Capítulo 24: El Servidor DHCP

Como se muestra en el Ejemplo 24.3., la declaración de grupo puede usarse para aplicar los
parámetros globales a un grupo de declaraciones. Usted puede agrupar redes compartidas, subredes,
máquinas, u otros grupos.

group
{
option routers 192.168.1.3;
option subnet-mask 255.255.255.0;
option domain-name “iciuni.com”;
option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
host josuelx
{
option host-name “josuelx.iciuni.com”;
hardware ethernet 00:05:5D:53:2F:FD;
fixed-address 192.168.1.8;
}
host caleblx
{
option host-name “caleblx.iciuni.com”;
hardware ethernet 00:05:5D:53:5F:AC;
fixed-address 192.168.1.9;
}
}

Ejemplo 24.3. Declaración de grupo.

En esta declaración de grupo se puede apreciar inicialmente que los hosts linux josuelx y caleblx
tienen direcciones IP estáticas, utilizan adaptadores de red Ethernet del mismo fabricante (ver
primeros 6 caracteres de hardware ethernet) y que pertenecen al mismo dominio.
Se aprecia también que las direcciones IP asignadas son de clase “C” (ver máscara de subred), que
la comunicación con la red externa es a través de un router con dirección IP 192.168.1.3; que la
resolución de nombres de dominio la realiza el host con dirección IP 192.168.1.1; y que utilizan
una compensación de tiempo asociada con la hora estándar del este.
Para configurar un servidor DHCP que arriende una dirección IP dinámica a un sistema dentro
de un subred, modifique el Ejemplo 24.4., con sus valores. Este ejemplo declara un tiempo del
arriendo predefinido (default-lease-time), un tiempo de arriendo máximo (max-lease-time), y
otros valores de configuración de red para los clientes. Este ejemplo asigna las direcciones de IP
en el rango 192.168.1.10 y 192.168.1.100 a los sistemas (computadoras) del cliente.


Sistema Operativo Linux

default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name “example.com”;
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.10 192.168.1.100;
}

Ejemplo 24.4. El parámetro rango.

Para asignar una dirección de IP a un cliente asociada a la dirección MAC de la tarjeta de interfaz
de red, use el parámetro hardware ethernet dentro de una declaración host. Como se demuestra
en el Ejemplo 24.5., la declaración host josuelx específica que la tarjeta de interfaz de red con el
MAC dirección 00:05:5D:53:2F:FD siempre recibe la dirección IP 192.168.1.8.
Note que también puede usar el parámetro opcional host-name para asignar un nombre al
computador del cliente.

host josuelx
{
option host-name “josuelx.iciuni.com”;
hardware ethernet 00:05:5D:53:2F:FD;
fixed-address 192.168.1.8;
}

Ejemplo 24.5. IP estático en DHCP.

Nota:
Usted puede usar un archivo de configuración inicial provisto por Linux Fedora como punto de
partida para configurar DHCP y después puede agregar sus propias opciones de configuración
personalizadas. Ejecute el comando siguiente para lograr ese objetivo:
cp /usr/share/doc/dhcp-<version-number>/dhcpd.conf.sample /etc/dhcpd.conf
(Donde: <version-number> es la versión de DHCP que usted está usando. En Linux Fedora
core 3 la versión es 3.0.1).


Capítulo 24: El Servidor DHCP

A continuación se muestra ese archivo:


[haragons@fedora3 ~]$ cat /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample

ddns-update-style interim;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option nis-domain “domain.org”;
option domain-name “domain.org”;
option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don’t change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.0.128 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}


Sistema Operativo Linux

24.2.2. Base de datos de arriendo


En el servidor DHCP, el archivo /var/lib/dhcp/dhcpd.leases almacena la base de datos de arriendo
de clientes DHCP. Este archivo no debe modificarse a mano. La información de arriendo en
DHCP de cada dirección IP recientemente asigna se guarda automáticamente en la base de datos
de arriendo. La información incluye el tiempo de arriendo, a quién se ha asignado la dirección
IP, las fechas de inicio y fin del arriendo, la dirección MAC de la tarjeta de interfaz de red que se
usa para recuperar el arriendo.
Todos los tiempos cronometrados en la base de datos de arriendo están en formato Greenwich
Mean Time (GMT), no en tiempo local.
La base de datos del arriendo de vez en cuando se actualiza (recrea) para que no sea demasiado
grande. Primero, todos los arriendos conocidos se salvan en una base de datos de arriendo temporal.
El archivo dhcpd.leases se renombra como dhcpd.leases~, y la base de datos del arriendo temporal
se escribe como dhcpd.leases.
Si el demonio DHCP no puede trabajar bien o el sistema se viene abajo después de que la base
de datos de arriendo se ha renombrado, entonces se está en problemas. Si esto pasa, significa que
no hay ningún archivo dhcpd.leases que se requiere para iniciar el servicio. No cree un nuevo
archivo de arriendo si esto ocurre. Si lo hace, todos los antiguos arriendos se perderán y se causarán
muchos problemas. La solución correcta es renombrar el archivo de respaldo dhcpd.leases~ como
dhcpd.leases y después iniciar el demonio.

24.2.3. Iniciando y deteniendo el servidor


Nota:
Antes de iniciar el servidor de DHCP por primera vez, asegúrese de que exista el archivo de
arriendo dhcpd.leases. pues si no existe el servicio fallará. En ese caso use el comando: touch
/var/lib/dhcp/dhcpd.leases para crear el archivo.
Para iniciar el servicio DHCP, use la orden /sbin/service dhcpd start. Para detener el servidor
de DHCP, use el orden /sbin/service dhcpd stop. Si usted quiere que el servicio se inicie
automáticamente en momento del “boot” configure primero siguiendo la siguiente secuencia:
Clic en el botón Aplicaciones (en el Panel)  Configuración del sistema  Configuración
de servidores  Servicios  Clic en la casilla de verificación dhcpd  Clic en la casilla de
verificación dhcrelay  Clic en el botón Guardar del menú Configuración del Servicio.
Si usted tiene más de una interfaz de red conectada al sistema, pero usted sólo quiere el servidor
DHCP empiece en una de las interfaces, usted puede configurar el servidor DHCP para sólo
empezar en ese dispositivo. Añada en el archivo /etc/sysconfig/dhcpd, el nombre de la interfaz
a la lista de DHCPDARGS:
# Command line options here
DHCPDARGS=eth0

10
Capítulo 24: El Servidor DHCP

Esto es útil si usted tiene una máquina cortafuego (firewall) con dos tarjetas de red. Una tarjeta de
red puede configurarse como cliente DHCP para recuperar una dirección de IP para Internet. La
otra tarjeta de red puede usarse como un servidor DHCP para la red interior detrás del cortafuego.
Al especificar sólo la tarjeta de red conectada a la red interna hace al sistema más seguro porque
los usuarios no pueden conectarse al daemon dhcpd vía la Internet.
Otras opciones de línea de comando que pueden especificarse en el archivo:
/etc/sysconfig/dhcpd, incluyen:
• p <portnum>: Especifique el número de puerto UDP por el que el demonio dhcpd
debe escuchar. El valor predeterminado es puerto 67. El servidor de DHCP transmite las
contestaciones a los clientes DHCP a un número de puerto mayor que el puerto del UDP
especificado. Por ejemplo, si usted acepta el valor predeterminado de puerto 67, el servidor
escucha en el puerto 67 para las demandas y contesta al cliente por el puerto 68.
Si usted específica un puerto aquí y usa el agente de relevo DHCP, usted debe especificar el
mismo puerto por el cual debe escuchar el agente de relevo DHCP. Vea la Sección 24.2.4
Agente de Relevo DHCP para los detalles.
• f: Ejecute el daemon como un proceso de primer plano (foreground). Este es principalmente
usado por poner a punto (debugging).
• d: El Registro del demonio del servidor DHCP se envía al stderr. Esto es principalmente usado
por poner a punto. Si esto no se específica, el registro se escribe a /var/log/messages.
• cf filename: Especifique la ubicación del archivo de configuración. La ruta prefinida es
/etc/dhcpd.conf.
• lf filename: Especifique la ubicación del archivo de la base de datos de arriendo. Si el archivo
de base de datos de arriendo ya existe, es muy importante que el mismo archivo se use cada
vez que el servidor de DHCP se inicie. Se recomienda que esta opción sólo se use cuando
se haga puesta a punto en máquinas no de producción. La ubicación predefinida es /var/lib/
dhcp/dhcpd.leases.
• q: No mostrar el mensaje de derechos de propiedad cuando empiece el demonio.

11
Sistema Operativo Linux

24.2.4. Agente de Relevo DHCP


El Agente de Relevo DHCP (dhcrelay) le permite relevar pedidos DHCP y BOOTP desde una
subred sin servidor DHCP en ella, para uno o más servidores DHCP en otras subredes.
Cuando un cliente DHCP pide información, el Agente de Relevo DHCP remite la demanda a una
la lista de servidores de DHCP especificada cuando el Agente de Relevo DHCP se inicia. Cuando
un servidor de DHCP devuelve una contestación, la contestación es un paquete tipo broadcast o
unicast en la red que envió la demanda original.
El Agente de Relevo DHCP escucha las demandas DHCP en todas las interfaces a menos
que las interfaces se especifiquen en el archivo /etc/sysconfig/dhcrelay con la directiva
INTERFACES.
Para iniciar al Agente de Relevo DHCP, use la orden:
service dhcrelay start.

24.3. Configurando un Cliente DHCP


The first step for configuring a DHCP client is to make sure the kernel recognizes the network
interface card. Most cards are recognized during the installation process, and the system is
configured to use the correct kernel module for the card. If you install a card after installation,
Kudzu [1] should recognize it and prompt you to configure the corresponding kernel module for
it. Be sure to check the Red Hat Linux Hardware Compatibility List available at http://hardware.
redhat.com/hcl/. If the network card is not configured by the installation program or Kudzu and
you know which kernel module to load for it, refer to Chapter 31 Kernel Modules for details on
loading kernel modules.
El primer paso por configurar a un cliente DHCP es asegurarse que el kernel reconozca la tarjeta
de interfaz de red. La mayoría de las tarjetas se reconocen durante el proceso de la instalación,
y el sistema se configura para usar el módulo del kernel correcto para la tarjeta. Si usted instala
una tarjeta después de la instalación, Kudzu la reconocerá y le sugerirá configurar el módulo del
kernel correspondiente para él. Para configurar el cliente DHCP manualmente, necesita modificar
el archivo /etc/sysconfig/network para habilitar la gestión de la red y el archivo de configuración
para cada dispositivo de red en el directorio:
/etc/sysconfig/network-scripts. En este directorio, cada dispositivo debe tener un archivo de la
configuración nombrado ifcfg-eth0 dónde el eth0 es el nombre de dispositivo de red.
El archivo /etc/sysconfig/network debería contener la siguiente línea:
NETWORKING=yes
HOSTNAME=fedora3.iciuni.edu.pe
Puede haber más información en este archivo pero la variable NETWORKING debe ser fijada a
yes, si quiere trabajar en red.

12
Capítulo 24: El Servidor DHCP

El archivo: /etc/sysconfig/network-scripts/ifcfg-eth0 debe contener las siguientes líneas:

DEVICE=eth0
BOOTPROTO=dhcp
BROADCAST=192.168.1.255
IPADDR=192.168.1.243
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.1.3
HWADDR=00:05:5d:53:55:57
USERCTL=no
PEERDNS=yes
IPV6INIT=no

Usted necesita un archivo de configuración para cada dispositivo que quiere configurar para usar
DHCP.
Si prefiere una interfaz gráfica para la configuración de un cliente DHCP, utilice la herramienta
de administración de la red: /usr/bin/system-config-network. Para invocar esta herramienta siga
cualquiera de los siguientes alternativas:

• Clic en el botón Acciones (en el Panel)  Ejecutar un programa  ingresar el comando


system-config-network.
• Clic derecho en el escritorio  Abrir un terminal  En el prompt del terminal XTerm o
GNOME ingresar el comando: system-config-network.
• Clic en el botón Aplicaciones (en el Panel)  Configuración del sistema  Configuración
de servidores  Red.
Nota:
Kudzu es una herramienta que sondea el hardware que corre al tiempo de “boot” para determinar
qué hardware ha sido añadido o removido del sistema.

13
Sistema Operativo Linux

24.4. Recursos Adicionales


Para las opciones de configuración no cubiertas aquí, por favor diríjase a las siguientes fuentes.

24.4.1. Documentación Instalada


• La página dhcpd de man:
Describe cómo trabaja el demonio DHCP.
• La página dhcpd.conf de man:
Explica cómo configurar el archivo de configuración de DHCP; incluye algunos ejemplos.
• La página dhcpd.leases de man:
Explica cómo configurar el archivo de arrendamiento de DHCP; incluye algunos ejemplos.
• La página dhcp-options de man:
Explica la sintaxis de las declaraciones de las opciones DHCP en dhcpd.conf; incluye algunos
ejemplos.
• La página dhcrelay de man:
Explica el agente DHCP Relay y sus opciones de configuración.

14

Das könnte Ihnen auch gefallen