Compreendendo a implementação de VPN

1

A imagem acima mostra o que eu acho que ocorre durante uma conexão OpenVPN. Os hosts A e B estão conectados à VPN através do servidor VPN em 1.2.3.4:1194. A minha pergunta é: se o host A deseja enviar um pacote para o host B (digamos, um pacote de eco ICMP), como o pacote atravessa para chegar a B? Meus pensamentos iniciais foram:

O processo cria o pacote com um destino de 10.20.0.6 e fonte de 192.168.0.x (o ip de origem sendo 192.168.0.x considerando que o aplicativo não está ciente da conexão VPN). Das tabelas de roteamento enviadas para o computador do aplicativo, o pacote é enviado para a interface virtual.

A Interface Virtual do Host A encapsula o pacote a ser destinado ao endereço de WAN do Host B (3.4.5.6).

Isso está correto até agora? Como o roteador em B sabe que este pacote é destinado ao host B? O host A, em vez disso, coloca 1.2.3.4 como o destino (em vez de 3.4.5.6) e permite que o servidor VPN faça o reencaminhamento através da conexão já estabelecida do servidor com B? O roteador em B precisa ser pré-configurado para permitir qualquer tipo de conexão VPN?

    
por Zach 13.11.2013 / 17:14

1 resposta

0

Vamos supor que você já tem tudo configurado e você emite

$ ping 10.20.0.6

no host A.

O host A verifica sua tabela de roteamento interna para ver como ela pode chegar a 10.20.0.6, no linux ela se parecerá mais ou menos assim

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.20.0.0       10.20.0.1       255.255.255.0   UG    0      0        0 tun0

Então o host A determina "Para entrar em contato com o 10.20.0.6, eu preciso enviar minha mensagem através do gateway 10.20.0.1, que eu posso contatar usando a interface tun0 "

10.20.0.1 é o endereço VPN do servidor OpenVPN e tun0 é uma interface de rede definida por software criada pelo programa cliente OpenVPN no Host A.

Assim, o Host A envia uma solicitação de eco ICMP com um endereço de destino de 10.20.0.6 para tun0 . O que acontece então é o Encapsulamento . O cliente OpenVPN encapsula o pacote original em um envelope OpenVPN e envia este envelope para 1.2.3.4:1194.

O servidor OpenVPN em 1.2.3.4 abre o envelope e verifica o endereço: "Ah, é para 10.20.0.6." Se o servidor OpenVPN tiver sido configurado para permitir que os clientes conversem entre si, ele enviará o envelope através da conexão estabelecida com B no endereço 3.4.5.6.

O cliente OpenVPN em B abre o envelope recebido ( De-encapsulation ) e agora tem uma solicitação de eco ICMP para 10.20.0.6 recebida do endereço 10.20.0.5 que é o Host A na rede VPN .

Para funcionar, o OpenVPN requer apenas conectividade TCP ou UDP para a porta 1194 no servidor. Se um firewall ou NAT configurado incorretamente impedir isso, não funcionará.

    
por 14.11.2013 / 10:09