各位大佬,请教一个 ipv6 fe80 临时地址的问题

2023-07-01 00:09:01 +08:00
 yyysuo
主路由是 openwrt ,ipv6 配置是有状态+无状态,下发的 ipv6 dns 手动指定了 lan 口的 fe80 开头的地址,ipv6 本身没有任何问题,主路由安装了 Adguard Home 占用了 53 端口,能够获取到局域网内所有的 dns 请求,Adguard Home 中按 ipv4 、ipv6 地址来区分客户端。Windows 的客户端 fe80 的访问地址是从来不变的,唯独 ios 非常讨厌,每隔一段时间,fe80 的地址就会变一次,导致我无法区分 dns 请求是哪个客户端发送的。求解决方案。
2086 次点击
所在节点    宽带症候群
20 条回复
azuis
2023-07-01 00:16:42 +08:00
进 iOS 设置把 Wifi 的 Private Wi-Fi 地址功能关掉。
yyysuo
2023-07-01 00:28:41 +08:00
@azuis 忘记说了,什么反跟踪,随机 mac 什么的全关了,fe80 的地址在 ios 上应该是有生存期的,不是无限,或者说 ios 不使用无限的 fe80 地址来访问 dns 。
yyysuo
2023-07-01 00:40:55 +08:00
windows 不认::ffff:10.10.10.1 这种 dns ,openwrt 倒是可以使用 ,要不然可以下发这种 dns 。
1423
2023-07-01 00:45:16 +08:00
移动端我都是禁用 ipv6 的,出问题实在不好查
tril
2023-07-01 00:54:46 +08:00
为什么下发的 DNS 要用 FE80 这个 LLA 地址,而不是 FC/FD**这种 ULA 地址?后者更适合在局域网里使用吧?
yyysuo
2023-07-01 07:38:21 +08:00
@tril 用 FD 就更惨了,FD 地址 Windows 也会不停的变的,ios 更是会变。我下发了 FD 的 ula ,正准备去掉呢,你看我截图就知道了。
dfly0603
2023-07-02 08:52:57 +08:00
能够通过 hostname 来区分吗
lns103
2023-07-02 15:20:19 +08:00
如果需求是知道 dns 请求是哪个客户端发送的,直接禁用 v6 dns 就行,v4 也能查 AAAA 记录
yyysuo
2023-07-03 11:23:46 +08:00
@dfly0603 不行吧,Adguard Home 是这么解释的。
客户端可通过 IP 、MAC 地址、CIDR 或客户端 ID (可用于 DoT/DoH/DoQ )被识别。这里您可多了解如何识别客户端。
yyysuo
2023-07-03 11:25:02 +08:00
@yyysuo 这个是可以的吧,不过根据我折腾的观察,ipv4 和 ipv6 可以算是 2 张网吧,不像是能互通的样子,我下发::ffff:10.10.10.1 这个 ipv6 格式的 ipv4 地址给客户端,openwrt 是可以使用的,但是 Windows 使用不了。
PotoJ
2023-07-03 11:43:31 +08:00
放火墙把内网 IPv6 干掉,不影响 openwrr 通过 IPv6 访问
tril
2023-07-03 14:59:34 +08:00
@yyysuo 利用 MAC 识别如何呢?关闭隐私保护的情况下 MAC 是固定不变的。
yyysuo
2023-07-03 15:09:45 +08:00
@tril 只有用 Adguard Home 的 dhcp 才可以。
MAC address. Using MAC as a client identifier is only possible when AdGuard Home works as the network's DHCP server.
txydhr
2023-07-03 19:32:49 +08:00
fe80 难道不是跟着 mac 地址永久不变么,所以 v6 才不需要那个 169.254.0.0 的地址
qbqbqbqb
2023-07-03 20:30:57 +08:00
@yyysuo Windows 支持::ffff:10.10.10.1 这种 DNS 的。只是系统的一些工具比如 nslookup 不支持而已。

如果 Windows 系统里设置这种 dns 的话,就无法使用 nslookup 做测试,但是其它程序是可以正常解析域名的。
qbqbqbqb
2023-07-03 20:42:19 +08:00
@qbqbqbqb 更正一下,Windows 确实对::ffff:10.10.10.1 这种 DNS 支持不好,但是可以用这个特性实现强制 IPv4 DNS

做法是 DHCP 下发 IPv4 DNS 10.10.10.1 ,同时下发 IPv6 DNS ::ffff:10.10.10.1
这样因为 Windows 系统可以配置但实际上无法使用::ffff:10.10.10.1 这种 DNS ,其它程序需要解析域名的时候会自动回退到 IPv4 DNS ,即 10.10.10.1 。

唯一缺点就是 nslookup 命令行工具不支持回退。
qbqbqbqb
2023-07-03 20:46:06 +08:00
@txydhr 但是目前移动端都是默认开启随机 mac 的,mac 地址都不用网卡自带的,自然 fe80 也跟着变。
yyysuo
2023-07-03 23:31:57 +08:00
@qbqbqbqb 我之前就是这么用的,后来感觉不够完美,就用主路由 br-lan 的 fe80 ,一开始挺好,时间长了就发现 ios 这个特性了,一两个星期,总有个新的 fe80 冒出来,非常难受,再忍一阵子吧,看看有没有好的解决方案。目前只有比较新的手机电脑有随机 mac ,手动去关倒也不是什么问题。
cwbsw
2023-07-04 11:26:43 +08:00
只下发 v4 的 DNS 地址不就可以了?还有就是用 DHCPv6 Stateful 。
cwbsw
2023-07-04 11:29:19 +08:00
还有也可以用 MAC 地址识别,iOS 在同一网络下 MAC 地址是不变的。

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

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

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

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

© 2021 V2EX