记录配置OpenWrt的IPv6 NAT和DHCP踩过的一些坑。
IPv6好是好,能夜间不断网(本科限定),能逛其他高校的PT站,还能跑满带宽……唯一的缺点就是配置比较棘手。其实本科的时候就已经配过IPv6了,那时候自己还潜伏在某个路由器群里,而且过程还顺利的,没出什么幺蛾子。直到研究生换了个宿舍之后,IPv6就GG了,还得花一周来时间才把各种玄学问题解决。
可能比较有用的一些博客:
https://tang.su/2017/03/openwrt-ipv6-nat/
https://blog.csdn.net/dengxinfa/article/details/103791465
之所以不用IPv6中继,是因为发现只能正常使用一段时间,然后剩下的就是timed out了,当然也有可能是我比较菜。
软件包#
在路由器上安装IPv6 NAT依赖的软件包:
1 | opkg update |
IPv6地址#
获取IPv6的方法有很多,最简单就是把网线直接插电脑(连客户端都不需要打开),按Win+R
输入cmd
打开命令行,直接敲ipconfig /all
,然后找到IPv6 地址: 2001:250:3000:3cc3:x:x:x:x
(不要选临时地址),这就是自己分配到的IPv6地址了。最后的3cc3
视宿舍而定,会有不同。
在路由器上,也可以通过将IPv6配置为dhcpv6
自动获取。
配置文件#
/etc/config/dhcp
#
1 | config dnsmasq |
主要的改动:
config dnsmasq
下增加了IPv6的DNS服务器2001:4860:4860::8844
config dhcp 'lan'
下的ra
,dhcpv6
选server
,ra_management
和ra_default
填1
其他不知道自己还记不记得了。
/etc/config/network
#
1 | #config globals globals |
主要改动:
- 注释了
ula_prefix
config interface 'lan'
添加option ip6addr
,指的是为LAN分配的DHCP地址/64
是子网掩码的长度config interface 'wan6'
把ifname
换成@wan
,option ip6addr
填上面自己分配到的IPv6地址
/etc/hotplug.d/iface/90-ipv6
#
没有这个文件的话就新建一个,用于添加IPv6的默认路由。通常可以通过traceroute6 bt.byr.cn
的第一跳获得。
1 |
|
最后加个执行权限:chmod +x /etc/hotplug.d/iface/90-ipv6
。
/etc/firewall.user
#
添加一行(eth1
替换为自己实际使用的WAN口):
1 | ip6tables -t nat -A POSTROUTING -o eth1 -j MASQUERADE |
/etc/sysctl.conf
#
如果文件里面没有的话就加到文件结尾,开启内核转发和DHCP:
1 | net.ipv6.conf.default.forwarding=1 |
最后,重启路由器和所有连接到路由器上的设备……
常见问题#
路由器连不上IPv6#
检查自己路由器的IPv6配置,比如/etc/config/network
下的WAN口IPv6地址。DNS不能获得IPv6的AAAA记录的,配置一下/etc/config/dhcp
和/etc/config/network
下面的DNS。
路由器IPv6正常,LAN设备连不上IPv6#
如果设备没有分配到一个fc00:100:100:1:x:x:x:x
的IPv6地址,说明路由器的IPv6 DHCP没有正常运行。首先检查/etc/sysctl.conf
,这个是很多博客没提及到的。在我实际折腾中发现这个文件需要做出修改才能正常通过DHCP获取IPv6地址。然后就是/etc/config/dhcp
的LAN口部分。
IPv6的DNS问题,如果设备没有指定DNS地址,则参考路由器连不上IPv6部分,因为DNS解析是转发到路由器的。如果有指定地址,那我只能建议去掉,或者在IPv6那里也手动指定DNS服务器……
IPv6 ping超时或者一般故障,很大概率是NAT的转发问题,看看路由器的防火墙和IPv6的默认网关。路由器的转发规则如果不配置到脚本中的话,一重启就会丢失。
好像差不多了,剩下的事就是烧个香保佑没那么多破事吧。还没有解决的是IPv6的NAT内网穿透的事,不知道能不能像IPv4那样,通过几条iptable命令就能解决。
其他一些杂七杂八的note#
OpenWrt的SSH Key位置:/etc/dropbear/authorized_keys
,当初还天真的以为是~/.ssh/authorized_keys
。
WAN端的以太网速率除了协商之外,其实也是可以自己调整的:ethtool -s eth1 speed 100 duplex full
。
建议在修改配置文件前,先把原配置文件备份一遍!!!