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

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

  •  2
     
  •   sdevp · 37 天前 via iPhone · 6207 次点击
    这是一个创建于 37 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  36 天前
    这里描述一下我的具体配置:

    我只收到电信业务员给的一张截图, 上面就 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  
       37 天前 via Android
    主路由拿 ipv6,然后自己做服务器下发不行么?
    sdevp
        2
    sdevp  
    OP
       37 天前 via iPhone
    @canyue7897 不行,目的地是这个 56 段都流量运营商只路由到它的那个::1 接口,必须是跟这一个接口同一个数据链路层才能够收到数据,如果我在我的路由器上面划分子网,我下面的设备是可以收到我路由器下发的地址,但是这些设备访问运营商这个::1 的网关就没响应了,因为他们一开始就没能建立邻居关系。因此我只能在我路由器的 Wan 侧使用这段地址……
    sdevp
        3
    sdevp  
    OP
       37 天前 via iPhone
    而且我也搞不懂电信为什么禁止下发 PD 前缀?公网地址都是静态的了,对他有什么影响?按照他这个模式,我总不可能把服务器全部搬到 wan 这里接一个交换机工作是吧,搞不懂啥逻辑🤣
    youx
        4
    youx  
       37 天前
    楼主 单位这条 企业专线,具体带宽 资费 是?
    cnbatch
        5
    cnbatch  
       37 天前
    电信这骚操作,把 IPv6 搞成 IPv4 大内网的玩法

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

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

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

    我这 V4 也是两个/30 的段 一个局段一个用户段
    kk2syc
        31
    kk2syc  
       36 天前
    @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
       36 天前
    @kk2syc ISP 没有 RA 通告,无法通过 SLAAC 获取 WAN 链路的地址
    youx
        33
    youx  
       36 天前
    @sdevp 标准精品光纤 企业专线,运营商 一般不会做限制把,
    ranaanna
        34
    ranaanna  
       36 天前
    "在 wan 口同一个二层的位置随便配 240e:a:b:0300::/56 该段的任何有效地址,都可以正常与运营商 240e:a:b:0300:1 通讯,上网都正常" - 这是不是正好说明运营商没有问题?可能是你的路由器的设置问题?
    wy315700
        35
    wy315700  
       36 天前 via Android
    @youx
    其实恰恰相反,运营商在 V6 上面最大方的是家宽
    上海的话 商宽直接不给
    专线也是扣扣搜搜
    xqzr
        36
    xqzr  
       36 天前
    WAN 240e:a:b:0300::2/64
    LAN 240e:a:b:0301::/64
    kk2syc
        37
    kk2syc  
       36 天前
    @sdevp 根据附言看,大概率是你的 v6 防火墙配置有问题
    EVJohn
        38
    EVJohn  
       36 天前
    家宽用户路过,想问下老哥,ipv6 防火墙进站的 546 端口开了没
    EVJohn
        39
    EVJohn  
       36 天前
    546 这个 UDP 好像是局端往下发 dhcpv6 信息的,老哥可以检查下 v6 防火墙开了这个端口没
    sdevp
        40
    sdevp  
    OP
       36 天前 via iPhone
    防火墙全关了,为了排除问题,一切都是最小化配置
    Xymmh
        41
    Xymmh  
       36 天前 via Android
    用 openwrt 吧,可以伪装前缀代理
    Archeb
        42
    Archeb  
       36 天前   ❤️ 2
    PO 主的认识没有问题,此种情况除了 ND Proxy 没有其他解法。

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

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

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

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

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