目前ipv6已经越来越普及,现在的家庭宽带拨号普遍都支持ipv4和ipv6双协议,也就是只要你有支持ipv6的路由器,你家庭的设备就都能拥有一个ipv6公网地址,不过有些家庭可能会有多个路由器,如何做到让每个路由器都能为设备分配ipv6公网地址也就成了一个问题。作为拨号的一级路由,获取ipv6地址然后开启dhcpv6,下面的设备都能获取到ipv6公网地址,到了二级路由就有些麻烦了,理论上会有以下几种方式开启二级路由下的ipv6:

1、由于ipv6是通过pd划分子网,只要地址段够用,二级、三级都可以一直分下去,而且是自动的,由于对ipv6这个协议掌握不深,这种方式没有研究,但是理论上来说这种方式才是正确开启ipv6的方式。

2、把路由当成交换机使用,放弃路由器的wan口,这种方式相当于把二级路由干掉了,直接把所有设备放在一级路由下面,是最直接的方式,可对我来说,二级路由下已经有很多设备绑定了mac地址,在局域网上提供服务,如果把二级路由换成交换机,我所有的机器都要修改ip,所以我放弃了这种方式。

3、还有一种方式是开启二级路由下的ipv6中继,至于ipv4还是使用之前的那一套nat不变,两者互不影响,这样打通后,所有二级路由下的设备都支持双协议,相当完美。

下面就是正确开启openwrt ipv6中继的方式,首先我的硬件环境是,斐讯k3,我的openwrt是恩山大神的固件,一直在更新中,已经很完善了,设备软硬件信息如下:

img

一、首先确认下openwrt的接口,我这边有两个接口,一个是lan口,还有一个wan口,为什么是两个呢,因为wan和wan6其实是同一个接口,只不过为了方便配置,分成了两个逻辑接口,也正因为这样分了,才更有利于ipv4和ipv6分开配置。

img

二、选择WAN6接口,协议设置为dhcpv6客户端,这里配置这个客户端就是为了使(wan wan6) 口能够自动获取到一级路由分配的ipv6地址,从而是ipv6的流量可以流向(wan wan6)口。

img

三、接着点开wan口,协议配置成静态地址,填写你wan口需要配置的ipv4信息,为什么要配置静态的?因为如果不配置静态,下面图中的dhcp的ipv6设置不出现,当然如果ssh连接后命令下配置,这边就不需要配成静态的,但是我觉得做路由器配置能在图形化上配置就应该在图形化上配置,这样可以规避一些配错修正问题。

img

下面ipv6设置全部选择中继模式,wan口的中继模式配置的意思是可以让这个wan口继承一级路由的ipv6地址分配功能,从来进一步往lan口分发这种能力。

img

四、切换到lan口,协议配置成静态,ipv4同样按需配置,由于进入了lan口,它和wan就不能在同一个网段,所以这里是ipv4的常规配置,按需配置即可,配置静态也是因为下面能够出现ipv6设置选项。

img

在ipv6设置同样全部选择中继模式,配置完成后,lan口也就继承了wan口分发过来的ipv6分配能力,这样lan下面的设备就能像一级路由下的设备一样获取ipv6地址了。

img

五、最后一步最关键,因为图形化配置上没有这个配置项,所以需要在命令下配置,通过ssh连接工具连到路由器,我是mac,所以就使用mac自带的终端了,如果是windows,可以使用windows的power shell终端,连接路由器。

img

在/etc/config/dhcp文件中查找到wan口配置,在下面加一行 option master '1',只有配置了这一行,前面的ipv6中继能力才能生效。

img

退出命令窗口,进入路由器下面的随便一个接口点击保存&应用,上面的改动就生效了。

img

最后查看电脑获取到的公网ipv6吧,windows电脑去网络适配器下查看。

img

进入http://www.test-ipv6.com/测试下ipv6,结果没有意外,而且很稳定。

img

另外有人说每个设备获取到公网ipv6很不安全,所以还是采用了ipv6nat,如果有这种想法,你为什么还要用ipv6呢?ipv6不就是为了不再使用累赘的nat技术而诞生的吗?担心安全问题,那也是多虑了。

首先从ip扫描上来看,一个64位前缀下的主机,黑客使用普通电脑扫50万年才能扫完,你的公网ipv6地址只是大海中的一粒水珠,或许连水珠都算不上。

其次,ipv6有安全的溯源和加密机制,ipsec 、esp等安全协议是ipv4不具备的,我们只要去彻底了解ipv6就不怕被黑。

再次,防火墙不是摆设,配置严格的入栈策略永远是防止黑客入侵的最佳手段。