笔记

极路由IPv6踩坑小记

发布于 2021-02-10 901 次围观

前言

前段时间心血来潮,想弄个IPv6,单纯的追求个逼格。家里用的联通宽带,光猫之前已经设置好桥接了,拨号后即可直接获取到IPv6地址。

然而连上路由器才发现不支持IPv6,经过一番查找发现原来有插件可以实现。此时公司已经倒闭,插件中心无法访问……手头还有一个刷了老毛子固件的路由器,可惜只支持百兆带宽。而正在服役的极路由3Pro是千兆的但是原厂固件默认不支持IPv6。古人云,鱼和熊掌不可兼得。只有小孩子才做选择

由于本人是个菜鸟,路由器这块还是第一次折腾,所以不涉及刷固件的内容,仅在原厂固件上来实现。本文记录下我当时的脑回路和踩过的坑。

正文

家里的这个极路由并不是我买的,也不是全新的,它的前世我也不了解,反正带回来直接配置上就一直用着了。

自从得知公司倒闭且原厂固件本身并不支持IPv6后,也就一直没管了。后来被我无意中发现SSH是开着的,所以我第一反应是,是否可以像Linux一样配置网卡来实现IPv6呢。翻阅了几个目录后,发现这固件居然是基于openwrt魔改的,那直接按照openwrt的套路来实现不就行了吗,机智如我。但,这只是悲剧的开始……

安装插件

一开始没留意原来要安装插件才能支持IPv6,直接就改了/etc/config/network,发现没效果。装插件坑太多,为了装上IPv6需要的插件就折腾了一晚上。

需要安装odhcp6codhcpdodhcp6c恰好官方固件自带的源里有,这个就好办多了。

opkg install odhcp6c

然后odhcpd就需要添加源了

vim /etc/opkg.conf

加上下面的源

src/gz chaos_calmer_base http://archive.openwrt.org/chaos_calmer/15.05.1/ramips/mt7620/packages/base
src/gz chaos_calmer_packages http://archive.openwrt.org/chaos_calmer/15.05.1/ramips/mt7620/packages/packages
src/gz chaos_calmer_luci http://archive.openwrt.org/chaos_calmer/15.05.1/ramips/mt7620/packages/luci
src/gz chaos_calmer_management http://archive.openwrt.org/chaos_calmer/15.05.1/ramips/mt7620/packages/management
src/gz chaos_calmer_routing http://archive.openwrt.org/chaos_calmer/15.05.1/ramips/mt7620/packages/routing

一开始源的地址都是https,执行opkg update会报下载错误,用http才能正常下载。

接着需要修改CPU架构,在底下加上

arch ramips_24kec 30

这里有个很坑的地方,重复改了几次,安装都报架构错误,然后用find看了下原来还有另一个文件,于是试了下改另一个,就成功了……

vim /etc/opkg.d/opkg-fast.conf

把架构加在这个文件即可,源不影响。

然后就可以开始安装了

opkg update
opkg install odhcpd

启动odhcpd并设置开机启动

/etc/init.d/odhcpd start && /etc/init.d/odhcpd enable

修改配置

修改/etc/sysctl.conf,加上下面两行

net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.accept_ra=2

修改/etc/config/network

config interface 'wan'
    option ipv6 '1'

修改/etc/config/dhcp

config dhcp 'lan'
    option interface 'lan'
    option start '100'
    option limit '150'
    option leasetime '12h'
    option force '1'
    option dhcpv6 'relay'
    option ndp 'relay'
    option ra 'relay'
    option ra_management '1'

config dhcp 'wan'
    option interface 'wan'
    option ignore '1'

config dhcp 'wan6'
    option interface 'wan'
    option ra 'relay'
    option ndp 'relay'
    option dhcpv6 'relay'
    option master '1'

保存然后重启networkodhcpd

/etc/init.d/network restart && /etc/init.d/odhcpd restart

不出意外的话重新拨号后就可以获取到IPv6地址了。

解决设备获取到IPv6地址但无法访问的问题

据说这是默认路由的问题,只需在设备上ping一下路由器wan端的IPv6地址就可以了。但是这个方法在移动设备上就不方便操作,并且实测过段时间会失效。

ip -6 route

先获取2xxx:xxxx:xxxx:xxxx::/64这种类型的地址,然后替换到如下命令里

ip -6 rule add iif pppoe-wan table 6
ip -6 r add 2xxx:xxxx:xxxx:xxxx::/64 dev br-lan table 6

最后重启路由器,不出意外的话,一切正常。

(P.S 上面的方法还是有缺陷,ISP每隔一段时间IP地址会变更,路由表会失效,暂未找到合适的解决方法。可以把防火墙关闭将所有的端口暴露出去来解决。)

参考

感谢各路大佬的指点。

https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=333404&page=1

https://www.cnblogs.com/toulanboy/p/9076616.html

https://www.cnblogs.com/sinpo828/p/13899527.html

https://blog.csdn.net/weixin_33827590/article/details/91465552

https://www.asmodeus.cn/archives/296

https://blog.csdn.net/creator_ly/article/details/106992333

https://i-meto.com/openwrt-ipv6/

https://blog.csdn.net/dengxinfa/article/details/103791465

https://andytimes.xyz/2020/07/02/mirouter-r3-opkg/

https://www.ywlib.com/archives/102.html

https://blog.csdn.net/huyaoyu/article/details/42810383

https://www.right.com.cn/forum/thread-337386-1-1.html

https://www.right.com.cn/forum/thread-4044085-1-1.html

沙发还在