本文转自知乎:php
OpenWrt 路由器如何让 lan 口主机得到 ipv6 网络访问? - mistforest的回答 - 知乎
https://www.zhihu.com/question/29667477/answer/47149165
做者:mistforest
连接:https://www.zhihu.com/question/29667477/answer/47149165
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。
说一下我本身的作法吧,五一利用假期时间折腾了2天,查了一些openwrt相关资料,看了网上一些论坛资料,终于搞定了宿舍的ipv6,可是我至今不曾明白真正的原理是啥,本人不是学计算机的,因此之中原理就不细究了,能用上就完事儿了。咱们学校是ipv4使用拨号方式得到,ipv6位native模式。个人主要参考帖子为:
想问下,14.07及以后的trunk有谁能用起ipv6吗??【已解决】
真是又给官方的原生ipv6支持跪了
北大未名站 同主题阅读: OpenWRT配置IPv6问题
说一下个人配置步骤吧,个人是TP-Link 841N V7,以前一直用的官网的Attitude Adjustment 12.09的系统,很稳定,苦于无法用ipv6,据说最新的Barrier Breaker 14.07原生支持ipv6,就直接升级了官网的BB版的固件,刷完以后跟你同样的问题,路由器能够获取v4和v6两个地址,也能ping通ipv6网址,可是局域网下面的设备都没法访问ipv6。
后来看了帖子慢慢折腾后总结,总算调试好了,我就说最后的配置吧,可否配置成功关键在于/etc/config/dhcp的配置。
首先确认你的odhcpd软件包不是08-23的版本,这个版本有bug,更换成11-06或者更新的版本。
完毕后你得让局域网获取到2001开头的真实ipv6地址,而不是路由器分配的诸如FE80开头的本地地址,在LuCI界面要先删除LAN-ipv6配置下的Global ULA-Prefix里面的数值,而后修改/etc/config/dhcp,修改成如下(对照修改):
修改完后重启,并确保odhcpd是处于开机启动状态。config dhcp 'lan' option interface 'lan' option start '100' option limit '150' option leasetime '12h' option ra 'hybrid' option dhcpv6 'hybrid' option ndp 'hybrid' option ra_management '1' config dhcp 'wan6' option interface 'wan' option dhcpv6 'hybrid' option ra 'hybrid' option ndp 'hybrid' option master '1'
正常的状况应该是,LAN会得到wan处的ipv6地址(同为2001开头),而后LAN下面的设备各自得到本身的ipv6地址。
(电脑直插学校端口便可得到ipv6地址,便可访问ipv6网络。)html
(路由器的wan正常获取到ipv6地址,可是lan却没有获取到ipv6地址。)web
(很奇怪,我用xshell进不去,可是cmd能够。)shell
ssh root@192.168.10.1
vi /etc/config/dhcp
config dhcp 'lan' option interface 'lan' option start '100' option limit '150' option leasetime '12h' option ra 'hybrid' option dhcpv6 'hybrid' option ndp 'hybrid' option ra_management '1' config dhcp 'wan6' option interface 'wan' option dhcpv6 'hybrid' option ra 'hybrid' option ndp 'hybrid' option master '1'
但愿对其余同窗有帮助。bash
再次感谢做者:mistforest网络