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.5
não tem gateway e utilizarátun0
- qualquer pacote destinado
10.8.0.1
será usado10.8.0.5
como gateway viatun0
- qualquer pacote destinado
54.202.18.143
será usado10.0.2.2
como gateway viaeth0
- qualquer pacote destinado a
10.0.2.0/24
nã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.5
como gateway padrão viatun0
. Portanto, este é o gateway padrão, não é? - Qualquer pacote destinado a
128.0.0.0/7
será usado10.8.0.5
como gateway padrão viatun0
- Todos os outros pacotes (
0.0.0.0
) usarão10.0.2.2
como 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.1
realmente vale é não usar nenhum gateway via tun0. Isso está correto? - Considerando os pontos 3 e 4, nada
54.202.18.143
vale 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.0
e 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
fonte
0.0.0.0
rota possui o Genmask, o128.0.0.0
que 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: /Respostas:
A 6ª linha está definindo o intervalo 0.0.0.0 - 127.255.255.255 e a 7ª linha está definindo o intervalo 128.0.0.0 - 255.255.255.255.
NÃO, existe apenas um gateway padrão e é:
Não está correto, os pacotes destinados à 10.8.0.1 seriam roteados para 10.8.0.5 (acessível por tun0 lan conforme definido pela primeira linha).
você estava certo se a máscara de rede não era 255.255.255.255
Não incorreto, os pacotes destinados a 54.202.18.143 seriam roteados para 10.0.2.2 (que é outro host na LAN eth0 e é acessível pela 4ª linha)
fonte