DNS(Domain Name System)网域名称系统是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
本文概要:
DNS基本概念
DNS服务器
DNS解析流程
负载均衡
DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
一、DNS基本概念
域名:如在浏览器地址栏输入的www.baidu.com,www.hao123.com等我们称之为域名,域名即网站名称。
如果说互联网的本质是连接一切,域名则为“一切”提供了身份标识功能,而IP为“一切”提供了寻址功能。域名和IP的关系可类比每个人的姓名与住址。
根域、顶级域、二级域、子域:域名采用层次化的方式进行组织,每一个点代表一个层级。一个域名完整的格式为www.baidu.com. 最末尾的点代表根域,常常省略;com即顶级域(TLD);baidu.com即二级域。
依次类推,还有三级域、四级域等等。子域是一个相对的概念,baidu.com是com的子域,www.baidu.com是baidu.com的子域。
域名系统:即DNS(Domain Name System)。DNS主要解决两方面的问题:域名本身的增删改查以及域名到IP如何映射。
正向解析:查找域名对应IP的过程。
反向解析:查找IP对应域名的过程。
解析器:即resolver,处于DNS客户端的一套系统,用于实现正向解析或者反向解析。
权威DNS:处于DNS服务端的一套系统,该系统保存了相应域名的权威信息。权威DNS即通俗上“这个域名我说了算”的服务器。
递归DNS:又叫local dns。递归DNS可以理解为是一种功能复杂些的resolver,其核心功能一个是缓存、一个是递归查询。
收到域名查询请求后其首先看本地缓存是否有记录,如果没有则一级一级的查询根、顶级域、二级域……直到获取到结果然后返回给用户。日常上网中运营商分配的DNS即这里所说的递归DNS。
转发DNS 转发DNS是一种特殊的递归。如果本地的缓存记录中没有相应域名结果时,其将查询请求转发给另外一台DNS服务器,由另外一台DNS服务器来完成查询请求。
公共DNS 公共DNS属于递归DNS。其典型特征为对外一个IP,为所有用户提供公共的递归查询服务。
二、DNS服务器
DNS 服务器,一定要设置成高可用、高并发和分布式的。
根DNS服务器:返回顶级域 DNS 服务器的 IP 地址。
顶级域DNS服务器:返回区权威 DNS 服务器的 IP 地址。
权威DNS服务器:返回相应主机的 IP 地址。
三、DNS解析流程
为提高 DNS 解析性能,很多网络都会就近部署 DNS 缓存服务器。
1. 客户端向本地 DNS 发送 DNS 请求,解析 www.163.com 的 IP 地址。本地 DNS 由网路服务商(ISP)自动分配。
2. 本地 DNS 在缓存中找到与域名对应的 IP,返回;否则,请求根 DNS。根 DNS 是最高层次的,全球共13套,不直接解析域名,但能指出下一步访问谁。
3. 根DNS 发现是后缀 .com,返回 .com 的顶级 DNS 的地址。
4. 本地 DNS 转向问顶级 DNS。
5. 顶级 DNS 返回 www.163.com 区域的权威 DNS 的地址。
6. 本地 DNS 转向问权威 DNS,权威 DNS 解析了 IP 后返回。
7. 本地 DNS 将 IP 地址返回给客户端。
四、负载均衡
1. 内部负载均衡
配置域名解析策略,这次返回第一个 IP,下次返回第二个 IP,就可以实现负载均衡了。
2. 全局负载均衡
用户访问某个域名时,用 IP 地址轮询访问多个数据中心。如何一个数据中心挂了,在 DNS 服务器中将其对应的 IP 删掉,实现高可用。
每个用户访问离自己最近的数据中心。
全局负载均衡器(GSLB, Global Server Load Balance)
在 yourcompany.com 的 DNS 服务器中,一般通过配置 CNAME 的方式,给 object.yourcompay.com 起一个别名,如 object.vip.yourcompany.com,然后告诉本地 DNS 服务器,去请求 GSLB 解析这个域名,GSLB 就可以在这个解析域名的过程中,通过自己的策略实现负载均衡。
图中有两层 GSLB,因为分运营商和地域。这样,不同运营商的客户可不跨运营商访问,提高吞吐量,减少时延。
第一层 GSLB,通过查看请求它的本地 DNS 服务器所在运营商,知道用户所在运营商。假设时移动,通过 CNAME 的方式,通过另一个别名 object.yd.yourcompay.com, 告诉 本地 GSLB 服务器去请求第二层的 GSLB。
第二层 GSLB,通过查看请求它的本地 DNS 服务器所在地址,知道用户的地理位置,将离用户近的 Region 里的6个内部负载均衡(SLB,Server Load Balancer) 的地址返回给本地 DNS 服务器。
本地 DNS 服务器将结果返回给本地 DNS 解析器。
本地 DNS 解析器缓存结果后,返回给客户端。
客户会得到属于相同运营商且距离较近的 Region 1 里的6个IP地址,随机/轮询访问即可。
感谢大家的支持与厚爱,记得要多多转发,点击关注噢!笔芯
点击以下链接,发现更多精彩
领取专属 10元无门槛券
私享最新 技术干货