Acabei de configurar o OpenVPN e está funcionando conforme o esperado. No entanto, a tabela de roteamento do cliente está me confundindo sem fim. Aqui está a tabela de rotas:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
54.202.18.143 10.0.2.2 255.255.255.255 UGH 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
Então vamos dissecá-lo linha por linha
- Qualquer pacote destinado a
10.8.0.5não tem gateway e utilizarátun0 - qualquer pacote destinado
10.8.0.1será usado10.8.0.5como gateway viatun0 - qualquer pacote destinado
54.202.18.143será usado10.0.2.2como gateway viaeth0 - qualquer pacote destinado a
10.0.2.0/24não tem gateway e usaráeth0 - Vamos ignorar a parte 169.254.0.0
- Todos os outros pacotes (destinados a
0.0.0.0) nos usarão10.8.0.5como gateway padrão viatun0. Portanto, este é o gateway padrão, não é? - Qualquer pacote destinado a
128.0.0.0/7será usado10.8.0.5como gateway padrão viatun0 - Todos os outros pacotes (
0.0.0.0) usarão10.0.2.2como gateway padrão viaeth0
Questões:
- Eu tenho 2 gateways padrão se considerarmos os pontos 6 e 8? (pode haver apenas 1 gateway padrão, por isso sei que estou errado, mas não posso justificar) ( provavelmente respondido, veja abaixo )
- Considerando os pontos 1 e 2, o que
10.8.0.1realmente vale é não usar nenhum gateway via tun0. Isso está correto? - Considerando os pontos 3 e 4, nada
54.202.18.143vale a pena usar nenhum gateway viaeth0. Isso está correto?
ATUALIZAR...
Depois de ler isso , encontrei mais algumas informações. As linhas abaixo fazem muito sentido para mim agora:
0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
Portanto, a 1ª linha está definindo 0.0.0.0/128.0.0.0e a segunda linha está definindo 128.0.0.0/128.0.0.0. Essencialmente:
0.0.0.0/128.0.0.0 = 0.0.0.0/1 = 0.0.0.0 TO 127.255.255.255
128.0.0.0/128.0.0.0 = 128.0.0.0/1 = 128.0.0.0 TO 255.255.255.255
Portanto, acima de 2 rotas estão cobrindo todo o intervalo de endereços IPv4 [0.0.0.0 TO 255.255.255.255]. É uma maneira inteligente do OpenVPN adicionar uma rota padrão sem substituir a rota padrão original e essa rota padrão será roteada via tun0.
Então, acho que tenho uma resposta para minha primeira pergunta:
Eu tenho 2 gateways padrão se considerarmos os pontos 6 e 8?
NÃO, existe apenas um gateway padrão e é:
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0rota possui o Genmask, o128.0.0.0que provavelmente não a torna uma rota padrão. No entanto, devo dizer que não tenho a menor idéia do que essa máscara significa e para que serve essa rota: /