El cliente DHCP se puede configurar para que ejecute un programa o una secuencia de comandos que lleve a cabo cualquier acción adecuada para el sistema cliente. El programa o la secuencia de comandos, que se denomina, secuencia de eventos, se ejecuta automáticamente cuando tienen lugar determinados eventos de permiso de DHCP. La secuencia de eventos se puede utilizar para ejecutar otros comandos, programas o secuencias en respuesta a eventos de permiso específicos. Para utilizar esta función deberá proporcionar su propia secuencia de comandos.
dhcpagent utiliza las siguientes palabras clave para referirse a eventos de permisos de DHCP:
Descripción
La interfaz está configurada para DHCP. El cliente recibe el mensaje de confirmación (DHCPv4 ACK) o (DHCPv6 Reply) del servidor DHCP en el que se concede la solicitud de permiso para una dirección IP. Se llama a la secuencia de comandos de eventos inmediatamente después de la configuración satisfactoria de la interfaz.
El cliente ha realizado correctamente una concesión. Se llama a la secuencia de comandos de eventos inmediatamente después de que el cliente recibe el mensaje de confirmación del servidor DHCP por la solicitud de renovación.
El permiso caduca cuando se agota su tiempo. Para DHCPv4, la secuencia de eventos se llama inmediatamente después de que la dirección permitida se elimina de la interfaz y se marca esta como desconectada. Para DHCPv6, la secuencia de eventos se llama justo antes de que las últimas direcciones permitidas se eliminen de la interfaz.
El cliente usa la concesión para eliminar la interfaz desde el control DHCP. Se llama a la secuencia de eventos inmediatamente antes de la interfaz se retire del control de DHCP.
El cliente deja de usar la dirección IP. Se llama a la secuencia de eventos inmediatamente antes de que el cliente libere la dirección en la interfaz y envíe el paquete DHCPv4 RELEASE o DHCPv6 Release al servidor DHCP.
Una interfaz obtiene información de configuración nueva o actualizada de un servidor DHCP a través del mensaje DHCPv4 INFORM o DHCPv6 Information-Request. Estos eventos tienen lugar cuando el cliente DHCP sólo obtiene parámetros de configuración del servidor, pero no obtiene un permiso de dirección IP.
Durante la caducidad del permiso, cuando aún quedan uno o más permisos válidos, se llama a la secuencia de comandos de eventos justo antes de eliminar las direcciones caducadas. Las direcciones que se van a eliminar se marcan con el indicador IFF_DEPRECATED.
Con cada uno de estos eventos, dhcpagent llama al comando siguiente:
/etc/dhcp/eventhook interface event
Donde interfaz es la interfaz que utiliza DHCP y evento es una de las palabras clave de evento descritas anteriormente. Por ejemplo, cuando la interfaz se configura por primera vez para DHCP, dhcpagent invoca a la secuencia de comandos de eventos de la siguiente forma:
/etc/dhcp/eventhook net0 BOUND
Para utilizar la función de secuencia de comandos de eventos, haga lo siguiente:
Asigne al archivo ejecutable el nombre /etc/dhcp/eventhook.
Establezca el propietario del archivo en root.
Establezca los permisos en 755 (rwxr-xr-x ).
Escriba la secuencia de comandos o programa que debe llevar a cabo una serie de acciones en respuesta a alguno de los eventos documentados. Sun puede agregar nuevos eventos, de modo que el programa debe hacer caso omiso de los eventos no reconocidos o que no requieren acción. Por ejemplo, el programa o la secuencia puede escribir un archivo log cuando el evento es RELEASE e ignorar los demás eventos.
El programa o secuencia de comandos no debe ser interactivo. Antes de invocar la secuencia de comandos de eventos, stdin, stdout y stderr se conectan a /dev/null. Para ver la salida de errores, deberá redirigirla a un archivo.
La secuencia de eventos hereda su entorno de programa de dhcpagent, y se ejecuta con privilegios de root. Si es necesario, la secuencia de comandos puede utilizar la utilidad dhcpinfo para obtener más información acerca de la interfaz. Consulte la página del comando man dhcpinfo(1) para obtener más información.
El daemon dhcpagent espera la salida de la secuencia de comandos de eventos para todos los eventos. Si la secuencia de comandos de eventos no sale una vez transcurridos 55 s, dhcpagent envía una señal SIGTERM al proceso de la secuencia de comandos. Si el proceso sigue sin salir pasados otros tres segundos, el daemon envía una señal SIGKILL para cerrar el proceso.
En la página del comando man dhcpagent(1M), se muestra un ejemplo de una secuencia de comandos de un evento.