我有一个/ 64 IPv6前缀的VPS,我试图用它来使用openvpn的IPv6连接到主机。
我首先使用了第二层“tap”方法,我创build了一个永久的tap,并在该界面上configuration了radvd。
客户端可以获得一个ipv6地址,并且数据包到达服务器,但是我没有configuration路由或其他东西我想,所以在服务器的eth0接口上我会看到
2a01:7f00::f03c:91ff:fedb:6541 > ff02::1:ff86:a71: ICMP6, neighbor solicitation, who has 2a01:7f00::2daa:ad77:2286:a71, length 32
我决定试试tun。
这是我的conf(对ipv6前缀进行了小修改)
dev tun0 tun-ipv6 server-ipv6 2a01:7f00::/112 server 10.0.0.0 255.255.255.0 push "route-ipv6 2a01:7f00::/64" comp-lzo status openvpn-status.log log-append /var/log/openvpn.log verb 3 tls-server ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh2048.pem
客户端获得IPv6地址,但您可以看到有些问题:
2a01:7f00::1000/64
当我想要一个/ 112子网时它获得一个/ 64地址。 而当我尝试“ping6 google.com”我得到“networking无法访问”
我是IPv6新手,我做错了什么? 我看到的所有示例都是使用具有/ 48前缀的服务器,并将/ 64前缀委派给客户端。
IPv6的一部分是,你不应该用大于64位的前缀子网。 部分原因是SLAAC和隐私扩展等机制会生成地址的低64位。
根据RFC 4862第5.5.3节 ,自动configuration应该失败了,所以你可能会遇到一个错误(不出意料,因为你正在做的事情,你不应该)。 但是,无论如何,这不是一个合理的预期工作的configuration。
RFC 2373第2.4节的常见解释是基本上禁止非多播地址的长度超过64位的前缀长度,尽pipe它以一种复杂的方式说明了这一点。