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

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

  •  1
     
  •   yyysuo · 22 天前 · 2965 次点击
    各位大佬点评一下,有没有更优的实践?

    需求其实很简单,就是在 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
    48 条回复    2024-12-18 12:07:16 +08:00
    bobryjosin
        1
    bobryjosin  
       22 天前 via Android
    ipv6 只分配地址不下发 dns ,dns 留空,全部只用 ipv4 dns 。
    hexo
        2
    hexo  
       22 天前   ❤️ 1
    所以我干脆关闭了 v6 ,只用 v4😅
    yyysuo
        3
    yyysuo  
    OP
       22 天前
    @bobryjosin 这个能搞定 dns 的问题,搞不定路由用的 v6 地址,并且 lean 的源码没法弄,没有不下发 v6 dns 的按钮,直接改配置也不行,不知道为什么。
    yyysuo
        4
    yyysuo  
    OP
       22 天前
    @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
        5
    JoeSmith  
       22 天前
    怎么说呢,就是小白折腾网络的门槛又提高了
    dalaoshu25
        6
    dalaoshu25  
       22 天前   ❤️ 1
    v6 为了提高安全性特意设计了全动态地址分配方案,楼主费尽吃奶的力气又给改回去,重回旧社会,何苦来着?
    yyysuo
        7
    yyysuo  
    OP
       22 天前
    @dalaoshu25 我也觉得很讽刺啊,好奇的是企业对管理的需求很高的,上了 V6 怎么弄固定 IP ,没有固定 IP 怎么管理?
    yyysuo
        8
    yyysuo  
    OP
       22 天前
    @dalaoshu25 NAT 也挺好的,V6 搞这么复杂,门槛太高了,光各种 lifetime 就搞死了,引入了太多概念了。
    raysonx
        9
    raysonx  
       22 天前
    @yyysuo 大型企业好多都实行 Zero-trust 或者类似的机制了,内网的机器也需要像公网一样通过登录认证才能访问特定的资源,并没有强烈的通过 IP 管理机器的需求。就算需要,往往也是按 VLAN 管理。
    SenLief
        10
    SenLief  
       22 天前
    家里用 v6 就是给自己找别扭。
    cnbatch
        11
    cnbatch  
       22 天前
    IPv6 也有像 IPv4 那样的 DHCP 分配固定 IP ,叫做 DHCPv6 ,只不过手机系统拒绝支持而导致无法推广(说的就是 Android )

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

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

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

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

    即便是丧心病狂如我,给自己的 wireguard 客户端配置了 fd80 开头的内网 v6 地址,也可以简单地用 RouterOS 里面防火墙的 netmap 动作,给这些 wg 客户一个外边能正常访问的公网 IPv6 地址,很简单的事情。电信给了咱们/56 的前缀池子,移动也有/60 的, 足够用了,从中间分配一个/64 即可。
    ranaanna
        17
    ranaanna  
       21 天前
    所以 OP 实在应该在局域网内配置至少一个域控制器,这样在 adguard home 以及 sing-box 的 gui 中显示的直接就是名字,也不用玩重命名了,更不用关心固定 ip 之类的了
    Pillanangel
        18
    Pillanangel  
       21 天前   ❤️ 1
    上帝说:你们这帮龟孙儿,老子为了安全,推广 IPv6 嚷嚷那么多年,为啥就是无法落地百姓家最后这几米?啊?!为啥呢...啥呢...呢...?
    龟孙儿说:就是因为安全问题啊...问题啊...题啊。。。..啊!!咋还打人呢?
    上帝说:谁让你考虑安全问题了,让你学老子说话有回音!!!!!
    enchilada2020
        19
    enchilada2020  
       21 天前 via Android
    @Pillanangel 哈哈哈哈哈哈哈太可爱了这个评论
    yyysuo
        20
    yyysuo  
    OP
       21 天前 via iPhone
    @fisherning 两回事儿呀 我主要是想按 ip 标记设备,v6 网络调整得相当棒了已经
    yyysuo
        21
    yyysuo  
    OP
       21 天前 via iPhone
    @ranaanna 我主力用这俩呀 对我来说是主流
    yyysuo
        22
    yyysuo  
    OP
       21 天前 via iPhone
    @ranaanna v6 基础还玩不明白呢 域控制应该不会更简单吧
    fengyaochen
        23
    fengyaochen  
       21 天前
    gfwlist 域名+一些特殊禁止大陆 IP 的网站禁用 AAAA 解析即可,直接用 MOSDNS 分流
    yyysuo
        24
    yyysuo  
    OP
       21 天前
    @fengyaochen 跑题啦,这跟分流没啥关系,是纯 ipv6 问题。
    unbridle
        25
    unbridle  
       21 天前
    ad home 可以通过 mac 地址来绑定设备
    ranaanna
        26
    ranaanna  
       21 天前
    @yyysuo 搞个虚拟机装个 windows server 加个 active directory domain controller 以及 dns 的 roles 就可以了,或者 linux 装个 samba server 和 bind dns server ,配置文件修改几行也可以。好处是可以集中管理设备和用户的身份、验证信息和安全策略,比重命名 ip 好玩多了
    yyysuo
        27
    yyysuo  
    OP
       21 天前
    @unbridle 那得用它的 dhcp 。
    JayZXu
        28
    JayZXu  
       21 天前
    v6 在折腾了一圈之后关闭了
    99%的民用路由器和 90%的企业网关到现在都没有提供一个完善的 NAT6 工具,只能写死 ipv6 地址,导致宽带刷新 ipv6 地址之后,规则失效。
    很多人说 ipv6 不需要防火墙吧啦吧啦的,我反正是 ddns ipv6 之后,nas 被各种攻击,试密码,不得已只能 tailscale 自用了。

    更不要说旁路由在有 ipv6 的情况下直接失效,因为 ipv6 访问的优先级要高于 ipv4 。。。
    cnbatch
        29
    cnbatch  
       21 天前 via Android
    @dalaoshu25 重点不在于 IPv6 是否公网(我又不是不知道 IPv6 默认公网),重点在于楼主想要在 openwrt 分配固定 IP 。RouterOS 不是 openwrt ,区别可不小呢。
    cnbatch
        30
    cnbatch  
       21 天前 via Android
    @JayZXu 只听说过 IPv6 不需要 NAT ,真有人敢讲 IPv6 不需要防火墙?那也太邪恶了
    by
        31
    by  
       21 天前
    等 ipv4 完全退出互联网,我再考虑使用 ipv6
    dalaoshu25
        32
    dalaoshu25  
       21 天前
    @cnbatch 楼主不懂 V6 ,还活在 v4 的大清朝。
    yyysuo
        33
    yyysuo  
    OP
       21 天前 via iPhone
    @JayZXu op opn 都可以啊,ros 不知道,好像也是可以的,总之很折腾就是了 。旁路还要 v6 ,别折腾 nat 呀,用 fakeip 网关
    yyysuo
        34
    yyysuo  
    OP
       21 天前 via iPhone
    @dalaoshu25 懂那么一点点
    dalaoshu25
        35
    dalaoshu25  
       21 天前
    @JayZXu 很奇怪,我也有好几台机器通过 IPv6 和 DDNS 从外部 ssh 进来,我开了 fail2ban 去监视这些机器,发现有这种试图 ssh 登录攻击的 IP 就操作 RouterOS 去封堵攻击者 IP 。这么长时间用下来,几乎全都是攻击 RB4011 的那个公网 IPv4 地址的,无论是 RB4011 自己的 v6 地址还是下面几个有自己 ddns 域名的机器,都没有收到过攻击扫描记录。我一度怀疑自己是不是配错了,还特意在 vultr 开了个 vps 模拟攻击一下,确认自己的设置没问题。

    所以,你说你的 NAS 被攻击,到底是什么情况?
    fisherning
        36
    fisherning  
       21 天前
    @yyysuo v6 和 v4 这点上确实不一样,就算你给支持 dhcpv6 有状态的机器分配固定 ip ,实际上也没办法完全做到,而且安全性还有问题。

    1. dhcpv6 分配的 ip 往往比较短,容易被穷举。设备 eui64 分配的动态 ip 难度就大多了。要扫描 v6 地址的成本太高了。
    2. 隐私保护的原因,现在安卓不支持有状态 v6 ,其他设备都开始用随机 MAC 地址,windows 也每次生成临时 v6 地址。所以实际情况是,你很难根据 MAC 地址来让 DHCPv6 去分配固定 v6 地址。

    按照现在业界的处理方式。v6 肯定是大大加强了隐私保护的要求。固定 ip 去管理内网设备,这种事情还是留给 v4 吧。v6 就不是干这个的。
    fisherning
        37
    fisherning  
       21 天前
    @cnbatch lz 要的分配固定 ip 的功能,其实本身就和 v6 以及业界趋势相背离。
    JayZXu
        38
    JayZXu  
       21 天前
    @dalaoshu25 #32
    IPv4 的攻击确实挺普遍的,我网关防火墙里面每天 SNMP 攻击的都有十几个,Fraggle 也一大堆。IPv6 的也会偶尔出现 SNMP 攻击的。
    NAS 被攻击是之前的宽带只有公网 ipv6 ,把群晖的网页端用 v6 ddns 访问。然后每天都有人试 admin 密码,一天几十条锁定 admin 账号的邮件,ip 都封不过来 ,给我整麻了,为了不被邮件骚扰,只能关了 ddns 。
    虽然不知道别人是怎么知道我域名的,但是一旦被盯上,v6 也是被攻击的命运
    yyysuo
        39
    yyysuo  
    OP
       21 天前
    @fisherning V6 在大部分地方都是默认优先的,开了 V6 ,就都走 V6 ,V4 的管理就等于没有了,因为目标不是管理 V4 ,是管理网络。
    yyysuo
        40
    yyysuo  
    OP
       21 天前
    @JayZXu 你们是不是都用 ros ?因为 ros 有这个攻击统计,op 就没有,也没听说谁的 op 被黑了,是 op 的防火墙做得比较好?
    txydhr
        41
    txydhr  
       21 天前 via iPhone
    @dalaoshu25 不光楼主,这帖里好几个呢
    Pillanangel
        42
    Pillanangel  
       21 天前
    @yyysuo op 做主路由,一般防火墙都有默认的几条起作用,SSH 开启但是基本区域规则就不允许 WAN 到 LAN 的转发。而 ROS 的话,因为有官方版本的硬件,这个硬件本身出厂是没有防火墙规则的,而且开启了 SSH ,密码默认还就那几个。个人经验而已。
    dalaoshu25
        43
    dalaoshu25  
       20 天前
    @Pillanangel 都折腾到这个份儿上了还不会配置防火墙,那种人也就死不足惜吧。
    yyysuo
        44
    yyysuo  
    OP
       20 天前
    @dalaoshu25 随便聊聊 v6 ,不至于这么深仇大恨吧。
    LnTrx
        45
    LnTrx  
       17 天前
    @dalaoshu25 @JayZXu 被攻击的机器有没有跑 BT
    nt0p
        46
    nt0p  
       16 天前
    "需求其实很简单,就是在 Adguard Home 和 sing-box 看到是哪个设备在使用服务,根据 IP 给客户端重命名",为什么会有这类需求? AdguardHome 和 sing-box 可以直接看到客户端信息啊。
    yyysuo
        47
    yyysuo  
    OP
       16 天前
    @nt0p 看到的是 v6 地址,并不知道是哪个设备在用。
    wangpengfei4113
        48
    wangpengfei4113  
       7 天前
    @bobryjosin +1 我也这么做的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5370 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:49 · PVG 15:49 · LAX 23:49 · JFK 02:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.