网络协议- DNS协议

时光总嘲笑我的痴心妄想 提交于 2019-12-05 11:37:13

网络协议- DNS协议

DNS 协议就像手机中的通讯录,它将联系人的姓名和电话号组成对应关系。DNS 协议将网站的网址和网站的IP 地址组成对应关系。有了这个DNS ,你就可以说出网站名称,找到网站的IP地址。

DNS 服务器

DNS 协议是手机通讯录这样一个概念,DNS 服务器就是具体的电话本。没有这个电话本,用户就上不了网,互联网就瘫痪了。但整个互联网不能就有一个电话本啊,全世界的用户都用一个DNS 服务器,那它肯定忙不过来。所以DNS 服务器 要被设计成一个分布式的高可靠高并发

真正的DNS 服务是树状的

  • 根DNS 服务器:返回顶级域 DNS 服务器的IP地址

  • 顶级域DNS 服务器:返回权威DNS 服务器的IP地址

  • 权威DNS 服务器:返回相应主机的IP地址

DNS解析流程

为了提高DNS 的解析性能,很多网络都会就近部署DNS 缓存服务器。于是,就有了以下DNS 解析流程。

  • 电脑客户端会发出一个DNS 请求,问“www.163.com 的 IP 是啥”,把它发给本地域名服务器解析。本地域名服务器如果是通过DHCP配置本地DNS 由你的网络服务商ISP,如电信、移动等自动分配,如果是局域网会由交换机分配。

  • 本地DNS 服务器收到客户端的请求,它自己由一张大表,保存了很多域名和其对应的IP地址。如果它也没有你要找的域名,它会问根域名服务器。根域名服务器是最高层次的,全球共有13套。它不直接用于域名解析,只告诉你要找的域名在哪个方向。

  • 根DNS 服务器收到本地DNS 请求,发现是.com 后缀,就会告诉本地DNS 服务器,这个域名在.com 区域管。然后给一个.com 区域的顶级域名服务器的地址。

  • 本地NDS 转向顶级域名服务器,问“www.163.com 的 IP 是啥”。顶级域名服务器就是一些如:.com、.net、.org 这些一级域名,它负责管理二级域名,比如163.com 。

    顶级域名服务器看到消息后,回送www.163.com 区域的权威DNS 服务器的地址。

  • 本地DNS 转向权威DNS 服务器,问“www.163.com 的 IP 是啥”,163.com的权威DNS 服务器,它是域名解析结果的原出处。它负责163.com 域名和IP地址的对应关系。

  • 本地DNS 得到IP地址后,再返回给客户端,客户端和目标网站建立连接。

整个过程如下图所示:

 

 负载均衡

在域名转为IP的查询过程中,还能玩点猫腻,就像一个人有好多手机号一样。这个号码不在服务器区会提供给查询者其他号码。这就是负载均衡了。

举个实际的例子:当我们在终端 ping bai.com 时,不同的时间和不同的地点得到的IP 地址是不一样的。DNS服务器会根据每台服务器的访问量,来均衡引导客户端访问哪个服务器,不会产生有的服务器忙死,有的闲死。

DNS实现内部负载均衡

在局域网下,一个应用要访问数据库,最好不要配置数据库的IP地址,而是配置域名,这样即使这个数据库挂掉了,还有其他机器的数据库顶替。这只需要在DNS 服务器中讲域名映射为新的IP地址。

DNS全局负载均衡

为保证我们的应用高可用,往往部署在多个机房。像百度、腾讯这样的应用在核心城市都会有机房的。DNS 负责将北京的用户引到北京的数据中心,给上海的用户提供上海的数据中心。这样访问速度会更快。

全局负载均衡器 (GSLB- Global Server Load Balance)

yourcompany.com 的DNS 服务器中,通过配置CNAME 的方式,给object.yourcompany.com 起一个别名,如:object.vip.yourcompany.com ,告诉本地DNS服务器,让它请求GSLB 解析这域名,GSLB就能在这个过程中施展负载均衡的功夫了。

两层GSLB,一层是运营商,一层是地域。本地DNS 服务器先问第一层GSLB 运营商,然后转到第二层 GSLB 地域。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!