como entender a tabela de roteamento em um cliente OpenVPN

12

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

  1. Qualquer pacote destinado a 10.8.0.5não tem gateway e utilizarátun0
  2. qualquer pacote destinado 10.8.0.1será usado 10.8.0.5como gateway viatun0
  3. qualquer pacote destinado 54.202.18.143será usado 10.0.2.2como gateway viaeth0
  4. qualquer pacote destinado a 10.0.2.0/24não tem gateway e usaráeth0
  5. Vamos ignorar a parte 169.254.0.0
  6. Todos os outros pacotes (destinados a 0.0.0.0) nos usarão 10.8.0.5como gateway padrão via tun0. Portanto, este é o gateway padrão, não é?
  7. Qualquer pacote destinado a 128.0.0.0/7será usado 10.8.0.5como gateway padrão viatun0
  8. Todos os outros pacotes ( 0.0.0.0) usarão 10.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 via eth0. 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
slayedbylucifer
fonte
2
A primeira 0.0.0.0rota possui o Genmask, o 128.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: /
Martin von Wittich
Também não se awarfe que roteamento 128.0.0.0 dentro da sua rede é realmente estranho porque é ip público ou reservado i don ' "t lembre, mas em ambos os casos isso é estranho..
kiwy
A parte 128.0.0.0 é proveniente do openvpn. é explicado aqui
slayedbylucifer
Você deve transformar o seu "UPDATE" para uma resposta, pois é apenas isso: uma resposta que me ajudou a entender exatamente o mesmo problema que eu estava tendo :)
woj
@slayedbylucifer, a explicação para 128.0.0.0 parece estar inativa e não há um arquivo disponível. Você tem um link on-line sobre isso?
SaAtomic 30/03

Respostas:

3

Eu tenho 2 gateways padrão se considerarmos os pontos 6 e 8? (pode haver apenas 1 gateway padrão, portanto, sei que estou errado, mas não posso justificar) (provavelmente respondido, veja abaixo)

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.

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

Considerando os pontos 1 e 2, qualquer coisa para 10.8.0.1 não está realmente usando nenhum gateway via tun0. Isso está correto?

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

Considerando os pontos 3 e 4, qualquer coisa para 54.202.18.143 não está realmente usando nenhum gateway via eth0. Isso está correto?

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)

Arash
fonte
A primeira pergunta é respondida por você. Eu só queria que a resposta estivesse completa, então a mencionei.
Arash