OpenVPN & hairpinning NAT - caminho errado?


0

Eu tenho um problema com algum tráfego OpenVPN não passando pelo túnel VPN. Minha configuração é a seguinte:

Eu uso o espaço de endereço 10.7.7.0/24 na minha rede doméstica. No meu Edgerouter (10.7.7.1) eu habilitei o hairpinning NAT, para que eu também possa acessar mydomain.com de dentro da LAN. Eu tenho um servidor OpenVPN (10.7.7.50) que funciona muito bem. Meu laptop recebe um IP (espaço 10.8.1.0/24) e o tráfego passa pelo túnel. Eu também vejo solicitações de DNS no meu pihole, como esperado. Agora só tenho um problema: quando tento acessar mydomain.com de fora (mas conectado à VPN), o tráfego não passa pelo túnel. Eu sei disso porque não vejo uma solicitação de DNS e mydomain.com é acessível apenas a partir da LAN local, por isso a página não é carregada. Eu também comparei traceroute google.com e traceroute mydomain.com, e com o google.com eu vejo o tráfego passando pelo 10.8.1.1 e depois para o meu roteador 10.7.7.1, enquanto que para o mydomain.com ele passa pelo 10.0.0.1, que é o gateway do wlan externo ao qual estou conectado.

Quando tento acessar mydomain.com do meu telefone (conectado à VPN), não há problema. O site carrega e esse tráfego passa pela VPN. Espero que o roteamento no meu laptop esteja de alguma forma errado, mas eu não sei muito sobre a rede para consertá-lo ... Algumas informações:

Saída de ip route no laptop (não está funcionando corretamente):

default via 10.8.1.5 dev tun0 proto static metric 50
default via 10.0.0.1 dev wlo1 proto static metric 600

ip route no telefone android (funcionando corretamente):

10.0.0.0/24   dev wlan0   proto kernel scope link  src 10.0.0.35
10.8.1.8/30   dev tun0   proto kernel scope link  src 10.8.1.10

Configuração do servidor OpenVPN:

port 1194
proto tcp
dev tun
....
push "dhcp-option DNS 10.7.7.4"   <- pihole
push "dhcp-option DNS 10.7.7.1"
push "redirect-gateway def1 bypass-dhcp"
...
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.