Como os servidores / clientes VPN evitam rotear seus próprios pacotes de conexão remota através deles?

5

Estou tentando conceitualizar como a rede funciona sob o capô para VPNs Linux que usam interfaces TUN.

Meu melhor palpite atual é o seguinte (por favor, corrija-me):

  1. Conexão estabelecida para o cliente / servidor remoto.
  2. Interface TUN criada e criada
  3. Tabela de roteamento atualizada para definir o gateway padrão para a interface TUN

Mas os pacotes destinados ao cliente / servidor remoto não acabariam indo para a interface TUN e formando um loop de tipos? Como os sistemas VPN resolvem isso? Qual é a lacuna no meu entendimento?

    
por 64bit_twitchyliquid 11.01.2016 / 15:38

3 respostas

4

Você está certo de que, com roteamento puramente baseado no destino, isso é um problema, se os destinos que você está alcançando através do túnel se sobrepõem ao roteamento necessário para o estabelecimento do túnel, etc ....

A maneira como eu geralmente vi isso acontecer, e eu mesmo fiz isso em vários roteadores, é usar o roteamento de políticas:

  • O roteador que atua como um endpoint VPN mantém sua rota padrão apontando para a Internet por meio de seu link ISP
  • Ele também tem uma rota de política com uma regra baseada na origem, informando que o tráfego proveniente das sub-redes por trás, independentemente do destino, deve ser enviado pelo túnel.
por 11.01.2016 / 16:34
1

Com o roteamento baseado em destino, também não é difícil.

A maneira que eu geralmente vejo é carregar uma rota para o servidor VPN especificando o gateway preexistente e a interface e distância (realmente prioridade de roteamento) definida como 1. A rota padrão da VPN sempre teria uma distância de pelo menos 2.

    
por 11.01.2016 / 19:05
1

Imagine um sistema com 1 adaptador físico: enp2s0.

A tabela de roteamento pode começar quando todo o tráfego sai do enp2s0.

Quando o sistema se conecta a uma VPN, uma interface TUN (tun0) é inicializada e a VPN atualiza a tabela de roteamento: Todo o tráfego destinado ao endereço do servidor VPN na porta X (endereço e porta do servidor VPN) sai do enp2s0. Todo o outro tráfego passa pelo tun0.

É claro que uma VPN não precisa rotear todo o tráfego. Por exemplo, configurei VPNs antes, onde apenas o tráfego que iria para uma determinada sub-rede privada passa pela VPN, de forma que o tráfego normal da Internet não seria alterado. Como você faz isso com base no programa VPN.

    
por 11.01.2016 / 20:56