恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9716|回复: 24

openwrt 1806 ipv6 relay模式lan端无法访问ipv6的解决方法

  [复制链接]
发表于 2018-9-10 11:50 | 显示全部楼层 |阅读模式
本帖最后由 iamfool 于 2018-9-30 01:23 编辑

       移动这几天分配了ipv6,可惜掩码是/64的,没法再分子网,不过openwrt的odhcod relay模式可以让lan端设备都获得公网ipv6地址,但是死活都不能ping通ipv6的网站。google一大轮,类似情况很多但都没有解决方案。
后来发现只要lan端设备ping路由器的wan端ipv6地址,ping第一下延时较长,ping通后再访问ipv6网站就正常了。但不可能每个设备都这样搞,一个是麻烦,另外是手机、ipad等设备调用ping命令很难。
google+自研发现是openwrt ipv6默认路由的问题。ipv6建立后默认路由是:
default from 2xxx:xxxx:xxx:xx::/64 via fe80::xxxx:xxxx:xxxx:xxxx dev pppoe-wan  metric 512

        因为lan端的地址同样是2xxx:xxxx:xxx:xx::/64,因此该网段的数据全部从pppoe-wan跑了,到不了lan段,所以出现ping不通ipv6网站的问题。
而当lan端设备ping路由器wan端ipv6地址的时候就临时在路由表里生成一个路由告诉路由器某个lan端ipv6地址实际是在br-lan接口上的。查看路由表可以看到多出了下面这样的路由。

2xxx:xxxx:xxx:xx:xxxx:xxxx:xxxx:xxxx dev br-lan  metric 1024

    因此,实际上只要在路由表里增加一条路由命令就可以了。
ip -6 route 2xxxx:xxxx:xxx:xx::/64 dev br-lan  metric 128   

    这里metric必须设置得比默认路由要小,不然路由器还是会首先访问pppoe-wan接口。

    最后为了让路由表自动生成,在hotplug.d里加入90-ipv6文件
内容:


if [ "$ACTION" = "ifup" -a "$INTERFACE" = "wan6"  ]; then
        ip -6 route add `ip -6 route show default | sed -n -e 's/default from //' -e 's/ via .*$//g' -e '/64$/p'` dev br-lan metric 128
        logger -t IPV6 "Route resetting for $INTERFACE up"
fi
    当然这个解决方案还是有bug,就是当pppoe-wan断线重连后旧的路由没有删除,会导致上一次拨号分配的ip地址无法访问。有极其微小的可能性会影响bt等下载软件的速度。解决方法研究中。    另外,如果移动分配给lan端设备的网址和路由的不同的话,这个解决方案就完全不行了,不过这个可能性非常小。
9月30日修改:
移动又开始分配PD了,所以上面的方法已经可以完全放弃,做个记号,万一出现分配的PD网段无法上网的话还是可以用上面的方法的,修改了一下sed命令来获取准确的/64路由表

评分

参与人数 1恩山币 +1 收起 理由
Hs_n*** + 1 2333

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-9-10 12:24 | 显示全部楼层
感谢,前几天被这个问题快逼疯了
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-9-10 12:32 | 显示全部楼层
本帖最后由 zyyhcufe 于 2018-9-10 12:38 编辑

如果是这个原因的话,提供一个解决思路。
  1. ip -6 rule add iif pppoe-wan table 6
  2. ip -6 r add 2xxx:xxxx:xxxx:xxxx::/64 dev br-lan table 6
复制代码
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-9-10 17:47 | 显示全部楼层
zyyhcufe 发表于 2018-9-10 12:32
如果是这个原因的话,提供一个解决思路。

是个好思路,策略路由以前从来没用过,好长时间没搞过路由器了,又学到新东西了。
这个方法对比修改metric 的方法有啥好处,请求赐教,谢谢
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-9-10 19:03 来自手机 | 显示全部楼层
64那个应该是给光猫的地址,另外应该还会给一个60的网段供下级网络分配
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-9-10 19:43 | 显示全部楼层
seth233 发表于 2018-9-10 19:03
64那个应该是给光猫的地址,另外应该还会给一个60的网段供下级网络分配

是真的吗?请问你是移动的宽带吗?如果是的话请教一下如何可以获得/60的掩码呢。
我用的是路由器pppoe拨号,从来没有获得过/60的掩码,所以只能用odhcpd中继模式。如果有/60的掩码我就直接服务器模式了。
对了,用电脑直接拨号也没有获得过/60的掩码。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-9-10 20:42 | 显示全部楼层
iamfool 发表于 2018-9-10 19:43
是真的吗?请问你是移动的宽带吗?如果是的话请教一下如何可以获得/60的掩码呢。
我用的是路由器pppoe拨 ...

我是移动宽带,不过各地可能配置不同。你可以ifstatus wan6看看有没有这段
        "ipv6-prefix": [
                {
                        "address": "2409:xxxx:xxxx:xxxx::",
                        "mask": 60,
                        "preferred": 107332,
                        "valid": 193732,
                        "class": "wan6",
                        "assigned": {
                        }
                }
        ],
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-9-10 21:40 | 显示全部楼层
seth233 发表于 2018-9-10 20:42
我是移动宽带,不过各地可能配置不同。你可以ifstatus wan6看看有没有这段
        "ipv6-prefix": [
  ...

我的ipv6-prefix是空的
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-9-10 21:49 | 显示全部楼层
iamfool 发表于 2018-9-10 21:40
我的ipv6-prefix是空的

各地配置不一样吧,我这的电信默认v4内网,v6给/56前缀,改了公网v4以后就没有v6 前缀了,只有一个地址。
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2018-9-10 21:55 | 显示全部楼层
对了,有没有大神能够告诉我桥接方式能不能继续在路由器上挂BT(走ipv6),看过好多文章说不可以。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-9-19 23:45 | 显示全部楼层
本帖最后由 LGA1150 于 2018-9-19 23:47 编辑
iamfool 发表于 2018-9-10 21:55
对了,有没有大神能够告诉我桥接方式能不能继续在路由器上挂BT(走ipv6),看过好多文章说不可以。

可以,给 br-lan 手动设置一个IPv6 地址并添加路由
或者强制打开 br-lan 的 RA
  1. net.ipv6.conf.br-lan.accept_ra=2
复制代码
添加到 /etc/sysctl.conf 中,执行 /etc/init.d/sysctl restart 或重启后生效
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-9-20 08:37 | 显示全部楼层
感谢大神分享!
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-10-14 06:24 来自手机 | 显示全部楼层
收藏备用。            
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-11-1 14:35 | 显示全部楼层
马克一下,前些天也碰到一样的问题。是LAN侧设置错误。把LAN端的RA打开,其它采用中继模式,就可以得到 60前缀,这样就可以了。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-11-6 10:36 | 显示全部楼层
ghostja 发表于 2018-11-1 14:35
马克一下,前些天也碰到一样的问题。是LAN侧设置错误。把LAN端的RA打开,其它采用中继模式,就可以得到 60 ...

能详细的说一下吗 ,怎么打开lan的ra
以及其他具体的一些设置,谢啦
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2021-6-16 01:20

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表