Este artículo más orientado al mundo de las
redes... El mundo de las redes es muy amplio y apasionante y tiene que
contemplar un gran número de escenarios muy diversos entre sí... Uno de
ellos es el hecho de que puedes tener una serie de equipos (PCs)
separados de un servidor DHCP (Dynamic Host Configuration Protocol) por un PC intermedio que puede estar haciendo de firewall y/o
otras tareas. La cuestión está que generalmente queremos que haya
únicamente un solo servidor DHCP, porque en caso contrario, en caso de
haber cualquier fuga en el futuro, pueden haber conflictos tales como el
hecho de que un equipo intente coger IP habiendo dos servidores DHCP y
coja ip precisamente desde el servidor que no debe. Es por eso que
existe un método que ayuda a saltar ese pequeño escoyo: El DHCP relay.
DCHP relay no es más que un proxy que redirige las peticiones DHCP recibidas al servidor DHCP real para que éste las atienda. Esto no es nada complicado; requeriría que, para empezar tuviésemos el siguiente escenario a nivel físico: Un servidor DHCP; un equipo que hará de proxy (que tendrá dos tarjetas de red), un switch y luego todos los equipos queramos conectar a dicho switch; que pueden ser 2, 10 o los que deseemos. Un pequeño ejemplo gráfico sería el de a continuación:
Lo primero que habría que hacer sería preparar un servidor DHCP; esto es tan sencillo como instalarlo desde los repositorios mediante apt-get:
apt-get install isc-dhcp-server
Aquí la configuración que uno puede aplicar puede ser muy personalizable; desde cosas muy sencillas a cosas tan especificas como la entrega de una serie de rangos de ip a unas MAC en concreto. En caso de no tener nociones sobre el funcionamiento de este servicio, una configuración muy básica que podríamos aplicar en /etc/dhcp/dhcpd.conf sería:
- default-lease-time 600;
- max-lease-time 7200;
- subnet 192.168.1.0 netmask 255.255.255.0 {
- }
- subnet 192.168.2.0 netmask 255.255.255.0 {
- range 192.168.2.2 192.168.2.255;
- }
Tras aplicar nuestros cambios sería imprescindible reiniciar nuestro servicio DHCP, con el comando:
/etc/init.d/isc-dhcp-server restart
apt-get install isc-dhcp-relay
A diferencia del servidor DHCP, el relay posee un asistente de configuración que hará que el proceso sea mucho más automatizado que su predecesor. En caso de equivocarnos durante el asistente no pasaría nada, pues los parámetros introducidos se encontrarían dentro del fichero de configuración /etc/default/isc-dhcp-relay.
El primer paso y más importante sería la especificación de la dirección ip del servidor DHCP REAL; es decir, la dirección ip a la que tendremos que redirigir las peticiones DHCP.
Por último, pero no por ello menos importante habría que especificar qué parámetros especiales asignarle al servicio DHCP-relay. Al arrancar un servicio se le pueden poner parámetros especiales que pueden aportar más o menos funcionalidades. En este caso en concreto nos interesa que se esté ejecutando en segundo plano, es decir que se ejecute como un demonio; así que le especificaremos el parámetro -D.
Al tener que hacer de "proxy" y tener que transferir información de una interfaz a otra, el equipo que haga de relay, es indispensable que el equipo tenga activada la función ip_forward, tal y como se hace cuando se quieren hacer tareas de NAT. Este parámetro está alojado a nivel de kernel, con lo que se encuentra dentro del directorio proc. La ruta completa sería: /proc/sys/net/ipv4/ip_forward
Ahora únicamente tendríamos que tener equipos que estuviesen preparados para hacer de clientes DHCP; tanto en Windows como en Linux, los equipos de escritorio estarían preparados para recibir ip automáticamente desde un servidor DHCP, si bien en Linux podríamos asegurarnos comprobando la existencia del fichero dhclient.conf dentro del fichero /etc/dhcp.
Con esto ya tendríamos nuestro DHCP relay preparado, pudiendo redirigir toda petición DHCP a un servidor real.
Espero que os haya resultado útil.