V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sdevp
V2EX  ›  宽带症候群

电信企业宽带 IPv6 禁止下发 PD 前缀!

  •  2
     
  •   sdevp · 2024-06-09 15:37:27 +08:00 via iPhone · 9976 次点击
    这是一个创建于 429 天前的主题,其中的信息可能已经有所发展或是发生改变。

    单位有一条企业专线,有公网 IPv4,IPv6. 一条光纤进来,经过一个光电转换器,分配了一个::/56 的段,但没有 PD 前缀, 导致经过我们的路由器后没法划分子网给内网的 Lan 侧使用 IPv6, 而这段静态的::/56 地址的网关是 xxx::1/56, 这个网关处于电信那边的设备上,打电话问他们说就是这样的禁止下发前缀,这样的 IPV 六不是残废吗?怎么能分发到 Lan 侧的设备,如果用 ND Proxy 的话会有什么问题吗? 各位大佬支支招。

    第 1 条附言  ·  2024-06-09 19:09:19 +08:00
    这里描述一下我的具体配置:

    我只收到电信业务员给的一张截图, 上面就 240e:a:b:0300:1/56 这一个信息。

    于是我在我路由器上的 wan 接口配置了 240e:a:b:0300:2/56 ,并且能 ping 通运营商侧的 240e:a:b:0300:1/56 (网关),然后我在我路由器的 lan 上配置了 240e:a:b:0301:1/64 并且使用 SLAAC 方式向 LAN 侧设备宣告该段子网的前缀。LAN 侧设备能正确获取到该段地址,并且可以 ping 通路由器的 lan 口地址 240e:a:b:0301:1 与路由器的 wan 口地址 240e:a:b:0300:2 ,但无法 ping 通运营商侧的网关( 240e:a:b:0300:1 )。但从路由器上通过 wan 口 ping 240e:a:b:0300:1 是正常的。

    然后还试过把 wan 口配置成 240e:a:b:0300:2/64 (使用 56 划分的第一个子网)与运营商侧的网关连接,结果跟上面的一样。

    另外还做过测试, 在 wan 口同一个二层的位置随便配 240e:a:b:0300::/56 该段的任何有效地址,都可以正常与运营商 240e:a:b:0300:1 通讯,上网都正常, 只要跨越二层就不行了。

    我猜测是我配置在 LAN 侧的地址段无法让运营商侧的那个接口 240e:a:b:0300:1 建立 IPv6 的邻居关系, 因为他们根部不在一个本地链路。NDP 无法完成建立邻居关系,DAD 等

    若有错误之处,请大佬们斧正,谢谢
    60 条回复    2024-06-25 23:39:04 +08:00
    canyue7897
        1
    canyue7897  
       2024-06-09 15:46:47 +08:00 via Android
    主路由拿 ipv6,然后自己做服务器下发不行么?
    sdevp
        2
    sdevp  
    OP
       2024-06-09 15:53:07 +08:00 via iPhone
    @canyue7897 不行,目的地是这个 56 段都流量运营商只路由到它的那个::1 接口,必须是跟这一个接口同一个数据链路层才能够收到数据,如果我在我的路由器上面划分子网,我下面的设备是可以收到我路由器下发的地址,但是这些设备访问运营商这个::1 的网关就没响应了,因为他们一开始就没能建立邻居关系。因此我只能在我路由器的 Wan 侧使用这段地址……
    sdevp
        3
    sdevp  
    OP
       2024-06-09 15:55:10 +08:00 via iPhone
    而且我也搞不懂电信为什么禁止下发 PD 前缀?公网地址都是静态的了,对他有什么影响?按照他这个模式,我总不可能把服务器全部搬到 wan 这里接一个交换机工作是吧,搞不懂啥逻辑🤣
    1QWxx6CtzA3CPgEQ
        4
    1QWxx6CtzA3CPgEQ  
       2024-06-09 15:58:07 +08:00
    楼主 单位这条 企业专线,具体带宽 资费 是?
    cnbatch
        5
    cnbatch  
       2024-06-09 16:00:39 +08:00
    电信这骚操作,把 IPv6 搞成 IPv4 大内网的玩法

    能不能要求他们改成分配前缀的方式?
    scegg
        6
    scegg  
       2024-06-09 16:02:17 +08:00
    因为目前 IPV4 是要卖钱的。他们会控制 V6 的发放量,方便后续卖 V6 。
    sdevp
        7
    sdevp  
    OP
       2024-06-09 16:06:32 +08:00 via iPhone
    @youx 每月 6000 元,100 兆上下行对等,4 个公网 v4,v6 还是拿工信部红头文件投诉才开的,然后就遇到这样的问题……
    sdevp
        8
    sdevp  
    OP
       2024-06-09 16:09:06 +08:00 via iPhone
    @cnbatch 不能,我研究了好几天才知道问题在哪里,也怕是自己不专业,等一下反被别人说,然后那边给的答复是有明确文件规定,静态的 IPV6 地址就是不给下发前缀!
    wy315700
        9
    wy315700  
       2024-06-09 17:34:45 +08:00 via Android
    试试 ipv6 中继
    ranaanna
        10
    ranaanna  
       2024-06-09 17:48:53 +08:00
    OP 的问题好奇怪。运营商已经给你/56 的前缀了(而且是静态的),已经有前缀了为什么还要 PD 给你分配前缀呢?给你/56 的前缀,意思就是它会负责路由所有到达它那里该网段的流量,至于怎么用那是 OP 自己的事情。正确的设置是不会搞成大内网的
    wy315700
        11
    wy315700  
       2024-06-09 18:04:03 +08:00 via Android   ❤️ 1
    @ranaanna
    正确的做法是有一个局段 IP 用来连运营商 在给一个用户段,然后运营商会把整个段的 IP 路由过来,他这个相当于没给用户段的 IP
    ranaanna
        12
    ranaanna  
       2024-06-09 18:09:34 +08:00
    @sdevp #8 这个确实是 OP 不专业,已经有了这个/56 前缀当然就不需要 PD 请求网络前缀了。至于怎么用这个前缀,还是需要 SLAAC 或者 DHCPv6 在 LAN 侧进行路由广播的。和 PD 的差别,只是 PD 可能是动态分配,而这个是静态指定而已
    sdevp
        13
    sdevp  
    OP
       2024-06-09 18:15:21 +08:00 via iPhone
    @wy315700 正解!重点是在他并没有完整的一个段给我,这个段的第一个地址已经用在局端接口了。其实不一定要他下发前缀,他只要告诉我这一段是我自己管理的就好,他应该给我一个地址,然后所有到我这段的都有都指过来。 这样我就能使用有状态,无状态的方式来给我的内网分发了
    ranaanna
        14
    ranaanna  
       2024-06-09 18:20:28 +08:00   ❤️ 1
    @wy315700 也不一定是这样的。实际上也没有“局段 IP”的设置。运营商同时给用户一个/64 和一个/56 网段,是为了分别满足不划分子网和划分子网的用户的需求。如果没有给/64 ,只要从这个/56 的地址池中选地址即可。OP 的问题,强烈怀疑是因为 WAN 侧的地址错误地用了/56 的前缀,导致不能划分子网。正常的 IPv6 地址,前缀都应该是 64
    wy315700
        15
    wy315700  
       2024-06-09 18:21:16 +08:00 via Android
    @sdevp
    这种情况你只能用中继模式
    不知道你用的啥路由 爱快的话有一个中继模式
    wy315700
        16
    wy315700  
       2024-06-09 18:26:13 +08:00 via Android
    或者你把 V6 单独分出来,用一个交换机直接接在电信的设备上,不搞双栈。
    ppoozl
        17
    ppoozl  
       2024-06-09 18:31:46 +08:00
    SLAAC 才一定要/64 比 64 大比 64 小都可以路由的
    sdevp
        18
    sdevp  
    OP
       2024-06-09 18:32:19 +08:00 via iPhone
    @ranaanna 我尝试过在我的 wan 使用了 56 划分出来的第一个 64 的子网,而且确保他可以跟局端的那个::1 网关通讯,然后我使用第二个 64 的子网给我的 Lan 侧配置了 slaac, Lan 侧设备获取到这个段的 IPV6 地址,并且可以 ping 通我路由器上的 lan 口 v6 地址,也可以 ping 通我在 wan 口配置的那个地址,但是就是 ping 不通局端的那个::1 地址。 ::/56 这个并没有整段给我,::1/56 已经被运营商配置在它们那边了,除了使用 nd 代理不知道还有什么方法可以解决
    wy315700
        19
    wy315700  
       2024-06-09 18:33:15 +08:00 via Android
    @ranaanna 你这里的/64 就是局段 但是看 OP 说/56 的网关在运营商那里,就是局段地址了 没给他用户段地址

    我前几天刚好拉了移动的 PTN 专线,V6 是给了一个/127 用来设置 WAN 段,一个/64 自己 LAN 端自己设置
    sdevp
        20
    sdevp  
    OP
       2024-06-09 18:33:36 +08:00 via iPhone
    @wy315700 目前用的是 Mikrotik, 它没有类似功能……
    ranaanna
        21
    ranaanna  
       2024-06-09 18:36:19 +08:00
    @wy315700 @sdevp OP 的理解一定有误,网关地址没有可能是一个前缀是 56 的地址
    Remember
        22
    Remember  
       2024-06-09 18:37:50 +08:00
    你应该是配置有问题。
    局端应该给你两部分,第一部分是完整的一个/56,给你分配给局域网其他机器的,另一个是/64 的一个地址,是 wan 口用的。
    协议: DHCPv6 客户端
    分发前缀: 240e:361:xxxx:xxxx::/56
    地址: 240e:360:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64
    wy315700
        23
    wy315700  
       2024-06-09 18:39:25 +08:00 via Android
    @Remember 也有可能

    @sdevp
    建议让本地装维把详细的配置单表格发给你吧,上面会写明白地址段的
    sdevp
        24
    sdevp  
    OP
       2024-06-09 18:41:04 +08:00 via iPhone
    @Remember 你说的没错,可他并没有给我一个完整的 56 ,也没有给我用于 wan 的地址,因为没有搞过这种专线,也不懂是不是都这样,所以跑上来问问各位,看来答案跟我想的差不多,唉,电信坑啊,这么贵还……
    wy315700
        25
    wy315700  
       2024-06-09 18:44:31 +08:00 via Android
    还有 我比较好奇 4 个 V4 地址是怎么给的
    一般 V4 的话 /30 是 1 个地址 /29 是 5 个
    4 个是怎么分出来的
    ppoozl
        26
    ppoozl  
       2024-06-09 18:46:25 +08:00
    你路由器上写路由了吗
    sdevp
        27
    sdevp  
    OP
       2024-06-09 18:48:46 +08:00
    @wy315700 我笔误了,是 5 个, /29 的
    sdevp
        28
    sdevp  
    OP
       2024-06-09 18:49:35 +08:00
    @ppoozl 配了默认路由的,且抓包看过, 路由器已经正确转发了, 只是运营商那边没有回应。
    ppoozl
        29
    ppoozl  
       2024-06-09 18:50:53 +08:00
    WAN 侧你也要用/56 子网,LAN 侧才能用/64
    wy315700
        30
    wy315700  
       2024-06-09 19:00:46 +08:00 via Android
    @sdevp 如果你的 V4 也是只有一个段的话可能当地运营商就是这么分配的

    我这 V4 也是两个/30 的段 一个局段一个用户段
    kk2syc
        31
    kk2syc  
       2024-06-09 19:06:03 +08:00
    @sdevp 静在 ISP 分配给 /56 前缀的前提下,可以划分出 16 个 /60 的前缀给路由器使用,路由器则可以提供另外 16 个 /64 的前缀给它们的设备使用。你只需要在 Mikrotik 终端里面开启并配置 DHCPv6-PD 的客户端和服务端。

    ----

    接受来自 ISP 的路由器通告 (RA),以通过 SLAAC 获取 IPv6 WAN 地址
    /ipv6 settings set accept-router-advertisements=yes

    # DHCPv6 客户端配置:
    # - 添加默认路由: yes
    # - WAN 端口: ether1
    # - IPv6 地址池名称: delegation (可以随意起名,之后的命令里对应修改)
    # - IPv6 地址池前缀长度:60 (这是关键,下文会解释)
    # - IPv6 前缀提示: 56 (和 ISP 挂钩,根据实际情况修改)
    # - IPv6 请求:WAN 地址和 LAN 前缀
    /ipv6 dhcp-client add add-default-route=yes interface=ether1 pool-name=delegation pool-prefix-length=60 prefix-hint=::/56 request=address,prefix

    # 允许 DHCPv6 客户端尝试前缀代理
    /ipv6 firewall filter add action=accept chain=input comment="Accept DHCPv6 client prefix delegation" dst-port=546 protocol=udp src-address=fe80::/10

    # 为 LAN 端口分配 IPv6 地址
    /ipv6 address add address=::1 from-pool=delegation interface=bridge

    # 启用 DHCPv6 服务器,从地址池 `delegation` 中代理 IPv6 地址 ( 1day 租期)
    /ipv6 dhcp-server add address-pool=delegation interface=bridge lease-time=1d name=default

    # v6 options
    /ipv6 nd set [ find default=yes ] other-configuration=yes
    /ipv6 dhcp-server option
    # Option 23 (DNS): fd00::1
    add code=23 name=dns value=0xfd000000000000000000000000000001
    # Option 24 (域搜索列表): example.local
    add code=24 name=domain-search value="0x07'example'0x05'local'0x00"

    # 为 `bridge` 分配 `fd00::1`,不启用 RA
    /ipv6 address add address=fd00::1 advertise=no interface=bridge

    # 设置对应服务器名称和选项名称
    /ipv6 dhcp-server set default dhcp-options=dns,domain-search
    sdevp
        32
    sdevp  
    OP
       2024-06-09 19:11:21 +08:00
    @kk2syc ISP 没有 RA 通告,无法通过 SLAAC 获取 WAN 链路的地址
    1QWxx6CtzA3CPgEQ
        33
    1QWxx6CtzA3CPgEQ  
       2024-06-09 19:55:41 +08:00
    @sdevp 标准精品光纤 企业专线,运营商 一般不会做限制把,
    ranaanna
        34
    ranaanna  
       2024-06-09 20:13:43 +08:00
    "在 wan 口同一个二层的位置随便配 240e:a:b:0300::/56 该段的任何有效地址,都可以正常与运营商 240e:a:b:0300:1 通讯,上网都正常" - 这是不是正好说明运营商没有问题?可能是你的路由器的设置问题?
    wy315700
        35
    wy315700  
       2024-06-09 20:15:21 +08:00 via Android
    @youx
    其实恰恰相反,运营商在 V6 上面最大方的是家宽
    上海的话 商宽直接不给
    专线也是扣扣搜搜
    xqzr
        36
    xqzr  
       2024-06-09 21:32:49 +08:00
    WAN 240e:a:b:0300::2/64
    LAN 240e:a:b:0301::/64
    kk2syc
        37
    kk2syc  
       2024-06-09 23:20:43 +08:00
    @sdevp 根据附言看,大概率是你的 v6 防火墙配置有问题
    EVJohn
        38
    EVJohn  
       2024-06-10 02:02:41 +08:00
    家宽用户路过,想问下老哥,ipv6 防火墙进站的 546 端口开了没
    EVJohn
        39
    EVJohn  
       2024-06-10 02:04:33 +08:00
    546 这个 UDP 好像是局端往下发 dhcpv6 信息的,老哥可以检查下 v6 防火墙开了这个端口没
    sdevp
        40
    sdevp  
    OP
       2024-06-10 07:58:35 +08:00 via iPhone
    防火墙全关了,为了排除问题,一切都是最小化配置
    Xymmh
        41
    Xymmh  
       2024-06-10 08:36:48 +08:00 via Android
    用 openwrt 吧,可以伪装前缀代理
    Archeb
        42
    Archeb  
       2024-06-10 09:58:57 +08:00   ❤️ 3
    PO 主的认识没有问题,此种情况除了 ND Proxy 没有其他解法。

    因为目前的情况与一般的静态路由并不相同,运营商是将该/56 前缀的路由指向了自己的设备,而且用户无法再在此设备上配置细分路由,而是默认将整个/56 配置到同一个接口上;此设备只会在该接口上根据 NDP 协议去学习地址并转发,导致只有同一个广播域上的设备才能够使用这些 IP 。因此,除了 ND Proxy 和 NAT 之外,没有其他办法能够让更小子网的用户用上这段 IP 。

    我制作了一张图,方便理解一般的(无论是静态路由还是 DHCP-PD )情况和楼主目前遇到的情况之间的不同

    wy315700
        43
    wy315700  
       2024-06-10 10:09:20 +08:00 via Android
    @Archeb 还有个方法就是加一个交换机,V6 走二层交换直接连在电信的设备上
    Archeb
        44
    Archeb  
       2024-06-10 10:16:11 +08:00 via Android
    @wy315700 接同一个大二层上....也算能用吧
    moioooo
        45
    moioooo  
       2024-06-10 10:37:42 +08:00 via iPhone
    @sdevp 企业专线,100 对等也就 1000 元左右吧,你那咋那么贵。
    移动的更便宜,1G 的才 7800 ,500M 的 1800 。
    Jirajine
        46
    Jirajine  
       2024-06-10 10:52:53 +08:00
    你先搞清楚是分配了一个子网长度为/56 的单个地址,还是分配了一个/56 的段。
    soha
        47
    soha  
       2024-06-10 11:24:22 +08:00
    应该就是用 v4 的经验来配置 v6 呗。他们应该也搞不清楚 PD 之类的到底是啥意思,也不知道前缀通过下一跳直接路由到客户的操作。楼主遇到的操作在 v4 时代的企业宽带我们就眼熟了:/29 的前缀,8 个地址,除去子网号广播号,运营商局端配置一个网关,剩下 5 个地址客户自己在同一个二层配上用。那种目录里写着 5 个可用 IP 的企业宽带的大概都是这样的操作。

    楼主这种情况只能按照 @Archeb 的说法做 ND Proxy 了,要不只能试试往上投诉看能不能让更高级别公司责令下面改了。

    当然还有种阴谋的设想是运营商可以通过 ND 的邻居表数量限制来限制客户接入互联网的设备数量。
    wy315700
        48
    wy315700  
       2024-06-10 12:46:53 +08:00 via Android
    @moioooo 哪个区域的啊 这么便宜
    Archeb
        49
    Archeb  
       2024-06-10 13:27:51 +08:00
    @soha 确实,这种做法在 v4 时代还算可取,但是 v6 就不合适了。
    sdevp
        50
    sdevp  
    OP
       2024-06-10 15:05:54 +08:00 via iPhone
    @Archeb 多谢大佬清晰的分析,现在折腾如何代理,请问你这图是用啥画的,挺漂亮,一目了然了。
    Archeb
        51
    Archeb  
       2024-06-10 15:57:22 +08:00
    @sdevp #50 用的 ProcessOn ,也可以用 draw.io
    s82kd92l
        52
    s82kd92l  
       2024-06-10 19:53:26 +08:00 via Android
    下游路由器进行 ndp proxy 有啥代价或者性能损失吗?
    nkcfc
        53
    nkcfc  
       2024-06-11 00:29:00 +08:00 via Android
    和各个大学教育网 ipv6 类似,已经困扰大家很多年了。教育网只给单个/64 的地址,导致正经路由器都无法让内网设备获得 v6 。openwrt 很早以前用桥接,ndp 代理好多年才稳定可用。如果企业用,建议整个 v6 透明网桥防火墙,v6 大内网,但是有防火墙控制也不怕。
    ericww
        54
    ericww  
       2024-06-11 10:47:08 +08:00
    检查路由器有没有配置默认路由吧,WAN 口 routing table flags 有没有 UG 。LAN 口到达路由器不知道往哪走了。
    ttvast
        55
    ttvast  
       2024-06-11 11:37:01 +08:00
    @soha V4 时代的专线也是给一个 /30 的作为路由专用段,然后再给/24 作为内部分配用。
    如果直接给一个/29 算 5 个 ip 用途的话,那只能用 NAT 做 IP 地址池用了。
    txydhr
        56
    txydhr  
       2024-06-11 15:55:27 +08:00
    @sdevp 也就是说只能一个 lan 的意思,无法继续划分子网?那这个 56 跟 64 也没区别了
    creepersssss
        57
    creepersssss  
       2024-06-13 18:26:24 +08:00
    @nkcfc 教育网 99%给/128
    likeflower
        58
    likeflower  
       2024-06-15 18:20:44 +08:00 via iPhone
    routeros 目前版本不支持 nd proxy, 支持 nat66, 不知道能否满足你的需求
    shum02
        59
    shum02  
       2024-06-15 21:54:29 +08:00
    @nkcfc 刚毕业,我们学校宿舍无 v6 ,教学区 v6 也是/128 ,而且必须纯二层,不能加路由器转发,中继也不行,中继会在交换机端直接报环路,会自动把端口 down 了
    beiminghaoze
        60
    beiminghaoze  
       2024-06-25 23:39:04 +08:00
    写一条 ipv6 的默认路由 指向 240e:a:b:0300:1 即可
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5627 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 03:34 · PVG 11:34 · LAX 20:34 · JFK 23:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.