Curso de IPv6
Con el curso de IPv6 conoce las principales características del protocolo IPv6 y aprender a configurar los equipos...
Aprende qué es el enrutamiento o ruteo, que tiene como misión encontrar la mejor ruta de una red, para ello te lo explicamos paso a paso en este artículo.
Tabla de contenidos
Aprende qué es el enrutamiento o ruteo, que tiene como misión encontrar la mejor ruta posible de una red, para ello te lo explicamos paso a paso en este artículo como encontrar y optimizar la mejor ruta..
El enrutamiento selectivo es una de las posibles soluciones que existen a un problema, que en algunas ocasiones nos podemos encontrar, cuando modificamos la situación habitual en la que tenemos un escenario como el que vemos en esta imagen.
La situación normal que podríamos tener en redes domésticas y también en muchas redes corporativa simples sería la que tenemos en la imagen.
Nuestro acceso internet los obtenemos a través de un router1
, que es el router o dispositivo de nuestro proveedor de internet que nos permite el acceso a internet.
Detrás de ese router del proveedor, que simplemente lo que hace cambiar el tráfico que utiliza la tecnología del proveedor, por ejemplo tráfico de fibra, a una conexión Ethernet, lo normal cuando las redes tienen ciertas características, es que tuviésemos un dispositivo que actuase como cortafuegos, o bien un dispositivo que actuase como control de acceso a la red interna.
En un escenario normal, en el que tendríamos el router y además un dispositivo que controlase el tráfico correctamente, ya que las prestaciones que suelen tener estos dispositivos como el router son muy limitadas, complementamos el mismo conectando un segundo router de otro proveedor, es decir, lo que tendríamos serían dos accesos a internet conectado al mismo dispositivo, que podría distribuir ese acceso a internet de forma transparente a los equipos de la red local.
Lo que denominamos como enrutamiento selectivo, consiste en que, mediante el uso de la serie de herramientas en Linux, particularmente el uso de iptables y la herramienta iproute2, nos va a permitir seleccionar qué tipo de tráfico queremos enviar por una vía y qué tipo de tráfico queremos enviar por otra.
Esto podría hacerse en muchas situaciones diferentes, por ejemplo:
router1
como acceso principal y el router2
tenerlo como respaldo, así en el caso de que el acceso principal caiga, lo que hacemos es desviar todo el tráfico al segundo router.router1
o el router2
, con idea de aumentar el rendimiento o el ancho de banda del uso de los clientes.De esta forma lo que hacemos es comprobar el tráfico que entra en el equipo, que normalmente es el tráfico de los clientes a internet, aunque también puede hacerse a la inversa.
Después seleccionamos el tráfico web, que normalmente es un tráfico pesado y que hace que caiga el rendimiento de otro tipo de tráfico, y lo enviamos a través del router2
. Es decir, seleccionamos el tráfico que va con destino a los puertos 80 y 443, que es el tráfico web, y lo desviamos al router2
, mientras que por el router1
dejamos pasar el resto del tráfico.
Esto se hace gracias a una funcionalidad que incorporan los sistemas Linux, que aunque estemos acostumbrados a utilizar una tabla encaminamiento, realmente los sistemas Linux pueden utilizar múltiples tabla de enrutamiento.
Podemos listar las diferentes tablas de enrutamiento que existen con el comando ip rule list, aunque realmente la tabla main es la que se utiliza por defecto.
La solución que se plantea a este problema consta de varios pasos:
router2
.Estos pasos los ejecutaríamos de la siguiente forma:
De esta forma el tráfico se analizará y cuando llegue una solicitud de un cliente que sea otro puerto diferente al 80 o al 443 saldrá por el router1
, y cuando iptables detecte que es alguno de esos puertos lo marcará y después, a través de esta regla, se envía a la segunda tabla de encaminamiento con esa regla de enrutamiento por defecto, y saldrá por el router2
.
Os dejamos un enlace a un artículo del blog, dónde está hecho todo este proceso con detalle por si queréis verlo más a fondo o probarlo, ya sea en esta configuración o en cualquier otra que se os ocurra.
Poder usar iptables e iproute para marcar y el modificar los paquetes es muy interesante, porque aunque es algo relativamente sencillo de hacer, realmente se está haciendo algo complejo y de mucha utilidad.
router2
, ubicarla en /etc/iproute2/rt_tables
y añadirla:
echo 201 router2 >> /etc/iproute2/rt_tables
eth2
y que tienen origen en el direccionamiento que tenemos en la red local, y como destino algo diferente a la propia máquina que actúa como router, en este caso los puertos 80 y 443 de tcp, es decir, el tráfico web, los marcamos con la marca número 1:
iptables -t mangle -A PREROUTING -i eth2 -s 172.16.0.0/16 \! -d 172.16.0.1 -p tcp -m multiport --dports 80, 443 -j MARK \ --set-mark 1
router2
:
ip rule add fwmark 1 table router2
router1
, la añadimos a la tabla del router2
:
ip route add default via 192.168.2.1 dev eth1 table router2
Si quieres aprender en profundidad sobre Iptables, puedes hacer el curso de nuestro profesor experto Alberto Molina de esta herramienta, en el que te enseña paso a paso cómo crear un cortafuegos con Iptables.
Recuerda que puedes comenzar este curso con tu suscripción en OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.
También te puede interesar
Con el curso de IPv6 conoce las principales características del protocolo IPv6 y aprender a configurar los equipos...
Consigue comprender las características principales de la pila de protocolos de Internet TCP/IP para ser capaz de configurar...
Conoce qué es un cortafuegos y cómo se implementa de forma práctica con iptables