zwhfly

PPPoE 通过 SLAAC 获取的地址所在的/64 段是独占的吗?

  •  1
     
  •   zwhfly · 13h 24m ago · 795 views

    我以前一直以为宽带 PPPoE 拨号后 WAN 口上那个/64 地址(不是说 PD 前缀)我只取得了那一个地址,可能我和好多别家的路由器在同一个/64 段里。但是今天我发现从外网 ping 那个/64 段里的任意地址,ISP 都转发给了我的路由器,那不就相当于整个段都给了我?

    进一步研究发现,路由器拨号时 RS/RA 俩包过后,路由器拿到 SLAAC 的/64 前缀,直接就用一个随机地址开始通信了,连 DAD 地址冲突检测都不做。问 AI 它告诉我 Linux 认为点对点隧道默认不需要 DAD 邻居检测,直接从段里拿个地址通信就完事了。那这样的话我觉得 ISP 必须要把整个段给我了,不然就有概率跟别人冲突了。但是 AI 告诉我理论标准并没有保证这一点。

    有没有业内小伙伴知道,是不是所有的 PPPoE+SLAAC 给出去的地址,每个用户都给的独立的/64 段?

    我为什么在意这个,因为我的宽带只给我/62 的 PD 前缀,不够分啊😓。加上这个我就有 5 个/64 段了😄。

    12 replies    2026-07-29 00:20:29 +08:00
    1018ji
        1
    1018ji  
       13h 8m ago
    你要那么多 v6 干啥,我都是想只给部分设备分配 v6 ,op 没搞定直接关闭了 v6 只用路由器的转发
    zwhfly
        2
    zwhfly  
    OP
       12h 59m ago
    @1018ji 比如说,玩 NAT46 (把 IPv6 服务转成 IPv4 服务)就用掉一个段。接二级路由(物理的和虚拟的)更是大块地分。
    zwhfly
        3
    zwhfly  
    OP
       12h 19m ago
    发现一个 WAN 口给/128 的: https://v2ex.com/t/861798

    大概不是 SLAAC ,而是用 DHCPv6 的 IA_NA 选项下发的。
    gnuth
        4
    gnuth  
       11h 9m ago
    一般就是给家庭用户分 /64 网段,不是单个 IP ,IPv6 没有 NAT ,家庭内部还会再分配 IP 地址给其他设备。
    给企业还会分 /48 或 /56 。

    分网段更简单,减轻路由压力,而且方便做安全策略。
    zwy100e72
        5
    zwy100e72  
       10h 57m ago
    我观察应该分几个场景

    - PPPoE Link-Local - 这种是直接 PPPoE 协商得到的 fe80::/64 开头的本地地址,dhcp-pd 流程会用到
    - PPPoE Global - 这种是 PPPoE 分配的全局地址,可以是 /64 也可以是 /128 ,做 NAT 可以用,一般用不到
    - DHCPv6 (client) PD (over PPPoE) - 这种拿到的是整块的前缀,家庭级别是 /56 或者 /60

    通过 PD 拿到整段的地址之后,可以再根据自己的内网布局,开不同的 SLAAC 流程 (icmpv6 RA),这样每个 L2 广播域都可以有不同的 /64 网段;/56 的前缀可以自己再分 256 个子网 /60 的前缀可以再分 16 个子网
    zwy100e72
        6
    zwy100e72  
       10h 53m ago   ❤️ 1
    给 /62 还是太抠门了,和 ISP 师傅估计也解释不清楚。一方面可以尝试修改 dhcpv6-pd 的参数,尝试申请更大的段,另一方面也可以换其他 ISP 了
    ranaanna
        7
    ranaanna  
       10h 48m ago   ❤️ 1
    这个问题对于本人用过的中国电信的答案是:是的。通过这个/64 段家庭宽带内的所有设备就可以构成一个子网共享上网。由于多数国家(包括中国)都规定 ISP 必须要给家庭宽带客户划分子网的权利,所以通常 ISP 还会给客户一个/62/60/56/甚至/48 前缀,这样客户就可以自行划分最多 4/16/256/65536 个子网,加上原来的一个,确实是 5/17/257/65537 个

    这可能是绝大多数 isp 的常规做法。当然正如 OP #3 所说,可能也有 isp 不这样
    wanghanthu
        8
    wanghanthu  
       10h 36m ago   ❤️ 1
    简而言之,是。
    但是如果你想用它做子网的话,可能需要 NDProxy ,取决于上级运营商配置。另外前缀大于 64 就不能 SLAAC 了,android 设备不支持。
    zwhfly
        9
    zwhfly  
    OP
       8h 46m ago
    @wanghanthu OpenWrt 有个 extendprefix 选项可以把这个段伪装成一个/64 的 PD 前缀,然后就可以像普通 PD 前缀一样给下边 lan 分配了。

    最新固件还可以在 web 界面直接开关这个选项,叫做“扩展前缀:通过前缀委派将 3GPP WAN 接口的全局 /64 前缀扩展到 LAN ( RFC 7278 )”。

    不过原来的真 PD 前缀就没有了。我的办法是再建一个别名接口,也开 DHCPv6 。
    qazwsxkevin
        10
    qazwsxkevin  
       5h 50m ago
    @gnuth #4 IPv6 有 NAT66 ,可以做 NAT;

    ISP 分配给住宅宽带 IPV6 是/62 ,我还是对家里其中两个 VLAN(IP Subnet)做了 NAT66 ,其中一个 VLAN 是 wifi 家电;
    并不想这些设备直接暴露在 global ;
    solecc
        11
    solecc  
       4h 40m ago
    @zwhfly tplink 的家用路由器只能拿到/64 的 PD 前缀么,光猫拨号可以拿到/56
    rio
        12
    rio  
       3h 29m ago
    IPv6 最小分配单元是 /64 ,所以是的,PPPoE 得到的那个/64 里只有两个地址,你的 PPPoE 客户端和运营商那头的 PPPoE 服务端。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   953 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 19:49 · PVG 03:49 · LAX 12:49 · JFK 15:49
    ♥ Do have faith in what you're doing.