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

想把局域网一设备作为 ipv6 dns 服务器,有没有简便点的方法?

  •  
  •   pl0okm · 2021-08-03 02:16:16 +08:00 · 4677 次点击
    这是一个创建于 1193 天前的主题,其中的信息可能已经有所发展或是发生改变。

    梅林固件路由 192.168.1.1 pppoe 拨号,dnsmasq 提供 dhcp ( iptv 要 option 125 ),ipv6 native,dhcp-pd 启用。下面有台 ubuntu 192.168.1.100 跑 AdGuard Home 提供 dns 服务。

    发现安卓和 win10 都优先使用 ipv6 dns 查询

    • 先尝试路由不指定 ipv6 dns 并靠 dnsmasq.postconf 删除 dhcp-option=lan,option6:23,[::] ,没用,win10 自动把路由的 LAN IPv6 Address 和 LAN IPv6 Link-Local Address 作为 ipv6 dns 。

    • 测试 ::ffff:114.114.114.114 (即 ::ffff:7272:7272 ),因为梅林和 ubuntu 输入 nslookup www.qq.com ::ffff:114.114.114.114 能正常返回结果,但 win10:No response from server 。实际 win10 和安卓都无法使用 IPv4-mapped addresses:例如 v4 dns 填假地址,v6 dns 填::ffff:114.114.114.114 ,打不开网页 ERR_NAME_NOT_RESOLVED 。v4 dns 换真地址如 192.168.1.100 之后设备正常工作,AdGuard Home 日志显示都来自客户端 v4 地址。

    • 受此启发想起 win10 ipv6 dns 填写如 [::119.29.29.29] 能强制用 ipv4 dns,然而 dnsmasq 不认 dhcp-option=lan,option6:23,[[::119.29.29.29]] ,直接罢工。

    • 现在换成 ::1 (即 dhcp-option=lan,option6:23,[::1] ),总算能干活了。也就引出第一个问题:

    由于系统优先 v6 dns,那么等待假 v6 dns 超时(如上面的 ::1::ffff:114.114.114.114 )然后换用 v4 dns 会浪费很多时间吗?有没有能检测 dns 具体耗时的工具?另外用 ::::1 有区别吗?

    以防解析真变慢我开始找如何给 ubuntu 搞一个静态 ipv6 地址,免得地址变了要手动更新 dnsmasq 。

    • 先是唯一本地地址 ULA,挺巧合紧接着就看到篇《用 IPv6 ULA 毁掉未来网络的 3 种方法》 还分part1😅part2。当然主要梅林没提供设置 折腾不动 dnsmasq 。

    • 链路本地地址 Link-local address 是个能用的选择,但遇到两个问题:

    1. 链路本地地址会变化,看到有人说更新网卡驱动会变地址。ubuntu 能否设置一个静态链路本地地址?毕竟在 v4 时手动分配个 ip 就再也不用管了。

    2. AdGuard Home 日志里的全都客户端只显示链路本地地址,不显示客户端名称。这问题和上面叠加导致几乎没法排查 /管理设备。如果哪天日志显示某链路本地地址频繁访问某挖矿网址,总不至于让别人报他每个设备二十几位十六进制数吧。

    ipv6 菜鸡,请问有没有更好的向客户端宣告 AdGuard Home 的 IPv6 地址的方法呢?


    ps:梅林倒是有个 DNSFilter 功能,可以强制指定设备的所有 dns 查询转发到指定 dns 。当然 AdGuard Home 日志里所有请求来源都变成路由,也失去管理设备的能力。

    Markdown 代码块不生效啊 emmmm 不好意思凑合看吧

    19 条回复    2021-08-14 14:59:14 +08:00
    raysonx
        1
    raysonx  
       2021-08-03 03:35:52 +08:00 via iPad
    win10 并不会自动把路由器的 LAN 侧地址设置为 DNS,你这种情况应该是路由器通 RA RDNSS 或者 DHCPv6 下发的。没用过梅林固件,楼主看看能不能取消下发或者更改下发的 DNS 为你的 AD Guard Home 的 IPV6 地址吧。
    lns103
        2
    lns103  
       2021-08-03 08:10:43 +08:00 via Android
    可以尝试使用 ula 地址前缀,这个可以与全球唯一地址前缀共存。梅林没用过,但是 padavan 也没有设置 ula 的地方,我是用命令给 br0 接口添加了 /64 的 ula 地址前缀,然后设备就能同时拿到两个前缀
    NSAgold
        3
    NSAgold  
       2021-08-03 08:18:26 +08:00 via Android
    用 padavan 的时候倒是有 dns 劫持这个选项,把 dhcp 下发的 dns 设置为路由器的 v6 ip,并且劫持局域网下所有 ns 请求到本机
    梅林真不清楚了
    yyysuo
        4
    yyysuo  
       2021-08-03 08:27:20 +08:00
    我配置了本地的 ipv6 dns 为默认优先的 dns,然后用 koolss 劫持所有 dns 请求,国内国外分别转发到 2 个不同的 Adguard Home,Adguard Home 上游再配置 smartdns,除了不能看到请求是哪个客户端来的,别的挺爽的。

    网络全局配置
    config globals 'globals'
    option ula_prefix 'fd85:xxxx:xxxx::/48'
    option multipath 'disable'
    option mptcp_path_manager 'fullmesh'
    option mptcp_scheduler 'default'
    option mptcp_checksum '0'
    option mptcp_debug '0'
    option mptcp_syn_retries '5'
    option mptcp_fullmesh_num_subflows '1'
    option mptcp_fullmesh_create_on_err '1'
    option mptcp_ndiffports_num_subflows '1'
    option congestion 'bbrplus'

    路由 lan 配置
    config dhcp 'lan'
    option interface 'lan'
    option start '100'
    option limit '150'
    option leasetime '12h'
    option dhcpv6 'server'
    option ra 'server'
    option ra_management '1'
    option ra_default '1'
    list dns 'fd85:xxxx:xxxx::1'
    list dns '2408:8888::8'
    list dns '2408:8899::8'
    option force '1'
    Sekai
        5
    Sekai  
       2021-08-03 12:17:10 +08:00
    梅林的话可以去掉它的 dns 劫持功能,之后你想怎么搞都可以。http://aetherwu.com/2020/03/10/koolshare-merlin-custom-ss-dns/
    Sekai
        6
    Sekai  
       2021-08-03 12:19:23 +08:00
    另外我局域网用的 overture,上游是两个 Adguard,ipv6 用起来没问题,搞得太复杂真没必要。
    sidkang
        7
    sidkang  
       2021-08-03 12:58:43 +08:00
    我嫌 ipv6 烦就在路由器上直接关掉了= = love & peace
    raysonx
        8
    raysonx  
       2021-08-03 14:12:43 +08:00
    另外,如果楼主的路由器不支持设置 ULA 前缀的话,可以在你 Adguard 的机器上装个 radvd 自己下发 ULA 前缀,注意别下发默认路由就行。
    mansurx
        9
    mansurx  
       2021-08-03 14:19:59 +08:00
    过来人不表示不要用 ipv6 的 DNS,测过 ipv6-only 环境下公网 ipv6 的 DNS 的 AAAA 和 A 记录解析都不全。
    电脑只保留 ipv4 的 DNS 就行,AAAA 和 A 记录都可以解析。而且并没有体感上的慢。
    txydhr
        10
    txydhr  
       2021-08-03 15:14:56 +08:00 via iPhone
    局域网内分配内 fc00::/7 段的内网 ipv6 就行了,可以和公网 ipv6 共存的,这个 IP 段才等于 v4 下的局域网地址。fe80 不是 v4 意义上的局域网地址,好像不能由 dhcp 分配也不能手动指定。
    826540272
        11
    826540272  
       2021-08-03 22:09:52 +08:00 via Android
    你直接重写路由器上的 ipv6 dns 就行了
    pl0okm
        12
    pl0okm  
    OP
       2021-08-04 01:54:06 +08:00
    😘感谢各位回复 我瞅瞅怎么整 ula 希望顺便能解决 AdGuard Home 不显示 v6 的客户端名称
    huihuilang
        13
    huihuilang  
       2021-08-10 16:31:46 +08:00
    好麻烦,我把 iPv6 关了,开了简直负优化
    glamor
        14
    glamor  
       2021-08-12 13:55:00 +08:00
    @lns103 最近也有同样的 ula 需求,请问 padavan 命令怎么写呢?加到哪里呢?
    glamor
        15
    glamor  
       2021-08-12 19:28:40 +08:00
    @txydhr 请问怎么分配内网 ula 地址呢?路由器是 padavan 系统,怎么写命令呢?还是要换其他系统?
    lns103
        16
    lns103  
       2021-08-13 00:45:10 +08:00
    @glamor 我用的是这个,添加到脚本-路由器启动后执行的最后。平时调试可以直接运行。把 add 改 del 可以删除地址
    ```
    ip -6 addr add fd3c::1/56 dev br0
    ```
    地址可以自己修改为 fd00::/8 中的任意一个,掩码不要大于 64

    ```
    ip -6 addr show
    ```
    可以查看各个接口现在的 v6 地址
    txydhr
        17
    txydhr  
       2021-08-13 08:44:26 +08:00 via iPhone
    @glamor 用的 radvd 么? ipv6 天生支持同时广播多个 IP 段的,可以搜搜默认说明。内网那个不广播默认路由就行。
    https://github.com/radvd-project/radvd/blob/master/radvd.conf.example
    glamor
        18
    glamor  
       2021-08-13 16:28:35 +08:00
    @lns103 感谢成功了,但是每个设备分配了两个 ula 地址,即多了一个隐私地址,并且内网通信也是用会变的隐私地址,这样服务器就无法对来源客户端进行记录统计了.请问有没有办法在路由器上设置客户端保留全球单播地址的隐私地址,去除唯一本地地址的隐私地址呢?或者让客户端内网通信不要用隐私地址呢?
    lns103
        19
    lns103  
       2021-08-14 14:59:14 +08:00
    @glamor 据我所知,slacc 分配方式的地址后缀是由客户端决定的,修改这个只能尝试用 DHCPv6 或者魔改客户端设置了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5376 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:36 · PVG 15:36 · LAX 23:36 · JFK 02:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.