離成功實現路由器刷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