Meu objetivo é configurar uma VPN bidirecional site-to-site. Quero poder acessar o lado do servidor do lado do cliente, e o lado do cliente do lado do servidor.
Não estou fazendo nada avançado e tentei seguir as instruções no guia de conexão site-to-site do OpenVPN. Mas, acho que, como estou usando dois roteadores DD-WRT como meu servidor e VPNs de cliente, estou tendo um problema em corresponder o guia à minha situação.
Do lado do cliente, consigo conectar aos hosts de rede do lado do servidor. Do lado do servidor, não consigo conectar aos hosts do lado do cliente.
Mapa de rede:
Rede CG-NAT LAN 192.168.0.0/22 Cliente OpenVPN em DD-WRT 192.168.0.2
Rede LAN regular 192.168.4.0/22 Servidor OpenVPN em DD-WRT 192.168.4.2
Túnel: 10.10.28.1 <-> 10.10.28.2 (posso ver que está configurado corretamente nos logs)
Eu controlo ambos os lados, então estava tentando configurar as rotas para consertar o problema. Suspeito que as rotas (ou as configurações no servidor OpenVPN) estejam erradas.
Esta é a tabela de roteamento no lado do cliente OpenVPN:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 0 0 0 br0
10.10.28.0 * 255.255.255.0 U 0 0 0 tun1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
192.168.0.0 * 255.255.252.0 U 0 0 0 br0
192.168.4.0 10.10.28.1 255.255.252.0 UG 200 0 0 tun1
Posso fazer ping de qualquer lugar na rede do cliente para a rede 192.168.4.0:
# ping 192.168.4.222
PING 192.168.4.222 (192.168.4.222): 56 data bytes
64 bytes from 192.168.4.222: seq=0 ttl=63 time=42.244 ms
64 bytes from 192.168.4.222: seq=1 ttl=63 time=32.047 ms
Esta é a tabela de roteamento no host do servidor OpenVPN quando a abro pela primeira vez:
default via 192.168.4.1 dev br0
10.10.28.0/24 dev tun2 scope link src 10.10.28.1
127.0.0.0/8 dev lo scope link
192.168.4.0/22 dev br0 scope link src 192.168.4.2
Observações: Não consigo fazer ping da rede do servidor para a rede 192.168.0.0. NO ENTANTO, enquanto estiver logado no host do servidor OpenVPN (192.168.4.2), consigo fazer ping do outro lado do túnel (10.10.28.2)
# ping 10.10.28.2
PING 10.10.28.2 (10.10.28.2): 56 data bytes
64 bytes from 10.10.28.2: seq=0 ttl=64 time=40.287 ms
64 bytes from 10.10.28.2: seq=1 ttl=64 time=35.791 ms
# traceroute 192.168.0.1
traceroute to 192.168.0.1 (192.168.0.1), 30 hops max, 46 byte packets
1 192.168.4.1 (192.168.4.1) 5.108 ms 4.927 ms 3.953 ms
2 * *
Então, meu primeiro palpite foi adicionar esta rota para corresponder à rota do Cliente para a sub-rede do Servidor:
route add -net 192.168.0.0 netmask 255.255.252.0 gw 10.10.28.2 metric 200 tun2
Isso criou uma entrada adicional:
192.168.0.0 10.10.28.2 255.255.252.0 UG 200 0 0 tun2
Isso fez alguma diferença, mas o traceroute ou os pings não retornam.
# traceroute 192.168.0.1
traceroute to 192.168.0.1 (192.168.0.1), 30 hops max, 46 byte packets
1 * * *
Obviamente sou iniciante, então me diga se preciso de mais informações para me ajudar.