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

routeros 的 IPV6 获取前缀问题

  •  1
     
  •   pcxys · 15 天前 · 1667 次点击

    座标:河北联通

    问题:通过尝试不通方式,可获得 64 的地址,但是 IPV6-Client 列表中,无任何信息显示。 04e22d8c601980b45c0a622fc1d4d100.png

    需求:IPV6-Client 列表中显示显示,可以进行接下来局域网 IPV6 地址分配的操作。如果可以的话,尽量与无障碍获取的情况可实现东西尽量一致。

    链路:S-VOl 光猫- RB750GR3 路由器-(略)

    IPV6 防火墙规则:空

    测试 PPPOE 拨号为 MACVLAN 虚拟出来的多拨(网口的 PPPOE 拨号相同,与上面情况无差别)

    尝试办法 1: 4e44d52f8c0014854dc028945530b88b.png d18a7462f10250c9bd2a5ecce30603b5.png

    尝试办法 2: 76dc3a01a9fe04f4da121fb92b18ce71.png 94a70be35f49650d8a6b37913aebf862.png

    从日志上看,应该不存在 DUID 错误的问题,而且看起来也是分配了 IPV6 前缀的。但是 IPV6-Client 列表中没有,日志中的前缀,与实际分配到路由的地址前半段也不一样。

    辛苦各位大佬给看看,是哪里出了有问题,如果是运营商的问题,也请指点,我好找他们去解决。

    第 1 条附言  ·  12 天前

    已解决,需要调整的地方有两个 1.PPPOE拨号,选好AC Name,哪怕它只有一条,也要复制粘贴过来。 1b786d9f36c933b4afe63ec21a1124b3.png a943731b05a1f15fe5361a8f4a7990e4.png

    2.检查IPV6防火墙,是不是有禁止input的条目,先关闭,看看可不可以获取到 00aeb8e23b84cdc4aa54475c032e254c.png

    目前电信和联通获取都正常。

    25 条回复    2024-10-05 12:41:42 +08:00
    piero66
        1
    piero66  
       15 天前 via Android
    pool 和 nd 有设置么
    iijboom
        2
    iijboom  
       15 天前
    你 request 的是 address ,那不是求仁得仁了,你要请求 prefix ,结案了,下一题
    pcxys
        3
    pcxys  
    OP
       15 天前
    @piero66
    都没有设置。
    pcxys
        4
    pcxys  
    OP
       15 天前
    @iijboom
    不能结案,我要解释,后半段是 prefix ,它给省略了。
    pcxys
        5
    pcxys  
    OP
       15 天前
    @iijboom
    关键是请求地址,他也没给我啊。
    tool2dx
        6
    tool2dx  
       15 天前 via Android
    那就说明不是 dhcp6 协议呗,你抓包 slaac 协议试试。
    iijboom
        7
    iijboom  
       15 天前
    @pcxys 他都说了没有地址了,你请求地址干嘛呢?你把 address 取消就好了
    everfly
        8
    everfly  
       15 天前
    运营商只给你前缀,没给你地址,你需要在 dhcp-client 里配置只请求前缀。
    pcxys
        9
    pcxys  
    OP
       15 天前
    @tool2dx 抓包我不会啊。
    pcxys
        10
    pcxys  
    OP
       15 天前
    @iijboom
    取消掉也不行,结果跟之前一样的。
    pcxys
        11
    pcxys  
    OP
       15 天前
    @everfly
    修改了,取消掉 address 的请求,只要前缀,不行,跟之前结果一样。
    hoOOe
        12
    hoOOe  
       12 天前
    其他省联通,以前 RB750GR3 也是获取不了 ipv6pd ,slaac 可以拿到/64 的地址,后面换了 openwrt 能拿到就没有折腾了
    zwy100e72
        13
    zwy100e72  
       12 天前
    写一点我这边的经历供参考(陕西电信)

    1. PPPoE 拨号:我这边是直接拨号,没做多拨,可以看到 IPv4 CGNAT 分配的地址和 IPv6 本地/对端的 Link-Local 地址

    ```
    /interface pppoe-client
    add add-default-route=yes disabled=no interface=ether1 name=pppoe-isp use-peer-dns=yes user=[my_user_id]
    ```

    2. 配置 RouterOS DHCPv6 Client ,在 PPPoE 链路上请求 prefix (注意这里 prefix-hint 不同运营商允许的大小可能不同)

    ```
    /ipv6 dhcp-client
    add add-default-route=yes interface=pppoe-isp pool-name=pppoe-pd prefix-hint=::/56 request=prefix
    ```

    3. 上一步的效果是,请求到了 ipv6 前缀,可以在 `/ipv6/pool` 下面看到

    4. 给路由器 LAN 侧按需分配地址,比如给 bridge 分配 `::`;默认情况下会勾选 `advertize=yes` 也就是会在 ND RA 里广播本地址

    ```
    /ipv6 address
    add from-pool=pppoe-pd interface=bridge
    ```
    5. 按需配置 IPv6 ND (`/ipv6/nd`) ,比如我修改了 `/ipv6/nd/prefix/default` 下的前缀有效时间

    PS: winbox 出 4.0beta 了,楼主可以去官网 https://mikrotik.com/download 下一个新版
    pcxys
        14
    pcxys  
    OP
       12 天前
    @hoOOe
    你的意思是 RouterOS 的问题?
    pcxys
        15
    pcxys  
    OP
       12 天前
    @zwy100e72
    我的配置与你的基本上没啥差别。
    然后我发现我的联通 V4 是公网,IPV6 获取不到前缀。电信 V4 是局域网 10 开头的,IPV6 可以获取到 56 位的前缀,设置都一样,又陷入深深的迷惑了
    zwy100e72
        16
    zwy100e72  
       12 天前
    电信这边有个说法,是 v4 公网(+ 无法访问 v6 ) xor v6 公网(+ v4 内网),只能二选一

    不过经常看到 v2 里一堆人 v4 公网 and v6 公网,大概和地区有关系吧
    pcxys
        17
    pcxys  
    OP
       12 天前
    @zwy100e72
    经过我的尝试,IPV6 的前缀又获取不到了。
    目前的情况是没有的选,最好的结果就是 V4 内网+V6 公网。但是目前获取问题与方式不明,不知道怎么处理。
    zwy100e72
        18
    zwy100e72  
       12 天前
    看你应该是解决了,建议你接下来好好配置下防火墙;我是 rb5009 一开始用 QuickSet 一键配置好,再做修改的。个人认为 QuickSet 就是 Mikrotik 官方推荐配置;不过对于已经自己做过配置的情况可能不太适用

    https://help.mikrotik.com/docs/display/ROS/Quick+Set

    IPv6 没有 NAT 影响,入站规则相对更多一些,icmpv6 一般是要放开的;另外不建议不要防火墙,避免把自己的管理界面开放给公网导致意外情况发生
    pcxys
        19
    pcxys  
    OP
       12 天前
    @zwy100e72
    你好,我目前没有找到 QuickSet 使用的方法,我看一下官网的资料,不过应该难度有点大,英语不行。
    肯定是要有防火墙的。
    目前使用的规则是:
    /ipv6 firewall filter
    add action=accept chain=input connection-state=established,related,untracked
    add action=accept chain=forward connection-state=established,related,untracked
    add action=accept chain=forward in-interface=routeros-wireguard
    add action=accept chain=input dst-port=546 protocol=udp
    add action=drop chain=forward in-interface=!lan
    add action=drop chain=input
    add action=drop chain=forward
    /ipv6 firewall mangle
    add action=change-mss chain=forward new-mss=1420 passthrough=yes protocol=tcp tcp-flags=syn

    如果你方便的话,是否可以留下邮箱或者 TG 号码,我向你请教一下。
    zwy100e72
        20
    zwy100e72  
       11 天前
    QuickSet 适合从头开始弄的时候快速达到一个默认状态,有自定义配置或者不想重置的话不适合的

    我目前在用的规则请参考链接 https://www.v2ex.com/p/ppw9e1r9 ,其中带 defconf 的是 QuickSet 自己生成的
    pcxys
        21
    pcxys  
    OP
       11 天前
    @zwy100e72
    十分感谢。
    piero66
        22
    piero66  
       11 天前 via Android
    @pcxys 没设怎么能通呢,这俩要设置的啊
    dalaoshu25
        23
    dalaoshu25  
       11 天前
    目测是因为 IPv6 防火墙清空的缘故,IPv6 跟 v4 不一样,前缀下发是有特定的端口的。

    补上这一条即可:

    /ipv6 firewall filter add action=accept chain=input comment="defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=udp src-address=fe80::/10
    pcxys
        24
    pcxys  
    OP
       11 天前
    @piero66
    这两个,是需要 client 获取到之后,才需要设置的。
    毕竟没获取到之前,也不知道前缀的。
    pcxys
        25
    pcxys  
    OP
       11 天前
    @dalaoshu25
    你说的对,我昨天成功之后,又试验了一下,就是 546 端口没开的问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3065 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 462ms · UTC 13:26 · PVG 21:26 · LAX 06:26 · JFK 09:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.