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á.