Como configurar corretamente o IPv6 com o OpenVPN?

6

Tentando encontrar a configuração do OpenVPN que atende às minhas necessidades, fiz este script para me ajudar durante a instalação em um CentOS sistema. Meu arquivo de configuração do servidor realmente se parece com isso:

port 1194
proto udp
dev tun
user nobody
group nobody
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
push "dhcp-options DNS 2a04:52c0:101:xxx::1"
push "redirect-gateway def1 bypass-dhcp"
crl-verify crl.pem
ca ca.crt
cert server.crt
key server.key
tls-auth tls-auth.key 0
dh dh4096.pem
auth SHA256
cipher AES-256-CBC
tls-server
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
status openvpn.log
verb 4

Na verdade funciona perfeitamente, mas como eu aluguei um servidor @ liteserver.nl e eles me deram uma sub-rede / 64, eu estava tentando configurar o servidor OpenVPN para dar um endereço IPv6 para cada cliente acessar a internet com um IP dedicado . Então, segui as instruções na página para configurar o IPv6 para uso interno. E essa página contém instruções para um servidor com um IPv6 público que é 2001: db8: 0: abc :: 100/64 e uma sub-rede IPv6 roteada (que eu acho que é provavelmente o que liteserver.nl me deu) que é 2001: db8: 0: 123 :: / 64. Não prestando atenção na diferença de endereços de exemplo, configurei meu servidor com um IPv6 público (2a04: 52c0: 101: xxx :: 100/64) e dei aos clientes OpenVPN toda a sub-rede que eles me deram (2a04: 52c0: 101: xxx :: / 64), aqui está como o meu server.conf realmente se parece:

port 1194
proto udp
dev tun
user nobody
group nobody
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
push "dhcp-options DNS 2a04:52c0:101:xxx::1"
push "redirect-gateway def1 bypass-dhcp"
crl-verify crl.pem
ca ca.crt
cert server.crt
key server.key
tls-auth tls-auth.key 0
dh dh4096.pem
auth SHA256
cipher AES-256-CBC
tls-server
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
status openvpn.log
verb 4
server-ipv6 2a04:52c0:101:xxx::/64
tun-ipv6
push tun-ipv6
ifconfig-ipv6 2a04:52c0:101:xxx::1 2a04:52c0:101:xxx::2
push "route-ipv6 2a04:52c0:101:xxx::/64"
push "route-ipv6 2000::/3"

Assim como a conectividade IPv4 funciona, IPv6 são atribuídos corretamente, mas não consigo acessar a Internet usando IPv6 (de acordo com test-ipv6.com) Estou me perguntando se preciso de duas sub-redes / 64 (uma para a rede privada OpenVPN e um para o próprio servidor VPN, para conexões de saída) para configurar isso corretamente ou se eu perdi alguma coisa ... de qualquer maneira o que eu gostaria de obter é um servidor VPN com conectividade IPv4 e IPv6 privada e com um IPv4 público e outro ou mais endereços IPv6. Por favor, me diga se é possível e como fazer isso. Eu estou realmente esperando que alguém possa me ajudar.

Obrigado antecipadamente.

    
por Phonic Mouse 24.08.2017 / 23:18

1 resposta

4

Acho que você precisa fazer proxy de solicitações NDP para seus endereços IPv6 públicos. Eu não testei isso pessoalmente, mas esta é a teoria:

Seu ISP enviará tráfego para toda a rede IPv6 (2a04: 52c0: 101: xxx :: / 64) para o seu servidor. Isso significa que, quando alguém na Internet tenta se conectar a um endereço IP dentro dessa rede, o tráfego será enviado para o seu servidor, esperando que ele saiba como lidar com isso.

Seu servidor tem um endereço nessa rede (2a04: 52c0: 101: xxx :: 100). Quando recebe tráfego para outro endereço, ele o ignora, porque não é um endereço com o qual ele possa se identificar. Assim, o tráfego que vai para os dispositivos que recebem um endereço IP da rede designada pelo OpenVPN é interrompido em seu servidor.

Para fazer com que seu servidor perceba que precisa obter esse tráfego e enviá-lo "para baixo" pelo OpenVPN, você tem duas opções: usar uma rede IPv6 diferente para seus clientes OpenVPN (para que o roteamento tradicional funcione) ou fazer proxy do tráfego para o seu rede atual. A primeira é a melhor opção, mas o seu ISP pode não lhe atribuir mais de um / 64; o segundo é o proxy do NDP, semelhante ao proxy ARP no IPv4.

Usando o proxy do NDP, seu servidor obterá o tráfego para endereços não próprios e os reenviará aos clientes com o mesmo endereço IP conectado por meio do OpenVPN. Você terá que fazer isso para cada endereço IP em sua rede que pertença a um cliente OpenVPN.

Existem outras respostas na rede do StackExchange que abordam isso em detalhes:

Por favor, verifique as respostas para uma explicação mais completa.

    
por 26.08.2017 / 12:31

Tags