servidor dhcp

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.

Transcript of servidor dhcp

Page 1: servidor dhcp

Capítulo 24: El Servidor DHCP

Capítulo 24:

El Servidor DHCP

• Introducción.

• Configurando un Servidor DHCP.

• Configurando un Cliente DHCP.

• Recursos Adicionales.

Page 2: servidor dhcp

2

Sistema Operativo Linux

Page 3: servidor dhcp

Capítulo 24: El Servidor DHCP

El Servidor DHCP

24.�. IntroducciónEl 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.�.�. ¿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.

Page 4: servidor dhcp

4

Sistema Operativo Linux

24.2.�. 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.

Page 5: servidor dhcp

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.

Page 6: servidor dhcp

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.

Page 7: servidor dhcp

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.

Page 8: servidor dhcp

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).

Page 9: servidor dhcp

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; }}

Page 10: servidor dhcp

�0

Sistema Operativo Linux

24.2.2. Base de datos de arriendoEn 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.�. 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 hereDHCPDARGS=eth0

Page 11: servidor dhcp

��

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.

Page 12: servidor dhcp

�2

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.�. Configurando un Cliente DHCPThe 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=yesHOSTNAME=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.

Page 13: servidor dhcp

��

Capítulo 24: El Servidor DHCP

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

DEVICE=eth0BOOTPROTO=dhcpBROADCAST=192.168.1.255IPADDR=192.168.1.243NETMASK=255.255.255.0NETWORK=192.168.1.0ONBOOT=yesTYPE=EthernetGATEWAY=192.168.1.3HWADDR=00:05:5d:53:55:57USERCTL=noPEERDNS=yesIPV6INIT=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.

Page 14: servidor dhcp

�4

Sistema Operativo Linux

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

24.4.�. 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.