UCAS 也是有原生 IPv6 的,並且採用 SLAAC 的方式可以獲得一個 /64
的地址段。這個方式比起你破郵用 DHCPv6 發 /128
來說原始(並且講道理)了不少,就有了做穿透的條件。
首先 OpenWRT 上照例添加一個 wan6
接口,使用 DHCPv6 客戶端方式可以直接拿到地址。
隨後需要變動一下 odhcpd
的設定。使用 vi
打開 odhcpd
的設定檔案:
# vi /etc/config/dhcp
然後添加 ignore
禁用掉 wan 介面的 dhcp,並且把 wan6 的 DHCP 設定爲 master
,然後把 wan6 和 lan 的 dhcpv6
、ra
和 ndp
都設定成 relay
。另外,在 lan 上需要設定 ra_management
爲開啓,浅羽一開始沒有設定這項,所以雖然一直能拿到地址,但是無法透過 IPv6 訪問網路。大體上設定之後是這樣的:
....
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option ra 'relay'
option dhcpv6 'relay'
option ndp 'relay'
option ra_management '1' config dhcp 'wan'
option interface 'wan' config dhcp 'wan6'
option interface 'wan'
option ra 'hybrid'
option ndp 'hybrid'
option dhcpv6 'hybrid'
option master '1'
....
注意以上設定檔,浅羽自己測試是可用的(並且也是在用的設定),wan6 介面上設定了 hybrid 模式。這裏面有一些玄學問題,總之就是 hybrid 和 relay 其中一個不能用的話就換另一個,多嘗試幾個組合應該就沒問題了。記得重啓一下 odhcpd:
# /etc/init.d/odhcpd restart
然後可能需要重新拿一次 DHCP,ping
一下金槍魚和你郵人:
好的,本期節目就到這裏。順便吐槽一下 OpenWRT LuCI 的繁體中文翻譯真差,要不是熟悉了就和摸黑操作也沒有很大區別了。
發現之前裝的一臺 Debian 9 總在路由表上出問題,IPv6 的預設路由是走 link-local 位址的,懶得研究到底怎麼回事了,來個簡單粗暴的方法:
$ sudo ip -6 route add 2000::/3 via dev ens18
嗯,就這樣吧挺好,反正伺服器也不老重啓,大不了加個 。systemd
發佈留言