Cómo asignar rutas estáticas desde un servidor DHCP (Opción 121) (es-ES)
En este artículo no mostraré como configurar un servidor DCHP, únicamente me centraré en una de las opciones del servidor DHCP (121 Rutas Estáticas Sin Clase) muy interesante a mi entender y que he visto que se utiliza muy poco. La finalidad de utilizar esta opción es la posibilidad crear rutas estáticas a los clientes desde el servidor DHCP, es especialmente útil en redes pequeñas con hardware L3 con opciones reducidas. Si vemos el siguiente esquema de red, podemos apreciar una red que tiene dos enrutadores y que ambos nos llevarán a redes diferentes: Internet y Sedes remotas conectada por VPN (Cisco VPN IPSec Site-to-Site con Certificados Digitales)
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_Est%C3%A1ticas_DHCP.png
Cuando configuramos un servidor DHCP siempre pensamos en los parámetros básicos:
- Dirección IP
- Máscara de Subred
- Puerta de Enlace
- DNS Primario
- DNS Secundario
- Etc....
Logicamente con estos parámetros podemos conectarnos a la red y tener acceso a resolución DNS por lo que a buen seguro tendremos acceso a los recursos de la compañia e Internet. Pero es posible que entornos más pequeños en vez de tener un sistema en HA a nivel de comunicaciones, tengamos dos routers/firewalls que estén funcionando de forma independiente cada uno con su conexión a Internet y cada uno de ellos con servicios diferentes (Internet y VPN). Según el esquema anterior, estos serían los datos de nuestra redes:
- Servidor DHCP
- Pool 10.100.100.50 - 10.100.100.80
- DNS: 10.100.100.x
- Gateway: 10.100.100.1
- Sedes Remotas
-
- 192.168.250.0/24
- 192.168.251.0/24
-
- Router 1 (Servicio de Internet): 10.100.100.1
- Router 2 (Servicio de VPN): 10.100.100.10
Todos los equipos de la red están configurados mediante DHCP, facilitando así la configuración de los parámetros de red. Como el router 1 solo nos ofrece la conexión a Internet, este será el que configuraremos como puerta de enlace (10.100.100.1) en los equipos, para que todo el tráfico para el cual el equiop no tenga ruta conocida (rutas estáticas o red local) lo envíé al router y este enrute la petición hacia Internet (por que es lo único que tiene configurado este dispositivo). Esto nos vale para conectarnos a destinos "no conocidos" previamente, por ejemplo Internet. El Router 2 (10.100.100.10) es un router en el cual hemos configurado nuestras VPN, y solo lo utilizaremos para esto. Este router es el que "sabe" como llegar a las subredes de las otras sedes, y será el encargado de conectarnos con ellas. Llegado a este punto podemos realizar varias configuraciones:
- Configurar rutas estáticas en todos los equipos de forma manual: route add 192.168.250.0 mask 255.255.255.0 10.100.100.10 -p y route add 192.168.251.0 mask 255.255.255.0 10.100.100.10 -p
- Configura rutas estáticas en el router 1: de esta forma los equipos enviarán las peticiones dirigidas a su puerta de enlace (10.100.100.1) y el router 1 (10.100.100.1) se las enviará al router 2 (10.100.100.10), de tal forma que el enrutamiento lo harán entre los routers 1 y 2
- Configurar rutas estáticas vía DHCP: podemos enviar actualizaciones a la tabla local de ruteo de los equipos a través del DHCP
De estas tres opciones, me quedo con la tercera y os comento el porqué. La primera opción es viable si tenemos 5 equipos, si tenemos 30 lo complicamos y si tenemos 100 no tiene sentido. El proceso es manual (aunque podamos configurar GPO para actualizar las rutas o automatizar el proceso de alguna forma), no dejará de ser un sistema manual siempre muy propenso a fallos. El segundo sistema funciaría perfectamente, podríamos tener un problema de rendimiento, puesto que añadimos un salto más (aunque sea una red local) de una interface LAN del Router 1 al Router 2, puesto que la comunicación sería de la siguiente forma (pulsar en la imagen para verlo a tamaño original):
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_Est%C3%A1ticas_DHCP_Router_1.png
Con esta configuración, cuando algún equipo necesite conectarse a algún recurso de las sedes remotas (192.168.250.0/24 y 192.168.251.0/24) se conectarál Router 1 (10.100.100.1) y este al Router 2 (10.100.100.10) y de ahí las sedes. El tráfico de retorno se le devolverá de igual forma, porque es el gateway por donde los equipos pueden conectarse a las sedes (esto también es discutible, pero dejémoslo así). Ahora bien, si logramos que todos los equipos tengan una ruta estática definiendo que para llegar a las sedes conectar por VPN se conectarán mediante el Router 2 (10.100.100.10) el tráfico será directo entre los clientes y el router, esto evitará latencias indeseadas y menos puntos de falla, este seria el esquema (pulsar en la imagen para verlo a tamaño original):
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_Est%C3%A1ticas_DHCP_Router_2.png
Como podéis apreciar en el esquema anterior, vemos que por defecto el tráfico dirigido a las sedes se envirá directamente al Router 2 (10.100.100.10), esto evitará pasar por la interface del Router 1 (10.100.100.1) y añadiendo latencia en el enlace hacia el Router 2 (10.100.100.10). Siendo esta la configuración deseada, ahora debemos ver como configurarlo de forma automática y para ello vamos a utilizar la opción 121 de nuestro servidor DHCP (en este caso un Windows Server). Para ello configuramos nuestro ámbito DHCP y luego añadimos la opción 121 desde las Opciones de ámbito:
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_EstEticas_vIa_DHCP_1.png
Esta opción debemos buscarla en las Opciones del Ámbito, está al final de la lista (por defecto) y habilitamos la casilla de 121 Rutas estáticas si clase
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_EstEticas_vIa_DHCP_3.png
Ahora únicamente debemos configurar las rutas que queramos enviar a los clientes DHCP, debemos especificar la red de destino, la máscara y la puerta de enlace por la que queremos llegar a esa subred:
- Destino: 192.168.250.0
- Máscara de red: 255..255.255.0
- Puerta de Enlace: 10.100.100.10
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_EstEticas_vIa_DHCP_4.png
Debemos agregar tantas rutas como necesitamos
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_EstEticas_vIa_DHCP_5.png
Como podemos apreciar ya tenemos una ruta agregada, si queremos más rutas estáticas pues las agregamos
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_EstEticas_vIa_DHCP_7.png
Antes de aplicar esta configuración en el DHCP, veamos que tabla de ruteo tenía un equipo sin la opción 121 del DHCP, para ello desde una línea de comandos escribimos route print:
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_EstEticas_vIa_DHCP_8.png
Y sí analizamos los distintos paquetes del DHCP vía WiresHark podemos ver como nos entrega los parámetros que hemos configurado en el DHCP Server y el número de opción
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_EstEticas_vIa_DHCP_12.png
Como vemos no tiene ruta alguna para la red 192.168.250.0/24 y la puerta de enlac es la 10.100.100.1 (este router no tendría configuración alguna de ruteo hacia las sedes conectadas por VPN, únicamente local (LAN) E internet (WAN). Si ahora aplicamos la configuración al DHCP con la opción 121 vemos que el equipo recibe la ruta estática en su tabla de ruteo, no está como pormanente porque la recibe del servidor cada vez que solicite una IP. Como vemos ya tenemos una ruta hacia la red 192.168.250.0/24 y la puerta de enlace para el tráfico sin destino conocido (0.0..0.0 0.0.0.0) tiene para nosotros la la IP del Router 1 (10.100.100.1)
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_EstEticas_vIa_DHCP_11.png
Si ahora abrimos una traza de Wireshark nos encontramos lo siguiente, vemos que tenemos la opción 121 con la ruta estática creada y que con el route print podemos ver en el equipo. En mi caso yo he utilizado la IP 10.100.100.1 como servidor DHCP pero este sería la del router por el cual salimos a Internet (es un LAB y hay que aprovechar recursos). Pero a todos los efectos es operativo, por lo que la IP 10.100.100.1 es nuestra puerta de enlace para el tráfico de Internet, y sin embargo ahora teenemos una ruta hacia la red 192.168.250.0/24 a través del Router 2 (10.100.100.10). Lo que está claro que es la interface LAN de ambos routers debe estar en la misma subred que los clientes, sino ... no podremos llegar directamente sin otro enrutador de por medio. En este caso hablamos siempre de un escenario muy simple, un switch y dos routers con una interface LAN y WAN.
http://blog.asirsl.com/SiteAssets/Lists/EntradasDeBlog/EditPost/Rutas_EstEticas_vIa_DHCP_13.png
Pues con esto tenemos todo configurado, como vemos es muy sencillo configurar "rutas estáticas" en los equipos de nuestra red desde nuestro servidor DHCP. Ya os digo que es muy útil para muchos entornos en donde no tengamos un hardware de L3 adecuado, puesto que si tenemos un switch L3 ya podemos hacer el ruteo a nivel de este switch y no tocamos el DHCP, etc...