Conecte AWS y Azure a través de OpenVPN

Conecte AWS y Azure a través de OpenVPN

Estoy intentando conectar dos redes (AWS y Azure) a través de OpenVPN. Conozco otras implementaciones (OpenSwan+Azure GW, etc.), pero necesito la máxima portabilidad, ya que también la expandiré a otros proveedores de vps en la nube.

Las puertas de enlace OpenVPN pueden hacer ping entre sí, y cada puerta de enlace puede hacer ping a todas las IP de la red opuesta, pero las computadoras de una red no pueden hacer ping a las computadoras de la otra red (tampoco pueden hacer ping a las puertas de enlace opuestas).

¿Que me estoy perdiendo aqui? Parece que muchos tienen este problema por varias razones, pero después de más de 50 intentos me di por vencido y decidí preguntar :)

Red 1:

dev tun puerto 1194 ifconfig 10.8.223.40 10.8.223.41 ruta 10.22.1.0 255.255.255.0 vpn_gateway comp-lzo keepalive 10 60 persist-key persist-tun usuario nadie grupo nadie secreto /etc/openvpn/static.key

ip route
default via 10.0.1.1 dev eth0
10.0.1.0/27 dev eth0  proto kernel  scope link  src 10.0.1.9
10.22.1.0/24 via 10.8.223.41 dev tun0
10.33.0.0/24 via 10.33.0.2 dev tun2
10.33.0.2 dev tun2  proto kernel  scope link  src 10.33.0.1
10.8.223.41 dev tun0  proto kernel  scope link  src 10.8.223.40 

Red 2

dev tun puerto 1194 remoto my_ext_ip 1194 ifconfig 10.8.223.41 10.8.223.40 ruta 10.0.0.0 255.254.0.0 vpn_gateway comp-lzo keepalive 10 60 persist-key persist-tun usuario nadie grupo nadie secreto /etc/openvpn/static.key

ip route
default via 10.22.1.1 dev eth0
10.0.0.0/15 via 10.8.223.40 dev tun0
10.22.1.0/24 dev eth0  proto kernel  scope link  src 10.22.1.9
10.8.223.40 dev tun0  proto kernel  scope link  src 10.8.223.41 

Esto es lo que tengo en cuanto a iptables:

Ambas redes:iptables -I ADELANTE -i eth0 -o tun0 -m conntrack --ctstate NUEVO -j ACEPTAR iptables -I ADELANTE -i tun0 -o eth0 -m conntrack --ctstate NUEVO -j ACEPTAR

Red 1:iptables -t nat -A POSTROUTING -s "10.0.0.0/15" -o "eth0" -j MASQUERADE iptables -A FORWARD -p tcp -s 10.0.0.0/15 -d 0.0.0.0/0 -j ACCEPT

iptables -t nat -A POSTROUTING -s "10.8.223.40/32" -o "eth0" -j MASQUERADE iptables -A FORWARD -p tcp -s 10.8.223.40/32 -d 0.0.0.0/0 -j ACEPTAR

Red 2:iptables -t nat -A POSTROUTING -s "10.22.1.0/24" -o "eth0" -j MASQUERADE iptables -A FORWARD -p tcp -s 10.22.1.0/24 -d 0.0.0.0/0 -j ACCEPT

iptables -t nat -A POSTROUTING -s "10.8.223.41/32" -o "eth0" -j MASQUERADE iptables -A FORWARD -p tcp -s 10.8.223.41/32 -d 0.0.0.0/0 -j ACEPTAR

Mi suposición fue (ya que tengo puertas de enlace separadas para el acceso a Internet) que ahora tengo que agregar rutas a cada computadora sin puerta de enlace en ambas redes que enrutarán los paquetes destinados a la red opuesta a través de la puerta de enlace OpenVPN local.

Hice eso para la máquina 10.0.1.7:

ruta ip agregar 10.22.1.0/24 a través de 10.0.1.9

Entonces ahora tengo:

predeterminado a través de 10.0.1.1 dev eth0 10.0.1.0/27 dev eth0 proto kernel alcance enlace src 10.0.1.7 10.22.1.0/24 a través de 10.0.1.9 dev eth0 172.17.0.0/16 dev docker0 proto kernel alcance enlace src 172.17.42.1

pero traceroute a 10.22.1.9 (puerta de enlace opuesta) todavía no llega a ninguna parte...

PD: La mayoría de mis máquinas están en Docker, pero también obtengo los mismos resultados en la máquina host.

¡Cualquier ayuda sería muy apreciada!

información relacionada