小米路由的IPv6支持教程(纯转保存)

小米路由器其实已经内置了适用于IPv6的相关模块,但未提供打开的方式。在官方正式支持之前,以下教程给出一种打开小米路由对宽带IPv6支持的方案。

请注意:
  IPv6需要宽带运营商的支持。
  以下内容以R2D(系统版本:2.25.209)为例,截止发帖时可用。不清楚其他路由型号是否适用。

本案例支持的是小米路由以PPPoE方式获得宽带光猫(桥接模式)下发的IPv6配置。不是指“教育网IPv6插件”。
  需要root和开启SSH。这两个操作存在风险,如还未开启请谨慎决定。
  本方法开启后的IPv6可能会偶然存在不稳定情况,可能会与某些插件产生冲突。
  本教程供爱好者个人研究,请勿在生产环境等可能会因网络问题造成损失的场景使用。
  默认使用PuTTY和WinSCP进行相关操作。

方法:

目的是在“教育网IPv6插件”不开启的情况下,也要打开路由器的IPv6总开关。
找到路由器内部文件 /etc/config/ipv6 ,替换为:

config ipv6 'settings'
list if_on 'wan'
option enabled '1'
list if_on 'ipv6'
option enabled '1'

复制代码
(如需预留恢复原状的可能,请备份原来的文件内容)
  之后重启路由器,通过 http://ipv6-test.com/、http://www.test-ipv6.com/ 等网站验证是否配置成功。

讨论:
  其实还存在其他的改法,但需要提醒的是,某些写法重启后会被系统自动改回去。
  有资料显示要改/etc/config/network、/etc/config/dhcp,不过小米路由似乎不需要修改。

对于上海电信用户需要配置4K IPTV的,可以参见:http://www.miui.com/thread-6990020-1-1.html

如果有同样成功的请回帖说一下,以免我遗漏了一些内容。

2019/3/2更新:对于宽带光猫路由模式支持

本段教程在作者电信光猫(光猫拨号、路由模式,小米路由 DHCP)下的小米路由器R2D中试验成功,无法保证在其它设备上能够正常运作。
  本段教程涉及操作较多,如操作不当,存在使路由器崩溃的风险,应做好相关准备。
  确保光猫配置界面“IPv6 连接信息”能够获得 IPv6 地址且前缀小于\64。检查“LAN侧地址配置-IPv6配置”中“RADVD”已经起用。
  对于光猫路由模式的支持基于前面的教程。请先阅读前述教程注意事项、完成所有步骤。
  此时,通过网站验证 IPv6 会面临失败。然而,在局域网中电脑的cmd中运行:

ipconfig -all

复制代码

可以看到已经正常获得了公网“IPv6 地址”。(“本地链接 IPv6 地址”为“fe80”开头,如果仅有这项代表不成功)

另一个重要的判断依据需要登陆SSH进到路由器,然后在SSH中运行:
ping6 ipv6.tsinghua.edu.cn
复制代码

此时应该能够得到IPv6地址(2402:f000:1:881::8:205)和 ping 反馈。

还可以运行:

ifconfig

复制代码

检查 eth0.2 的 inet6 addr 是否正常获得地址和小于等于/64的前缀。

如果都检查通过,说明路由器本体可以连上 IPv6 ,且具备向下属设备进一步 SLAAC 的能力。

方法:

小米路由事实上已经实现了大多数的 IPv6 支持,然而由于固件版本太低,唯独 NDP 在光猫路由情形下无法正常工作,需要额外可执行文件来帮忙。
  6relayd 可以作为合适的 NDP 中继。其实 6relayd 功能还有很多,更有 odhcpd 作为更丰富的继承者。然而这两个组件官方均未提供使用,于是运用小米提供的 SDK 自行编译了 6relayd :
  
将 6relayd 文件放入/sbin/并使其可执行。由于该文件夹默认只读,先在 SSH 中输入以下命令解锁:

mount -o remount rw /

之后,用之前推荐的软件通过 SCP 把文件放入上述文件夹。并授予其可执行权限:

chmod +x /sbin/6relayd

此时,在SSH中执行“6relayd”应该会显示程序的帮助信息。
在本案例中,输入如下命令:

6relayd -N eth0.2 br-lan

重启局域网中的计算机后,再通过网站验证 IPv6,应当会通过验证。

走到这一步,说明全部的技术路线已经打通。为了让 6relayd 能够在路由器重启后自动执行,将其附加在开机自动执行的脚本上。以 /etc/init.d/plugin_start_.sh 为例,加入的方式如下:

netmode=$(uci get xiaoqiang.common.NETMODE)
        if [ "$netmode"x != "lanapmode"x ] && [ "$netmode"x != "wifiapmode"x ]
        then
                copy_plugin_chroot_file
                sync
                # decrese current priority and throw myself to mem cgroup
                # so all plugins inherit those attributes
                renice -n+10 -p $
                echo $ > /dev/cgroup/mem/group1/tasks
                /usr/sbin/plugin_start_impl.sh &
                6relayd -d -N eth0.2 br-lan
        fi

重启路由器后,路由器下属设备应当自动获得正常的 IPv6 连接,这样的话就大功告成了。

开机启动中 6relayd 加入了 -d 参数以免阻塞脚本运行。
  6relayd 源代码来源:https://github.com/sbyx/6relayd
  小米路由交叉编译技术参考:http://www.book41.net/?p=832
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值