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

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

2020-04-22 00:01:30 +08:00
 swiftg
移动宽带没有公网 IPv4,有 IPv6 地址,外网可以直接入站访问家里的 nas,但是 IPv6 出站访问外网的线路质量就特别差,好像总共出国带宽只有 20G 。偏偏电脑和手机在获取 IPv6 地址后都会优先使用 IPv6 访问,造成访问比如 V2EX 速度很慢。

不想手动在每个设备上配置 IP,有些设备还不能手动配置。请问有没有办法可以在路由器上设置只给某个设备分配 IPv6 地址。路由器是 openwrt 和 padavan
19985 次点击
所在节点    
宽带症候群
68 条回复
swiftg
2020-04-28 12:17:04 +08:00
@qingxi 这不是找到方案了么,iptables 分机器允许下发,操作也简单。dns 方案不够完美,我工作的机器也需要能查询 AAAA 记录,而且经常用到,但是我不想浏览器访问 IPv6 地址
lzl2000
2020-05-06 23:19:32 +08:00
我也想这样设置,能把你 Padavan 防火墙规则的截图我看看吗
swiftg
2020-05-07 00:18:06 +08:00
@lzl2000 ip6tables 规则已经贴出来了,放到自定义防火墙规则里就行了
swiftg
2020-05-07 00:27:14 +08:00
@lzl2000 padavan 的 LAN 接口是 br0,如果你只有一个设备需要 IPv6 的话就按 cwbsw 的写法一条命令用! mac-source 写,如果几个设备的话就按我的写法写,注意顺序,后写的先匹配
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
2020-05-08 09:28:57 +08:00
@zhs1113 firewall.user 肯定要执行权限才能运行。我是 19.07 ,不用改 28 楼的也没问题。
多个设备那个,-A 是附加到链的最后,先添加的先匹配。我不知道为什么用-A 添加的规则执行不了就用-I 插入到链的开头,后插入的先执行。所以你的规则要么把-A 改成-I,要么把顺序调换下就行了
zhs1113
2020-05-08 16:41:26 +08:00
@swiftg -A 改成-I 后只有 MAC 地址 1 分配到 v6 第二个分配不到 我的是 lean N1 主路由
zhs1113
2020-05-08 17:50:48 +08:00
@swiftg 而且好像用 ACCEPT 也没真正分配成功 被分配的设备显示的不是公网 ipv6
zhs1113
2020-05-08 17:55:02 +08:00
可能因为被分配的设备没开 dhcpv6 吧 不是很确定
whitegerry
2020-05-14 01:18:51 +08:00
用 ros 也按这种方式测试了下,重新拨号成功的瞬间,所有设备都获取到 ipv6 了,但只有允许的设备 ipv6 是通的,其他设备重启一下网络 ipv6 才会消失
zhs1113
2020-09-15 19:28:22 +08:00
@whitegerry 我刚用 ros,配置好 ipv6 了 请问要怎么加这个特定设备分配 ipv6 的规则,请教一下
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
2021-06-16 17:35:14 +08:00
@dasenlin 好的 我试试
jiacuo
2021-10-25 20:31:29 +08:00
靠这个帖子解决了大问题。谢谢
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
2021-11-07 13:18:40 +08:00
@Jays 多台设备看 52 楼。
Jays
2021-11-07 16:22:45 +08:00
@cwbsw 52 楼的试了下,貌似没用。ipV6 地址都能获取到 但 ping 其他 ipv6 地址 都 ping 不通
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
2022-10-24 19:38:34 +08:00
补充一条,还需要加上 ra_dns 0 进制广播 ipv6 dns
Jays
2022-10-29 13:22:31 +08:00
@berry10086 请问 ra_dns 0 是在哪个界面设置?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

t/664819

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86