DNS协议
- DNS服务器相当于网络世界记录IP地址的地址簿。由于DNS服务器的重要性,它一定要设置成高可用、高并发和分布式的。
- 域名服务器是按照树状结构组织的,因而域名查找是使用递归的方法,并通过缓存的方式增强性能。
根DNS服务器:返回顶级域DNS服务器的IP地址;
顶级域DNS服务器:返回权威DNS服务器的IP地址;
权威DNS服务器:返回相应主机的IP地址。
- 为了提高DNS的解析性能,很多网络都会就近部署 DNS缓存服务器。本地域名服务器(本地DNS)先查看本地的缓存是否有记录,如果有则直接使用,如果没有则需要通过递归解析出IP地址。DNS递归解析流程如下:
A.客户端发出一个DNS请求(如问www.163.com的IP是什么),首先发给本地DNS。(本地DNS如果是通过DHCP协议配置,则它由网络服务商自动分配。)
B.本地DNS收到来自客户端的请求,如果能找到www.163.com,它就直接返回IP地址,如果没有找到,本地DNS会去问它的根域名服务器,www.163.com的IP地址在何处(根域名服务器不直接用于域名解析,但能指明一条道路)。
C.根DNS收到来自本地DNS的请求,发现后缀是.com,会给本地DNS一个.com的顶级域名服务器的地址。
D.本地DNS转向问顶级域名服务器,顶级域名服务器会给它一个负责www.163.com区域的权威DNS服务器的IP地址。
E.本地DNS转向问权威DNS服务器(权威DNS服务器是域名解析结果的原出处),权威DNS服务器查询后将对应的IP地址告诉本地DNS。
F.本地DNS再将IP地址返回客户端,客户端和目标建立连接。
- DNS可以做内部负载均衡。如多个应用要访问数据库,在这些应用里应该配置这个数据库域名而不是IP地址,因为一旦这个数据库换到了另外一台机器上而改变了IP地址的话,就需要将这些应用全部修改一遍IP地址,但是如果配置了域名,则只要在DNS服务器里将域名映射为新的IP地址。在这个基础上,如果某个应用要访问另外一个应用,如果配置另外一个应用的IP地址,那么这个访问就是一对一的。但是当被访问的应用面临多个应用访问且撑不住的时候,需要配置成为域名来进行负载均衡,在域名解析时,这次返回第一个IP,下次返回第二个IP,就可以实现负载均衡。