Dúas directivas cun nome case idéntico aparecen en todos os exemplos que funcionan, e copiar unha sen a outra produce un túnel que parece correcto e descarta o prefixo da sucursal en silencio. Fan traballos distintos aos dous lados da mesma fronteira: unha ensina ao kernel do servidor onde vive un prefixo, e a outra ensina a OpenVPN que cliente autenticado o transporta. Se acertas nas dúas, o prefixo flúe; se acertas nunha, os paquetes teñen ruta pero non dono.

Dúas directivas, dous traballos distintos

route-ipv6 é unha instalación de ruta normal: o servidor engade unha ruta do kernel que apunta o prefixo á súa interface de túnel. iroute-ipv6 pertence a un contexto específico do cliente e declara a propiedade interna, de xeito que o daemon sabe que o tráfico dese prefixo debe enviarse a un cliente concreto e non ao par que unha ruta do kernel nomee por casualidade.

Unha trata da táboa de reenvío do kernel, a outra do modelo de encamiñamento interno do daemon. Mantelas separadas explica por que unha configuración que parece completa aínda pode descartar o prefixo. Tamén explica por que a mesma rede aparece dúas veces en todos os exemplos que funcionan. Ningunha das dúas liñas é redundante.

Na instalación tradicional en espazo de usuario as dúas son necesarias e compleméntanse. Unha ruta do kernel soa deixa o daemon incapaz de escoller un par. Unha iroute soa deixa o kernel sen camiño cara ao túnel. De aquí vén tamén a maior parte da confusión sobre os ficheiros por cliente: o ficheiro non é unha entrada da táboa de rutas, e a entrada de ruta non é unha declaración de propiedade.

ip -6 route show | grep fd00:7a
ip -6 route get fd00:7a::1

Onde vai cada unha

A ruta vai na configuración xestionada do servidor, onde se aplica a ese proceso de servidor. A iroute vai no ficheiro específico do cliente, nomeado segundo a identidade autenticada do equipo de sucursal.

Un nome de ficheiro que non coincide coa identidade efectiva nunca se le, e o síntoma é idéntico ao dunha iroute ausente. Comproba a identidade que autenticou o servidor e despois comproba o nome do ficheiro carácter por carácter.

# /etc/openvpn/server/server.conf
route-ipv6 fd00:7a::/64
client-config-dir /etc/openvpn/server/ccd

# /etc/openvpn/server/ccd/branch-b
iroute-ipv6 fd00:7a::/64

Mantén o pool e o prefixo da sucursal separados, porque superpoñelos crea un crebacabezas que ningunha directiva pode resolver.

Que necesita outro cliente

Un segundo cliente que debe chegar a esa sucursal necesita un anuncio, non propiedade. Empuxa o prefixo aos clientes que queres, no contexto de cliente ou de grupo que encaixe coa túa configuración.

Non o envíes á propia sucursal, porque ese equipo xa ten o prefixo como rede conectada.

Enviarlo a todos é unha decisión con consecuencias: cada cliente cre entón que a sucursal é alcanzable polo túnel, incluídos clientes aos que nunca quixeches dar ese acceso. Anunciar é na práctica unha decisión de acceso, aínda que a directiva pareza fontanería. A referencia de opcións do servidor documenta iroute-ipv6 como propiedade específica do cliente, e esa é a distinción que paga a pena conservar.

O camiño de volta no equipo de sucursal

A propiedade só axuda se a sucursal reenvía paquetes e a súa LAN sabe responder. Activa o reenvío IPv6 no equipo de sucursal e confirma que os equipos da súa LAN envían o tráfico do pool VPN de volta cara á sucursal en lugar de cara a unha ruta predeterminada que non coñece o pool.

Ese camiño de volta é o equivalente IPv6 do problema da ruta ausente que a xente atopa con IPv4.

Compróbao desde un equipo da LAN cunha consulta do enderezo do pool VPN, non desde a propia sucursal. Unha consulta feita no router responde a unha pregunta distinta da que fan os teus usuarios, e as dúas discrepan con frecuencia suficiente para que pague a pena a orde extra.

Cando a parella aínda non abonda

Algunhas implantacións non usan este camiño en absoluto. O camiño de datos do kernel e os servidores xestionados polo produto teñen o seu propio tratamento de rutas compatible, e un exemplo en espazo de usuario pode non trasladarse directamente.

Confirma que camiño de datos usa a túa compilación antes de copiar directivas dun titorial escrito para o outro.

Por último, lembra o ámbito dos enderezos: un prefixo local único como fd00:7a::/64 é privado por deseño e non di nada sobre a alcanzabilidade IPv6 pública. Trátao como acceso interno e mantén a saída a internet como unha cuestión aparte coa súa propia política.

Artigos relacionados