Estou me conectando a um serviço VPN usando OpenVPN e tudo funciona bem. Depois de conectar, estas são as regras que são definidas automaticamente:
root@linux:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:AA:1B:01:AC:FB
inet addr:192.168.1.201 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46867 errors:0 dropped:0 overruns:0 frame:0
TX packets:29742 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:37977382 (36.2 MiB) TX bytes:5098121 (4.8 MiB)
Interrupt:16
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.7.7.126 P-t-P:10.7.7.125 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:23284 errors:0 dropped:0 overruns:0 frame:0
TX packets:5817 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:31366374 (29.9 MiB) TX bytes:308591 (301.3 KiB)
root@linux:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.7.7.125 128.0.0.0 UG 0 0 0 tun0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
5.120.121.114 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0
10.7.7.1 10.7.7.125 255.255.255.255 UGH 0 0 0 tun0
10.7.7.125 * 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.7.7.125 128.0.0.0 UG 0 0 0 tun0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
Aqui está o que eu entendo:
- meu endereço IP local é 192.168.1.201
- gateway local é 191.168.1.1
- 5.120.121.114 é o IP público da VPN
- tun0 é o túnel VPN, minha máquina tem 10.7.7.126 como endereço
- 10.7.7.125 é o endereço ptp que entendo ser a outra “extremidade” da VPN
Em relação à tabela de roteamento, entendo que:
- por padrão, todo o tráfego é enviado via 10.7.7.125 na interface tun0 (mas por que essa máscara?)
- 10.7.7.1 pode ser acessado via tun0
- ip público de vpn é acessível via eth0
Não entendo o segundo gateway padrão, esse é o padrão quando a VPN não está ativa, é simplesmente ignorado?
E quanto ao 10.7.7.1? parece que é o gateway da VPN...
Por que o destino 128.0.0.0?
O OpenVPN cria automaticamente todas essas regras. Mas com base no que são criados?
Não consigo controlar o lado do servidor da VPN, mas apenas a configuração do cliente.
Agora, e se eu quiser:
- forçar todo o tráfego para 216.58.213.174 a passar pela VPN tun0 e fazer com que todo o resto passe pela eth0?
- posso estabelecê-lo automaticamente ao iniciar a VPN?
Obrigado por sua sugestão e apoio na compreensão disso.
KR, dk
EDITAR:
root@linux:~# ip route list
0.0.0.0/1 via 10.7.7.125 dev tun0
default via 192.168.1.1 dev eth0
5.152.210.249 via 192.168.1.1 dev eth0
10.7.7.1 via 10.7.7.125 dev tun0
10.7.7.125 dev tun0 src 10.7.7.126
128.0.0.0/1 via 10.7.7.125 dev tun0
192.168.1.0/24 dev eth0 src 192.168.1.201
Responder1
Não entendo o segundo gateway padrão, esse é o padrão quando a VPN não está ativa, é simplesmente ignorado?
Este é um dos hacks do OpenVPN para rotear o tráfego através do seu túnel enquanto mantém o seu gateway padrão. As rotas 0.0.0.0/1 e 128.0.0.0/1 têm precedência sobre a rota 0.0.0.0/0, pois são mais específicas e ainda correspondem a todos os endereços. Procure por “def1” na documentação do OpenVPN para mais detalhes
E quanto ao 10.7.7.1? parece que é o gateway da VPN...
Provavelmente sim
O OpenVPN cria automaticamente todas essas regras. Mas com base no que são criados?
Eles provavelmente são enviados do servidor. Posso fornecer mais informações se você puder fornecer a saída do seu cliente enquanto ele está iniciando junto com seu arquivo de configuração
Não consigo controlar o lado do servidor da VPN, mas apenas a configuração do cliente.
Sim, mas o cliente é altamente configurável de forma que você pode substituir praticamente qualquer coisa que o servidor queira que seu cliente faça. Ainda assim, você precisará atender aos requisitos básicos do seu provedor para se conectar. Você também deve verificar os “Termos de Uso” de seus provedores para ter certeza de não irritá-los.
Agora, e se eu quiser:
forçar todo o tráfego para 216.58.213.174 a passar pela VPN tun0 e fazer com que todo o resto passe pela eth0?
Sim, inclua "rota 216.58.213.174 255.255.255.255 10.7.7.125" em sua configuração. Isso deve configurar a rota desejada. Você deve conseguir manter suas outras rotas removendo a opção "redirect-gateway" da sua configuração
posso estabelecê-lo automaticamente ao iniciar a VPN?
sim, veja acima
Todas as opções que descrevi e muito mais podem ser encontradas na documentação online do OpenVPN. https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage