离成功实现路由器刷OpenWrt、接入校园网差不多一年了。路由工作比较稳定,还是很满意的。
这次回来有个新发现:学校有原生ipv6支持,在win7和ubuntu下什么都不用设置,自动获取global unicast的ipv6地址。但是路由器内部局域网的客户机则没法享受这个待遇。趁春节放假,好好研究了一下怎样让客户机也拿到ipv6地址。
大概折腾了3天,前两天走了弯路、岔路。
网上的教程已经很多了,一搜一大把,比如这个、和这个,但是做起来比较复杂,静态ip可能好点,动态分配就有很多麻烦事。
而且要装ndppd、radvd、dhcpv6-server等新组件,结果发现路由器的空间不够用,只好自己跑去编译固件,去掉不用的组件以节省空间。现学的搭环境、编译下载花了1天的时间,在此问候一下G·F·W及其全家,编译失败多次以后我不得不把verbose打开,一个个找被墙掉的依赖包手动下载。
等合适的固件编译好之后发现这种方式不可行……我擦。不仅设置比较复杂,关键是原来能拿到ipv6地址、能ping通ipv6网站的路由wan口,现在连地址都拿不到了。
折腾2天时间之后发现了这个帖子,结果真的如帖子所说,不到5分钟搞定,而且所有设备都能动态的拿到ipv6地址,我拿手机试过,能ping通、访问ipv6.google.com,www.kame.net的小乌龟也是动的。
其关键就在6relayd这个组件,看看它的简介:
6relayd is a daemon for serving and relaying IPv6 management protocols to configure clients and downstream routers. 6relayd provides server services for RA, stateless and stateful DHCPv6, DHCPv6-PD and can be used to relay RA, DHCPv6 and NDP between routed (non-bridged) interfaces incase no delegated prefixes are provided by the upstream router.
简单的说就是这个组件多种功能集于一身,适用多种网络环境,而且配置超级简单,福音呐。
不过前两天也没白费,对ipv6的理解又多了一点点,对OpenWrt的make menuconfig设置、编译也比较熟练了,也弄懂了一部分组件的功能和依赖关系,比如kmod-ipv6是OpenWrt的ipv6支持核心包,dhcpv6的server和client有多个实现,menuconfig一些依赖关系的自动配置不完全,还需手动干预,受到一个帖子的启发,等等。
最后把此时路由器OpenWrt的组件列表备份一个,以后再编固件的时候参照下:
Installed packages
Package name Version
6relayd 2013-07-26-2ed520c500b0fbb484cfad5687eb39a0da43dcf7
base-files 117-r36088
busybox 1.19.4-6
dnsmasq 2.62-2
dropbear 2011.54-2
firewall 2-55.1
hotplug2 1.0-beta-4
iptables 1.4.10-4
iw 3.6-1
jshn 2013-01-29-0bc317aa4d9af44806c28ca286d79a8b5a92b2b8
kernel 3.3.8-1-d6597ebf6203328d3519ea3c3371a493
kmod-ath 3.3.8+2012-09-07-3
kmod-ath9k 3.3.8+2012-09-07-3
kmod-ath9k-common 3.3.8+2012-09-07-3
kmod-cfg80211 3.3.8+2012-09-07-3
kmod-crypto-aes 3.3.8-1
kmod-crypto-arc4 3.3.8-1
kmod-crypto-core 3.3.8-1
kmod-gpio-button-hotplug 3.3.8-1
kmod-ipt-conntrack 3.3.8-1
kmod-ipt-core 3.3.8-1
kmod-ipt-nat 3.3.8-1
kmod-ipt-nathelper 3.3.8-1
kmod-ipv6 3.3.8-1
kmod-leds-gpio 3.3.8-1
kmod-ledtrig-default-on 3.3.8-1
kmod-ledtrig-netdev 3.3.8-1
kmod-ledtrig-timer 3.3.8-1
kmod-ledtrig-usbdev 3.3.8-1
kmod-lib-crc-ccitt 3.3.8-1
kmod-mac80211 3.3.8+2012-09-07-3
kmod-nls-base 3.3.8-1
kmod-ppp 3.3.8-1
kmod-pppoe 3.3.8-1
kmod-pppox 3.3.8-1
kmod-usb-core 3.3.8-1
kmod-usb-ohci 3.3.8-1
kmod-usb2 3.3.8-1
kmod-wdt-ath79 3.3.8-1
libblobmsg-json 2013-01-29-0bc317aa4d9af44806c28ca286d79a8b5a92b2b8
libc 0.9.33.2-1
libgcc 4.6-linaro-1
libip4tc 1.4.10-4
libiwinfo 36
libiwinfo-lua 36
libjson 0.9-2
liblua 5.1.4-8
libnl-tiny 0.1-3
libubox 2013-01-29-0bc317aa4d9af44806c28ca286d79a8b5a92b2b8
libubus 2013-01-13-bf566871bd6a633e4504c60c6fc55b2a97305a50
libubus-lua 2013-01-13-bf566871bd6a633e4504c60c6fc55b2a97305a50
libuci 2013-01-04.1-1
libuci-lua 2013-01-04.1-1
libxtables 1.4.10-4
lua 5.1.4-8
luci 0.11.1-1
luci-app-firewall 0.11.1-1
luci-i18n-english 0.11.1-1
luci-lib-core 0.11.1-1
luci-lib-ipkg 0.11.1-1
luci-lib-nixio 0.11.1-1
luci-lib-sys 0.11.1-1
luci-lib-web 0.11.1-1
luci-mod-admin-core 0.11.1-1
luci-mod-admin-full 0.11.1-1
luci-proto-core 0.11.1-1
luci-proto-ppp 0.11.1-1
luci-sgi-cgi 0.11.1-1
luci-theme-base 0.11.1-1
luci-theme-openwrt 0.11.1-1
mtd 18.1
netifd 2013-01-29.2-4bb99d4eb462776336928392010b372236ac3c93
opkg 618-3
ppp 2.4.5-8
ppp-mod-pppoe 2.4.5-8
swconfig 10
uboot-envtools 2012.04.01-1
ubus 2013-01-13-bf566871bd6a633e4504c60c6fc55b2a97305a50
ubusd 2013-01-13-bf566871bd6a633e4504c60c6fc55b2a97305a50
uci 2013-01-04.1-1
uhttpd 2012-10-30-e57bf6d8bfa465a50eea2c30269acdfe751a46fd
wpad 20130302-1