1. 主页 > 生活经验

2022解析最快的dns(2022解析最快的dns地址)

用户与互联网中的某台主机通信的时,必须知道对方的IP地址,然而用户很难记住长达32位的IP二进制主机地址,即使是点分十进制的IP地址也是不太容易记忆。为了方便记忆,引入了域名系统,用来便于人们使用的机器名字转换成IP地址。

2022解析最快的dns(2022解析最快的dns地址)

域名和IP地址的映射关系就是记录在DNS服务器中的。

这里首先来看几个重要的概念

根域名服务器是最高层次,最重要的域名服务器。根域名服务器知道所有的顶级域名服务器的域名和IP地址。本地域名服务器要对互联?上任何?个域名进?解析,如果???法解析,?先求助根域名服务器。

这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)

负责一个区的域名服务器,当一个权限域名服务器,还不能给出最后的查询回答时,就会告诉发出请求的DNS客户端,下一步应当找哪个权限域名服务器。

当一个主机发出DNS查询的时候,首先就是发送给本地域名服务器。每一个互联网提供者ISP,或者一个大学都可以有自己的本地域名服务器。

如果是通过DHCP配置,本地DNS由你的网络服务商(ISP),如电信、移动等自动分配,它通常就在你网络服务商的某个机房。

来看下查询的步骤

1、主机向本地域名服务器查询www.tsinghua.edu.cn的IP地址,这一步是递归查询;

2、本地域名服务器会在自己的服务器中查找对应的域名映射关系,如果找了直接返回IP地址,没有就会询问根域名服务器;

3、根域名服务器会告诉本地域名服务器,下一次查询的顶级域名服务器的IP地址;

4、本地服务器继续向顶级域名服务器发起查询请求;

5、顶级域名服务器找到了就返回结果,如果没找到就会告诉本地域名服务器,下一次查询的权限域名服务器的IP地址;

6、本地服务器继续向权限域名服务器发起查询请求;

7、权限域名服务器会告诉本地域名服务器,查询的主机IP地址,当一个权限域名服务器,还不能给出最后的查询回答时,就会告诉发出请求的DNS客户端,下一步应当找哪个权限域名服务器;

8、本地域名服务器最终把查询结果返回给主机,主机就能和目标建立连接了。

会在本地做一个缓存,这样就不用每一个请求都去请求权威DNS服务器,当再次访问直接拿取本地的缓存即可。

既然是有缓存,就会存在缓存同步不及时的情况,这样一些请求就会发送到旧的页面。

再就是本地的缓存,往往使得全局负载均衡失败,因为上次进行缓存的时候,缓存中的地址不一定是这次访问离客户最近的地方,如果把这个地址返回给客户,那肯定就会绕远路。

经过域名转发,域名查询可能会跨运营商。

栗如:

如果是A运营商的客户,访问自己运营商的DNS服务器,如果A运营商去权威DNS服务器查询的话,权威DNS服务器知道你是A运营商的,就返回给一个部署在A运营商的网站地址,这样针对相同运营商的访问,速度就会快很多。

但是A运营商偷懒,将解析的请求转发给B运营商,B运营商去权威DNS服务器查询的话,权威服务器会误认为,你是B运营商的,那就返回给你一个在B运营商的网站地址吧,结果客户的每次访问都要跨运营商,速度就会很慢。

我们知道,网络出口的时候,很多机房都会配置NAT,也即网络地址转换,使得从这个网关出去的包,都换成新的IP地址。NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。当然请求返回的时候,在这个网关,再将IP地址转换回去,所以对于访问来说是没有任何问题。

但是一旦做了网络地址的转换,权威的DNS服务器,就没办法通过这个地址,来判断客户到底是来自哪个运营商,而且极有可能因为转换过后的地址,误判运营商,导致跨运营商的访问。

本地DNS服务器是由不同地区、不同运营商独立部署的。对域名解析缓存的处理上,实现策略也有区别,有的会偷懒,忽略域名解析结果的TTL时间限制,在权威DNS服务器解析变更的时候,解析结果在全网生效的周期非常漫长。但是有的时候,在DNS的切换中,场景对生效时间要求比较高。

例如双机房部署的时候,跨机房的负载均衡和容灾多使用DNS来做。当一个机房出问题之后,需要修改权威DNS,将域名指向新的IP地址,但是如果更新太慢,那很多用户都会出现访问异常。

DNS的查询过程需要递归遍历多个DNS服务器,才能获得最终的解析结果,这会带来一定的时延,甚至会解析超时。

本地运营商可能对某些域名进行劫持、屏蔽。

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

因为传统的DNS存在上面的一些问题,所以这里引出了HTTPDNS。

HTTPNDS其实就是,不走传统的DNS解析,而是自己搭建基于HTTP协议的DNS服务器集群,分布在多个地点和多个运营商。当客户端需要DNS解析的时候,直接通过HTTP协议进行请求这个服务器集群,得到就近的地址。

同时因为默认的域名解析都是走DNS的,使用HTTPDNS需要绕过默认的DNS路径,所以使用HTTPDNS的,大多数是手机应用,需要在手机端嵌入支持HTTPDNS的客户端SDK。

1、跳过LocalDNS,防止本地DNS劫持;

2、直接通过IP访问,平均访问延迟下降;

3、服务器算法筛选最佳节点IP,提升请求成功率;

4、快速更换IP(不受TTL的限制)。

1、App防止恶意劫持;

2、对访问速度要求高的应用;

3、应用、视频加速服务,配合CDN,通过DNS服务器返回最佳节点,提高访问效率;

4、提供更灵活的流量调度能力。

1、在客户端的SDK里动态请求服务端,获取HTTPDNS服务器的IP列表,缓存到本地。随着不断地解析域名,SDK也会在本地缓存DNS域名解析的结果;

2、当手机应用要访问一个地址的时候,首先看是否有本地的缓存,如果有就直接返回,没有就请求HTTPDNS服务器;

2、请求HTTPDNS的服务器,HTTPDNS的服务器都会提供api接口,选择对应的接口发出接口请求,会返回一个要访问的网站的IP列表;

3、客户端,收到返回的IP列表,就能选择IP,建立连接,发起正常访问操作;

4、若客户端向HttpDNS服务器请求失败,则启用备选,走正常DNS解析过程,向LocalDNS发起请求;

5、LocalDNS进行递归查询;

6、最终返回DNS结果;

7、客户端拿到最优IP后,建立连接,发起正常访问操作。

1、传统的DNS有很多问题,例如解析慢、更新不及时。因为缓存、转发、NAT问题导致客户端误会自己所在的位置和运营商,从而影响流量的调度。

2、HTTPDNS通过客户端SDK和服务端,通过HTTP直接调用解析DNS的方式,绕过了传统DNS的这些缺点,实现了智能的调度。

【极客时间-趣谈网络协议】

【计算机网络第八版】

【计算机网络学习笔记】-POINT/tree/master/tcp

【全面理解DNS及HTTPDNS】

作者:liz

出处:%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C-DNS%E5%92%8CHTTPDNS

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 203304862@qq.com

本文链接:https://jinnalai.com/jingyan/152886.html

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:9:30-18:30,节假日休息