JavaScript is required to for searching.
Omitir Vínculos de navegación
Salir de la Vista de impresión
Uso de DHCP en Oracle Solaris 11.1     Oracle Solaris 11.1 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

1.  Acerca de DHCP (descripción general)

2.  Administración del servicio DHCP de ISC

3.  Configuración y administración del cliente DHCP

Acerca del cliente DHCP

El modelo administrativo de DHCP

Dirección MAC e ID de cliente

Diferencias entre DHCPv4 y DHCPv6

Detalles del protocolo DHCP

Interfaces lógicas

Negociación de opciones

Sintaxis de configuración

Inicio de cliente DHCP

Comunicación con DHCPv6

Cómo gestionan los protocolos del cliente DHCP la información de configuración de red

Cómo gestiona el cliente DHCPv4 la información de configuración de red

Cómo gestiona el cliente DHCPv6 la información de configuración de red

Cierre del cliente DHCP

Activación y desactivación de un cliente DHCP

Cómo activar un cliente DHCP

Cómo desactivar un cliente DHCP

Administración del cliente DHCP

Opciones del comando ipadm utilizadas con el cliente DHCP

Asignación de los parámetros de configuración del cliente DHCP

Para DHCPv4

Para DHCPv4 y DHCPv6

Sistemas cliente DHCP con varias interfaces de red

Nombres de host de cliente DHCPv4

Cómo activar un cliente DHCPv4 para que solicite un nombre de host específico

Sistemas cliente DHCP y servicios de nombres

Secuencias de comandos de eventos de cliente DHCP

4.  Comandos y archivos DHCP (referencia)

Índice

Acerca del cliente DHCP

El cliente DHCP es el daemon dhcpagent. Si instala Oracle Solaris mediante el instalador de la interfaz gráfica de usuario de LiveCD, los protocolos DHCPv4 y DHCPv6 se activan en el sistema instalado. Si instala Oracle Solaris mediante el instalador de texto, se le solicita que seleccione el modo en que la red se debe configurar en el sistema instalado. Si especifica la configuración automática de red, los protocolos DHCPv4 y DHCPv6 se activan en el sistema instalado.

No es necesario hacer nada más con el cliente de Oracle Solaris para utilizar DHCP. La configuración del servidor DHCP determina la información que se proporciona a los sistemas cliente DHCP que utilizan el servicio DHCP.

Si un sistema cliente ya está ejecutando Oracle Solaris pero no utiliza DHCP, se puede reconfigurar para que lo utilice. También se puede reconfigurar un sistema cliente DHCP de modo que deje de utilizar DHCP y utilice la información de red estática que proporcione. Consulte Activación y desactivación de un cliente DHCP para obtener más información.

El modelo administrativo de DHCP

DHCPv4 requiere una configuración de cliente explícita. Debe configurar el sistema DHCPv4 para realizar el direccionamiento cuando lo desee, que generalmente se realiza durante la instalación inicial del sistema o dinámicamente mediante el comando ipadm. Consulte la página del comando man ipadm(1M).

DHCPv6 no requiere una configuración de cliente explícita. Por el contrario, el uso de DHCP es una propiedad de la red, y la señal para utilizarlo se encuentra en los mensajes de anuncio de los enrutadores locales. El cliente DHCP crea y destruye automáticamente las interfaces lógicas según sea necesario.

El mecanismo de DHCPv6 es muy parecido, desde el punto de vista administrativo, a la configuración de direcciones sin estado IPv6 (automática) actual. Para la configuración de direcciones sin estado se activaría un indicador en el enrutador local con el fin de indicar que, para un conjunto de prefijos determinado, cada cliente deberá configurar automáticamente una dirección propia utilizando el prefijo anunciado, así como un token o número aleatorio de interfaz local. Para DHCPv6, se requieren los mismos prefijos, pero las direcciones se obtienen y se gestionan mediante un servidor DHCPv6 en lugar de asignarse de forma “aleatoria”.

Dirección MAC e ID de cliente

DHCPv4 utiliza la dirección MAC y un ID de cliente opcional para identificar al cliente y así asignarle una dirección. Cada vez que el mismo cliente llega a la red, obtiene la misma dirección, si es posible.

DHCPv6 utiliza básicamente el mismo esquema, pero hace que el ID de cliente sea obligatorio y le impone una estructura. El ID de cliente de DHCPv6 consta de dos partes: un Identificador único de DHCP (DUID) y un Identificador de identidad de asociación (IAID). El DUID identifica el sistema cliente (no solo una interfaz, como en DHCPv4), y el IAID identifica la interfaz en ese sistema.

Tal como se describe en RFC 3315, una asociación de identidad es el método que utilizan el servidor y el cliente para identificar, agrupar y gestionar un conjunto de direcciones IPv6 relacionadas. Un cliente debe asociar al menos una asociación de identidad (IA) con cada una de sus interfaces de red, y a continuación utiliza las IA asignadas para obtener información de configuración de un servidor de esa interfaz. Para obtener información adicional sobre IA, consulte la siguiente sección, “Detalles de protocolo”.

DUID+IAID pueden también emplearse con DHCPv4. Se pueden concatenar de forma no ambigua para actuar como ID de cliente. Por motivos de compatibilidad, en las interfaces IPv4 habituales no suele hacerse. Sin embargo, para las interfaces lógicas (bge0:1), DUID+IAID se utiliza si no se configuró ningún ID de cliente.

A diferencia de DHCPv4, DHCPv6 no ofrece una opción de "nombre de cliente", así que no hay modo de asignar nombres a sus sistemas basándose únicamente en DHCPv6. Si necesita saber el nombre DNS que corresponde a una dirección proporcionada por DHCPv6, utilice la técnica de determinación inversa de DNS (consulta de dirección a nombre mediante la función getaddrinfo(3SOCKET)) para buscar la información de nombre correspondiente. Esto implica que si solamente utiliza DHCPv6 y desea que un nodo tenga un nombre específico, debe especificar el nombre del nodo mediante el comando svccfg, de la siguiente manera:

# svccfg -s svc:/system/identity:node setprop config/nodename = astring: hostname

Diferencias entre DHCPv4 y DHCPv6

Las dos diferencias principales entre DHCPv4 y DHCPv6 son las siguientes:

Detalles del protocolo DHCP

Con DHCPv4, el servidor DHCP proporciona la máscara de subred qie se debe utilizar con la dirección asignada. Con DHCPv6, la máscara de subred (que se denomina también “longitud de prefijo”) la asignan los anuncios de enrutador, y no la controla el servidor DHCP.

DHCPv4 incorpora la opción de Nombre de host, que se utiliza para asignar el nombre del nodo en todo el sistema. DHCPv6 no dispone de esa opción.

Para configurar un ID de cliente para DHCPv6 se debe especificar un DUID, en lugar de dejar que el sistema lo elija automáticamente. Esta operación se puede hacer globalmente para el daemon, por cada interfaz. Utilice el formato siguiente para configurar la DUID global (tenga en cuenta el punto inicial):

.v6.CLIENT_ID=DUID

Para configurar una interfaz determinada para que use un DUID específico (y que un servidor DHCPv6 perciba el sistema como varios clientes independientes):

bge0.v6 CLIENT ID=DUID

Cada asociación de identidad (IA) acepta un tipo de dirección. Por ejemplo, una asociación de identidad para direcciones temporales (IA_TA) acepta direcciones temporales, mientras que una para direcciones no temporales (IA_NA) lleva asignadas direcciones permanentes. La versión de DHCPv6 que se describe en esta guía solo proporciona asociaciones IA_NA.

Oracle Solaris asigna exactamente un IAID a cada interfaz cuando se le solicita, y el IAID se guarda en un archivo en el sistema de archivos raíz para que sea constante durante toda la vida del sistema.

Interfaces lógicas

En el cliente DHCPv4, cada interfaz lógica es independiente y es una unidad administrativa. Aparte de la interfaz lógica cero (cuyo identificador predeterminado es la dirección MAC de la interfaz), el usuario puede configurar interfaces específicas para ejecutar DHCP; para ello debe especificar un CLIENT_ID en el archivo de configuración dhcpagent. Por ejemplo:

bge0.v6 CLIENT ID=DUID

DHCPv6 funciona de otra forma. La interfaz lógica cero en una interfaz IPv6 es siempre, a diferencia de IPv4, una dirección local. La dirección local se utiliza para asignar automáticamente una dirección IP a un dispositivo de una red IP cuando no se dispone de otro método de asignación, como un servidor DHCP. La interfaz lógica cero no puede estar bajo el control de DHCP, de modo que, aunque DHCPv6 se ejecute en esa interfaz (que se denomina también interfaz “física”), sólo asigna direcciones a interfaces lógicas que no sean la cero.

En respuesta a una solicitud de cliente DHCPv6, el servidor DHCPv6 devuelve una lista de direcciones para que el cliente las configure.

Negociación de opciones

DHCPv6 dispone de la opción Solicitud de opciones, que ofrece al servidor una pista de lo que el cliente prefiere ver. Si se han enviado todas las posibles opciones desde el servidor al cliente, se podría enviar tanta información que parte de ella debería perderse en el camino al cliente. El servidor podría utilizar esa pista para elegir qué opciones debe incluir en la respuesta. Otra posibilidad es que el servidor haga caso omiso de la pista y elija los elementos que se incluyen. En Oracle Solaris, por ejemplo, las opciones preferibles podrían incluir el dominio de direcciones DNS de Oracle Solaris o el dominio de direcciones NIS, pero posiblemente no se incluiría el servidor NetBIOS.

DHCPv4 proporciona el mismo tipo de sugerencia, pero sin la opción especial de Solicitud de opciones. En cambio, DHCPv4 utiliza PARAM_REQUEST_LIST en /etc/default/dhcpagent.

Sintaxis de configuración

Configure el cliente DHCPv6 de forma similar al actual cliente DHCPv4, mediante /etc/default/dhcpagent.

La sintaxis se aumenta con un marcador “.v6” entre el nombre de la interfaz (si hay) y el parámetro que se debe configurar. Por ejemplo, la lista de solicitud de opciones IPv4 global se configura así:

PARAM_REQUEST_LIST=1,3,6,12,15,28,43

Se puede configurar una interfaz individual para omitir la opción de nombre de host, de este modo:

bge0.PARAM_REQUEST_LIST=1,3,6,15,28,43

Para configurar una lista de solicitud global para DHCPv6, tenga en cuenta el punto precedente:

.v6.PARAM_REQUEST_LIST=23,24

O, para configurar una interfaz individual, siga este ejemplo:

bge0.v6.PARAM_REQUEST_LIST=21,22,23,24

Utilice como referencia para configuración de DHCPv6 este archivo /etc/default/dhcpagent:

# The default DHCPv6 parameter request list has preference (7), unicast (12),
# DNS addresses (23), DNS search list (24), NIS addresses (27), and
# NIS domain (29).  This may be changed by altering the following parameter- 
# value pair.  The numbers correspond to the values defined in RFC 3315 and 
# the IANA dhcpv6-parameters registry. 
.v6.PARAM_REQUEST_LIST=7,12,23,24,27,29

Inicio de cliente DHCP

En la mayor parte de casos, no es necesario hacer nada para que se inicie el cliente DHCPv6. El daemon in.ndpd inicia DHCPv6 automáticamente cuando se necesita.

Sin embargo, para DHCPv4 se debe solicitar el inicio del cliente, si no se hizo durante la instalación de Oracle Solaris. Consulte Cómo activar un cliente DHCP.

El daemon dhcpagent obtiene la información de configuración necesaria por otros procesos implicados en el inicio del sistema. Por ello, las secuencias de comandos de inicio del sistema inician dhcpagent en las primeras fases del proceso de inicio y esperan hasta que llega la información de configuración de red del servidor DHCP.

Aunque el comportamiento predeterminado es ejecutar DHCPv6, puede optar por no ejecutarlo. Una vez que DHCPv6 se está ejecutando, se lo puede detener con el comando ipadm delete-addr. También se puede desactivar DHCPv6 para que no se inicie al reiniciar el sistema. Para ello, se debe modificar el archivo /etc/inet/ndpd.conf.

En el siguiente ejemplo, se muestra cómo cerrar DHCPv6 de inmediato:

ex# echo ifdefault StatefulAddrConf false >> /etc/inet/ndpd.conf  
ex# pkill -HUP -x in.ndpd   
ex# ipadm delete-addr -r dhcp-addrobj

En el inicio, si existen configuraciones persistentes de DHCP en el sistema, dhcpagent se inicia como parte de los procesos de secuencias de comandos de inicio. dhcpagent configura las interfaces de red, como se describe en Funcionamiento de DHCP.

Comunicación con DHCPv6

A diferencia de DHCPv4, que se invoca mediante configuración manual, DHCPv6 se invoca mediante anuncios de enrutador (RA). En función de la configuración del enrutador, el sistema llama automáticamente a DHCPv6 en la interfaz en la que se ha recibido el mensaje de anuncio de enrutador y utiliza DHCP para obtener una dirección y otros parámetros, o el sistema solicita sólo datos que no sean la dirección (por ejemplo, servidores DNS) con DHCPv6.

El daemon in.ndpd recibe el mensaje de anuncio del enrutador. Lo hace automáticamente en todas las interfaces sondeadas para IPv6 en el sistema. Cuando in.ndpd ve un RA que especifica que se debe ejecutar DHCPv6, lo llama.

Para impedir que in.ndpd inicie DHCPv6 se puede modificar el archivo /etc/inet/ndpd.conf.

También se puede detener DHCPv6 una vez iniciado mediante una de las siguientes versiones de ipadm:

ipadm delete-addr dhcp-addrobj

o

ipadm delete-addr -r objeto_dirección_dhcp

Cómo gestionan los protocolos del cliente DHCP la información de configuración de red

Los protocolos de los clientes DHCPv4 y DHCPv6 gestionan la información de configuración de red de forma distinta. La principal diferencia es que, con DHCPv4, la negociación es por el permiso de uso de una sola dirección y algunas opciones para acompañarla. Con DHCPv6, la negociación implica un lote de direcciones y de opciones.

Para acceder a información básica sobre la interacción entre el cliente y el servidor DHCPv4, consulte el Capítulo 1, Acerca de DHCP (descripción general).

Cómo gestiona el cliente DHCPv4 la información de configuración de red

Una vez obtenido el paquete de información de un servidor DHCP, dhcpagent configura la interfaz de red y la muestra. El daemon controla la interfaz durante la duración del permiso de la dirección IP y mantiene los datos de configuración en una tabla interna. Las secuencias de comandos de inicio del sistema utilizan el comando dhcpinfo para extraer valores de opciones de configuración de la tabla interna. Los valores se utilizan para configurar el sistema y permitirle comunicarse a través de la red.

El daemon dhcpagent espera de forma pasiva a que transcurra un cierto período de tiempo, generalmente la mitad del tiempo de permiso. A continuación, el daemon solicita una ampliación del permiso a un servidor DHCP. Si el sistema notifica a dhcpagent que la interfaz está cerrada o que la dirección IP ha cambiado, el daemon no controla la interfaz hasta que el comando ipadm le indica que lo haga. Si dhcpagent obtiene que la interfaz está en marcha y que la dirección IP no ha cambiado, envía una solicitud al servidor para una renovación del permiso. Si no se puede renovar el permiso, dhcpagent cierra la interfaz al finalizar el período de permiso.

Cada vez que dhcpagent efectúa una acción relacionada con el permiso, el daemon busca un archivo ejecutable denominado /etc/dhcp/eventhook. Si se halla un archivo ejecutable con ese nombre, dhcpagent llama a dicho archivo. Consulte Secuencias de comandos de eventos de cliente DHCP para obtener más información acerca del uso del ejecutable de eventos.

Cómo gestiona el cliente DHCPv6 la información de configuración de red

La comunicación DHCPv6 entre cliente y servidor se inicia con el envío de un mensaje de solicitud por parte del cliente con el objetivo de localizar servidores. En respuesta, todos los servidores disponibles para el servicio DHCP envían un mensaje de anuncio. El mensaje del servidor contiene varios registros IA_NA (Asociación de identidad - Dirección no temporal), así como otras opciones (como direcciones de servidores DNS) que puede proporcionar el servidor.

Un cliente puede solicitar direcciones específicas (y múltiplos de ellas) si incluye sus propios registros IA_NA/IAADDR en el mensaje de solicitud. Generalmente, un cliente solicita direcciones específicas si tiene direcciones antiguas registradas y quiere que el servidor le proporcione las mismas direcciones si es posible. Independientemente de lo que haga el cliente (incluso si no solicita dirección alguna), el servidor puede proporcionarle cualquier número de direcciones para una única transacción DHCPv6.

Este es el diálogo de mensajes entre los clientes y los servidores.

Si el valor de preferencia en el mensaje de anuncio es de 255, el cliente DHCPv6 selecciona inmediatamente ese servidor. Si el servidor con la preferencia más alta no responde o no envía satisfactoriamente un mensaje de respuesta al mensaje de solicitud, el cliente sigue buscando servidores por orden de preferencia hasta que se queda sin mensajes de anuncio. En ese momento, el cliente vuelve a empezar reenviando mensajes de solicitud.

El servidor elegido envía un mensaje de respuesta que contiene las direcciones y parámetros de configuración asignados en respuesta a un mensaje de solicitud de tipo Request o Solicit.

Cierre del cliente DHCP

Al cerrarse, el cliente envía un mensaje de liberación al servidor que asignó las direcciones para indicarle que ya no utilizará una o varias de las direcciones asignadas. Cuando el sistema cliente DHCPv4 se cierra normalmente, dhcpagent escribe la información de la configuración actual en un archivo (si el archivo existe). El nombre de archivo para DHCPv4 es /etc/dhcp/interfaz.dhc y /etc/dhcp/interfaz.dh6 es para DHCPv6. De manera predeterminada, el permiso se suele guardar en vez de liberar, de modo que el servidor DHCP no puede detectar que la dirección IP no se está usando de forma activa, lo que permite al cliente recuperar fácilmente la dirección en el siguiente inicio. La acción predeterminada es la misma que el comando ipadm delete-addr objeto_dirección_dhcp.

Si el permiso en ese archivo aún es válido cuando el sistema se reinicia, dhcpagent envía una solicitud abreviada para utilizar la misma dirección IP e información de configuración de red. Para DHCPv4, es un mensaje de solicitud de tipo Request. Para DHCPv6, es un mensaje de confirmación.

Si el servidor DHCP permite esta solicitud, dhcpagent puede utilizar la información que escribió en el disco cuando el sistema se cerró. Si el servidor no da permiso al cliente para utilizar la información, dhcpagent inicia la secuencia del protocolo DHCP que se describe en Funcionamiento de DHCP. El resultado es que el cliente obtiene nueva información de configuración de red.