Estoy tratando de configurar un servidor OpenVPN para permitir que los clientes usen su subred IPv6. El servidor ejecuta Debian Wheezy y el cliente es OS X 10.9.5. Aquí está la configuración del servidor:
port 1194
proto udp
dev tun
tun-ipv6
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.100.100.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
tls-auth ta.key 0
cipher DES-EDE3-CBC
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
server-ipv6 MY:PUBLIC:IPV6:SUBNET::/64
push "route-ipv6 0::/0"
Y aquí está la configuración del cliente:
client
dev tun
tun-ipv6
proto udp
remote server.address 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3
tls-auth ta.key 1
cipher DES-EDE3-CBC
La conectividad IPv4 funciona a la perfección, pero hay algunos problemas extraños con IPv6. El cliente obtiene una dirección IPv6 cuando se conecta, pero lo único que responde a los pings (o acepta cualquier paquete IPv6) es el servidor en sí. Parece que los paquetes que se supone que van a Internet global no se enrutan a través de la interfaz adecuada en el servidor, que es eth0 en mi caso. La dirección IPv6 se asigna a eth0 estáticamente desde la subred proporcionada por mi proveedor de alojamiento y todo funciona desde el servidor; por ejemplo, puedo hacer ping a ipv6.google.com desde allí. Las opciones net.ipv6.conf.default.forwarding
y net.ipv6.conf.all.forwarding
sysctl también están habilitadas.
Entonces, descubrí que el enrutador ascendente no solo reenviará incondicionalmente los paquetes de toda mi subred asignada a mi servidor. Para que sepa reenviarlos, debe informarlo explícitamente a través del protocolo NDP. Esto debe hacerse cuando un cliente se conecta y se le asigna una dirección IPv6. Entonces, para resumir, así es como lo arreglé. Agregue esto a la configuración de OpenVPN en el servidor:
Cree un script llamado /etc/openvpn/client-connect.sh con el siguiente contenido:
Reinicie OpenVPN. Conéctese al servidor y disfrute de su propia pieza del futuro de Internet.
fuente