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的支持只能说一般,坑还是挺多的,如果各位朋友碰到类似的问题,可以参考下笔者的解决思路。虽然到目前为止对于原理为什么会这样仍然不明所以~~
lhp9916
博客挺好看的,这个主题叫什么?
Jarvis
No.7,淘宝上有
猢狲
请教我也是电信用户,改ppoe拨号,重启路由的前几分钟有ipv6,等会就连不通了,请教下你是怎么具体设置的防火墙啊?谢谢了
Jarvis
你是什么路由器?
猢狲
x86版的Openwrt
Jarvis
你这个问题其实我碰到过,你是不是内网机器前几分钟能获取ipv6地址,过了一段时间就获取不到ipv6地址了,如果是这个问题的话,就是那个IPv6 ULA前缀一定要按我这样填,不填就会这样。
猢狲
好的,我试试,另外请教下你说的防火墙里添加两条Ipv6的转发规则是怎么加的?小白在Openwrt里看得一脸懵逼
Jarvis
防火墙通信规则那里,新建两条转发规则,名字你可以按我这样写,也可以随便写,源区域和目标区域分别是wan->lan和lan->wan,然后点添加并编辑的时候,限制地址写仅IPv6,协议TCP+UDP,然后保存就行
jjle
我的路由器连上pppoe后会自动出现一个wan_6的接口,这个接口不能进行操作。然后这个接口获取的是2001开头的地址,有了这个接口之后内网就没办法获取ipv6地址了,请问你有没有遇到过这种情况呀
Jarvis
自动出现wan_6是正常的,你把设置贴出来看看
wang
请问openwrt ddns如何设置ipv6的域名解析,以前设置ipv4的域名解析没有问题,但现在获取ipv6公网ip后,ipv4无公网地址。域名是3322.org,ipv4的ddns自带的有,ipv6的域名提供商列表里面没有?
Jarvis
没用过Ipv6的DDNS
屠夫9441
博主您好,想请教一下,我是北京电信宽带,完全按照您在《电信PPPOE的Ipv6配置方法》和本文中的指导进行了设置,但是一直都是能正常获取到ipv6地址,却无法访问ipv6公网,在test-ipv6.com等网站中也检测不到ipv6地址,SSH到路由器后台也ping不通v6网站,您觉得问题可能出现在哪里,是运营商的问题吗?
屠夫9441
(接上一条)在路由器后台traceroute一个v6网站的话,第一级后面的都不通了: traceroute to ipv6.tsinghua.edu.cn (2402:f000:1:881::8:205), 30 hops max, 64 byte packets 1 240e:0:8000::1511 3.188 ms 2 * 3 * 4 * 5 * 查询了一下这个IP是:中国北京市 中国电信城域网,难不成真是电信的网就不通外面么……??
Jarvis
你的openwrt是什么版本?
屠夫9441
是恩山论坛上网友的自编译版本,https://www.right.com.cn/forum/thread-804350-1-1.html (评论回复没有邮件提醒,才看到?)
Jarvis
防火墙规则添加试过了吗?
屠夫9441
添加过了的。实际上这个固件据说本身就开启支持ipv6,我保持默认设置时,同样能获取到IPv6地址,但无法访问公网,跟按照你的方法设置之后情况是一样的。
Jarvis
那就不知道了,你要不要试试我编译的固件?
屠夫9441
可以啊,您有公开分享过吗?我的路由器是Newifi3 D2,不知道适不适用
屠夫9441
哦对了,还有一个可能,是不是我光猫里面的设置有些地方不对。我设置成了桥接模式,网络设置和用户侧管理分别设置成如下图所示,还麻烦您帮忙看看有没有问题。
Jarvis
我只有x86-64版本的。光猫设成桥接一般也没问题。
屠夫9441
噢噢,是软路由上用的啊,那我应该用不上了,但还是谢谢!
landi
感谢博主分享,我重新编译了个OpenWRT 19.07版本,就不存在这个问题了。
landi
感谢博主分享,之前的18版本的确存在这个问题,我重新编译了个OpenWRT 19.07版本,就好了。
unclehu
请教一下: 电信用户,之前用AC86U梅林改,拨号成功能正常获取ipv6地址 入了一台X86软路由,版本如下 OpenWrt R20.1.24 / LuCI Master (git-20.032.31649-0d31472) 拨号就一直无法获取地址了,已经关闭了ipv6的防火墙 network配置如下 config globals 'globals' option ula_prefix 'fe80::/64' config interface 'wan' option ifname 'eth1' option _orig_ifname 'eth1' option _orig_bridge 'false' option proto 'pppoe' option username 'xxx' option password 'xx' option ipv6 'auto'
Jarvis
能不能获取地址和防火墙没有关系,你是拨号的时候WAN上没有IPV6地址还是内网主机没法自动获得IPV6地址?
unclehu
新刷了个固件,路由和终端设备都可以获取到ipv6地址了,但是ipv6路由还是不通 在路由器上测试ping ipv6.baidu.com能解析到远端地址,但提示没路由 root@OpenWrt:~# ip -6 route default from 2xxx:xxxx:xxxx:b900::/56 via fe80::da86:8eff:fe9d:27 dev pppoe-vwan1 proto static metric 512 pref medium default from 2xxx:xxxx:xxxx:bb00::/56 via fe80::da86:8eff:fe9d:27 dev pppoe-vwan2 proto static metric 512 pref medium 2xxx:xxxx:xxxx:b900::/64 dev br-lan proto static metric 1024 pref medium unreachable 2xxx:xxxx:xxxx:b900::/56 dev lo proto static metric 2147483647 pref medium 2xxx:xxxx:xxxx:bb00::/64 dev br-lan proto static metric 1024 pref medium unreachable 2xxx:xxxx:xxxx:bb00::/56 dev lo proto static metric 2147483647 pref medium fd00:ace:cafe::/64 dev br-lan proto static metric 1024 pref medium unreachable fd00:ace:cafe::/64 dev lo proto static metric 2147483647 pref medium fe80::/64 dev br-lan proto kernel metric 256 pref medium fe80::/64 dev eth1 proto kernel metric 256 pref medium fe80::/64 dev macvlan1 proto kernel metric 256 pref medium fe80::/64 dev macvlan2 proto kernel metric 256 pref medium fe80::/10 dev pppoe-vwan1 metric 1 pref medium fe80::/10 dev pppoe-vwan2 metric 1 pref medium fe80::/10 dev pppoe-vwan1 proto kernel metric 256 pref medium fe80::/10 dev pppoe-vwan2 proto kernel metric 256 pref medium default dev lo metric 1 pref medium
Jarvis
你这个问题之前网上看到过,就是路由的问题,那个人的解决方案是加一条默认路由。