v6 就是麻烦,连描述问题都很困难,历时几年,基本搞定了 Adguard Home sing-box 固定 v6 IP

1 天前
 yyysuo
各位大佬点评一下,有没有更优的实践?

需求其实很简单,就是在 Adguard Home 和 sing-box 看到是哪个设备在使用服务,根据 IP 给客户端重命名。V4 时代很简单,但是有了 V6 ,这几乎成了不可能的事情,原因如下:

基本上路由只发 V6 前缀(非固定)
后缀是客户端根据 V6 地址策略自己生成的
Windows 、ios 、android 、linux 各自的 V6 策略也各不相同
每个设备获取的 V6 地址有多个,包括公网地址、本地链路地址、ula 地址等
还有隐私地址扩展这种逆天的东西存在
设备上的 app 自主决定使用多个 V6 地址中的一个使用

不管如何,小白经过几年断续的描述,好像找到了一个勉强搞定的实践,方案如下:

配置:
主路由 openwrt 有状态+无状态+ula fd00::/48+后缀 ::1+关闭临时地址+下发 fd00::1 为 v6 dns
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0

Windows 上关闭隐私地址扩展
netsh interface ipv6 set global randomizeidentifiers=disabled
netsh interface ipv6 set privacy state=disable

IOS 上关闭随机 mac 地址、私有无线局域网地址、限制 IP 地址跟踪

linux 上不用管,默认是 eui64 生成的固定 v6 地址

安卓 tv 没法管,有些无法 adb 。

现状:所有内网 v6 地址基本固定
Windows 使用 fd00::124 这种 ula 地址请求 dns ,使用 eui64 地址路由到 sing-box
IOS 使用 v4 地址请求 dns ,暂时未测试使用哪种 v6 地址路由到 sing-box ,但是生成的 fd00 随机地址在路由重启后不会变化
firetv 使用 v4 地址请求 dns ,sony tv 使用 fd00 随机地址访问 dns ,重启路由 V6 地址不会变
linux 配置了固定 v4 dns ,使用 v4 dns ,使用 eui64 地址路由到 sing-box
2176 次点击
所在节点    宽带症候群
42 条回复
bobryjosin
1 天前
ipv6 只分配地址不下发 dns ,dns 留空,全部只用 ipv4 dns 。
hexo
1 天前
所以我干脆关闭了 v6 ,只用 v4😅
yyysuo
1 天前
@bobryjosin 这个能搞定 dns 的问题,搞不定路由用的 v6 地址,并且 lean 的源码没法弄,没有不下发 v6 dns 的按钮,直接改配置也不行,不知道为什么。
yyysuo
1 天前
@hexo 这是访问知乎的主页时的 v4 v6 使用情况,国内主流站 v6 支持很好了,并且有些域名,只有 v6 ip ,虽然肯定有 fallback v4 的逻辑,还是到了拥抱 v6 的时候了。

www.zhihu.com 2408:8719:4000:10:5f::46
118.89.204.198 118.89.204.198
apm.zhihu.com 120.92.107.6
datahub.zhihu.com 120.92.107.7
hm.baidu.com 2408:871a:2100:1d22:0:ff:b00c:2dda
mqtt-web.zhihu.com (no address)
pic1.zhimg.com 2408:8719:64:f7:3::3f7
pic2.zhimg.com 2408:8719:64:b8::77bc:d429
pic3.zhimg.com 2408:871a:9001:100::3c06:c429
pica.zhimg.com 2408:871a:9001:100::3c06:c429
picx.zhimg.com 2408:8719:404:1:8000:0:b00:10
static.zhihu.com 2408:872b:e02:11::5f
sugar.zhihu.com 2408:8719:4000:10:5f::46
zhihu-web-analytics.zhihu.com 120.92.107.6
JoeSmith
1 天前
怎么说呢,就是小白折腾网络的门槛又提高了
dalaoshu25
1 天前
v6 为了提高安全性特意设计了全动态地址分配方案,楼主费尽吃奶的力气又给改回去,重回旧社会,何苦来着?
yyysuo
1 天前
@dalaoshu25 我也觉得很讽刺啊,好奇的是企业对管理的需求很高的,上了 V6 怎么弄固定 IP ,没有固定 IP 怎么管理?
yyysuo
1 天前
@dalaoshu25 NAT 也挺好的,V6 搞这么复杂,门槛太高了,光各种 lifetime 就搞死了,引入了太多概念了。
raysonx
1 天前
@yyysuo 大型企业好多都实行 Zero-trust 或者类似的机制了,内网的机器也需要像公网一样通过登录认证才能访问特定的资源,并没有强烈的通过 IP 管理机器的需求。就算需要,往往也是按 VLAN 管理。
SenLief
1 天前
家里用 v6 就是给自己找别扭。
cnbatch
1 天前
IPv6 也有像 IPv4 那样的 DHCP 分配固定 IP ,叫做 DHCPv6 ,只不过手机系统拒绝支持而导致无法推广(说的就是 Android )

如果 DHCPv6 能够顺利普及,就可以使局域网设备继续使用自行分配的固定内网 IP ,然后再配合 NPTv6 更换一下前缀即可变成公网直连地址(后缀继续固定),用起来会非常方便

可惜的是,NPTv6 的普及度跟 DHCPv6 相比,同样好不到哪里去
mayli
1 天前
的确,v6 的知识点是我目前都不知道自己不知道哪些的那种
fisherning
1 天前
现阶段国内用双栈的最好措施就是:
开启 dhcpv6 (用来下发前缀给设备)
仅启用无状态 ip 地址下发(客户端自己生成 ip ,安卓以及其他支持 v6 的设备全部都支持)
禁用 ipv6 DNS (只下发 ipv4 的 dns ,国内运营商的 ipv4dns 双栈也支持 v6 地址解析)

特别要注意是 v6 的 mtu 要设置的比 v4 的小。
另外如果给设备下发 v6 dns ,会导致很多问题,比如 cdn 可能会优先解析 v6 地址,导致图片慢或加载不了。
Donahue
1 天前
+1, 玩了这么久 openwrt 也没学会 ipv6 旁路由设置,所以旁路由关了 ipv6
ranaanna
1 天前
@yyysuo #7 为什么管理就一定要固定 ip ?当然一般人家就都有 domain controllers ,ip 不管怎么变名字都不会变,要不 OP 也配置两个试试?

说实话非常同意前面 @dalaoshu25 ,就为了两个非主流的 dns 服务和代理服务能玩玩客户端的名字,真是何苦来着
dalaoshu25
1 天前
@cnbatch 似乎并不需要你说的这些奇怪名词,正常的 IPv6 地址就是公网,连 NAT 都不需要。

即便是丧心病狂如我,给自己的 wireguard 客户端配置了 fd80 开头的内网 v6 地址,也可以简单地用 RouterOS 里面防火墙的 netmap 动作,给这些 wg 客户一个外边能正常访问的公网 IPv6 地址,很简单的事情。电信给了咱们/56 的前缀池子,移动也有/60 的, 足够用了,从中间分配一个/64 即可。
ranaanna
1 天前
所以 OP 实在应该在局域网内配置至少一个域控制器,这样在 adguard home 以及 sing-box 的 gui 中显示的直接就是名字,也不用玩重命名了,更不用关心固定 ip 之类的了
Pillanangel
1 天前
上帝说:你们这帮龟孙儿,老子为了安全,推广 IPv6 嚷嚷那么多年,为啥就是无法落地百姓家最后这几米?啊?!为啥呢...啥呢...呢...?
龟孙儿说:就是因为安全问题啊...问题啊...题啊。。。..啊!!咋还打人呢?
上帝说:谁让你考虑安全问题了,让你学老子说话有回音!!!!!
enchilada2020
1 天前
@Pillanangel 哈哈哈哈哈哈哈太可爱了这个评论
yyysuo
1 天前
@fisherning 两回事儿呀 我主要是想按 ip 标记设备,v6 网络调整得相当棒了已经

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

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

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

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

© 2021 V2EX