0%

小米路由器与IPv6

西电的校园网拨号之后可以获取到IPv6地址,刷了op的路由器也可以获取到IPv6地址,但是后端设备想要获取到IPv6地址还得再折腾一下。
手里的设备是小米路由器青春版。

将小米路由器刷成op,得给它换一个bootloader,这里使用的是breed,可以参考链接http://www.v5china.com/xiaomi-router-youth-version-of-breed-after-the-brush-brush-into-asus-firmware-tutorial.html,进行到该文章的第七步即可。
下载lede固件https://downloads.lede-project.org/releases/17.01.4/targets/ramips/mt7628/lede-17.01.4-ramips-mt7628-miwifi-nano-squashfs-sysupgrade.bin,模仿第八步,为小米路由器安装lede固件。
开机之后,第一次连接会提示设置登录密码(使用网线,lede固件默认不开启WiFi),在network->>interface->>wan处可以设置路由器的联网方式,确保路由器能联网之后,使用putty登录路由器

1
2
opkg update
opkg install luci-i18n-base-zh-cn

安装好中文语言包

1
opkg install kmod-ipt-nat6

安装nat6模块

1
2
3
4
5
6
7
echo "net.ipv6.conf.default.accept_ra=2" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.accept_ra=2" >> /etc/sysctl.conf

uci set network.globals.ula_prefix="$(uci get network.globals.ula_prefix | sed 's/^./d/')"
uci commit network
uci set dhcp.lan.ra_default='1'
uci commit dhcp

配置网络
/etc/init.d/目录下新建一个文件,向文件内写入

1
2
3
#!/bin/bash
ip6tables -t nat -I POSTROUTING -s `uci get network.globals.ula_prefix` -j MASQUERADE
route -A inet6 add 2000::/3 `route -A inet6 | grep ::/0 | awk 'NR==1{print "gw "$2" dev "$7}'`

应用文件并重启,通过WiFi和网线连接到路由器的设备可以获取IPv6地址。

乱七八糟

查看lede固件完整的支持列表:

https://openwrt.org/toh/views/toh_fwdownload

bootloader

换bootloader的原因是,路由器本身的bootloader不支持安装lede固件,就像给手机刷机需要更换recovery一样

失败的例子

从大一就开始尝试,一开始刷的的原版的openwrt,刷完之后根本无法开机,后来尝试了pandorabox,路由器能获取到IPv6地址,但是安装好nat6模块,执行命令转发时失败,内核不支持,辗转到了lede固件,貌似现在lede固件已经是openwrt的官方固件了,官网合并了。