Openwrt ipv6 继续踩坑
在前面的文章《电信PPPOE的Ipv6配置方法》和文章《OpenWRT 18.06配置ipv6内网机器无法正常获取地址的一个坑》中,提到了关于ipv6设置获得不到地址的问题,但是最近又出现了新问题,之前用的好好的,最近这段时间突然又没法获得ipv6地址了,又坑了我很久,之前以为是openwrt odhcpd的bug,但是编译了好几个版本仍然还是不行,实在没办法,无法解决,直到最近才发现其实是因为之前的Ipv6设置是错误的,能正常工作纯属运气好,或者是以前的软件默认配置了一些东西,等到Openwrt更新代码以后,又会出现其他问题的。
具体原因不明,但是解决方案已经有了,首先,之前的关于在《OpenWRT 18.06配置ipv6内网机器无法正常获取地址的一个坑》文章里对/etc/config/dhcp中把PPPOE WAN里添加3个option的设置方法是不对的,因为对于PPPOE WAN,默认忽略了DHCP配置,然后,在文章《电信PPPOE的Ipv6配置方法》中的设置方法正确,但对于OpenWRT 18.06而言,IPv6 ULA prefix为空的话,就会分配不了IP,解决办法是在Ipv6 ULA prefix里填上”fe80::/64″,如下图:
这时候,LAN会多一个fe80::1/64的地址,这时候,重启odhcpd,会发现内网正常分配Ipv6地址了,并且默认网关已经被指向fe80::1。此时第二个坑来了,无法上网!!ipv6虽然获得了地址,但是无论访问什么网络都是network unreachable,这个坑坑了我很久,最后发现竟然是防火墙的问题,在防火墙里添加两条Ipv6的转发规则,就可以了:
至此解决了之前的诡异问题。
看来Openwrt对于ipv6的支持只能说一般,坑还是挺多的,如果各位朋友碰到类似的问题,可以参考下笔者的解决思路。虽然到目前为止对于原理为什么会这样仍然不明所以~~