-
本帖最后由 沧海 于 2017-12-1 10:33 编辑有人的地方,就有江湖,有DNS的地方,就有缓存。 为了提升域名查询效率,设计了域名缓存机制,当访问过某个网站并得到其IP后,会将其域名和IP缓存下来,下一次访问的时候,就不需要再请求域名服务器获取IP,直接使用缓存中的IP,提高了响应的速度。当然缓存是有有效时间(即TTL值)的,当过了有效时间后,再次请求网站,还是需要先请求域名解析。 目前,除了传统的递归DNS服务器(如运营商的Local DNS, 114dns,Google public DNS等)外,计算机中DNS记录在本地也有两种缓存方式:浏览器缓存和操作系统(OS)缓存。在浏览器中访问的时候,会优先访问浏览器缓存,如果未命中则访问OS缓存,最后再访问递归DNS服务器,然后递归DNS服务器会递归式的查找域名记录,然后返回结果。那么浏览器DNS缓存和操作系统DNS缓存又是怎样的呢?浏览器DNS缓存:首先,浏览器DNS缓存的时间跟DNS服务器返回的TTL值无关。浏览器在获取网站域名的实际IP地址后会对其IP进行缓存,减少网络请求的损耗。每种浏览器都有一个固定的DNS缓存时间,如Chrome的过期时间是1分钟,在这个期限内不会重新请求DNS。常用的浏览器的DNS缓存时间如下:Chrome:为了加快访问速度,Google Chrome浏览器采用了预提DNS记录,在本地建立DNS缓存的方法,加快网站的连接速度。在Chrome地址栏中输入chrome://net-internals/#dns 就可以看各域名的DNS 缓存时间。默认,Chrome对每个域名会默认缓存60s:25302531 Firefox:Firefox也有dns缓存功能,但是默认缓存时间只有1分钟,可以通过修改该默认值加快DNS解析速度,方法如下:打开一个新的窗口,地址栏输 入 about:config,回车,进入设置界面。然后搜索 network.dnsCacheExpiration,把原来的60改成 6000(表示缓存6000秒),再搜索network.dnsCacheEntries 把默认的20改成1000(表示缓存1000条)。如果没 有上面两个项目,新建它们即可,新建条目类型为整数型。 当然也可以按照需要设置成其它的值。但是dns缓存太久了也会出问题,比如有的网站ip换了,就无法访问了。针对这样的问题,还可以安装一个 firefox 插件来开启或者 关闭dns cache功能,https://addons.mozilla.org/zh-CN/firefox/addon/5914。 以下是第三方之前测试的不同浏览器的DNS缓存时间情况 2532 (来源链接:https://dyn.com/blog/web-browser-dns-caching-bad-thing/)操作系统DNS缓存:OS缓存会参考DNS服务器响应的TTL值,但是不完全等于TTL值。 Windows: Windows系统默认开启DNS缓存服务,叫做DNSClient,可以缓存一些常用的域名。 2533 ipconfig/displaydns – 这个命令可以展示现在你电脑已经缓存的域名2534 ipconfig/flushdns –这条记录可以帮你马上清空已经缓存的记录2535 Linux: Linux系统的nscd服务可以实现DNS缓存的功能。nscd会缓存三种服务passwd,group,hosts,所以它会记录三个库,分别对应源/etc/passwd, /etc/hosts 和/etc/resolv.conf每个库保存两份缓存,一份是找到记录的,一份是没有找到记录的。每一种缓存都保存有生存时间(TTL)。其作用就是增加cache ,加快如DNS的解析等的速度。配置文件为/etc/nscd.conf 默认该服务在redhat或centos下是关闭的,可以通过services nscd start开启。缓存DB文件在/var/db/nscd下。可以通过nscd -g查看统计的信息,这里列出部分:2536 也可以通过strings /var/db/nscd/hosts命令查看缓存文件2537 清除缓存1. nscd -i passwd2. nscd -i group3. nscd -i hosts 除了上面的方法,重启nscd服务同样可以达到清理cache的目的。
-
DNS放大攻击(DNSamplification attacks)是目前互联网常见的一种网络攻击手段,主要是利用了DNS应答包比请求包大的特点,攻击者利用**网络中大量的被控主机,伪装成被攻击主机,在特定时间点连续向多个允许递归查询的dns服务器发送大量dns服务请求,迫使其提供应答服务,经dns服务器放大后的大量应答数据发送到被攻击主机,形成攻击流量,导致其无法提供正常服务甚至瘫痪。 与老式的“smurf attacks”攻击非常相似,DNS放大攻击使用针对无辜的第三方的欺骗性的数据包来放大流量,其目的是耗尽受害者的网络带宽。从DNS放大攻击基本原理来看,正常DNS查询过程如下:源IP地址 —–DNS查询—-> DNS服务器 —–DNS回复包—-> 源IP地址。而DNS放大攻击过程如下:伪造IP地址 —–DNS查询—-> DNS服务器 —–DNS回复包—-> 伪造的IP地址(攻击目标),原理如参考如下: 正常DNS查询过程:301 DNS放大攻击原理:302
-
Dig工具是一个DNS查询工具,功能和Windows下的nslookup相仿,它有一个比较实用的功能是能够发送迭代DNS查询,trace查询域名经过的DNS服务器,就像tracert跟踪IP路由一样。 使用方法: dig 域名 +trace 比如要trace www.sina.com,在命令行输入dig www.sina.com + trace,命令行打印下面的内容:可以看看到从根域名服务器到权威dns服务器的查询过程: ; > DiG 9.9.0rc3 > www.sina.com +trace ;; global options: +cmd . 506399 IN NS l.root-servers.net. . 506399 IN NS a.root-servers.net. . 506399 IN NS f.root-servers.net. . 506399 IN NS m.root-servers.net. . 506399 IN NS d.root-servers.net. . 506399 IN NS b.root-servers.net. . 506399 IN NS k.root-servers.net. . 506399 IN NS h.root-servers.net. . 506399 IN NS e.root-servers.net. . 506399 IN NS g.root-servers.net. . 506399 IN NS i.root-servers.net. . 506399 IN NS j.root-servers.net. . 506399 IN NS c.root-servers.net. ;; Received 633 bytes from 192.168.0.1#53(192.168.0.1) in 80 mscom. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. ;; Received 736 bytes from 192.36.148.17#53(192.36.148.17) in 200 mssina.com. 172800 IN NS ns1.sina.com.cn. sina.com. 172800 IN NS ns2.sina.com.cn. sina.com. 172800 IN NS ns3.sina.com.cn. sina.com. 172800 IN NS ns1.sina.com. sina.com. 172800 IN NS ns2.sina.com. ;; Received 659 bytes from 192.41.162.30#53(192.41.162.30) in 457 mswww.sina.com. 60 IN CNAME us.sina.com.cn. us.sina.com.cn. 60 IN CNAME wwwus.sina.com. wwwus.sina.com. 60 IN A 12.130.132.30 sina.com. 600 IN NS ns1.sina.com.cn. sina.com. 600 IN NS ns1.sina.com. sina.com. 600 IN NS ns2.sina.com. sina.com. 600 IN NS ns2.sina.com.cn. sina.com. 600 IN NS ns3.sina.com.cn. ;; Received 275 bytes from 202.106.184.166#53(202.106.184.166) in 30 ms
上滑加载中
推荐直播
-
TinyEngine低代码引擎系列第2讲——向下扎根,向上生长,TinyEngine灵活构建个性化低代码平台
2024/11/14 周四 16:00-18:00
王老师 华为云前端开发工程师,TinyEngine开源负责人
王老师将从TinyEngine 的灵活定制能力出发,带大家了解隐藏在低代码背后的潜在挑战及突破思路,通过实践及运用,帮助大家贴近面向未来低代码产品。
回顾中 -
华为云AI入门课:AI发展趋势与华为愿景
2024/11/18 周一 18:20-20:20
Alex 华为云学堂技术讲师
本期直播旨在帮助开发者熟悉理解AI技术概念,AI发展趋势,AI实用化前景,了解熟悉未来主要技术栈,当前发展瓶颈等行业化知识。帮助开发者在AI领域快速构建知识体系,构建职业竞争力。
去报名 -
华为云软件开发生产线(CodeArts)10月新特性解读
2024/11/19 周二 19:00-20:00
苏柏亚培 华为云高级产品经理
不知道产品的最新特性?没法和产品团队建立直接的沟通?本期直播产品经理将为您解读华为云软件开发生产线10月发布的新特性,并在直播过程中为您答疑解惑。
去报名
热门标签