Faça funcionar entre o cliente e o servidor
Primeiro, você precisa rotear os pacotes para o dispositivo TUN no servidor:
route-ipv6 $PREFIX
Além disso, você precisa pedir ao servidor OpenVPN para rotear este prefixo para o seu cliente:
# This one needs to be in a CCD file:
iroute-ipv6 $PREFIX
Com isso, o servidor deve ser capaz de rotear os pacotes desse prefixo para o cliente.
No cliente, você precisa configurar (manualmente) alguns endereços IPv6 desse prefixo. (No Linux: ip -6 addr $PREFIX dev tun0
).
Neste ponto, você deve ser capaz de
-
execute um ping deste IP de cliente no servidor;
-
pingando o servidor deste IP do cliente.
Encaminhe este prefixo para a sub-rede
Se sua interface nativa no servidor for uma interface ponto a ponto , isso deve funcionar. O roteador já encaminha todos os pacotes para este prefixo para o seu servidor e o servidor os encaminhará para o seu cliente.
Se a sua interface nativa não for uma interface ponto a ponto , você está com problemas. Ao tentar encaminhar pacotes para um IP do seu prefixo, os hosts no link nativo tentarão encontrar o endereço MAC associado a esse endereço IPv6 usando o NDP. Seu servidor não irá responder a eles (porque este endereço IPv6 não é um de seus endereços). O cliente não está no mesmo link e não vê as solicitações do NDP (ele não poderia responder a elas de qualquer maneira). Então, ninguém irá responder a esses pedidos do NDP e o pacote não será enviado para o seu servidor.
Você pode:
-
Adicione uma rota no roteador para usar seu servidor como um gateway para este prefixo (
ip -6 route add $PREFIX via $ipv6_of_the_server
). No entanto, se este não for o seu roteador, talvez você não consiga fazer isso. -
Adicione regras de proxy do NDP (
ip -neigh add proxy $some_ipv6 dev eth0
). Isso fará com que o servidor responda às solicitações do NDP em nome do cliente. No entanto (pelo menos no Linux), você não pode adicionar uma sub-rede IPV6 inteira como um proxy NDP, então você deve adicionar uma regra para cada endereço IPv6 que você deseja delegar.
Usando um túnel TAP
Se sua interface nativa é Ethernet, outra possibilidade é usar um túnel OpenVPN TAP (baseado em Ethernet) em vez de um TUN (baseado em IP) e conectar o dispositivo de derivação virtual com o nativo. Dessa forma, o cliente estará no mesmo link que o roteador e poderá responder às solicitações do NDP.