[eside-ghost] iproute2 y la de siempre... router con 2 salidas a internet
Fernando de Urien y Muñiz
zefe en rigel.deusto.es
Vie Oct 3 13:52:48 CEST 2008
Holas,
Pues de esto se ha hablado bastante pero me da que soy un poco torpe.
Ando aquí configurando un router al que quiero ponerle 2 salidas a Internet.
Mi objetivo es sacar el tráfico de ciertas máquinas (con lo cual no creo que
tenga que andar marcando los paquetes con mangle y tal…) por una salida
mientras que mantengo por la estándar lo demás. No pretendo hacer balanceos
de ningún tipo ;-) así que en principio debería ser más sencillo.
Tengo 2 estrategias posibles:
a)
Utilizar la tabla main para el tráfico general y una auxiliar para
ese tráfico especial.
En la tabla main borro la segunda ruta por defecto
En la tabla auxiliar añado las rutas para acceder a las redes
internas y al isp
En la misma tabla auxiliar añado una regla del tipo:
ip rule add from 192.168.0.0/24 table Taux
b)
Dejar la tabla main como está eliminando las 2 rutas por defecto
(por si las moscas)
Recrear en 2 tablas todo el tema.
Meter en la tabla que me interesa el tráfico procedente de una
subred o máquina.
Estoy intentando con la opción B aunque como no me rula pues… estoy abierto
a otras opiniones
El caso es que cuando meto tráfico procedente de cierta dirección (ya no
hablo de subred si no de algo tipo : ip rule add from 192.168.0.33 table
Taux)
na, que ahí se me pierde el tráfico… ¿hay alguna forma de mirar qué está
pasando? Algún tipo de log o algo en plan rápido...
Si planto el script... ¿igual alguno le puede echar un ojo? (lo voy a
plantar de toas toas :-p)
Mil gracias gente!
Zefe
P.D. mi skrí, ozu mi arma!
#################################################################
#!/bin/bash
DEV=eth3
IPCABLE=`ip address show dev $DEV | grep inet |grep -v inet6 |cut -d " " -f
6 |cut -d "/" -f1`
PREFCABLE=`route |grep $DEV | grep -v default |cut -d " " -f 1`
MASKCABLE=`ip address show dev $DEV |grep inet |grep -v inet6| cut -d "/" -f
2 | cut -d " " -f 1`
REDCABLE=`echo "$PREFCABLE/$MASKCABLE"`
GWCABLE=`route |grep eth3 |grep default | cut -d " " -f 10`
##Con esto capturo los datos de la interfaz ya que es ip dinámica (de
momento) es guarrete pero funciona
echo "Borrar rutas por defecto asociadas a los interfaces externos"
route del default
route del default
echo borrado OK
echo " "
echo Inicializar rutas básicas de cada tabla
ip route add 192.168.100.0/24 dev eth2 src 192.168.100.253 table Tadsl
ip route add default via 192.168.100.254 table Tadsl
ip route add $REDCABLE dev $DEV src $IPCABLE table Tcable
ip route add default via $GWCABLE table Tcable
echo inicializado ok
echo " "
echo ruta en principio por defecto para la tabla main
ip route add default via 192.168.100.254
echo ruta por defecto ok
#Lo que genere el propio router que se rute por donde debe
echo " "
echo "tráfico generado internamente desde el router sale por el interfaz
adecuado"
ip rule add from 192.168.100.253 table Tadsl
ip rule add from $IPCABLE table Tcable
echo generación interna ok
#Asegurarnos de que todo lo que llegue por un interfaz, se responda por el
mismo independientemente de a que tabla de rutas se acceda
#En realidad son los interfaces internos de las redes locales que conecta
###para la tabla 1
ip route add 192.168.0.0/24 dev eth0 table Tadsl
ip route add 192.168.101.0/24 dev eth1 table Tadsl
ip route add 192.168.98.0/24 dev eth4 table Tadsl
##con este tengo dudas porque es un alias e iproute no me deja especificar
alias como dev así que lo pongo en el interfaz real
ip route add 10.211.22.0/24 dev eth1 table Tadsl
ip route add $REDCABLE dev $DEV table Tadsl
ip route add 127.0.0.0/8 dev lo table Tadsl
###para la tabla 2
ip route add 192.168.0.0/24 dev eth0 table Tcable
ip route add 192.168.101.0/24 dev eth1 table Tcable
ip route add 192.168.98.0/24 dev eth4 table Tcable
##con este tengo dudas porque es un alias e iproute no me deja especificar
alias como dev así que lo pongo en el interfaz real
ip route add 10.211.22.0/24 dev eth1 table Tcable
ip route add 192.168.100.0/24 dev eth2 table Tcable
ip route add 127.0.0.0/8 dev lo table Tcable
###### Rutas VPN
### Me gustaría especificar ciertas rutas estáticas pero no me tira ni pa
dios, tampoco es urgente
#ip route add 10.66.3.0/24 table Tadsl via 192.168.0.17 scope link
#ip route add 10.66.3.0/24 table Tcable via 192.168.0.17 scope link
### Reglas de acceso
### Especifico en qué tabla meto el tráfico procedente de una ip concreta.
ip rule add from 192.168.0.33 table Tcable
Más información sobre la lista de distribución eside-ghost