Alguien ha configurado antes un túnel con GRE o con IPIP? Probé con ambos y no 
pude hacer andar ninguno.

Situación: dos routers, cada uno con la siguiente conexión a Internet:

router A: interfaz eth0 conectada a Internet, IP pública 190.151.13x.xxx
router B: interfaz eth0 conectada a Internet, IP pública 190.151.14x.xxx

Lo que me interesa es hacer un túnel para que las redes, que están detras de 
los respectivos routers, se puedan ver.

Probé con esto:

router A: (los ejecuté todos con sudo, no acostumbro usar la cuenta root en 
forma directa)
modprobe ip_gre
ip tunnel add tun0 mode gre remote 190.151.14x.xxx local 190.151.13x.xxx ttl 255

ifconfig tun0 10.0.0.1/24
ifconfig tun0 up
ifconfig tun0 pointopoint 10.0.0.2

router B:
modprobe ip_gre
ip tunnel add tun0 mode gre remote 190.151.13x.xxx local 190.151.14x.xxx ttl 255

ifconfig tun0 10.0.0.2/24
ifconfig tun0 up
ifconfig tun0 pointopoint 10.0.0.1

Finalmente pruebo desde router A, por lo menos para saber que el túnel anda:

router A:
ping 10.0.0.2

Sin embargo no me muestra absolutamente nada, 100% paquetes perdidos. Ni 
siquiera un Destination unreachable.

Probé lo siguiente en router A, en otro terminal mientras corría el ping:

tcpdump -ni tun0 icmp

Y veo los echo request.

Sin embargo luego probé lo siguiente:

tcpdump -ni eth0 proto 47

Y no veo ningún paquete GRE saliendo por la interfaz.

Es como si Linux no quisiera encapsular y mandar los paquetes.

Por router B no veo nada, ni ICMP ni GRE en ninguna de las interfaces.

Ambos están filtrando con iptables pero puse iptables -A INPUT -i eth0 -p gre 
-j ACCEPT en c/u, y están con política ACCEPT por default para todo lo demás 
(bueno... hay un iptables -A INPUT -i eth0 -j DROP al final... en ambos... pero 
a tun0 de c/u no le puse nada).

De cualquier manera, vuelvo a repetir, no veo salir los paquetes, por tanto 
mucho menos van a llegar. ¿Hay que habilitar algún flag en /proc/sys/net/ipv4 o 
similiar? ¿Aparte de ip_forward?

Saludos y atte.

--
Matias Moreno

Responder a