求助, OpenWrt 只给指定设备分配 IPV6 地址

168 天前
 matony

背景

最近换了新的宽带,没有公网 IPV4 ,但是有公网 IPV6 ,因此想通过 IPV6 访问家里的 NAS ,但是打开 IPV6 后有两个问题:

  1. 手机、电视打开一些 APP 和视频的速度明显变慢,甚至打不开
  2. 关闭 IPV6 防火墙后,所有的设备都在公网裸奔,非常不安全

需求

仅给特定的 Mac 地址的设备分配 IPV6 和 IPV4 的地址,其他的设备只分配 IPV4 的地址; OpenWrt 或者独立部署的 DHCP Server 都可以

尝试过程

1. 配置 iptables (不生效)

搜索相关的关键词,几乎都是来自于 https://www.v2ex.com/t/664819 ,通过配置 ip6table 的方式,但是在家里的路由器上配置后并不生效。这个帖子已经很久没有回复了。

帖子里的设备都是 OpenWrt 20 之前的版本,家里的路由器最低支持 22 ,不确定是否在更新版本上该配置方式是否失效。

也参考了其他的文档,较完善的如 https://notes.3pro.xyz/post/openwrt-ipv6.html ,也是一样的问题

2. 配置防火墙

在防火墙的通信规则中,尝试修改 Allow-DHCPv6 这个规则,指定了”源 MAC 地址“为目标地址和 br-lan 地址之后,所有的设备都获取不到 IPV6 地址,包括 br-lan

求助各位大佬,是否在高版本的 OpenWrt 上实现需求,或者有没有第三方的 DHCP 服务可以满足需求,感谢

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'
	option dhcpv6 'server'
	option dns_service '0'
	option ra_dns '0'
	option ra_slaac '0'
	option ra 'server'
	list ra_flags 'managed-config'
	list ra_flags 'other-config'
1433 次点击
所在节点    OpenWrt
8 条回复
qweqqwe
168 天前
好像 dnsmasq 可以,具体不太了解
ysc3839
168 天前
很麻烦,得用 DHCPv6 。
SLAAC 是在局域网内广播的,没法单独阻止某一设备接收到广播。
bobryjosin
168 天前
让 dns 只返回 ipv4 地址就可以了
bobryjosin
168 天前
@bobryjosin dhcpv6 有状态地址分配有些系统不支持,比如 android ,你可以用这个特性不给手机和电视分配地址,我觉得还是从 dns 下手比较方便
kaedeair
168 天前
首先让 wan 口丢弃转发的数据包,然后允许地址`::xxxx:xxxx:xxxx:xxxx/::ffff:ffff:ffff:ffff`来自 wan 的转发(xxxx 是 slaac 根据硬件特征生成的地址,就是前缀后面那一坨),这样你的下游设备都可以获得 ipv6 地址,但是外面访问不了,只有你允许的 ip 可以通过 wan 转发
如果想要让某个地址不分配 ipv6 ,可以 reject 掉此设备 ipv6-icmp 的入站包
Jays
168 天前
一直有这个需求,从未找到稳定的办法,你的第一条 通过防火墙规则,也是临时有效,下次连 wifi 的时候就无效了( mac 地址是固定的)。
test0x01
168 天前
关了 SLAAC, 用 dhcpv6, ip6tables 根据 mac 地址过滤 dhcp 的 547 端口就行了。一直这么用。至于不支持 dhcpv6 的客户端, 直接忽略。
a90405
166 天前

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

https://www.v2ex.com/t/995058

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

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

© 2021 V2EX