找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 15535|回复: 27

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

[复制链接]
本帖最后由 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路由表

评分

参与人数 2恩山币 +2 收起 理由
sko*** + 1 几亿网民,我们俩竟然神奇的在恩山相遇了!.
Hs_n*** + 1 2333

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
感谢,前几天被这个问题快逼疯了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 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
复制代码

点评

这段代码加到哪里啊?  详情 回复 发表于 2023-8-21 07:25
2开头的ipv6不是固定的啊,会变怎么办? 而且有时候op的wan6口有多个ipv6地址  详情 回复 发表于 2023-8-20 08:50
是个好思路,策略路由以前从来没用过,好长时间没搞过路由器了,又学到新东西了。 这个方法对比修改metric 的方法有啥好处,请求赐教,谢谢  详情 回复 发表于 2018-9-10 17:47
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
zyyhcufe 发表于 2018-9-10 12:32
如果是这个原因的话,提供一个解决思路。

是个好思路,策略路由以前从来没用过,好长时间没搞过路由器了,又学到新东西了。
这个方法对比修改metric 的方法有啥好处,请求赐教,谢谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
64那个应该是给光猫的地址,另外应该还会给一个60的网段供下级网络分配

点评

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

使用道具 举报

 楼主| | 显示全部楼层
seth233 发表于 2018-9-10 19:03
64那个应该是给光猫的地址,另外应该还会给一个60的网段供下级网络分配

是真的吗?请问你是移动的宽带吗?如果是的话请教一下如何可以获得/60的掩码呢。
我用的是路由器pppoe拨号,从来没有获得过/60的掩码,所以只能用odhcpd中继模式。如果有/60的掩码我就直接服务器模式了。
对了,用电脑直接拨号也没有获得过/60的掩码。

点评

我是移动宽带,不过各地可能配置不同。你可以ifstatus wan6看看有没有这段 "ipv6-prefix": [ { "address": "2409:xxxx:xxxx:xxxx::",  详情 回复 发表于 2018-9-10 20:42
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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": {
                        }
                }
        ],

点评

我的ipv6-prefix是空的  详情 回复 发表于 2018-9-10 21:40
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
seth233 发表于 2018-9-10 20:42
我是移动宽带,不过各地可能配置不同。你可以ifstatus wan6看看有没有这段
        "ipv6-prefix": [
  ...

我的ipv6-prefix是空的

点评

各地配置不一样吧,我这的电信默认v4内网,v6给/56前缀,改了公网v4以后就没有v6 前缀了,只有一个地址。  详情 回复 发表于 2018-9-10 21:49
那只能relay或者ipv6桥接了  发表于 2018-9-10 21:47
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

iamfool 发表于 2018-9-10 21:40
我的ipv6-prefix是空的

各地配置不一样吧,我这的电信默认v4内网,v6给/56前缀,改了公网v4以后就没有v6 前缀了,只有一个地址。

点评

听说我们这里的电信是有v4外网就不给v6,v4内网就给给v6/64  发表于 2018-9-10 22:00
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
对了,有没有大神能够告诉我桥接方式能不能继续在路由器上挂BT(走ipv6),看过好多文章说不可以。

点评

可以,给 br-lan 手动设置一个IPv6 地址并添加路由  详情 回复 发表于 2018-9-19 23:45
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 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 或重启后生效

点评

这个可以解决楼主说的,必须先ping才能使用ipv6的问题吗?  详情 回复 发表于 2023-8-20 07:56
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢大神分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
收藏备用。            
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

马克一下,前些天也碰到一样的问题。是LAN侧设置错误。把LAN端的RA打开,其它采用中继模式,就可以得到 60前缀,这样就可以了。

点评

能详细的说一下吗 ,怎么打开lan的ra 以及其他具体的一些设置,谢啦  详情 回复 发表于 2018-11-6 10:36
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

ghostja 发表于 2018-11-1 14:35
马克一下,前些天也碰到一样的问题。是LAN侧设置错误。把LAN端的RA打开,其它采用中继模式,就可以得到 60 ...

能详细的说一下吗 ,怎么打开lan的ra
以及其他具体的一些设置,谢啦

点评

google 上搜 openwrt 电信PPPOE 前缀  详情 回复 发表于 2018-11-8 13:52
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 09:30

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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