DNS原理

DNS,域名系统,解析域名和ip地址的关系。解析的过程大致如下:
假设你输入mail.163.com
1.主机先查找自己的缓存文件,如果有mail.163.com的信息,则7;否则2。
2.主机向本地域名服务器(这里就是地址里的DNS了)进行查询,如果该服务器有mail.163.com的IP信息,则6;否则3。
3.该DNS服务器向根域名服务器发起查询。根域名服务器告诉本地域名服务器下一次应查询dns.com的顶级域名服务器;
4.本地域名服务器向dns.com顶级域名服务器进行查询,如果该服务器有mail.163.com的IP信息,则6,;否则5。
5.dns.com顶级域名服务器向本地域名服务器指出下一次向dns.163.com发起查询。本地域名服务器向dns.163.com发起查询,网易公司DNS服务器就会有他的163mail服务器的IP信息,然后发给本地域名服务器。
6.本地域名服务器收到解析的内容,发回给主机。
7.主机获得IP信息。

关键词:顶级域名服务器,根域名服务器

所以  更官方的说法

DNS工作原理:
  第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
  第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
  第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
  第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
  第五步:重复第四步,直到找到正确的纪录。
  第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

顶级域名

所谓顶级域名(TLD),就是最高层级的域名。简单说,就是网址的最后一个部分。比如,网址www.example.com的顶级域名就是.com。

ICANN 就负责规定,哪些字符串可以当作顶级域名。截至2015年7月,顶级域名共有1058个。

它们可以分成两类。一类是一般性顶级域名(gTLD),比如.com、.net、.edu、.org、.xxx等等,共有700多个。另一类是国别顶级域名(ccTLD),代表不同的国家和地区,比如.cn(中国)、.io(英属印度洋领地)、.cc( 科科斯群岛)、.tv(图瓦卢)等,共有300多个

递归查询和迭代查询

  • 递归查询:如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机自己进行下一步的查询。

  • 迭代查询:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:你下一步应当向哪一个域名服务器进行查询。然后让本地域名服务器进行后续的查询,而不是替本地域名服务器进行后续的查询。

由此可见,客户端到 Local DNS 服务器,Local DNS 与上级 DNS 服务器之间属于递归查询;DNS 服务器与根 DNS 服务器之前属于迭代查询。

实际环境中,因为采用递归模式会导致 DNS 服务器流量很大,所以现在大多数的 DNS 都是迭代模式。

本地域名服务器不可能每次都亲力亲为,所以尽量取告诉主机怎么去找

HttpDns 原理是什么

http://www.linkedkeeper.com/detail/blog.action?bid=171

HTTPDNS 利用 HTTP 协议与 DNS 服务器交互,代替了传统的基于 UDP 协议的 DNS 交互,绕开了运营商的 Local DNS,有效防止了域名劫持,提高域名解析效率。另外,由于 DNS 服务器端获取的是真实客户端 IP 而非 Local DNS 的 IP,能够精确定位客户端地理位置、运营商信息,从而有效改进调度精确性。

HttpDns 主要解决的问题

  • Local DNS 劫持:由于 HttpDns 是通过 IP 直接请求 HTTP 获取服务器 A 记录地址,不存在向本地运营商询问 domain 解析过程,所以从根本避免了劫持问题。

  • 平均访问延迟下降:由于是 IP 直接访问省掉了一次 domain 解析过程,通过智能算法排序后找到最快节点进行访问。

  • 用户连接失败率下降:通过算法降低以往失败率过高的服务器排序,通过时间近期访问过的数据提高服务器排序,通过历史访问成功记录提高服务器排序。

1.1 DNS劫持

DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。DNS劫持通过篡改DNS服务器上的数据返回给用户一个错误的查询结果来实现的。

1.2 HTTP劫持

HTTP劫持是在使用者与其目的网络服务所建立的专用数据通道中,监视特定数据信息,提示当满足设定的条件时,就会在正常的数据流中插入精心设计的网络数据报文,目的是让用户端程序解释“错误”的数据,并以弹出新窗口的形式在使用者界面展示宣传性广告或者直接显示某网站的内容。

1.2 区分劫持类型

DNS劫持

DNS劫持:倾向于持续性,访问被劫持的网站时,会不停的出现其恶意广告。DNS劫持多倾向展示广告(网页出现错误后跳转某些网页,如带有运营商名号的114,189等网页),恶意插入产品的推广,如针对特定设备的推广,apple设备的app推广。

HTTP劫持

HTTP的劫持:出现的频率多变,针对不同的ip也会不同(断网之后再连接,也许劫持就暂时消失),一定程度会造成错误的假象,用户可能会忽视该问题,由于其劫持过程非常快,只是经过某个IP后就快速的跳转,用户如果不注意地址栏的变化,根本不会注意到该问题的出现。其常见的现象为针对大流量网站的加小尾巴行为

猜你喜欢

转载自blog.csdn.net/qq_40086556/article/details/81636043
今日推荐