V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sue6080
V2EX  ›  DNS

请问我理解的 DNS 缓存污染定义,指教下是否正确?

  •  
  •   Sue6080 · 2021-06-15 10:37:09 +08:00 · 4174 次点击
    这是一个创建于 1292 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近一直研究 DNS 污染,透过网上各种管道,得知有一个专有名词叫「 DNS 缓存污染」,我理解的意思是运营商解析网站的 DNS 的 A 记录,被运营商本身或怪客篡改 IP,这理解是否正确?
    39 条回复    2021-07-08 15:04:46 +08:00
    learningman
        1
    learningman  
       2021-06-15 10:46:43 +08:00 via Android
    我的理解是,如果某个 DNS 服务器的上游被污染了,然后这个 DNS 本身又拥有缓存机制。即使他自己没有去污染,他也会帮助被污染的记录进一步扩散。
    AoEiuV020
        2
    AoEiuV020  
       2021-06-15 10:48:37 +08:00
    是的吧,比如运营商把一些墙外网站解析到奇怪的 ip 上,
    trepwq
        3
    trepwq  
       2021-06-15 11:09:00 +08:00 via iPhone   ❤️ 1
    dns 解析结果有 ttl 时间,给你一个错误的且 ttl 时间很长的 dns 解析结果
    Sue6080
        4
    Sue6080  
    OP
       2021-06-15 15:21:52 +08:00
    @trepwq 那你知道错误的 DNS 解析 IP 代表哪些意思吗?
    我被污染的域名,有些是解析到 0.0.0.0 、127.0.0.1 、美国的 IP 、FB 与 twitter 的 IP 都有
    Sue6080
        5
    Sue6080  
    OP
       2021-06-15 15:22:16 +08:00
    @AoEiuV020 那你知道错误的 DNS 解析 IP 代表哪些意思吗?
    我被污染的域名,有些是解析到 0.0.0.0 、127.0.0.1 、美国的 IP 、FB 与 twitter 的 IP 都有
    Sue6080
        6
    Sue6080  
    OP
       2021-06-15 15:24:43 +08:00
    @learningman 请问你说的[某个 DNS 服务器的上游]是指权威 DNS 还是中国的根 DNS 吗?
    [某个 DNS 服务器]是指运营商的 DNS?
    AoEiuV020
        7
    AoEiuV020  
       2021-06-15 15:28:00 +08:00
    @Sue6080 没什么意思吧,只是让你上不去原来的网站,随便给个 ip 的吧,
    learningman
        8
    learningman  
       2021-06-15 16:57:50 +08:00
    @Sue6080 #6 [某个 DNS 服务器] 取决于 DNS 的设置啊,递归 DNS 或者权威 DNS,看属性了。
    具体解析到哪个 IP,有人跟我讲是路由扩散,我不确定。
    willis
        9
    willis  
       2021-06-15 17:28:13 +08:00
    我告诉你一个另类的检测 dns 污染的方法,帮助你理解一下。
    你随便找个一国外非 dns 服务器的 IP,在国内用 nslookup www.google.com 国外 IP,试一下结果
    国外的 IP 没有启用 dns 服务,没有污染的域名,什么都不会返回,有污染的域名嘛。。。。
    Sue6080
        10
    Sue6080  
    OP
       2021-06-21 15:36:07 +08:00
    @willis 谢谢回复,请问你说的:
    随便找个一国外非 dns 服务器的 IP,代表任何一个美国网站的 IP 吗(如 Twitter)?
    国外的 IP 没有启用 dns 服务-->这句不懂
    Sue6080
        11
    Sue6080  
    OP
       2021-06-21 15:39:31 +08:00
    @learningman 请问 DNS 的设置是运营商控制的吗?
    我只知道域名的 ns 记录设定某个 DNS 的话,那个 DNS 就会成为此域名的权威 DNS,
    路由扩散???又是新名词...
    Sue6080
        12
    Sue6080  
    OP
       2021-06-21 15:41:14 +08:00
    @AoEiuV020 因为有保留 IP 跟国外 IP,所以才会觉得好奇
    learningman
        13
    learningman  
       2021-06-21 15:50:40 +08:00 via Android
    @Sue6080 你自动拿到的 DNS 服务器,是你在连上互联网的时候,运营商会分发一个给你,各种协议都会支持,比如 DHCP 。这个一般是递归 DNS,也就是说他如果查询不到就会到对应域名的权威 DNS 去查询。但是有污染的话,很明显就会有另外的一些行为。
    路由扩散我其实也不是很明白。但是你会发现,大部分 DNS 污染都是被污染到了 Facebook 相关的域名。这个行为应该本身是为了方便路由扩散的执行的。
    Sue6080
        14
    Sue6080  
    OP
       2021-06-22 14:28:04 +08:00
    @learningman 照你说的,我整理以下叙述,看是否正确?
    运营商自动配发的 DNS 就是递归 DNS
    运营商自动配发的 DNS 如果被污染,就不会去权威 DNS 查
    我这边污染的域名解析到的 IP 大部份是美国的 Twitter 、Facebook
    还有一歇香港的网站 IP
    learningman
        15
    learningman  
       2021-06-22 15:38:08 +08:00 via Android
    @Sue6080
    不确定,因为你其实并不知道是在哪一步被污染的。有可能是这些 DNS 服务器内置了专门的碰到某些网站就返回错误结果的逻辑。也有可能是有一台专用的设备负责清洗所有的 DNS 流量。
    第 3 个这个说的应该就是路由扩散了,污染到某几个特定的 AS
    Sue6080
        16
    Sue6080  
    OP
       2021-06-22 17:09:08 +08:00
    @learningman 我用国内阿里云随检测平台 https://zijian.aliyun.com/
    查我被污染的域名
    发现全是"递归解析污染"
    国内阿里云客服是说,递归解析污染是"上级网路"截断的,他门无法处理
    你觉得"上级网路"是防火长城(GFW)吗?
    你说的 AS 意思是:American Server 吗?
    learningman
        17
    learningman  
       2021-06-22 17:15:58 +08:00
    @Sue6080 #16 很明显是的
    然后 AS 是 Autonomous system,自治系统
    Sue6080
        18
    Sue6080  
    OP
       2021-06-24 16:32:17 +08:00
    @learningman 那有些公司网站是说可以修复 DNS 污染,你认为这是骗人的吗?
    自治系统...这个是 CCNA 网管范围了...我的知识盲区了
    所以 DNS 递归解析污染真的无法预防与阻止吗?
    learningman
        19
    learningman  
       2021-06-24 17:07:38 +08:00
    @Sue6080 #18 DNS 污染,虽然没有官方文件,但是大家都知道是国家行为,我觉得不行。
    技术上来说,如果你们有客户端,httpdns 之类的能解决一点。
    Sue6080
        20
    Sue6080  
    OP
       2021-06-25 15:16:52 +08:00
    @learningman 请问你觉得不行是标榜[修复 DNS 污染]的商家吗?
    HTTPDNS...我问过百度云、阿里云、腾讯云,他门都是说这是用在安卓与 IOS 的 APP 、电脑软件上的商品,不是用在网站上的
    三间云厂商说法不一
    DNS 劫持有的说可降低,有的说可预防与阻止
    DNS 递归解析污染、DNS 缓存污染有的说无法预防,有的说只能预防缓存污染,有的说可预防与阻止...
    learningman
        21
    learningman  
       2021-06-25 15:22:09 +08:00
    @Sue6080 #20 我说的客户端不就是“安卓与 IOS 的 APP 、电脑软件”吗。。。
    至于后者,我是觉得不行,他们可能有负责搞 ZF 关系的业务?
    Sue6080
        22
    Sue6080  
    OP
       2021-06-25 16:22:57 +08:00
    @learningman ZF 关系是什麽意思?
    那 HTTPDNS 用在客户端,三个大间的云厂商说法不一,是要怎麽买...
    那网站的话就没有技术可以预防与阻止 DNS 递归解析污染与 DNS 缓存污染吗?
    learningman
        23
    learningman  
       2021-06-25 16:47:35 +08:00
    @Sue6080 #22 正文府,这打不出来没办法
    对,没办法,因为需要对抗污染的不是你,而是你的用户
    httpdns 免费的也一堆,自建都行,你问技术人员吧
    Sue6080
        24
    Sue6080  
    OP
       2021-06-28 11:04:44 +08:00
    @learningman 你可以试试用空格或引号隔开自能否打的出来
    问过运维了,他说自建 DNS 也无法控制用户使用的 DNS,因此没有用,
    httpdns 免费的不知道资安是否安全,免费的最贵,你有推荐的吗?
    learningman
        25
    learningman  
       2021-06-28 11:05:58 +08:00
    @Sue6080 #24 cloudflare,google 都行
    Sue6080
        26
    Sue6080  
    OP
       2021-06-28 11:54:06 +08:00
    @learningman 这样感觉结论是,只能用 HTTPDNS 预防与阻止[APP 使用域名]的 DNS 污染吗?
    就算国内用户手机网路的 DNS 是运营商自动配发的也没关系?
    另外你或身边的人有实际使用过 cloudflare,google 的 httpdns 吗?
    Sue6080
        27
    Sue6080  
    OP
       2021-06-28 12:22:30 +08:00
    @learningman 我用检测工具检测,发现 Cloudflare 官网 https://www.cloudflare.com/
    没被 DNS 污染也没被墙耶,是否代表国内"可能"有一部份用户自行使用 CloudFlare 的 DNS?
    ---------分隔线[]---------------
    还有如果要设定免费的 CloudFlare 的 HTTPDNS 的话,需要什麽权限?(如域名设定 ns 记录、ShardHost 的管理后台等)
    learningman
        28
    learningman  
       2021-06-28 18:54:31 +08:00
    @Sue6080 #27 你理解 DNS 是一个什么东西吗? httpdns 只不过是把传输方式换成了 https,依赖 tls 来防止中间人劫持,所以说必须要一个客户端
    Sue6080
        29
    Sue6080  
    OP
       2021-06-29 09:52:35 +08:00
    当然知道 DNS 原理,重点是如果 HTTPDNS 可以让用户使用我方 APP 时,连线我方指定的 DNS 的话,
    那就算 APP 域名被墙还是被污染,APP 能正常使用吧?
    v2tudnew
        30
    v2tudnew  
       2021-07-02 19:24:43 +08:00
    @Sue6080 域名污染的话 99%国内 DNS 是没用的,哪怕是加密 DNS 。
    v2tudnew
        31
    v2tudnew  
       2021-07-02 19:27:17 +08:00
    当然也可以使用国外加密 DNS,但很多都被墙了,你需要内置很多,IOS 都允许这么做了,不过建议查询间隔优化下,很多粗制程序查询不忍直视。
    Sue6080
        32
    Sue6080  
    OP
       2021-07-05 10:50:22 +08:00
    请问你说的国外加密 DNS(有被墙的)有哪些?
    我看 Cloudflare 没被墙的样子
    内置很多事什麽意思?
    查询间隔优化?
    粗制程序查询?
    Sue6080
        33
    Sue6080  
    OP
       2021-07-05 10:50:49 +08:00
    @v2tudnew 请问你说的国外加密 DNS(有被墙的)有哪些?
    我看 Cloudflare 没被墙的样子
    内置很多事什麽意思?
    查询间隔优化?
    粗制程序查询?
    fengxing
        34
    fengxing  
       2021-07-05 20:49:01 +08:00
    DNS 污染采用的方式是抢答,在核心节点部署的。
    DNS 设计的就是只接受最先接收到的 ip,后面接收到的被直接遗弃。而 dns 缓存服务因为部署在核心节点,所以必然要比正常的递归服务器快,所以会根据关键词直接返回错误的 IP 地址。
    具体的你用 dig +trace 就可以看到域名的递归过程,然后用抓包软件可以看到错误 ip 的抢答包和后面正确的包。
    v2tudnew
        35
    v2tudnew  
       2021-07-05 21:49:42 +08:00
    @Sue6080
    我这 Cloudflare 、谷歌、AdGuard 等常用加密 DNS 都被墙了,GFW 墙的分地区,所以让你内置大量 DNS 避免失效,当然你自己建立 DNS 服务器另说(感觉最后 DNS 服务器域名都会被污染。)
    什么叫粗制程序? 间隔 8 秒查询一下 DNS ?拿到 A 解析疯狂查询 AAAA 解析?
    Sue6080
        36
    Sue6080  
    OP
       2021-07-06 13:58:30 +08:00
    @fengxing 恩恩,那为何能被抢答成功?
    是运营商自己在运营商 DNS 中,做了哪些设定吗?
    所以[DNS 缓存污染]问题是出在运营商的 DNS 吗?
    [DNS 递归解析污染]问题是出在国内防火墙吗?
    dig+trace 是每个版本的 linux 都能使用吗?(如 Ubuntu 、CentOS 等)
    fengxing
        37
    fengxing  
       2021-07-06 22:43:11 +08:00
    @Sue6080 #36 根据关键词抢答。
    dns 污染就是防火墙的原因,和运营商没啥关系。
    dig 是一个查询 dns 的命令行软件,linux 一般都自带,+trace 是其中一项命令。当然也有 Windows 版本,这个请自行寻找安装。
    Sue6080
        38
    Sue6080  
    OP
       2021-07-08 14:06:32 +08:00
    @v2tudnew 请问你是怎麽查到 Cloudflare 有被墙的?
    我用 blocky 查没被墙
    内置大量 DNS->你是指域名的 ns 记录设定多个 nameserver 吗?
    间隔 8 秒查询一下 DNS,拿到 A 解析疯狂查询 AAAA 解析-->这二个设定,如果是使用某云的 DNS,应该设定不了吧?
    Sue6080
        39
    Sue6080  
    OP
       2021-07-08 15:04:46 +08:00
    @fengxing 关键词抢答 @@?
    但是我同一个网站服务器,有多个域名网站,关键字都差不多,
    只有其中一个域名有 DNS 污染???
    dig+trace 我成功在 Windows10 安装啰~谢谢告知
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2734 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:23 · PVG 20:23 · LAX 04:23 · JFK 07:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.