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

如何只给路由器后的某个设备单独分配 IPv6 地址

  •  2
     
  •   swiftg · 2020-04-22 00:01:30 +08:00 via iPhone · 17899 次点击
    这是一个创建于 1672 天前的主题,其中的信息可能已经有所发展或是发生改变。
    移动宽带没有公网 IPv4,有 IPv6 地址,外网可以直接入站访问家里的 nas,但是 IPv6 出站访问外网的线路质量就特别差,好像总共出国带宽只有 20G 。偏偏电脑和手机在获取 IPv6 地址后都会优先使用 IPv6 访问,造成访问比如 V2EX 速度很慢。

    不想手动在每个设备上配置 IP,有些设备还不能手动配置。请问有没有办法可以在路由器上设置只给某个设备分配 IPv6 地址。路由器是 openwrt 和 padavan
    第 1 条附言  ·  2020-04-22 20:05:06 +08:00

    感谢各位大佬的耐心解答,特别是@cwbsw。问题已经得到完美解决,openwrt 19.07和padavan都没有问题。总结一下给后来人:

    路由器开RA和DHCPv6,防火墙把除NAS外的ICMPv6和DHCPv6包DROP掉,这样就只有NAS能正常获取IPv6地址,ip6ables规则来自@cwbsw

    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac ! --mac-source *** -j DROP
    ip6tables -A input_lan_rule -i br-lan -p udp --dport 547 -m mac ! --mac-source * -j DROP
    

    另外曲线救国的思路包括

    • smartdns建立一个IPv4 only的DNS服务器给NAS外的设备使用,NAS使用正常的DNS
    • 只给路由器本身配置IPv6地址,并使用socat端口转发,把IPv6流量转发到内网的IPv4地址。本人实际测试有不可忽略的性能损失
    • 只给路由器本身配置IPv6地址,并开启VPN服务供NAS连接,似乎太绕了点
    67 条回复    2024-05-04 17:33:03 +08:00
    zro
        1
    zro  
       2020-04-22 00:06:43 +08:00
    openwrt 装个 Polipo,需要 IPv6 就接到 Polipo 代理。。
    zro
        2
    zro  
       2020-04-22 00:08:07 +08:00
    顺便把 openwrt 的 dhcpv6 关掉。。
    lns103
        3
    lns103  
       2020-04-22 00:11:30 +08:00 via Android   ❤️ 1
    直接在路由器上用 smartdns,开启 SOA,屏蔽 ipv6 的地址解析,而且外部 ipv6 的访问不受影响。
    ps:电信的 ipv6 出国更恶心,大部分都绕欧洲,cf 美国可以直连,但是也辣鸡得不行
    swiftg
        4
    swiftg  
    OP
       2020-04-22 00:27:05 +08:00 via iPhone
    @lns103 谢谢,smartdns 这个我也想到了,但这不是完美的方案,nas 上我还是需要正常解析 IPv6 的 dns,包括其他设备,有时需要 dig nslookup 调试些东西

    @zro 谢谢,路由器上端口转发到内网我也想到了,我用的 socat,实际测试性能有损失。直接访问 nas 的 IPv6 地址 15-20MB/s 跑满宽带,socat 端口转发到 nas 的内网 IP 只有 10MB/s 。而且我还想 nas 能出站访问外网的 IPv6 地址
    zro
        5
    zro  
       2020-04-22 00:45:42 +08:00
    @swiftg #4 好久好久之前,Google 见过将 PPPoE 的 v4/v6 分离的,把 v6 数据包 drop 掉给其他设备,好像是这样子,具体记不太清。。😣
    updateing
        6
    updateing  
       2020-04-22 01:02:09 +08:00 via Android   ❤️ 1
    可以考虑关掉 SLAAC 只用 DHCPv6,然后禁止 DHCPv6 动态分配(只允许手动添加的 static lease ),再把 NAS 加到 static lease.

    我记得 OpenWrt 上这么做好像得魔改 odhcpd,或许用 dnsmasq 做 DHCPv6 服务器会更可行?
    qingxi
        7
    qingxi  
       2020-04-22 01:20:12 +08:00 via Android   ❤️ 1
    要么你给 nas 单独设置 DNS,其他内网
    qingxi
        8
    qingxi  
       2020-04-22 01:23:32 +08:00 via Android
    @qingxi 其他内网 DNS 屏蔽 ipv4 解析
    swiftg
        9
    swiftg  
    OP
       2020-04-22 02:06:01 +08:00 via iPhone
    @updateing 谢谢,没找到禁用动态 DHCPv6 的地方。我的思路是想在防火墙把内网的 DHCPv6 流量全部 reject,再单独允许 nas 的 DHCPv6,但弄了半天 reject 规则不起作用,DHCPv6 还是在所有内网设备上都能工作。dnsmasq 我明天研究研究
    swiftg
        10
    swiftg  
    OP
       2020-04-22 02:07:52 +08:00 via iPhone
    @qingxi 单独 dns 这个是个不错的曲线备选方案,但我还是想弄个完美的解决办法
    jim9606
        11
    jim9606  
       2020-04-22 04:47:53 +08:00   ❤️ 1
    没实践过的方案

    openwrt 为只使用 V4 设备单独开一个接口和防火墙区域

    交换机页面为接入 LANV4 的网口划分独立 VLAN (例如 VLAN3: eth0-tagged, LAN4-untagged,其余为 off,产生交换机 eth0.3,如果接 eth1 就是 eth1.3 )

    防火墙创建 LANV4 区域,接口创建的 LANV4,另外分一个地址池,例如 192.168.2.1/24,该接口关闭 RA 、NDP 、DHCPv6,为加入的物理接口创建桥接(上面的 eth0.3,第二个 SSID )

    LANV4 防火墙的转发设置跟 LAN 保持一致(出 /入 /转发为允许,允许目标区域 LAN+WAN,允许源区域 LAN )

    windows 系统可以考虑修改策略优先 ipv4
    ( https://support.microsoft.com/zh-cn/help/929852/guidance-for-configuring-ipv6-in-windows-for-advanced-users)

    linux 系统可修改 /etc/gai.conf 实现
    swiftg
        12
    swiftg  
    OP
       2020-04-22 08:10:51 +08:00 via iPhone
    @jim9606 谢谢这么详细的方案,可惜我的情况复杂了点,我路由器 4 个 LAN 口只保留了一个,下面接的一个 24 口交换机,所有有线设备都是接的这个交换机。剩下的 3 个 LAN 口都配置成了 WAN 口使用,接了两条宽带和 IPTV 。另外老家的 padavan 没有配置 switch 的功能

    主要是移动设备不方便手动配置和调整优先级
    Archeb
        13
    Archeb  
       2020-04-22 08:18:50 +08:00
    我认为用 iptables 屏蔽特定包可以做到这一点
    hand515
        14
    hand515  
       2020-04-22 08:25:39 +08:00
    联通的 ipv6 感觉也是绕美国,traceroute -6 看,先到美国,再到香港
    swiftg
        15
    swiftg  
    OP
       2020-04-22 08:28:38 +08:00 via iPhone
    @Archeb 我也是这么想的,但是我尝试屏蔽内网所有的 DHCPv6 流量( udp 546,547 端口),但是没有成功,设备照样可以获取 IPv6 地址。

    可否指导下怎么设置防火墙?
    swiftg
        16
    swiftg  
    OP
       2020-04-22 08:34:47 +08:00 via iPhone
    @hand515 三家的 IPv6 出口带宽都太小,V 站联通走日本,但是延迟炸裂,移动走香港,电信走美国,丢包都很严重,总之出国根本没法使用
    cwbsw
        17
    cwbsw  
       2020-04-22 10:14:59 +08:00
    @swiftg RA 关了吗?
    swiftg
        18
    swiftg  
    OP
       2020-04-22 11:57:30 +08:00 via iPhone
    @cwbsw 谢谢你的提醒,我发现之前屏蔽了 DHCPv6 后客户端获取的 IP 果然是通过 RA 获取的。

    我尝试关闭 RA,可是 nas 虽然有 DHCPv6 获取的 IPv6 地址,却不能上网了,出站都是 Network is unreachable
    updateing
        19
    updateing  
       2020-04-22 12:25:44 +08:00 via Android
    @swiftg RA 最好不要关闭, 它是获取默认路由的方式之一。只需要关闭 SLAAC 就足够了,就是 RA 里面对应前缀下的 Autonomous 位。这个用原版的 odhcpd 就可以设置,应该是页面上把 Router Advertisement 设置成 Stateful-only 就行.
    zro
        20
    zro  
       2020-04-22 12:29:04 +08:00
    想到一个:OpenWRT 不给 lan 分配 v6,然后再搭个 OpenVPN 或 WireGuard 之类的,NAS 就能绕个弯拿到 v6 地址了。。虽然在内网间搭个 VPN 是夸张了点~🥱
    cwbsw
        21
    cwbsw  
       2020-04-22 13:39:18 +08:00
    @swiftg 手动添加默认路由。
    ip -6 r add default via fe80:*** dev ***
    king050203
        22
    king050203  
       2020-04-22 13:44:01 +08:00 via Android
    可以用 ebtables 过滤 ipv6
    mandymak
        23
    mandymak  
       2020-04-22 13:48:16 +08:00
    @swiftg 更换主路由为 routeros,openwrt 改为旁路由,routeros 支持把 ipv6 配到独立的 bridge 。
    swiftg
        24
    swiftg  
    OP
       2020-04-22 13:57:51 +08:00
    @updateing openwrt 里没有 stateful,我猜应该就是对应的 server mode,无论设置为 server mode 还是 relay mode,局域网设备都可以自动获取 IPv6 地址。搜索资料发现 RA 走的 ICMPv6,我就在防火墙把所有 ICMPv6 包 DROP 了,然后单独 ACCEPT nas 的。现在看应该是没问题了。luci 里防火墙设置规则并且拖到最上面不起作用,必须要 ssh 进去手动输 ip6tables 命令才行。

    ```
    ip6tables -I INPUT -p udp --dport 546 -j DROP
    ip6tables -I INPUT -p udp --dport 547 -j DROP
    ip6tables -I INPUT -p icmpv6 -j DROP
    ip6tables -I INPUT -p udp -m mac --mac-source NAS_MAC_ADDRESS --dport 546 -j ACCEPT
    ip6tables -I INPUT -p udp -m mac --mac-source NAS_MAC_ADDRESS --dport 547 -j ACCEPT
    ip6tables -I INPUT -p icmpv6 -m mac --mac-source NAS_MAC_ADDRESS -j ACCEPT
    ```
    swiftg
        25
    swiftg  
    OP
       2020-04-22 14:09:28 +08:00
    @cwbsw 谢谢。我路由器关闭 RA,nas 上手动添加默认 IPv6 路由,还是 Network is unreachable,ip -6 r add default via fe80::6238:e085:ff05:c9d7 dev ens3,和 RA 自动获取的是一模一样的
    cwbsw
        26
    cwbsw  
       2020-04-22 14:23:22 +08:00
    @swiftg 奇怪了,我 Windows 机器就可以这么干,路由器不开 RA,然后手动配地址和路由。
    cwbsw
        27
    cwbsw  
       2020-04-22 14:56:07 +08:00
    @swiftg 想了下,最好应该还是只开 RA,禁用 DHCPv6,DROP 非 NAS 的 ICMP6 。
    LGA1150
        28
    LGA1150  
       2020-04-22 14:59:28 +08:00   ❤️ 1
    关闭 SLAAC:
    uci set dhcp.lan.ra_slaac=0
    uci commit dhcp
    /etc/init.d/odhcpd restart
    RA 还是要开的
    cwbsw
        29
    cwbsw  
       2020-04-22 14:59:45 +08:00
    不对,不行,这样还是会广播 RA,光 DROP 入站不行。
    LGA1150
        30
    LGA1150  
       2020-04-22 15:09:31 +08:00
    补充 #28
    只有 snapshot 里的 odhcpd 支持 ra_slaac 设置,19.07 或 18.06 都不行
    helldiablo
        31
    helldiablo  
       2020-04-22 16:25:32 +08:00 via Android
    '!~7
    helldiablo
        32
    helldiablo  
       2020-04-22 16:28:58 +08:00 via Android
    '!~7i6
    cwbsw
        33
    cwbsw  
       2020-04-22 16:47:03 +08:00   ❤️ 1
    @LGA1150
    snapshot 的话,只需 luci 里设置 statefull-only 即可,抓包看 RA 里已经没有 Auto Flag 。
    综上,楼主需要在 luci 设置 statefull-only,DROP 掉非 NAS 的 ICMP6 和 UDP 547 入站。
    swiftg
        34
    swiftg  
    OP
       2020-04-22 17:42:59 +08:00
    @cwbsw 十分感谢!我现在用的 openwrt 19.07 和 padavan 。这样手动设置防火墙后貌似可以达到我想要的效果了,openwrt 上的其他设备偶尔还会获得 IPv6 地址,搞不懂为什么,可能防火墙重启了?

    openwrt 上设置为
    Router Advertisement-Service: Server Mode
    DHCPv6-Service: Server Mode
    NDP-Proxy: Disabled
    DHCPv6-Mode: Stateful only

    padavan 上设置为
    WAN: Stateless RA
    通过 DHCP 获取内网 IPv6 地址:是
    启用 LAN 路由器广播: 是
    启用 LAN DHCPv6 服务器: Stateful

    两个路由器上都用的同样的规则
    ip6tables -I INPUT -p udp --dport 547 -j DROP
    ip6tables -I INPUT -p icmpv6 -j DROP
    ip6tables -I INPUT -p udp -m mac --mac-source NAS_MAC_ADDR --dport 547 -j ACCEPT
    ip6tables -I INPUT -p icmpv6 -m mac --mac-source NAS_MAC_ADDR -j ACCEPT
    cwbsw
        35
    cwbsw  
       2020-04-22 18:30:01 +08:00   ❤️ 1
    @swiftg 规则加到 /etc/firewall.user 里重启就不会失效。

    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac ! --mac-source *** -j DROP
    ip6tables -A input_lan_rule -i br-lan -p udp --dport 547 -m mac ! --mac-source * -j DROP

    可能是 30 楼说的原因,19.07 的 statefull-only 实现有问题。可以抓包确认一下。

    prefix info option (3), length 32 (4): 240e:***::/64, Flags [onlink], valid time 2251s, pref. time 2251s

    Flags 那一项不应该有 Auto 。
    swiftg
        36
    swiftg  
    OP
       2020-04-22 19:31:13 +08:00
    @cwbsw 我是写到 firewall.user 的,可能之前手动重启的间隙获取的,目前几个小时过去了没有任何问题了。唯一的小瑕疵,WAN 口也不能获取地址,路由本身不能监听 IPv6 端口了
    swiftg
        37
    swiftg  
    OP
       2020-04-22 19:53:17 +08:00
    @swiftg #36,我自己规则没有指定 lan 接口,按照 @cwbsw 的规则加上-i br-lan,WAN 口就也可以获取 IPv6 地址了。

    自此问题完美解决,感谢楼上各位大佬的耐心解答指导
    qingxi
        38
    qingxi  
       2020-04-28 11:24:01 +08:00 via Android
    最好的解决方案是国内解析启用双栈,国外只解析 ipv4,或屏蔽是双栈网站的 ipv6 解析
    swiftg
        39
    swiftg  
    OP
       2020-04-28 11:47:44 +08:00 via iPhone
    @qingxi 我需要这台机器上有完整的 IPv6 环境,可以做测试,DNS 的方案不太合适
    qingxi
        40
    qingxi  
       2020-04-28 11:59:59 +08:00 via Android
    @swiftg 需要完整 ipv6 机器就手动设置 ipv6 dns,openwrt dhcpv6 没找到分组下发配置的方案
    swiftg
        41
    swiftg  
    OP
       2020-04-28 12:17:04 +08:00 via iPhone
    @qingxi 这不是找到方案了么,iptables 分机器允许下发,操作也简单。dns 方案不够完美,我工作的机器也需要能查询 AAAA 记录,而且经常用到,但是我不想浏览器访问 IPv6 地址
    lzl2000
        42
    lzl2000  
       2020-05-06 23:19:32 +08:00
    我也想这样设置,能把你 Padavan 防火墙规则的截图我看看吗
    swiftg
        43
    swiftg  
    OP
       2020-05-07 00:18:06 +08:00 via iPhone
    @lzl2000 ip6tables 规则已经贴出来了,放到自定义防火墙规则里就行了
    swiftg
        44
    swiftg  
    OP
       2020-05-07 00:27:14 +08:00 via iPhone
    @lzl2000 padavan 的 LAN 接口是 br0,如果你只有一个设备需要 IPv6 的话就按 cwbsw 的写法一条命令用! mac-source 写,如果几个设备的话就按我的写法写,注意顺序,后写的先匹配
    zhs1113
        45
    zhs1113  
       2020-05-08 08:11:08 +08:00
    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac ! --mac-source *** -j DROP
    ip6tables -A input_lan_rule -i br-lan -p udp --dport 547 -m mac ! --mac-source * -j DROP

    我按照上面这两条成功指定一台设备分配 ipv6,但是要把 /etc/firewall.user 的文件权限改成可读写执行。
    还有个问题是 op 上显示只分配了一台设备的 v6,但是实际上其他设备过一段时间后又自动获取了 ipv6,即使设有状态模式 statefull

    我的解决方法是按照 28 楼的 ssh 执行
    uci set dhcp.lan.ra_slaac=0
    uci commit dhcp
    /etc/init.d/odhcpd restart

    最后发现其他设备没再获取 ipv6


    还有我想添加多个设备分配 v6 但是总是不成功
    把下面的规则加进防火墙 重启后 却连一个都没分配到 请问要怎么解决

    ip6tables -A input_lan_rule -i br-lan -p udp --dport 547 -j DROP
    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -j DROP
    ip6tables -A input_lan_rule -i br-lan -p udp -m mac --mac-source mac 地址 2 --dport 547 -j ACCEPT
    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac --mac-source mac 地址 2 -j ACCEPT
    ip6tables -A input_lan_rule -i br-lan -p udp -m mac --mac-source mac 地址 1 --dport 547 -j ACCEPT
    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac --mac-source mac 地址 1 -j ACCEPT
    swiftg
        46
    swiftg  
    OP
       2020-05-08 09:28:57 +08:00 via iPhone
    @zhs1113 firewall.user 肯定要执行权限才能运行。我是 19.07 ,不用改 28 楼的也没问题。
    多个设备那个,-A 是附加到链的最后,先添加的先匹配。我不知道为什么用-A 添加的规则执行不了就用-I 插入到链的开头,后插入的先执行。所以你的规则要么把-A 改成-I,要么把顺序调换下就行了
    zhs1113
        47
    zhs1113  
       2020-05-08 16:41:26 +08:00
    @swiftg -A 改成-I 后只有 MAC 地址 1 分配到 v6 第二个分配不到 我的是 lean N1 主路由
    zhs1113
        48
    zhs1113  
       2020-05-08 17:50:48 +08:00
    @swiftg 而且好像用 ACCEPT 也没真正分配成功 被分配的设备显示的不是公网 ipv6
    zhs1113
        49
    zhs1113  
       2020-05-08 17:55:02 +08:00
    可能因为被分配的设备没开 dhcpv6 吧 不是很确定
    whitegerry
        50
    whitegerry  
       2020-05-14 01:18:51 +08:00
    用 ros 也按这种方式测试了下,重新拨号成功的瞬间,所有设备都获取到 ipv6 了,但只有允许的设备 ipv6 是通的,其他设备重启一下网络 ipv6 才会消失
    zhs1113
        51
    zhs1113  
       2020-09-15 19:28:22 +08:00
    @whitegerry 我刚用 ros,配置好 ipv6 了 请问要怎么加这个特定设备分配 ipv6 的规则,请教一下
    dasenlin
        52
    dasenlin  
       2021-05-03 14:26:18 +08:00
    @zhs1113 实测这样是可行的

    ip6tables -A input_lan_rule -i br-lan -p udp -m mac --mac-source mac 地址 2 --dport 547 -j ACCEPT
    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac --mac-source mac 地址 2 -j ACCEPT
    ip6tables -A input_lan_rule -i br-lan -p udp -m mac --mac-source mac 地址 1 --dport 547 -j ACCEPT
    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac --mac-source mac 地址 1 -j ACCEPT
    ip6tables -A input_lan_rule -i br-lan -p udp --dport 547 -j DROP
    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -j DROP

    或者倒序插入

    ip6tables -I input_lan_rule -i br-lan -p udp --dport 547 -j DROP
    ip6tables -I input_lan_rule -i br-lan -p ipv6-icmp -j DROP
    ip6tables -I input_lan_rule -i br-lan -p udp -m mac --mac-source mac 地址 2 --dport 547 -j ACCEPT
    ip6tables -I input_lan_rule -i br-lan -p ipv6-icmp -m mac --mac-source mac 地址 2 -j ACCEPT
    ip6tables -I input_lan_rule -i br-lan -p udp -m mac --mac-source mac 地址 1 --dport 547 -j ACCEPT
    ip6tables -I input_lan_rule -i br-lan -p ipv6-icmp -m mac --mac-source mac 地址 1 -j ACCEPT
    zhs1113
        53
    zhs1113  
       2021-06-16 17:35:14 +08:00
    @dasenlin 好的 我试试
    jiacuo
        54
    jiacuo  
       2021-10-25 20:31:29 +08:00
    靠这个帖子解决了大问题。谢谢
    Jays
        55
    Jays  
       2021-11-07 11:43:00 +08:00
    @cwbsw 请问一下,如果有多台设备,规则应该怎样填写? 这个命令支持一台设备,即便再复制更改 mac 后设备第二台设备的 IPV6 还是无法访问网络

    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac ! --mac-source *** -j DROP
    ip6tables -A input_lan_rule -i br-lan -p udp --dport 547 -m mac ! --mac-source * -j DROP
    cwbsw
        56
    cwbsw  
       2021-11-07 13:18:40 +08:00
    @Jays 多台设备看 52 楼。
    Jays
        57
    Jays  
       2021-11-07 16:22:45 +08:00 via Android
    @cwbsw 52 楼的试了下,貌似没用。ipV6 地址都能获取到 但 ping 其他 ipv6 地址 都 ping 不通
    wwbfred
        58
    wwbfred  
       2022-02-22 02:28:55 +08:00
    Openwrt 21.04 版本设置方法:
    1. 找到 Lan 设置中 DHCP 服务器下的 IPv6 设置,将 RA 服务和 DHCPv6 服务调为服务器模式。
    2. IPv6 RA 设置中取消"启用 SLAAC"选项,RA 标记勾选"受管配置 (M)"和"其他配置 (O)"。
    3. ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac ! --mac-source * -j DROP
    4. ip6tables -A input_lan_rule -i br-lan -p udp --dport 547 -m mac ! --mac-source * -j DROP
    berry10086
        59
    berry10086  
       2022-10-24 19:38:34 +08:00
    补充一条,还需要加上 ra_dns 0 进制广播 ipv6 dns
    Jays
        60
    Jays  
       2022-10-29 13:22:31 +08:00
    @berry10086 请问 ra_dns 0 是在哪个界面设置?
    berry10086
        61
    berry10086  
       2022-10-30 21:59:52 +08:00
    @Jays /etc/config/dhcp 里面 lan config
    silvernoo
        62
    silvernoo  
       2022-12-15 01:11:29 +08:00
    路由器关闭 dhcpv6 ,nas 配置静态 v6 地址
    swiftg
        63
    swiftg  
    OP
       2022-12-15 20:06:05 +08:00
    @silvernoo pd 前缀是动态的,没法配置静态 ip
    tediorelee
        64
    tediorelee  
       2023-03-31 17:31:51 +08:00
    抱歉挖个坟,最近也正好有这个需求,按照贴子里的思路配置了一番,但是没有效果不知道什么原因

    openwrt 设置如下:
    网络-DHCP/DNS-取消勾选“禁止解析 IPv6 DNS 记录”
    网络-接口-LAN
    - 路由通告服务:服务器模式
    - DHCP v6 服务:服务器模式
    - NDP 代理:关闭
    - DHCPv6 模式:有状态的
    - 总是通告默认路由:没有勾选

    已配置贴子里的这个:
    uci set dhcp.lan.ra_slaac=0
    uci commit dhcp
    /etc/init.d/odhcpd restart

    /etc/config/dhcp 里加上了 ra_dns 0

    重启路由器之后,还是有其它设备获取到了 IPV6 ,并且我允许 ipv6 的设备没办法用 ipv6 访问

    ip6tables -A input_lan_rule -i br-lan -p ipv6-icmp -m mac ! --mac-source 00-A0-XX-77-3F-1F -j DROP
    ip6tables -A input_lan_rule -i br-lan -p udp --dport 547 -m mac ! --mac-source 00-A0-XX-77-3F-1F -j DROP

    openwrt 版本:R21.8.6 GDQ v9.1[2021] Compiled by eSir
    zks728
        65
    zks728  
       221 天前
    routeros 如何实现只给特定的设备分配公网 ipv6 ?
    belldasd
        66
    belldasd  
       203 天前
    求 Routeros 的设置方法!
    guiys
        67
    guiys  
       199 天前 via iPhone
    @zks728
    @belldasd 我也在实践 ros ,在 ipv6-firewall 里新建一个,chain 为 input ,action 为 drop ,Src. MAC Address 为设备 mac 地址。设备在刚接入网络时候的确获取不到 ipv6 地址,但过了几分钟之后又莫名其妙拿到了地址,不过确实 ipv6 就不通了。至于为什么过几分钟又拿到了就不知道为什么了,强迫症表示很不爽。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2721 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:30 · PVG 23:30 · LAX 07:30 · JFK 10:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.