DHCP, el Protocolo de Configuración Dinamica de Máquinas (“Dynamic Host Configuration Protocol”), especifica un método para configurar dinámicamente los parámetros de red necesarios para que un sistema pueda comunicarse efectivamente. FreeBSD utiliza la implementación de DHCP proporcionada por el Internet Software Consortium (ISC) de tal forma que toda la información relativa a la configuración de DHCP se basa en la distribución proporcionada por el ISC.
Esta sección describe tanto los componentes de la parte servidora como los componentes de la parte cliente del sistema DHCP del ISC. El programa cliente, denominado forma parte por defecto de los sistemas FreeBSD y el programa servidor se puede instalar a partir del “port” net/isc-dhcp3-server. Las principales fuentes de información son las páginas de manual dhclient(8), dhcp-options(5) y dhclient.conf(5) junto con las referencias que se muestran a continuación en esta misma sección.
Cuando el cliente de DHCP, dhclient
, se ejecuta
en una máquina cliente, valga la redundancia, comienza a enviar
peticiones “broadcast” solicitando información de
configuración. Por defecto estas peticiones se realizan contra
el puerto UDP 68. El servidor responde a través del puerto
UDP 67 proporcionando al cliente una dirección IP junto con
otros parámetros relevantes para el correcto funcionamiento del
sistema en la red, tales como la máscara de red, el “
router” por defecto y los servidores de DNS. Toda esta
información se “presta” y es válida
sólo durante un determinado período de tiempo
(configurado por el administrador del servidor de DHCP). De esta forma
direcciones IP asignadas a clientes que ya no se encuentran conectados
a la red pueden ser reutilizadas al pasar determinado periodo de
tiempo.
Los clientes de DHCP pueden obtener una gran cantidad de información del servidor. Se puede encontrar una lista completa en dhcp-options(5).
FreeBSD se integra totalmente con el cliente DHCP del ISC,
dhclient
. Este soporte se proporciona tanto en el proceso de
instalación como en la instalación por defecto del
sistema base obviando la necesidad de poseer un conocimiento detallado
de aspectos relacionados con la configuración de redes siempre y
cuando se disponga de servicio de DHCP en la red dada.
dhclient
se incluye en todas las distribuciones de
FreeBSD desde la versión 3.2.
sysinstall soporta DHCP. Cuando se
configura la interfaz de red la primera pregunta es: “
?Quiere intentar configurar el interfaz mediante
DHCP?”. Si se responde afirmativamente se ejecutará
dhclient
y si tiene éxito se
procede con los siguientes pasos de configuración rellenandose
automáticamente las variables de arranque necesarias para
completar la configuración de la red.
Existen dos cosas que se deben realizar de tal forma que nuestro sistema utilice la configuración de red mediante DHCP al arrancar:
Asegurarse de que el dispositivo
bpf
se encuentra compilado en el kernel. Para ello
basta añadir device bpf
(pseudo-device bpf
en los sistemas
FreeBSD 4.X) al fichero de configuración del kernel y
recompilarlo e instalarlo. Para más información
sobre la construcción de núcleos consulte Capítulo 8, Configuración del kernel de FreeBSD.
El dispositivo bpf
se encuentra
activado por defecto dentro del fichero de configuración
del núcleo (GENERIC
que
encontrará en su sistema FreeBSD de forma que si no se
está utilizando un fichero de configuración del
núcleo específico (hecho a medida y/o por usted) no
es necesario crear uno nuevo y se puede utilizar directamente
GENERIC
.
Para aquellas personas especialmente preocupadas por la
seguridad debemos advertir de que el dispositivo
bpf
es el dispositivo que las aplicaciones de
captura de paquetes utilizan para acceder a los mismos (aunque
dichas aplicaciones deben ser ejecutadas como
root
). DHCP
requiere la presencia de
bpf
pero si la seguridad del sistema
es más importante que la configuración
automática de la red no se recomienda instalar
bpf
en el núcleo.
Editar el fichero /etc/rc.conf
para
para incluir lo siguiente:
ifconfig_fxp0="DHCP"
Asegúrese de sustituir fxp0
con
el nombre de interfaz que desea que se configure
dinámicamente, como se describe en Sección 11.1, “Configuración de Tarjetas de Red”.
Si se utiliza una ubicación distinta para
dhclient
o si se desea añadir opciones
adicionales a dhclient
se puede
incluir, adaptándolo a las condiciones particulares de
cada usuario, lo siguiente:
dhcp_program="/sbin/dhclient" dhcp_flags=""
El servidor de DHCP (dhcpd) forma parte del “port” net/isc-dhcp3-server. Este “ port” también contiene la documentación de ISC DHCP.
/etc/dhclient.conf
dhclient
necesita un fichero de
configuración denominado
/etc/dhclient.conf
. Normalmente este
fichero sólo contiene comentarios de forma que las
opciones que se definen por defecto son razonablemente
inocuas. Este fichero de configuración se describe
en la página de manual de
dhclient.conf(5).
/sbin/dhclient
dhclient
se encuentra enlazado de
forma estática y reside en /sbin
.
La página de manual de dhclient(8) proporciona
más información sobre la orden
dhclient
.
/sbin/dhclient-script
dhclient-script
es el “
script” de configuración del cliente de DHCP
específico de FreeBSD. Tiene todos los detalles en
dhclient-script(8) pero no necesita hacer ninguna
modificación en él para que todo funcione
correctamente.
/var/db/dhclient.leases
El cliente de DHCP mantiene una base de datos de préstamos en este fichero que se escribe de forma semejante a un “log”. En dhclient.leases(5) puede consultar una explicación ligeramente más detallada.
Esta sección proporciona información sobre cómo configurar un sistema FreeBSD de forma que actúe como un servidor de DHCP utilizando la implementación proporcionada por el Internet Software Consortium (ISC).
La parte servidora del paquete proporcionado por el ISC no se instala por defecto en los sistemas FreeBSD pero se puede intalar como “port” desde net/isc-dhcp3-server. Consulte Capítulo 4, Instalación de aplicaciones: «packages» y ports si necesita saber más sobre la Colección de “ports”.
Para configurar un sistema FreeBSD como servidor de DHCP debe
asegurarse de que el dispositivo bpf(4) está compilado
dentro del núcleo. Para ello basta añadir
device bpf
(
pseudo-device bpf
en FreeBSD 4.X) al fichero de
configuración del núcleo y reconstruir el mismo.
Si necesita saber más sobre el proceso de compilar e
instalar el núcleo consulte Capítulo 8, Configuración del kernel de FreeBSD.
El dispositivo bpf
ya se encuentra
activado en el fichero de configuración
GENERIC
del núcleo que se facilita
con FreeBSD de tal forma que no resulta imprescindible crear un
núcleo a medida para ejecutar DHCP.
Para aquellas personas especialmente preocupadas por la
seguridad debemos advertir de que el dispositivo
bpf
es el dispositivo que las
aplicaciones de captura de paquetes utilizan para acceder a
los mismos (aunque dichas aplicaciones deben ser ejecutadas
como root
). DHCP
requiere la presencia de
bpf
pero si la seguridad del sistema
es más importante que la configuración
automática de la red no se recomienda instalar
bpf
en el núcleo.
El siguiente paso consiste en editar el fichero de ejemplo
dhcpd.conf
que se crea al instalar el
“port” net/isc-dhcp3-server. Por defecto el
fichero se llama
/usr/local/etc/dhcpd.conf.sample
,
así que se debe copiar este fichero a
/usr/local/etc/dhcpd.conf
y a
continuación realizar todos los cambios sobre este
último.
El fichero dhcpd.conf
se compone
de un conjunto de declaraciones que hacen referencia a
máquinas y a subredes. Esto se entenderá mejor
mediante el siguiente ejemplo:
option domain-name "ejemplo.com";option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
} host mailhost { hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.ejemplo.com;
}
Esta opción especifica el dominio que se proporciona a los clientes y que dichos clientes utilizan como dominio de búsqueda por defecto. Consulte resolv.conf(5) si necesita más información sobre qué significa el dominio de búsqueda. | |
Esta opción especifica la lista de servidores de DNS (seperados por comas) que deben utilizar los clientes. | |
La máscara de red que se proporciona a los clientes. | |
Un cliente puede solicitar un determinado tiempo de vida para el préstamo. En caso contrario el servidor asigna un tiempo de vida por defecto mediante este valor (expresado en segundos). | |
Este es el máximo tiempo que el servidor puede utilizar para realizar préstamos a los clientes. Si un cliente solicita un tiempo mayor como máximo se responderá con el valor aquí configurado, ignorándose la petición de tiempo del cliente. | |
Esta opción especifica si el servidor de DHCP debe intentar actualizar el servidor de DNS cuando se acepta o se libera un préstamo. En la implementación proporcionada por el ISC esta opción es obligatoria. | |
Esto indica qué direcciones IP se pueden utilizar para ser prestadas a los clientes que las soliciten. Las direcciones IP pertenecientes a este rango, incluyendo los extremos, se pueden entregar a los clientes. | |
Declara cúal es la pasarela por defecto que se proporcionará a los clientes. | |
Especifica la dirección MAC de una máquina, de tal forma que el servidor de DHCP pueda identificar a la máquina cuando realice una petición. | |
Especifica que la máquina cliente debería obtener siempre la misma dirección IP. Recuerde que se puede utilizar un nombre de máquina para esto ya que el servidor de DHCP resolverá el nombre por sí mismo antes de devolver la información al cliente. |
Una vez que se ha acabado de configurar el fichero
dhcpd.conf
se puede proceder con la
ejecución del servidor mediante la siguiente
orden:
#
/usr/local/etc/rc.d/isc-dhcpd.sh start
Si posteriormente se necesitan realizar cambios en la
configuración anterior tenga en cuenta que el envío
de la señál SIGHUP
a la
aplicación dhcpd
no provoca que se lea de nuevo la
configuración como suele ocurrir en la mayoría de
los dæmones. Tendrá que enviar la señal
SIGTERM
para parar el proceso y
posteriormente relanzar el dæmon utilizando la orden
anterior.
/usr/local/sbin/dhcpd
dhcpd se encuentra
enlazado de forma estática y reside en el directorio
/usr/local/sbin
. La página de
manual dhcpd(8) que se instala con el “port”
le proporcionará más información sobre
dhcpd.
/usr/local/etc/dhcpd.conf
dhcpd necesita un fichero de
configuración,
/usr/local/etc/dhcpd.conf
. Este fichero contiene
toda la información relevante que se quiere proporcionar
a los clientes que la soliciten, junto con información
relacionada con el funcionamiento del servidor. Este fichero
de configuración se describe en la página del
manual dhcpd.conf(5) que instala el “
port”.
/var/db/dhcpd.leases
El servidor de DHCP mantiene una base de datos de préstamos o alquileres dentro de este fichero, que presenta un formato de fichero de “log”. La página del manual dhcpd.leases(5) que se instala con el “port” proporciona una descripción ligeramente más larga.
/usr/local/sbin/dhcrelay
dhcrelay se utiliza en entornos de red avanzados donde un servidor de DHCP reenvía una petición de un cliente hacia otro servidor de DHCP que se encuentra localizado en otra subred. Si se necesita esta funcionalidad se debe instalar el “port” net/isc-dhcp3-server. La página del manual dhcrelay(8) proporcionada por el “port” contiene más detalles sobre esto.
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Si tiene dudas sobre FreeBSD consulte la
documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a
<doc@FreeBSD.org>.