Conecte AWS e Azure via OpenVPN

Conecte AWS e Azure via OpenVPN

Estou tentando conectar duas redes (AWS e Azure) via OpenVPN. Estou ciente de outras implementações (OpenSwan + Azure GW etc.), mas preciso de portabilidade máxima, pois expandirei isso para outros provedores de vps em nuvem também.

Os gateways OpenVPN podem executar ping entre si, e cada gateway pode executar ping em todos os IPs na rede oposta, mas os computadores em uma rede não podem executar ping em computadores na outra rede (nem podem executar ping nos gateways opostos).

O que estou perdendo aqui? Parece que muitos estão tendo esse problema por vários motivos, mas depois de mais de 50 tentativas desisti e decidi perguntar :)

Rede 1:

dev tun porta 1194 ifconfig 10.8.223.40 10.8.223.41 rota 10.22.1.0 255.255.255.0 vpn_gateway comp-lzo keepalive 10 60 persist-key persist-tun usuário ninguém grupo ninguém segredo /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 

Rede 2

dev tun porta 1194 remoto my_ext_ip 1194 ifconfig 10.8.223.41 10.8.223.40 rota 10.0.0.0 255.254.0.0 vpn_gateway comp-lzo keepalive 10 60 persist-key persist-tun usuário ninguém grupo ninguém segredo /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 

Aqui está o que eu tenho em termos de iptables:

Ambas as redes:iptables -I FORWARD -i eth0 -o tun0 -m conntrack --ctstate NOVO -j ACEITAR iptables -I FORWARD -i tun0 -o eth0 -m conntrack --ctstate NOVO -j ACEITAR

Rede 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 ACEITAR

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 ACEITAR

Rede 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 ACEITAR

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 ACEITAR

Minha suposição foi (já que tenho gateways separados para acesso à Internet) que agora preciso adicionar rotas para cada computador não-gateway em ambas as redes que encaminharão pacotes destinados à rede oposta através do gateway OpenVPN local.

Eu fiz isso para a máquina 10.0.1.7:

rota ip adicionar 10.22.1.0/24 via 10.0.1.9

Então agora eu tenho:

padrão via 10.0.1.1 dev eth0 10.0.1.0/27 dev eth0 proto kernel scope link src 10.0.1.7 10.22.1.0/24 via 10.0.1.9 dev eth0 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.42.1

mas traceroute para 10.22.1.9 (gateway oposto) ainda não leva a lugar nenhum ...

PS A maioria das minhas máquinas está no Docker, mas também obtenho os mesmos resultados na máquina host.

Qualquer ajuda seria muito apreciada!

informação relacionada