DHCP mini-COMO (DHCPd/DHCPcd)

Vladimir Vuksan, vuksan@veus.hr
Traducido por David Limón Romero, dlr@cuates.pue.upaep.mx

Original: v4.4, 11 Septiembre 1999
Este documento intenta responder las preguntas básicas sobre cómo configurar su Caja de Linux como un servidor DHCP o como un cliente DHCP.

1. Introducción

1.1 Renuncia Estándar

No se puede aceptar la confiabilidad de los contenidos de este documento. Use los conceptos, ejemplos y otros contenidos bajo su propio riesgo. Como ésta es una edicion nueva de este documento, puede haber errores e inexactitudes, que podrían, estar dañando su sistema. Proceda con precaución, y aunque esto es altamente inverosímil, no tomo ninguna responsabilidad de ello.

También tenga en mente que esta NO es información oficial. Mucho del contenido de este documento son cuestiones que se han asumido, las cuales parecen funcionar para la gente. Use esta información bajo su propio riesgo.

1.2 Versiones Nuevas de este Documento

Las versiones nuevas de este documento se publicarán periódicamente en comp.os.linux.answers. También se adicionarán a varios de los sitios de FTP anónimo que archivan tal información, incluyendo:

ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/

Además, Ud. generalmente debería estar en posibilidad de encontrar este documento en la página del Linux Documentation Project por medio de:

http://www.linuxdoc.org/

Están disponibles las siguientes traducciones del DHCP mini-HOWTO:

Por este medio se autoriza a todas las personas quienes deseen traducir éste documento a su propio idioma. Sólo pido que pongan un enlace hacia este documento e informarme la URL de su traducción para que pueda incluir un enlace a ésta.

1.3 Retroalimentación

La retroalimentación es bienvenida para este documento. Sin sus reportes y comentarios, este documento no existiría. Así que por favor, envíeme sus modificaciones, comentarios, y críticas a vuksan@veus.hr.

1.4 Colaboradores

Este documento ha sido modificado desde la versión original de Paul Makeev.

(--N. del T.: Esta traducción también ha sido modificada desde la traducción original de Pedro Pablo Fábrega Martínez--)

Las siguientes personas han contribuído a este mini-Como.

1.5 Información de derechos de copia

Este documento está protegido (c)1998 por Vladimir Vuksan y se distribuye bajo los siguientes términos:

linux-howto@metalab.unc.edu

2. El protocolo DHCP

DHCP es Dynamic Host Configuration Protocol. (Protocolo de configuración dinámica de host). Se usa para controlar parámetros vitales de red de los hosts (corriendo clientes) con la ayuda de un servidor. DHCP es compatible hacia atrás con BOOTP. Para más información revise el RFC 2131 (antiguo RFC 1531) y otros. (Revise la sección Internet Resources al final del documento). También puede leer: DHCP FAQ.

Este mini-Cómo cubre el demonio DHCP _SERVER_ así como el demonio DHCP _CLIENT_. La mayoría de personas necesitan el demonio cliente, el cual se utiliza en las estaciones de trabajo para obtener información de red desde un servidor remoto. El demonio servidor lo utilizan los administradores de sistemas para distribuir información de red a los clientes, así que si Ud. es un usuario regular, necesita el demonio _CLIENT_.

3. Configuración del Cliente

Actualmente hay tres programas clientes DHCP para linux, dhcpcd, pump y dhclient. Este mini-Cómo trata con dhcpcd.

3.1 Descargando el demonio cliente (dhcpcd)

Kernels 2.0.x

Sin importar que distribución esté usando, necesitará descargar el demonio cliente DHCP para Linux. El paquete que necesita descargar se llama dhcpcd y la versión actual es 0.70. Puede leer la descripción del paquete aqui.

Kernels 2.2.x

Debido a los cambios en el paquete de red ipv4 en los kernels 2.1.x y 2.2.x (por ejemplo. la forma en cómo se establecen por omisión algunos campos) dhcpcd no funciona apropiadamente. A menos que esté utilizando RedHat 6.x (el cual viene con dhcpcd 1.3.x y kernel 2.2.x) necesitará descargar una versión alterna de dhcpcd (1.3.x) la cual es una versión modificada que ha sido escrita por Sergei Viznyuk sergei@phystech.com para prevenir los problemas mencionados. dhcpcd 1.3.x debería trabajar bajo los kernels 2.0.x también. Puede obtenerlos en:

Entonces, siga las instrucciones de abajo. Pueden ser lo mismo.

3.2 Slackware

Puede obtener la última copia de DHCPcd en cualquier réplica de Metalab o en alguno de los siguientes:

Descargue la última versión de dhcpcd.tar.gz

Esto creará el directorio /etc/dhcpc donde DHCPcd almacenará la información DHCP y el archivo dhcpcd se copiará a /usr/sbin.

Para hacer que el sistema inicie usando DHCP mientras arranque, teclee:

cd /etc/rc.d

mv rc.rc.inet1 rc inet1.OLD

Esto moverá el script de inicialización de red anterior a rc.inet1.OLD. Ahora necesitará crear el nuevo script rc.inet1. El siguiente código es todo lo que necesita:

#!/bin/sh
#
# rc.inet1      Este script de shell inicia el sistema base INET.

HOSTNAME=`cat /etc/HOSTNAME` #Esto probablemente no sea necesario
                             #pero lo dejaremos así de todos modos

# Conectar el dispositivo loopback
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo

# SI TIENE UNA CONEXIÓN ETHERNET, use las líneas de abajo para
# configurar la interface eth0. Si sólo está utilizando loopback
# o SLIP, no incluya el resto de las líneas en este archivo.

/usr/sbin/dhcpcd

Guárdelo y reinicie su computadora.

Cuando haya terminado, vaya al último paso

3.3 RedHat 6.x y Mandrake 6.x

La configuración de DHCPcd bajo RedHat 6.0+ es realmente fácil. Todo lo que necesita hacer es iniciar el Control Panel tecleando:

control-panel

Por favor note que en RedHat 6.x Redhat por omisión incluye un cliente DHCP llamado pump en lugar del anteriormente mencionado dhcpcd. El CD-ROM incluye un RPM de dhcpcd así que si no tiene suerte con pump, instale dhcpcd e intente seguir las instrucciones de instalación para Redhat 5.x

He aqui algunas notas adicionales de Alexander Stevenson mailto:alexander.stevenson@home.com:

No tuve suerte con DHCPcd. Lo que finalmente funcionó para mi fué «pump», el cual viene con Linux Mandrake 6.0 (y así asumí que está incluído con RedHat también). El comando que usé fué:

pump -i eth0 -h hostname

No hay problema con qué era «hostname», pero sin eso el servidor no respondería.

Luego cambié la línea en mi script /sbin/ifup para reflejar el cambio; la versión por omisión no tiene la opción -h, y así no funcionó para mi.

Básicamente, si está utilizando linuxconf, y después de establecer el adaptador como «DHCP» todavía no funciona, intente agregar un «-h hostname» a la línea de pump en el script /sbin/ifup. Mi script ahora se ve como esto:

...
if [ -n "$PUMP" ]; then
        echo -n "Determinando información IP para $DEVICE..."
        if /sbin/pump -i $DEVICE -h hostname; then
                echo " hecho."
        else
                echo " fallo."
                exit 1
        fi
else ...

Y ya está. Reinicie su máquina o teclee:

/sbin/ifup eth0

En la línea de comandos.

3.4 RedHat 5.x

La configuración por DHCPcd bajo RedHat 5.0+ es realmente fácil. Todo lo que necesita hacer es iniciar el Control Panel tecleando:

control-panel

Cuando haya terminado, vaya al último paso

3.5 RedHat 4.x y Caldera OpenLinux 1.1/1.2

DHCPcd se incluye en la distribución estándar de RedHat como un RPM y puede encontrarlo en el CD-ROM de su distribución en el directorio RPMS o puede obtenerlo de:

ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm

e instálelo con

rpm -i dhcpcd-0.6-2.i386.rpm

Alternativamente puede compilar su propia versión siguiendo los pasos mencionados en Slackware.

Esta información me fué proporcionada por nothing nothing@cc.gatech.edu

Removí ip estática y mi nombre de /etc/resolv.conf. Sin embargo, 
dejé en la línea de búsqueda y mis dos líneas de servidores nombre
(por alguna razón mi dhcpcd nunca crea un /etc/dhcpc/resolv.conf,
así que tuve que usar un /etc/resolv.con estático).

En /etc/sysconfig/network removí las entradas HOSTNAME y GATEWAY.
Dejé las otras entradas como estaban (NETWORKING, DOMAINNAME, 
GATEWAYDEV).

En /etc/sysconfig/network-scripts/ifcfg-eth0 removí las entradas
IPADDR, NETMASK, NETWORK, y BROADCAST. Dejé DEVICE y ONBOOT como
estaban.
Cambié la línea BOOTPROTO a BOOTPROTO=dhcp.

Guarde el archivo. Reinicie su computadora.

Cuando haya terminado, vaya al último paso

3.6 Debian

Hay un paquete deb de DHCPcd en

ftp://ftp.debian.org/debian/dists/slink/main/binary-i386/net/dhcpcd_0.70-4.deb

o puede seguir las instrucciones de instalación de Slackware.

Para desempaquetar el paquete deb teclee

dpkg -i /donde/estén/sus/paquetes/de/debian/dhcp*deb

Parece que no hay necesidad de cualquier configuración de DHCPcd porque:

From: Heiko Schlittermann (heiko@os.inf.tu-desden.de)

El paquete dhcpcd instala su script de inicio como cualquier paquete debian usual en /etc/init.d/<nombre_de_paquete>, ahí como en /etc/init.d/dhcpcd, y enlaza esto a ls directorios /etc/rc?.d/.

El contenido de los directorios /etc/rc?.d/ se ejecutará al momento de arrancar.

Si no reinicia después de instalar, debería considerar el iniciar el demonio manualmente:

/etc/init.d/dhcpcd start

Cuando haya terminado, vaya al último paso

3.7 LinuxPPC y MkLinux

La siguiente sección fué escrita por R. Shapiro

Para la versión «1999» (R5), Linuxppc es completamente compatible con Redhat 6, con una advertencia (mire abajo). En general, las instrucciones son exactamente las mismas como para la versión actual de Redhat 6.x.

El problema restante es que Redhat 6 usa el cliente «pump» para dhcp por omisión, y «pump» no trabaja confiablemente en Linuxppc. Para resolver esto, debería instalar el último dhcpcd de Sergei Viznyuk, y luego editar /sbin/ifup para usar dhcpcd en lugar de pump. Cambie

if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
        PUMP=true
fi
if [ -n "$PUMP" ]; then

con

if [ "$BOOTPROTO" = bootp ]; then
                echo " hecho."
        else
                echo " fallo."
                exit 1
        fi
elif [ "$BOOTPROTO" = dhcp ]; then
        echo -n "Determinando informacion IP para $DEVICE..."
        if /sbin/dhcpcd -d $DEVICE ; then
          if [ -f /etc/dhcpc/dhcpcd-${DEVICE}.exe ]; then
                /etc/dhcpc/dhcpcd-${DEVICE}.exe
          fi

y los cambios correspondientes para ifdown. Cambie

if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
...
fi

con

if [ "$BOOTPROTO" = bootp ]; then
fi

if [ "$BOOTPROTO" = dhcp ]; then
        if [-f /var/run/dhcpcd-${DEVICE}.pid ]; then
                kill `cat /var/run/dhcpcd-${DEVICE}.pid`
                rm -f /vat/run/dhcpcd-${DEVICE}.pid
        fi
fi

En el CD de Linuxppc 1999 se incluye un rpm funcional para ppc de dhcpcd; un rpm levemente posterior está disponible en el directorio contrib de ftp://ftp.linuxppc.org. Los fuentes, los cuales se compilan fuera de la caja de Linuxppc 1999, están disponibles en

ftp://ftp.phystech.com/pub/dhcpcd-1.3.17-pl9.tar.gz

3.8 Poniendo todo junto

Después de que su computadora reinicie su interface de red debe ser configurada. Teclee:

ifconfig

Ud. debería obtener algo como esto

lo      Link encap:Local Loopback
        inet addr:127.0.0.1  Bcast:125.255.255.255  Mask:255.0.0.0
        UP BROADCAST LOOPBACK RUNNING  MTU=3584  METRIC:1
        RX packets:302 errors:0 dropped:0 overruns:0 frame:0
        TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0

eth0:   Link encap:Ethernet  HWaddr 00:20:AF:EE:05:45
        inet addr:24.128.53.102  Bcast:24.128.53.255  Mask:255.255.254.0
        ^^^^^^^^^^^^^^^^^^^^^^^
        UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:24783 errors:1 dropped:1 overruns:0 frame:1
        TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96
        Interrupt:10 Base address:0x300

Si tiene algún número normal bajo inet. addr ya está configurado. Si ve 0.0.0.0 no desespere, es una configuración temporal antes de que dhcpcd adquiera la dirección IP. Si incluso después unos minutos sigue viendo 0.0.0.0 por favor revise resolución de problemas. DHCPcd es un demonio y permanecerá ejecutándose tanto como tenga su máquina encendida. Cada 3 horas contactará al servidor DHCP y tratará de renovar la dirección IP. Almacenará todos los mensajes en el syslog (en slackware /var/adm/syslogm RedHat/OpenLinux /var/log/syslog).

Una cosa final. Ud. necesita especificar sus servidores de nombres. Hay 2 formas de hacerlo, puede solicitar a su proveedor que le proporcione las direcciones de su servidor de nombres y luego ponerlas en /etc/resolv.conf o DHCPcd obtendrá la lista del servidor DHCP y escribirá un resolv.conf en /etc/dhcpc. Decidí usar DHCPcds resolv.conf usando lo siguiente:

Respalde su /etc/resolv.conf anterior

mv /etc/resolv.conf /etc/resolv.conf.OLD

si el directorio /etc/dhcpc no existe, crearlo

mkdir /etc/dhcpc

Cree un enlace de /etc/dhcpc/resolv.conf a /etc/resolv.conf

ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf

Si eso no funciona, intente esto: (reparación sugerida por nothing@cc.gatech.edu con una poca de ayuda de Henrik Stoerner)

Este último paso lo tuve que realizar sólo porque mi dhcpcd no crea un /etc/dhcpc/resolv.conf. En /etc/sysconfig/network-scripts/ifup hice los siguientes cambios (los cuales son muy pobres, pero funcionan para mi):

elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
        echo -n "Using DHCP for ${DEVICE}..."
        /sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE}
        echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh

        if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
            ^^^^
                echo "failed."
                exit 1

Lo cambié a:

elif [ "$BOOTPROTO = dhcp -a "$ISALIAS" = no ]; then
        echo -n "Usando DHCP para ${DEVICE}..."
        /sbin/dhcpcd
        echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh
        
        if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
            ^^^^^^
                echo "fallo."
                exit 1

Note el ! (bang) en if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ];

Ahora póngase cómodo y disfrútelo :-).

3.9 Algunas Notas

Los siguientes pasos no son necesarios pero podrían ser de utilidad para algunas personas

a) Si necesita conectividad a la red sólo ocasionalmente Ud. puede iniciar dhcpcd desde la línea de comandos (debe ser root para hacer esto) con:

/usr/sbin/dhcpcd

Cuando necesite desconectarse de la red teclee:

/usr/sbin/dhcpcd -k

3.10 Resolución de problemas

Si ha seguido los pasos mencionado anteriormente y no puede accesar a la red, hay varias explicaciones posibles:

I. Su tarjeta de red no está configurada apropiadamenrte

Durante el proceso de arranque su Linux probará su tarjeta de red y debería decir algo como las siguientes líneas:

eth0: 3c509 at 0x300 tag 1, 10baseT port, address  00 20 af ee 11 11, IRQ 10.
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov

Si no aparece un mensaje como este, su tarjeta ethernet puede que no esté siendo reconocida por su sistema Linux. Si tiene una tarjeta ethernet genérica (un clon de NE2000) Ud. debería haber recibido un disco con utilidades DOS que puede utilizar para configurar la tarjeta. Intente jugar con IRQs hasta que Linux reconozca la tarjeta (IRQs 9, 10, 12 usualmente son buenas).

II. Su servidor DHCP soporta RFC 1541/Mi servidor DHCP es Windows NT

Intente ejecutar dhcpcd tecleando

dhcpcd -r

Use ifconfig para verificar si su interface de red está configurada (espere unos segundos para el proceso de configuración, inicialmente dirá Inet.addr=0.0.0.0)

Si esto resuelve su problema agregue la opcion "-r" a los scripts de inicio por ejemplo. en lugar de /sbin/dhcpcd deberá tener /sbin/dhcpcd -r

Por ejemplo bajo RedHat edite el script /etc/sysconfig/network-scripts/ifup y cambie lo siguiente

        IFNAME=$[ {DEVICE} \
        "/sbin/dhcpcd -r -c /etc/"- etc etc.

III. Durante el arranque obtengo el mensaje "Using DHCP for eth0 ... failed" pero mi sistema trabaja bien.

Ud. está usando RedHat y no ha seguido las instrucciones cuidadosamente :-). Está olvidando el ! (bang) en una de las declaraciones if. Vaya aquí y vea como reparar esto.

IV. Mi red funciona por unos minutos y luego deja de responder

Hay algunos reportes de que gated (gateway daemon) interfiere el enrutamiento en las cajas Linux lo cual resulta en el problema descrito anteriormente. Verifique si gated está activo.

ps -auxww | grep gate

Si esto es, intente removerlo con el manejador de RPMS de RedHat o elimine la entrada en /etc/rc.d/

V. Mi tarjeta ethernet se reconoce durante el proceso de arranque pero todavía obtengo el mensaje "NO DHCPOFFER" en mis registros. Además de que tengo una tarjeta ethernet PCMCIA.

Necesita asegurarse que tiene activado el puerto 10BaseT (conexión "telefónica" en su tarjeta de red. La mejor forma de verificar esto es observando qué tipo de conector está configurado en su tarjeta durante el arranque, por ejemplo:

eth0: 3c509 at 0x300 tag 1, 10baseT port, address  00 20 af ee 11 11, IRQ 10.
                            ^^^^^^^^^^^^
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nas.gov

He recibido informes de usuarios de portátiles que tienen este tipo de problemas debido a que las utilidades PCMCIA (específicamente ifport) que deberían establecer el conector de tipo 10Base2 (thinnet). Debe asegurarse que está utilizando 10BaseT para su conexión. Si no, reconfigure la tarjeta y reinicie la computadora.

VI. Mis solicitudes del cliente DHCP se envían a todos, pero ninguno responde (Contribución de Peter Amstutz)

En algunos sistemas, necesita incluir algún nombre de host para su máquina como parte de la solicitud. Con dhcpcd, hága esto con 'dhcpcd -d foohost' Probablemente el nombre de host buscado será su nombre de usuario para su cuenta en la red.

VII. He seguido todos los pasos pero todavía mi máquina no puede conectarse

El cable módem usualmente memoriza la dirección ethernet de su tarjeta de red así si se conecta a una computadora nueva o cambia tarjetas de red, Ud. deberá "enseñarle" al cable módem a reconocer la nueva computadora/tarjeta. Usualmente debe apagar el módem y re-establecerlo mientras su computadora está encendida o deberá llamar al soporte técnico y decirles que ha cambiado una tarjeta de red en la computadora.

Tiene reglas de cortafuegos (reglas ipfwadm) que desactivan los puertos 67/68 de tráfico usado por DHCP para distribuir la información de configuración. Revise sus reglas del cortafuegos cuidadosamente.

VIII. Tengo el servicio MediaOne Express y todavía no puedo conectarme.

Parece que MediaOne ha estado añadiendo algunas cosas a DHCP que no deberían estar ahí. Supuestamente esto ya no es un problema, pero si experimenta interrupciones, verifique esas cosas. Si Ud. es un (des)afortunado poseedor de Windows NT en su máquina, si se dirige al Visor de Eventos verá un mensaje de advertencia como este.

DHCP receiver an unknown option 067 of length 005. The raw option data is given below.

0000: 62 61 73 69 63 basic

Si es éste el problema, dirígase a ftp://vanbuer.ddns.org/pub/ y obtenga un paquete binario, o bien un paquete con los fuentes.

4. Configuración del servidor DHCP

4.1 Servidor DHCP para UNIX

Hay varios servidores DHCP disponibles para sistemas operativos de tipo U*X, ambos, comerciales y libres. Ono de los servidores DHCP libres más populares es Paul Vixie/ISC DHCPd. Actualmente la última versión es 2.0 (sugerida para la mayoría de usuarios) pues la 3.0 está en versión beta. Puede obtenerla en

ftp://ftp.isc.org/dhcp/

Alguna de las distribuciones proveen paquetes binarios para dhcpd así que se puede saltar a la siguiente sección si lo obtuvo de esa forma.

Después de descargarlo, desempaquételo. Después de entrar al directorio de distribución y teclee:

./configure

Tomará algo de tiempo para configurar. Después de hacerlo teclee:

make

y

make install

4.2 Configuración del servidor DHCP

Cuando haya hecho la instalación teclee ifconfig -a. Deberá ver algo como esto:

eth0    Link encap:10Mbps Ethernet  HWaddr 00:C0:4F:D3:C4:62
        inet addr:183.217.19.43  Bcast:183.217.19.255  Mask:255.255.255.0
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:2875542 errors:0 dropped:0 overruns:0
        TX packets:218647 errors:0 dropped:0 overruns:0
        Interrupt:11 Base address:0x210

Si no dice MULTICAST deberá reconfigurar su kernel y agregar el soporte multicast. En la mayoría de sistemas no necesitará hacer esto.

El paso siguiente es agregar una ruta para 255.255.255.255. Tomado del README de DHCPd:

"Para que dhcpd funcione correctamente con clientes DHCP quisquillosos (Windows 95, por ejemplo), deberá estár en posibilidad de enviar paquetes con una dirección IP destino de 255.255.255.255. Desafortunadamente, Linux insiste en cambiar 255.255.255.255 a la dirección de broadcast de la subred local (aqui, esto es 192.5.5.223). Esto resulta en DHCP una violación del protocolo, y mientras muchos clientes DHCP no notan el problema, algunos (todos los clientes DHCP de Microsoft, por ejemplo) lo hacen. Los clientes que tienen este problema parecerán no ver los mensajes DHCPOFFER del servidor."

Teclee:

route add -host 255.255.255.255 dev eth0

Si obtiene el mensaje

"255.255.255.255: Unknown host"

Deberá intentar agregar la siguiente entrada a su archivo /etc/hosts:

255.255.255.255 all-ones

Y entonces pruebe:

route add -host all-ones dev eth0

o

route add 255.255.255.0 dev eth0

eth0 es, por supuesto, el nombre del dispositivo de red que se está utilizando. Si difiere cámbielo de la forma apropiada.

4.3 Opciones para DHCPd

Ahora necesita configurar DHCPd. Para hacer esto tendrá que crear o editar /etc/dhcpd.conf. Hay una interface gráfica para la configuración de dhcpd bajo KDE ( http://www.kde.org) llamada kcmdhcpd que es muy similar al configurador DHCP de Windows NT. Cuando salga KDE 2.0 deberá venir con kcmdhcpd o puede obtenerlo directamente de:

ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/

Si busca configurarlo a mano, siga las instrucciones de abajo.

# Un simple /etc/dhcpd.conf
# (agregue sus comentarios aqui)
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 "midominio.org";

subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.10 192.168.1.100;
        range 192.168.1.150 192.168.1.200;
}

Esto resultará ser un servidor DHCP que dá a un cliente una dirección IP del rango 192.168.1.10-192.168.1.100 o 192.168.1.150- 192.168.1.200. Retendrá la dirección por 600 segundos si el cliente no solicita un intervalo de tiempo específico. Del mismo modo, el tiempo máximo (permitido) para retener la dirección será de 7200 segundos. El servidor también "avisará" al cliente que deberá usar 255.255.255.0 como máscara de subred, 192.168.1.255 es su dirección de broadcast, 192.168.1.254 como enrutador/puerta de enlace y 192.168.1.1 y 192.168.1.2 como sus servidores DNS.

Si necesita especificar un servidor WINS para sus clientes Windows necesitará incluir la opción netbios-name-servers por ejemplo:

option netbios-name-servers 192.168.1.1;

Puede también asignar direcciones IP específicas basadas en la dirección ethernet del cliente, por ejemplo

host haagen {
        hardware ethernet 08:00:2b:4c:59:23;
        fixed-address 192.168.1.222;
}

Esto asignará la dirección IP 192.168.1.222 al cliente con la dirección ethernet 08:00:2b:4c:59:23.

Puede también mezclar y comparar, por ejemplo, puede tener ciertos clientes que obtengan direcciones IP "estáticas" (por ejemplo, servidores) y otros que se asignen dinámicamente (por ejemplo, usuarios móviles con portátiles). Hay un buen número de otras opciones por ejemplo, direcciones de servidores nis, direcciones de servidores de hora, etc., si necesita alguna de esas opciones por favor consulte la página del manual de dhcpd.conf.

4.4 Iniciando el servidor

Hay sólo una cosa que hacer antes de iniciar el servidor. En la mayoría de los casos la instalación de DHCP no crea los archivos dhcpd.leases. Este archivo es usado por DHCPd para almacenar la información acerca de las retenciones actuales. Está en modo texto así que Ud. puede verlo durante la operación de DHCPd. Para crear dhcpd.leases teclee

touch /var/state/dhcp/dhcpd.leases

en la línea de comandos. Esto creará un archivo vacío (tamaño = 0). Algunas de las versiones anteriores al dhcpd 2.0 colocaban el archivo en /etc/dhcpd.leases. No necesita hacer algún cambio, éste deberá estar vacío. Si obtiene un mensaje diciendo que el archivo existe, simplemente ignórelo y continúe con el siguiente paso.

Puede ahora invocar el servidor DHCP. Simplemente teclee (o incluya en los scripts de arranque)

/usr/sbin/dhcpd

Esto invocará dhcpd en el dispositivo eth0. Si desea invocarlo en otro dispositivo simplemente proporciónelo en la línea de comandos por ejemplo:

/usr/sbin/dhcpd eth1

Para verificar que todo está trabajando bien deberá primero activar el modo de depuración y poner el servidor en primer plano. Puede hacer esto tecleando

/usr/sbin/dhcpd -d -f

Entonces encienda uno de sus clientes y observe la consola de su servidor. Verá que llegan numerosos mensajes. Si todo funciona bien, todo estará hecho :-).