1. Diferencias entre redes rutadas y redes «nateadas»
Debemos conocer nuestro entorno y discernir si estamos en un ámbito con o sin traslación de direcciones de Red.
Por definición, NAT (Network Address Translation) es el mecanismo utilizado por un router, por el cual se sustituye la IP de origen de un paquete (normalmente una IP privada) por otra totalmente diferente (normalmente publica) y nos permite conectarnos a cualquier servidor ubicado en Internet con IP pública.
El router mantendrá una tabla interna de todos los NATs realizados para permitir deshacer el cambio cuando regrese la contestación del servidor de Internet y permita entregársela a la IP original ubicada en nuestra LAN. Es el funcionamiento básico de todos los routers actuales basados en IPv4 que tenemos en casa y la mayoría de las empresas.
Por lo tanto, tenemos dos escenarios totalmente diferentes:
- Con NAT: Si existe NAT cada fabricante suele utilizar una técnica propietaria. Normalmente se clasifican los paquetes en base a un criterio (dirección IP de origen o destino, protocolo, puerto) o conjunto de criterios y se marcan dichos flujos de paquetes para que siempre salgan por la misma línea. Es una forma de balancear la carga y sumar líneas añadiendo más caudal de salida de Internet a nuestra oficina, pero no nos servirá para tener más capacidad de entrada, como veremos a continuación.
- Sin NAT: Si no existe NAT y simplemente queremos unir dos redes entre si podríamos realizar otra división en función de la capa de red en la que trabajemos:
- Unión de redes en Capa 2 (enlaces entre switches): aquí se emplean técnicas de Bonding, LACP, PortChannel.
- Unión de redes de Capa 3 (enlaces entre routers): aquí se emplean técnicas de enrutamiento estático como ECMP o enrutamiento dinámico en base al protocolo que utilicemos (EIGRP, OSPF, BGP).
- Unión entre Servidores y Switches: aquí se emplean técnicas como LACP o propietarias del fabricante de la tarjeta de red o Sistema Operativo (Teaming).
2. Manos a la obra. Ejemplos.
2.1 Ejemplo con NAT y dos líneas de Internet con fabricante Mikrotik.
En este ejemplo necesitamos:
- Un router Mikrotik
- 2 líneas de Internet con IP pública configurable en el router.
- Elegir el criterio de balanceo (por ip, por conexión, por ambas).
- Marcado de conexiones (Mangle)
- Marcado de rutas (Routing Mark)
- Activar NAT
El proceso de configuración en este fabricante paso a paso, es el siguiente:
- Asociamos las IPs y rutas a nuestro router:
Menu->IP->Address List
Menu->IP->Routes
En nuestro router existirán 3 tablas de rutas diferentes:
- TABLA PRINCIPAL (MAIN)
- TABLA RM-WAN1
- TABLA RM-WAN2
Cada una con su ruta por defecto y sus métricas. Prestad especial atención a las marcas d erutas RM-WAN1 y RM-WAN2 creadas para que podamos seleccionar paquetes y asignarlos a estas tablas de rutas. Esto nos permitirá más adelante balancear la salida.
- Elegimos el criterio de selección de los paquetes a balancear (misma ip origen y destino saldrán siempre por la misma línea):
Menu->IP->Firewall->Mangle
Nuestras dos reglas dirían algo así: “A todos aquellos paquetes que entren por la interfaz eth3-LAN y no hayan sido previamente clasificados, márcalos para que el flujo de datos que haya entre dos IPs salgan siempre por la misma línea de Internet. Ponle una marca llamada CM-WAN1 y CM-WAN2 respectivamente”
Copiamos la regla y generamos ahora otra regla igual, preo con la variación siguiente:
Con esta tenemos 2 reglas de «mangle» que marcarán las conexiones y las clasificarán para hacer algo con ellas. Asociarlas a una tabla de rutas y por ende a una línea de internet diferente. Veamoslo:
- Marcamos las conexiones para sacarlas por una tabla de rutas diferentes:
Menu->IP->Firewall->Mangle
Generamos otras dos reglas y dirían algo así: Elegiremos las conexiones “marcadas” con las etiquetas CM-WAN1 y CM-WAN2 que vengan de nuestra eth1-LAN para asociarlas a marcas de ruta diferentes:
Muy importante quitar el “check” Passtrhough para que el router no haga más comprobaciones con las reglas inmediatamente posteriores a estas.
Por último…
- Activamos el NATs en las interfaces de salida (Masquerade):
IP->Firewall->NAT
- Verificación:
Llegado a este punto ya solo nos queda testear y comprobar que efectivamente y de forma algo aleatoria (depende de un algoritmo matemático por el cual la IP Origen e IP Destino se utilizarán para calcular un resultado que dará 1 o 0 y permitirá asociar la línea de internet 1 o 2).
Podemos verificarlo utilizando la herramienta propia del router (Torch).
O verificando nuestra IP pública de Internet en varias webs y en varios equipos.
Y hasta aquí nuestro primer ejemplo de balanceo de salida en un entorno NAT. Espero que os haya gustado y os abra los ojos a algunas configuraciones interesantes a las que podéis optar con este tipo de equipos.
En el próximo blog veremos otros ejemplos con entornos sin NAT.