DNS(Domain Name System)域名系统,它是一个将域名和 IP 地址相互映射的一个分布式数据库,把容易记忆的主机名转换成主机 IP 地址。html
DNS使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。git
为防止服务中断和网络攻击,全球共有13台根DNS服务器,严格意义上来讲不是13台,而是13个服务集群,为何是13?github
www.lbinin.com
域名为例,首先,它会去检查当前浏览器缓存,若是有,就直接响应,若是没有,就继续往下找递归查询
,DNS 服务器首先会到自身解析数据库中去查com
的后缀,就会把 com
所在的 ns 服务器告诉咱们的 DNScom
所在的 ns 服务器(权威域名服务器)com
ns 服务器时,com
一看域名是在 lbinin
这个域下的,就会把 lbinin
所在的 ns 服务器再告诉咱们的 DNS 服务器lbinin
这个域的 ns 服务器lbinin
这个域的 ns 服务器一看是要访问 www
就直接找到了 www
对应的「A记录」的 IP,并把它丢给咱们的 DNS,上面逐个询问的过程,即 迭代查询
浏览器缓存 👉🏻 host 文件 👉🏻 系统 DNS 缓存 👉🏻 DNS 服务器进行「迭代查询」web
其中上面 1-3 为递归查询。4-10 为迭代查询。数据库
客户端收到的是最终的查询结果浏览器
递归查询是一种 DNS 服务器的查询模式,在该模式下 DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。若是 DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其余服务器,并将返回的查询结果提交给客户机。缓存
客户端中途会收到下一台服务器地址服务器
DNS 服务器另一种查询方式为迭代查询,DNS 服务器会向客户机提供其余可以解析查询请求的 DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另外一台 DNS 服务器地址,客户机再向这台 DNS 服务器提交请求,依次循环直到返回查询的结果为止。微信
Time to Live 即生存时间,就是一条域名解析记录在 DNS 服务器中的存留时间。网络
当各地的 DNS 服务器接受到解析请求时,就会向域名指定的 NS 服务器(权威域名服务器)发出解析请求从而得到解析记录;
在得到这个记录以后,记录会在 DNS 服务器(各地的缓存服务器,也叫递归域名服务器)中保存一段时间,这段时间内若是再接到这个域名的解析请求,DNS 服务器将再也不向 NS 服务器发出请求,而是直接返回刚才得到的记录;到期则重复请求过程。
DNS 劫持又称「域名劫持」,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围之外的请求放行,不然返回假的 IP 地址或者什么都不作使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。其实本质就是对 DNS 解析服务器作手脚,或者是使用伪造的 DNS 解析服务器能够经过下图来展现。
不使用运营商的 NDS 解析,使用本身的或者著名的 DNS,如:114.114.114.114
和 8.8.8.8
其实内容劫持一开始的出发点是好的,是运营商为了加快用户的访问速度同时减小本身的流量损耗而作的一个缓存机制。
用户在像服务器请求数据的时候运营商会把用户的请求转移到这个缓存池中,若是缓存中有就直接返回,没有的话再去向服务器请求。而后运营商拦截并缓存服务端给用户的回调数据,这样一来能够极大的下降运营商像服务器请求的次数,也能加快用户的访问,因此出发点是好的。
可是一些非法的商家对缓存池内部作一些处理就是直接对返回的内容进行修改,这样一来咱们就会接受到错误的数据。
nslookup 域名
DNS 深度理解 一 - klion’s blog 欢迎转载,转载请注明出处! 独立域名博客:flywill.com 欢迎关注公众微信号:Java小镇V 分享本身的学习 & 学习资料 & 生活 想要交流的朋友也能够加微信号备注入群:EscUpDn