V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
systemcall
V2EX  ›  程序员

PPPoE 获取 IPv6,为什么 IPv6 前缀是在 LAN 上面, PPPoE 看上去没有 IPv6?

  •  
  •   systemcall · 2021-02-16 18:31:37 +08:00 · 4529 次点击
    这是一个创建于 1381 天前的主题,其中的信息可能已经有所发展或是发生改变。

    路由器用的 OpenWRT,新建了接口 PPPOE 来进行 PPPoE 拨号上网,接口设置成了 @wan,防火墙设置为 wan
    这样用了很久。刚刚才留意到一个问题,就是 OpenWRT 上,PPPoE 、WAN 、WAN6 这 3 个接口都没有拿到 v6 的前缀和地址,但是 LAN 上面有 v6 的前缀。那么 ipv6 到底是怎么分配的呢?
    如果用电脑拨号,还可以拿到 ipv6 的地址吗?电脑和路由器不在一个房间,测试起来很麻烦。想请教一下大家

    18 条回复    2021-06-25 16:46:51 +08:00
    xarthur
        1
    xarthur  
       2021-02-16 18:38:05 +08:00
    你的 PPPoE 没开启 IPv6 的支持,或者就是你的运营商还没下发 IPv6.
    LAN 口上的 IPv6 估计也只是本地链路单播地址
    ysc3839
        2
    ysc3839  
       2021-02-16 18:39:39 +08:00 via Android
    OpenWrt 的话,连接 PPPoE 后应该会出现一个新的接口,对应的是 PPPoE 的 IPv6 。
    systemcall
        3
    systemcall  
    OP
       2021-02-16 18:41:25 +08:00
    @xarthur
    ipv6 是正常的,下面的机器可以分配到公网 v6 。lan 上面确实有个本地链路的地址,但同时还有一个 /60 的前缀,这个是运营商下发的
    @ysc3839
    之前的那个 openwrt 路由器似乎是有的,不知道现在的这个为什么没有
    xarthur
        4
    xarthur  
       2021-02-16 18:41:38 +08:00
    其实可以看看我的写的文章(
    https://v2ex.com/t/724060
    不过有点过时了,我之后没在用 DHCPv6C 了,直接用了系统内置的 dhcpcd
    ysc3839
        5
    ysc3839  
       2021-02-16 18:41:53 +08:00 via Android
    @systemcall 可能是配置错了什么?
    xarthur
        6
    xarthur  
       2021-02-16 18:44:26 +08:00
    @systemcall 如果 LAN 口有正常的 IPv6,而且路由接的设备可以分配到 IPv6,说明 Prefix Delegation 是正常的。估计还是在 PPPoE 上出了什么问题。
    lcdtyph
        7
    lcdtyph  
       2021-02-16 18:47:22 +08:00 via iPhone
    odhcpd 是怎么配置的
    systemcall
        8
    systemcall  
    OP
       2021-02-16 18:50:14 +08:00
    @ysc3839
    @xarthur
    怀疑是系统自己的 bug
    在终端输入 ip addr,看到 pppoe-pppoe 这个接口有 2 个 ipv6 的地址,一个是 /64 的公网地址,另一个是本地链路 ipv6 地址
    xarthur
        9
    xarthur  
       2021-02-16 18:53:40 +08:00
    @systemcall 那应该是正常的。估计是 UI 层出什么 Bug 了。
    xarthur
        10
    xarthur  
       2021-02-16 18:54:47 +08:00
    @systemcall 这也是为什么我不太想用 OpenWRT 而是选择自己折腾的原因(
    Zy143L
        11
    Zy143L  
       2021-02-17 03:35:19 +08:00 via Android
    这个问题,op 祖传问题了
    你拨号会发现,wan 只有 ipv4,wan6 没有地址,然而 lan 却有 IPv6 也能正确分配
    feng0vx
        12
    feng0vx  
       2021-02-17 10:43:34 +08:00 via Android
    wan 口应该有 ipv6 的本地链路地址,这个 fe80 和 wan 口网关的 fe80 通讯,以前遇到过,貌似是老光猫的原因
    sasalemma
        13
    sasalemma  
       2021-02-17 14:24:42 +08:00
    感觉这是最基本的路由逻辑啊亲

    WAN 口和 LAN 口必然是不同网段的,怎么可能从 LAN 获得 LAN 的前缀。

    openwrt 你删掉原来 WAN 和 WAN6 口,只新建一个 WAN 口,PPPoE 拨号,带 IPV6 就会自动生成一个虚拟的 WAN_6 接口,里面有 LAN-PD 前缀和 WAN 口 SLAAC 下发的 WAN 口独立 ipv6 地址,不同网段的。

    WAN 口有 IPV4 地址和 IPV6 链路地址,虚拟的 WAN_6 口有 PD 和 WAN 口 IPV6 信息

    按目前的家宽配置中,他们给的地址,WAN 、LAN 前缀中前两个段是一样。

    哪里有楼上祖传的什么鬼问题,用的是第三方固件吧。自己去编译个看看再说。
    sasalemma
        14
    sasalemma  
       2021-02-17 14:53:05 +08:00
    目前大多 IPV6 中,一般是以 DHCPv6-PD 形式下发,PPPoE 拨号,WAN 口带一个被 SLAAC 方式下发的 IPV6 地址和甩给了 LAN 一个 /60 的前缀,路由 LAN 这边用无状态分配的方式,LAN 下设备就生成一个 /64 的完整 ipv6 地址,但不能再下发了。就是路由拨号获得 PD 前缀是 /60,再接个二级路由,二级路由下的设备就没有 PD 二次下发的前缀可用了,就没有 IPV6 地址了。拨号路由用 DHCPv6 有状态分配短地址,二级路由能继续使用 PD 前缀,只是安卓一类设备不支持有状态的 DHCPv6 方式。

    你的 GUI 不显示 WAN 口地址,本质上来说,原界面中的 WAN 是 PPPoE 拨号协议,而无论是 PPPoE 获得的 IPV4 还是 IPV6,都是 PPPoE 这个接口获得的,而默认下 WAN6 这个接口,是作为和 IPV4 时 WAN 被上级 DHCP 获得地址的来的。上级光猫又没有 DHCPv6 给你,怎么会有 IPV6 拨号获得的信息在,有信息也只是光猫分配的 IPV6 地址。

    换个你能理解的说法,这个东西就好比 OPENWRT 拨号,路由拨号,光猫桥接,那路由的 WAN 口是不是接在光猫的 LAN,光猫没有分配一个 IPV4 地址给你吗?有的。那 WAN 口为什么只有 PPPoE 的信息?还不是因为自己设置接口协议的时候用了 PPPoE 协议,所以光猫 DHCPv4 下发的 ipv4 地址是不是看不见任何信息呢?

    WAN6 口是同理的。删掉,让 WAN 口拨号。自动生成就是了,生成的虚拟 WAN6 或者 @WAN 或者 WAN-6 就有信息了。
    hcocoa
        15
    hcocoa  
       2021-02-17 20:34:20 +08:00
    建议学习一下 IPv6 基本知识,LAN 口的地址应该是 Link-local address,可以截图贴出来给大家看一下。
    https://en.wikipedia.org/wiki/IPv6_address

    OpenWRT 配 IPv6 可以搜一下,有不少文章:
    https://lwz322.github.io/2019/07/25/IPv6_Home.html
    https://xratzh.com/2020/02/29/openwrt-ipv6/
    http://blog.kompaz.win/2017/02/22/OpenWRT%20IPv6%20%E9%85%8D%E7%BD%AE/
    flynaj
        16
    flynaj  
       2021-02-18 11:01:58 +08:00 via Android
    可能你的 openwrt 不是原版没有显示正确,还有可能你没有删除默认那个 wan_6 的接口。
    systemcall
        17
    systemcall  
    OP
       2021-02-19 20:39:14 +08:00
    @flynaj #16
    感觉可能是因为我的 OpenWRT 不是原版的原因吧
    主要是手里只有一个 newifi mini 有原版 OpenWRT 可以刷,但是太老了,无线不稳定,而且爬墙太慢。别的可以刷 OpenWRT 的东西都不是官方支持。acrh17 刷的恩山的固件,手里还有几个 tp 的无线路由,没有对应的固件刷,ROM 芯片和编程器倒是不缺
    shikkoku
        18
    shikkoku  
       2021-06-25 16:46:51 +08:00
    @systemcall #17 lean 的源码 luci 不会显示 wan_6 接口。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1411 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:47 · PVG 07:47 · LAX 15:47 · JFK 18:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.