Este documento fue escrito originalmente en Julio de 2000 y se perdió junto con la máquina que lo alojaba. Gracias a archive.org y a Alex Ramos lo tenemos de vuelta.
Lo podría reeditar, poner acentos y demás, pero lo dejo así por razones históricas ;)
http://demasie.aditel.org/docs/tuneles-gre-asimetricos.txt http://spisa.act.uji.es/~peralta/
Autor: Luis Peralta / jaxp Fecha: 6 Julio 2000 Ultima actualizacion: 13 Julio 2000 TODO: sustituir arp por ip neigh
Definimos tunel asimetrico como aquel en el que las dos direcciones internas del tunel no pertenecen a una red privada, sino a la propia Internet. Esto nos va a permitir manejar ip's de una red cualquiera en otra.
Tenemos el siguiente esquema:
/------------------\ Internet /----------------\ |demasie.aditel.org| < - - - - - - - - - > |spisa.act.uji.es| \------------------/ \----------------/ eth0: 194.224.81.16 eth1: 150.128.81.246
Y queremos que una de las ip's de la red de demasie (194.224.81.0) sea una ip mas de spisa.
Montamos el tunel:
demasie-> # ip tunnel add macho mode gre local 194.224.81.16 remote
150.128.81.246
spisa-> # ip tunnel add hembra mode gre local 150.128.81.246
remote 194.224.81.16
Y le asociamos a macho y hembra dos ip's de la red de demasie:
demasie-> # ip addr add 194.224.81.23 dev macho spisa-> # ip addr add 194.224.81.22 dev hembra
Levantamos los devices:
demasie-> # ip link set macho up spisa-> # ip link set hembra up
Añadimos rutas:
demasie-> # ip route add 194.224.81.22 dev macho spisa-> # ip route add 194.224.81.23 dev hembra
Tenemos que jugar con el arp en la red de demasie, ya que queremos que el trafico a 194.224.81.22 vaya a spisa:
demasie-> # arp -s 194.224.81.22 52:54:05:F5:FC:EB (MAC de demasie) pub
Y con esto hecho tenemos el tunel montado. Todo el trafico a 194.224.81.22 ira a spisa y esta podra responder. El esquema nos queda:
/------------------\ Internet /----------------\ |demasie.aditel.org| < - - - - - - - - - > |spisa.act.uji.es| \------------------/ \----------------/ eth0: 194.224.81.16 eth1: 150.128.81.246 macho: 194.224.81.23 hembra: 194.224.81.22
Cuando llegue un paquete para 194.224.81.22 en la red de demasie, este enrutara el paquete a traves del tunel y spisa respondera a traves de eth1. Que puede ser lo que no queramos en realidad, puesto que en caso de que alguno de los routers que atravesemos tenga la opcion de evitar el "source routing" por motivos de seguridad, el tunel fallara y solo sera accesible desde la red original. Es lo que se llama ruta triangular:
194.224.81.22 - - - - - > demasie - - - > - - - - - > - - - > spisa-tunel
^ /
| /
\ /
\- < - - spisa-eth1 <- - /
Para evitar que pase esto tendremos que usar las facilidades de "policy routing" del kernel:
spisa-> # ip rule add from 194.224.81.22 table 13 spisa-> # ip route add default via 194.224.81.23 table 13
Ahora hemos desmontado el triangulo y nos queda la cosa:
194.224.81.22 - - - - - > demasie - - - > - - - - > - - - - > spisa-tunel
\ - - - - - - < - - - - < - - - - - - /