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

电脑配置多个 DNS 运行原理是什么样的?是类似主挂了就切换到从 DNS 么?

  •  
  •   ipchy · 2016-08-11 09:29:47 +08:00 · 13693 次点击
    这是一个创建于 3020 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天晚上上网上的好好的,早上

    sudo proxychains update && sudo proxychains upgrade -y
    

    也很正常,但是打未被 Wall 的网站都打不开,pingnslookup结果显示无法解析,检查配置的 DNS

    主: 115.159.157.26
    从: 115.159.158.38
    

    通过tracepath 发现无法到达115.159.157.26,但是可以到达115.159.158.38,然后我就把 DNS 改成了115.159.158.38,然后就正常了,难道设置两个 DNS 并没什么用吗?

    24 条回复    2016-08-12 11:34:32 +08:00
    notgod
        1
    notgod  
       2016-08-11 09:36:00 +08:00
    这个事我也挺纳闷
    之前我很多 cPanel 服务器 有配置 DNS 集群
    ns1.dns 服务器.com ns2 ns3 ns4

    我以为 ns1 master ns2 slave 如果 ns1 挂了 应该自动轮询到 ns2-ns4
    结果根本不是那么回事 DNS 协议也懒的看了
    不知道哪里的逻辑 也不知道哪里起因
    notgod
        2
    notgod  
       2016-08-11 09:36:27 +08:00
    补充下 这个和本机的 public dns 是差不多的
    yangg
        3
    yangg  
       2016-08-11 09:40:15 +08:00
    同感觉第二个 dns 没用
    kslr
        4
    kslr  
       2016-08-11 09:49:09 +08:00 via Android
    @notgod
    @yangg
    我看到一些资料是说并不是宕机是切换而是无法解析时切换,也许可以从此下手
    alen
        5
    alen  
       2016-08-11 09:50:28 +08:00
    不清楚电脑,感觉备的好像没用,但是以前搞过 DNS 服务器,类似于谷歌 DNS 服务器 8.8.8.8 或 8.8.4.4 会自动轮询。
    notgod
        6
    notgod  
       2016-08-11 09:54:20 +08:00
    @kslr
    我典型的 DNS 小白

    问题就在这里
    宕机了 还能解析?
    最开始我以为 DNS 缓存时间引起的 结果测试 TTL 降到 120 自己 deploy 的 Public DNS
    本机测试 一个样

    抽时间去研究下 DNS 的规范 估计就明白了
    对普通用户影响不大

    如果 Slave 真没什么卵用
    我部署 secondary + N 的 DNS 有个 P 用
    Tink
        7
    Tink  
       2016-08-11 10:07:54 +08:00 via iPhone
    第一个解析不出来尝试第二个
    fangpeishi
        8
    fangpeishi  
       2016-08-11 10:35:50 +08:00
    默認第一個解析不了再解析第二個,有超時和重試次數的設置,另外也可以配置成輪詢。
    相關文檔: http://man7.org/linux/man-pages/man5/resolv.conf.5.html
    21grams
        9
    21grams  
       2016-08-11 10:47:09 +08:00
    我感觉第二个没用,所以从来不配第二个
    qzy168
        10
    qzy168  
       2016-08-11 10:51:14 +08:00
    感觉第二个应该有用吧。不然,要设置 2 个做什么。
    bjzhou1990
        11
    bjzhou1990  
       2016-08-11 11:41:26 +08:00
    应该是第一个没有查询到有效的 ip 才去查询的吧
    xcodeghost
        12
    xcodeghost  
       2016-08-11 11:49:17 +08:00
    只有第一个彻底不通的时候才会使用到第二个。
    例如:你第一个设置一个不可使用的 IP : 1.1.1.1 第二个设置 114.114.114.114 ,这个时候就可以使用了。
    如果你第一个 DNS ,没有彻底挂了的时候,例如 DNS 服务不正常,能通,但无法解析,这个时候是不会使用到第二个 DNS 的。
    ZE3kr
        13
    ZE3kr  
       2016-08-11 12:36:30 +08:00 via iPhone
    @notgod 有的 cpanel 虽然给你的 4 个 ns ,但实际上都是一个主机的同 IP ,或者是一个主机的多个 ip ,主机挂了就全挂。

    一般都要求设置两个,无论是 public dns 还是网站权威 ns ,然而两个位置都填一个 ip ,或者两个位置填两个域名,指向 1 个 ip 似乎也行。
    ZE3kr
        14
    ZE3kr  
       2016-08-11 12:37:30 +08:00 via iPhone
    哦,我只是说一些 cpanel ,你的集群可能就不是这样
    anyclue
        15
    anyclue  
       2016-08-11 15:55:12 +08:00
    @xcodeghost 你说的不对,
    第一个设置一个不可使用的 IP ,换成 1.1.1.1 , DNS 服务不正常, 可以 ping 通,无法解析,这个时候仍然会使用第二个 DNS
    第一个设置一个不可使用的 IP ,换成 1.2.3.4 , DNS 服务不正常, ping 不通,无法解析,这个时候也会继续使用第二个 DNS 的
    Ixizi
        16
    Ixizi  
       2016-08-11 16:05:01 +08:00
    第一个解析不到 IP ,第二个解析。
    testuserll
        17
    testuserll  
       2016-08-11 17:29:21 +08:00
    第一个 DNS 没返回任何数据使用第二个,第一个如果有任何返回数据,比如服务器出错、指定域不存在、没有记录等,第二个不启用。
    lhbc
        18
    lhbc  
       2016-08-11 17:34:51 +08:00   ❤️ 6
    一知半解的好多。
    Windows: 第一个超过 1s 没返回就使用第二个。
    注意:当你使用 nslookup 或者 dig 时,是仅用第一个的。

    实际流程非常复杂,具体见:
    https://technet.microsoft.com/en-us/library/bb457118.f24zs09_big(l=en-us).jpg
    https://technet.microsoft.com/en-us/library/bb457118.aspx
    smileawei
        19
    smileawei  
       2016-08-11 18:16:27 +08:00
    确实是很疑惑。我在公司搭建的内网 DNS 我发现首选 DNS 活的好好的时候 备用 DNS 也会收到一些解析请求。只不过比首选 DNS 少而已。主 DNS 挂了的话。备用 DNS 好好的时候。部分设备还是会出现 DNS 查找失败。 搞的很蛋疼。最后我用 keepalived 在主备 DNS 做了个高可用。 VIP 设置为首先。默认 ip 在主 DNS 上。主 DNS 挂了 vip 漂移到备用 DNS 。
    winterbells
        20
    winterbells  
       2016-08-11 22:33:31 +08:00
    备用是可以的
    我因为不想用校园网的 DNS ,但 sb 天翼校园客户端必需要用才能正常登录。所以我把校园网 DNS 设置成第三 DNS ,然后就可以正常用了
    julyclyde
        21
    julyclyde  
       2016-08-11 23:09:31 +08:00
    man resolv.conf
    jiewenxu
        22
    jiewenxu  
       2016-08-12 06:17:18 +08:00
    对 proxychain 不熟悉,但是 linux 的 DNS 系统是可以设置的。可以设置成负载均衡,也可以设置成每次请求向所有配置的 DNS 发送请求,谁先回复就用谁的,也可以像楼主描述的一样按照顺序查询
    princeofwales
        23
    princeofwales  
       2016-08-12 09:18:20 +08:00
    我说 2 个场景:
    1 、家用路由器上配了 2 个 public dns ,确实第二个也有少许的查询量;
    2 、公司内网 2 个 DNS 服务器,试过将第 1 个的 DNS 服务停掉,从客户端 nslookup 解析不到结果,但应用却可以获取 IP (非缓存),备用 DNS 应该是生效了
    pango
        24
    pango  
       2016-08-12 11:34:32 +08:00
    @lhbc 赞认真的态度。

    鄙视其他某些楼不做调查,张口就讲的态度
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2632 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:59 · PVG 12:59 · LAX 20:59 · JFK 23:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.