浅谈DNS协议,DNS协议的作用以及DNS的查询方式,使用DNS做负载均衡

初探DNS协议

DNS协议说简单一点就是域名解析,将域名解析为IP地址。可以把它当作是一个电话本,用来记录某个人所对应的电话号码。我们熟悉的TCP/IP协议都是根据IP地址来访问远程主机。但是我们访问网址时,通常用的都是域名。比如访问百度这个网站,我们通常使用www.baidu.com这个域名来进行访问,而不是使用百度网站所对应的某个IP地址,比如220.181.38.150。因为域名比起IP地址而言,要好记很多。那如何将域名转化为其对应的某个或者是多个IP地址,就是由DNS协议所完成的工作。

以递归解析www.baidu.com为例:
在这里插入图片描述

在Windows电脑上,打开命令行界面或者是使用Powershell,输入ipconfig /displaydns命令可以查看本地的DNS缓存,里面缓存的便是域名与P地址的对应关系。
在这里插入图片描述

DNS的查询方式

递归查询迭代查询是站在客户端的角度来进行区分的,如果客户端只提交一次请求,然后等着上一级的DNS服务器为它返回解析结果,这称为递归查询。如果客户端向多个DNS服务器提交了请求,才获得了解析结果,这便是迭代查询。

递归查询:客户端每次都将解析的请求层层提交给上一级DNS服务器,当某一个域DNS服务器解析出来了该域名对应的IP地址,又将解析结果层层下传。

迭代查询:客户端向上一级DNS服务器提交请求时,上一级DNS服务器并不直接处理请求,比如本地DNS服务器向上一级DNS服务器提交www.baidu.com这个网站的解析请求,上一级DNS服务器如果有对应的解析结果,就直接返回给本地DNS服务器,如果没有,它会告诉客户端:我这里无法解析这个域名,但是我知道哪个DNS服务器可以处理,你去问问xxxDNS服务器。 然后,客户端又去问xxxDNS服务器。

👉递归查询:
在这里插入图片描述

👉迭代查询:
在这里插入图片描述

DNS做负载均衡

DNS除了用来解析域名,将域名转化为对应的IP地址以外,还起着一个重要的作用:那便是负载均衡。

同样是ping www.baidu.com,可以发现得到的IP地址不一定是相同的。是因为DNS内部做了负载均衡。如果某个域名只绑定了一个IP地址,当请求量大,并发用户多的时候的时候,IP地址对应的主机是承受不了的。而如果一个域名配置了多个IP地址,通过负载均衡,将请求分散到不同的主机上,就能达到高并发,高可用的目的。
在这里插入图片描述
假设我们要访问某个网站,如果是通过IP地址进行访问。由于一个IP地址对应着一个主机,用户量小的时候,这样访问没有问题。但是当用户量大,访问的主机撑不住的时候,我们就得将该应用部署多份,分别部署在多个主机上。但是,我们总不可能在访问某个网站的时候,挨个去访问下该网站对应的多个主机的IP地址,然后找到一个可用的来进行访问把。

这时候,通过使用域名我们就能解决这个问题。我们只需要记住某个网站的域名,该域名可以绑定多个IP地址。当我们访问该域名的时候,由DNS服务器来做负载均衡,为我们返回一个可用的IP地址。这一次请求这个域名时返回的IP地址是192.168.76.100,下一次访问时,由于192.168.76.100这台主机的访问量太大,再访问这台主机,肯定延迟就比较高,可用性也不好。因此,DNS服务器为我返回一个新的可用性更好的主机,比如192.168.76.101。这也可以说明我们为什么需要使用通过域名的方式来访问网站,为什么需要使用DNS。

再来看看windows电脑上的DNS缓存。以cn.bing.com这个域名为例,我们发现,它配置了CNAME。所谓的CNAME相当于就是cn.bing.com这个域名的一个别名。比如张三有个小名叫小三,这就是别名。
在这里插入图片描述
别名有什么作用呢?对于复杂的应用,尤其是跨地域跨运营商的大型应用,需要更加复杂的全局负载均衡机制,因而需要专门的设备或者服务器来做这件事情,这就是全局负载均衡器(GSLB,Global Server Load Balance),在GSLB里面可以配置自己的策略来实现全局的负载均衡。

比如说,你有一个域名:mycompany.com 。在mycompany.com的DNS 服务器中,通过配置 CNAME 的方式,你给mycompany.com起了一个别名,别名为 :a.mycompany.com。然后告诉本地 DNS 服务器,解析a.mycompany.com的时候,让本地DNS服务器去请求GSLB 来解析这个域名,GSLB就可以在解析这个域名的过程中,通过自己的策略实现负载均衡。

参考:DNS协议:网络世界的地址簿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值