• 关于DNS cache


    关于DNS cache

     “DNS Client服务”只是客户端对DNS解析内容的缓存服务,禁用“DNS Client服务”并不影响DNS解析,只是客户端不对DNS解析内容进行缓存。命令ipconfig/displaydns 显示本机DNS缓存,但在禁用“DNS Client服务”时失效。

    这个服务关闭与否影响并不大,从安全性上考虑,开启它可能泄漏你的缓存内容,确定你曾经访问过的网站。从速度上考虑,关闭它可能会降低反应速度,但一般影响不大。

    客户端在遇到一个域名需要解析时,查询顺序为:

    1、DNS缓存(如果DNS Client服务启用的话);

    2、本机hosts文件;

    3、主要DNS server;

    4、辅助DNS server。

    Windows下DNS cache相关命令

    刷新DNS cache:

    C:/>ipconfig /flushdns
    Windows IP Configuration
    Successfully flushed the DNS Resolver Cache.

    查看DNS cache:

    C:/>ipconfig /displaydns

    禁止DNS cache:

    C:/>net stop dnscache
    C:/>sc servername stop dnscache

    也可以在控制面板->服务里关闭DNS client。

    更改DNS cache时间:

    修改注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Dnscache/Parameters

    MaxCacheTtl 最大DNS cache时间
    MaxNegativeCacheTtl 最大失败DNS cache时间

    Linux下的DNS cache相关命令

    重启或停止nscd(name server cache daemon)就可以了:

    $service nscd restart
    $/etc/rc.d/init.d/nscd restart
    $service nscd stop
    $/etc/rc.d/init.d/nscd stop

    也可以在service里把nscd关闭。

    参考:


    How do I flush DNS?


    DNS Cache 的一些小技巧汇总
    ————————————————
     

    原文链接:https://blog.csdn.net/wangxg_7520/article/details/2533361

    DNS 缓存机制也会给我们的工作造成一些困扰。例如:前端开发的测试工作,除了清理浏览器缓存,还要清理 DNS 缓存以保证解析到正确的 IP 上。对于像我这样的 IT Pro 来说,在排错的时候也经常会忽略 DNS 缓存造成的影响。

    当然,我们可以使用 ipconfig /displaydns 命令来查看缓存命中的是否是正确 IP,但输出的本文结果实在太长了点。不过这也难不倒我们,在必要时,我们其实可以使用 PowerShell 来查看 DNS 缓存中 FQDN 所对应的 IP 地址:

    1. 复制Get-DnsClientCache -Entry sysgeek.cn

    powershell-get-dns-client-cache-2

    注意:Get-DnsClientCache PowerShell cmdlet 只适用于 Windows 8 和 Server 2012 及更新版本。

    要获取更详细的用法可以使用如下命令查看帮助信息:

    1. 复制Get-Help Get-DnsClientCache -Detailed

    1. DNS解析过程

    wps_clip_image-14256

     
    1)、在浏览器中输入 www.baidu.com 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
    2)、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析
    3)、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
    4)、如果要查询的域名,不由本地DNS服务器区域解析,但该DNS服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
    5)、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(没有设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责 .com域的这台服务器。这台负责 .com域的服务器收到请求后,如果自己无法解析,它就会找一个管理 .com域的下一级DNS服务器地址(baidu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找baidu.com域服务器,重复上面的动作进行查询,直至找到www.baidu.com主机。
    6)、如果用的是转发模式(设置转发器),此DNS服务器就会把请求转发至上一级ISP DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
    注:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是迭代查询。
  • 相关阅读:
    Java的格式化输出
    常用排序算法的Python实现
    零基础自学用Python 3开发网络爬虫(一)
    Python常见数据结构整理
    百度天气预报API的使用(java版本)
    大总结
    CCS学习(三)
    CSS学习(页外引用还不懂)
    CSS自定义动画
    ssm日期格式转换
  • 原文地址:https://www.cnblogs.com/bonelee/p/16712476.html
Copyright © 2020-2023  润新知