DNS与负载均衡

引言

互联网上通过IP地址区分一个个设备,但是IP地址不利于记忆,于是产生了诸如google.com之类的域名去方便用户记忆。当我们访问谷歌网站的时候,不再需要输入谷歌的IP去访问,这一系列过程由后台的DNS机制将域名转换为IP地址。

1 DNS原理解析

DNS整个解析过程如下:
在这里插入图片描述
注:如上图,整个解析过程前半部分是责任链模式,后半部分是递归查询模式。

2 DNS关键记录

在DNS返回的解析结果包含各种记录,其中关键记录类型有A记录、CNAME记录和NS记录。
A记录:用来记录所查询域名对应的IP地址。
CNAME记录:将该域名映射成另一个域名,这个域名又称别名。CNAME记录只能是另一个域名。
NS记录:所查询的域名的子域名对应的DNS解析服务器,例如上图中的mail就在google自有的DNS服务器做下级解析。NS记录可以是域名也可以是IP地址,为域名时必须指明关联的IP。
注:优先级由高到低依次是NS记录、A记录、CNAME记录;此外,还有TTL说明该记录可有效缓存时间。

3 DNS负载均衡

通过NS记录全局分发
通过对DNS的关键记录分析,不难发现在解析mail.google.com的前半部分由运营商和域名管理机构处理阶段。这些都是通用的处理过程,不受网站所控。后半部分是转向到网站的专用DNS服务器,这部分是网站可控阶段,可以实现按地区或负载分配IP。
通过CNAME记录分发
除了上面的方式,当访问www.google.com时,可以给www.google.com添加CNAME记录,让它转向到另一个域名,例如google.cdn.com(这个域名只是举例说明,未必真有这个域名)。然后解析google.cdn.com的过程中又可以按照NS记录的方式引入到cdn.com的专用DNS服务器来实现按地区或负载分配IP。
注:其实CDN加速就是利用上述原理负载到离用户最近的区域服务器;此外,在本地DNS服务器由运营商直接解析到CDN服务器理论上也是可行的,不过这种需要给运营商费用做特别转发。

猜你喜欢

转载自blog.csdn.net/fs3296/article/details/105392981