非教育网科技网访问IPv6网络

1. 前言

毕业之后就要没有IPv6网络环境了,因此需要思索几种方式可以在非教育网科技网的情况下,访问IPv6网络。

2. 访问方式

  • 代理,购买一个双栈主机,在主机上搭建代理服务,例如shadowsocks,终端设备可以通过代理访问IPv6站点。但是也有局限性,国外的IPv6主机,无法访问一些国内的IPv6站点,例如六维空间。
  • VPN,仍需要购买一个双栈主机,在主机上搭建VPN,将IPv6封装在IPv4中转发
  • HE + TINC VPN,购买一个主机,使用IPv6 Tunnel Broker获取IPv6地址段,并通过TINC VPN的交换机模式与家用路由器连接,接入设备获取IPv6地址。
  • 电信IPv6,还没体验,后续更新

3. 代理

代理搭建方式众多,最简单的是使用shadowsocks。

该方式只能通过终端设备登录VPN获取IPv6网络访问权限,没有实现透明配置。

4. VPN

这里使用的主要是IKEv2和Ocserv,可以使用可路由全局IPv6地址块和ndppd方式。

该方式只能通过终端设备登录VPN获取IPv6网络访问权限,没有实现透明配置。

IPv6转发开启

开启IPv6的转发。

1
2
3
net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.eth0.accept_ra = 2
net.ipv6.conf.default.forwarding = 1

可路由全局IPv6地址块

想服务器运营商申请或者购买,例如Linode。

ndppd安装

ndppd全称为NDP Proxy Daemon,为IPv6中NDP代理守护进程。详情参见https://github.com/DanielAdolfsson/ndppd。

只能通过编译安装,安装方式如下。

1
2
3
4
5
wget https://github.com/DanielAdolfsson/ndppd/archive/0.2.5.tar.gz
tar xvzf 0.2.5.tar.gz
cd ndppd-0.2.5
make
make install

编辑/etc/ndppd.conf文件,最重要的为rule字段后面对应IPv6地址段,为该地址段提供NDP代理。

假设云服务器IPv6地址为2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64,我们想使用其中的一部分作为VPN客户端获取的IPv6地址池,例如2001:xxxx:xxxx:xxxx:1234:4321:1234::/116,则对应的规则如下。

1
2
3
4
5
6
7
8
9
route-ttl 30000
proxy eth0 {
router yes
timeout 500
ttl 30000
rule 2001:xxxx:xxxx:xxxx:1234:4321:1234::/116 {
static
}
}

启动ndppd

1
ndppd -d

IKEv2设置

修改配置文件ipsec.conf

修改leftsubnet字段,添加::/0,代表转发所有IPv6流量。

修改rightsourceip字段,添加可路由全局IPv6地址块或者ndppd设置的IPv6地址块。

1
2
leftsubnet = 0.0.0.0/0,::/0
rightsourceip = 192.168.81.0/24,2001:xxxx:xxxx:xxxx:1234:4321:1234::/116

重启服务

Ocserv设置

修改配置文件/etc/ocserv/ocserv.conf

1
2
3
ipv6-network = 2001:xxxx:xxxx:xxxx:1234:4321:1234::
ipv6-prefix = 112
ipv6-dns = 2001:4860:4860::8888

重启服务

客户端连接

在windows下,可以指定不转发IPv4流量到VPN网关,这样IPv6流量仍然走正常的链路,IPv6虽然获取全球可路由IPv6地址,但是没有默认路由条目,因此在VPN连接成功后,需要以管理员方式启动命令行,添加IPv6的默认路由,如下例子,2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64为云服务器的IPv6地址。

1
route add ::/0 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

其他平台根据IKEv2的leftsubnet字段决定可以访问哪些网段。

5. HE + TINC VPN

后续更新


修订版本信息

修订版本 时间 备注
文档创建 2017/12/24 文档创建
文档修改1 2018/1/1 错误修改

参考