Saltar la navegación

ISC Relay Agent

En muchas situaciones se precisa que el servidor DHCP atienda a más de un segmento de red. Para conseguir esto existen varias alternativas:

  1. Conectar el servidor DHCP a todos los segmentos de red, con lo que habrá que instalarle varias tarjetas de red, una por cada segmento.

Varios segmentos de red

  1. Usar un agente de retransmisión (DHCP relay agent) conectado a cada segmento de red menos al segmento donde se encuentre el servidor DHCP. El relay agent se comunica con los clientes DHCP a través del puerto 67, y es el puerto 68 el que utiliza para la comunicación con el servidor.

Agent relay

El DHCP relay agent cuando recibe una petición de IP de un cliente lo que hace es reenviarla al servidor DHCP, pero antes coloca en el campo "gateway IP address" (giaddr) la dirección IP de la interfaz por la que entró dicha petición (recordad que en caso de que la solicitud del cliente no pase por un agente de retransmisión el campo giaddr contendrá 0.0.0.0). Esto siempre que la solicitud no haya pasado previamente por otro relay agent, pues en este caso, el campo giaddr ya traería un valor que identifica el segmento del cliente y por lo tanto no se modificaría. Cuando el servidor recibe la petición del relay agent mira el campo giaddr para saber la subred del cliente y así elegir la IP correcta; elegida ésta, la envía al relay agent mediante unicast utilizando la IP dada en giaddr (siempre que no sea la 0.0.0.0, que indica que cliente y servidor están en el mismo segmento) y éste a su vez al cliente mediante broadcast o unicast como se describió en el apartado "Descripción del protocolo".

La configuración que se muestra en la imagen anterior tiene la desventaja de que hay que poner un equipo en cada red para que funcione como agent relay. Otra opción es que el relay agent esté en el(los) router, con el consiguiente ahorro económico y de administración. Algunos routers traen incorporado ya un relay agent por lo que la configuración de la red quedaría así:

Agent relay 2

En el caso de que el router no disponga de este servicio, otra opción sería utilizar un equipo barato con un GNU/Linux y el software del relay agent. Esto se muestra en la siguiente figura:

Agent relay 3

ISC ha implementado el ISC Relay Agent que podemos instalar con el siguiente comando:

# aptitude install isc-dhcp-relay

Los ficheros a tener en cuenta son los siguientes:

  1. /usr/sbin/dhcrelay: es el demonio del relay agent (man dhcrealy).
  2. /etc/init.d/isc-dhcp-relay: script desde donde controlar al relay agent.
# /etc/init.d/isc-dhcp-relay 
Usage: /etc/init.d/isc-dhcp-relay {start|stop|restart|force-reload}
  1. /etc/default/isc-dhcp-relay: fichero de configuración del relay agent.