Esta es una traducción al español de la página que pueden encontrar en: http://www.linuxhorizon.ro/iproute2.html
Primer ejemplo:
Meta: Rutear paquetes que vienen de 4 redes a diferentes ISP’s
Vamos a asumir que tenemos dos ISP’s. En los siguientes ejemplos voy a usar RDS y ASTRAL (dos grandes ISPs de mi pais)
Para los los fanáticos del arte ASCII y del navegador de consola lynx, usaŕe la siguiente tabla
________
+-------------+ /
| ISP 1 | /
+-------------+ (RDS) +------+
| | gw 10.1.1.1 | /
+------+-------+ +-------------+ /
+----------------+ | eth1 | /
| | | | |
| Redes Locales +----+ Linux router | | Internet
| | | | |
+----------------+ | eth2 | \
+------+-------+ +-------------+ \
| | ISP 2 | \
+-------------+ (ASTRAL) +------+
| gw 10.8.8.1 | \
+-------------+ \________
Trabajaremos nada más en nuestro router Linux
Desde el prompt de root haremos
echo 1 RDS >> /etc/iproute2/rt_tables
echo 2 ASTRAL >> /etc/iproute2/rt_tables
El contenido de /etc/iproute2/rt_table después de los comando anteriores:
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
1 RDS
2 ASTRAL
Tenemos ahora tres tablas de ruteo, a saber: tabla RDS , tabla ASTRAL y la tabla principal...
Completemos cada una con la rutas por defecto.
El siguiente paso es tener algunas reglas de ruteo y rutas
Para la tabla RDS:
ip route add default via 10.1.1.1 dev eth1 table RDS
ip rule add from 10.11.11.0/24 table RDS
ip rule add from 10.12.12.0/24 table RDS
Para la tabla ASTRAL:
ip route add default via 10.8.8.1 dev eth2 table ASTRAL
ip rule add from 10.22.22.0/24 table ASTRAL
ip rule add from 10.33.33.0/24 table ASTRAL
Para ver las tablas de ruteo:
ip route show table ASTRAL
ip route show table RDS
ip route show table main # es lo mismo que "route -n" pero en un formato diferente
Para ver las reglas de ruteo:
ip rule show # todas las reglas
ip rule show | grep ASTRAL # solo para ASTRAL
ip rule show | grep RDS # solo para RDS
Expliquemos un poco lo anterior.
Todos los paquetes provinientes de las redes 10.11.11.0/24 y 10.12.12.0/24 irán por la tabla de
ruteo de RDS y entonces (por que tenemos una ruta por defecto) serán pasados al gateway de RDS.
Y similarmente, todos los paquetes provinientes de las redes 10.22.22.0/24 y 10.33.33.0/24 irán
al gateway de ASTRAL
Que está pasando con los paquetes que vienen de otras redes y son son mostrados en las reglas
anteriores? Bueno, simplemente pasan por la tabla principal de ruteo, siguiendo las reglas que
residen ahí... Si querés bloquearlos a que salgan a internet, solamente hay que eliminar el
gateway por defecto de la tabla principal (por supuesto, al hacer eso tu router no seguirá
saliendo a internet).
Segundo Ejemplo:
Meta: Rutear los paquetesque tienen como destino el puerto 22/tcp a RDS y el 80/tcp a ASTRAL
(sin importar que red los genera).
Este ejemplo es casi el mismo que el primero, excepto que usaremos iptables para marcar los
paquetes.
El mismo esquema
________
+-------------+ /
| ISP 1 | /
+-------------+ (RDS) +------+
| | gw 10.1.1.1 | /
+------+-------+ +-------------+ /
+----------------+ | eth1 | /
| | | | |
| Redes Locales +----+ Linux router | | Internet
| | | | |
+----------------+ | eth2 | \
+------+-------+ +-------------+ \
| | ISP 2 | \
+-------------+ (ASTRAL) +------+
| gw 10.8.8.1 | \
+-------------+ \________
El mismo contenido en /etc/iproute2/rt_table
#
# reserved values
<pre>#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
1 RDS
2 ASTRAL
Antes de que empiecen a chequear la configuración de iptables, recomiendo leer
acerca de iptables si no estas seguro acerca de lo que vas a hacer a continuación
Para más documentación vayan a la página de iptables o se pueden descargar documentación de este sitio
(Security & Privacy Section) o directamente desde aquí.
Para marcar los paquetes que tengan el puerto 22 y 80 como destino vamos a usar la tabla MANGLE...
iptables -A PREROUTING -t mangle -i eth0 -p tcp --dport 22 -j MARK --set-mark 1
iptables -A PREROUTING -t mangle -i eth0 -p tcp --dprot 80 -j MARK --set-mark 2
Para la tabla RDS
ip route add default via 10.1.1.1 dev eth1 table RDS # igual que en el primer ejemplo
[bash]
Para la tabla ASTRAL
[bash]
ip route add default via 10.8.8.1 dev eth2 table ASTRAL # igual que en el primer ejemplo
El próximo paso es generar ruteos en base a los paquetes marcados
Para RDS
ip rule add from all fwmark 1 table RDS
Para ASTRAL:
ip rule add from all fwmark 2 table ASTRAL
Se pueden usar los mismos comandos para ver las tablas de ruteo y las listas de reglas que en
el primer ejemplo
Ahora tienes una solución de ruteo basada en el puerto de destino.
Hasta acá la traducción. Se puede encontrar más información en su idioma original en:
http://www.linuxhorizon.ro/iproute2.html



No hay comentarios hasta ahora. ¡Podés ser el primero!