一、DNS
因特网上的主机,可以使用多种方式标识,比如主机名或IP地址。
- 一种标识方法就是用它的主机名(hostname),比如·www.baidu.com、www.google.com、gaia.cs.umass.edu等。这方式方便人们记忆和接受,但是这种长度不一、没有规律的字符串路由器并不方便处理。
- 还有一种方式,就是直接使用定长的、有着清晰层次结构的IP地址,路由器比较热衷于这种方式。
为了折衷这两种方式,我们需要一种能进行主机名到IP地址转换的目录服务。这就是*域名系统(Domain Name System,DNS)的主要任务。
DNS是:
1、一个由分层的DNS服务器实现的分布式数据库
2、一个使得主机能够查询分布式数据库的应用层协议
而DNS服务器通常是运行BIND软件的UNIX机器,DNS协议运行在UDP上,使用53号端口
DNS通常是由其他应用层协议所使用的,包括HTTP
、SMTP
等。其作用则是:将用户提供的主机名解析为IP地址
DNS的一种简单设计就是在因特网上只使用一个DNS服务器,该服务器包含所有的映射。很明显这种设计是有很大的问题的:
-
单点故障:如果该DNS服务器崩溃,全世界的网络随之瘫痪
-
通信容量:单个DNS服务器必须处理所有DNS查询
-
远距离的集中式数据库:单个DNS服务器必须面对所有用户,距离过远会有严重的时延。
-
维护:该数据库过于庞大,还需要对新添加的主机频繁更新。
所以,DNS被设计成了一个分布式、层次数据库
二、DNS服务器
为了处理扩展性问题,DNS使用了大量的DNS服务器,它们以层次方式组织,并且分布在全世界范围内。
域名服务器是提供域名解析的服务器,在有基本的知识下,任何人都可以搭