dns提供的服务
- 提供主机名到ip地址的转换
- 提供主机别名,邮件服务器名到规范主机名的转换
- 负载均衡,一个规范主机名可能对应一个ip地址集合,在相应时dns服务器循环映射到不同的ip地址,实现负载均衡。
dns工作机理
- dns运行在udp之上,使用53号端口
分布式、层次数据库
- 有三种类型的dns服务器
- 根dns服务器:提供tld服务器的ip地址
- 顶级域(tld)服务器:提供权威服务器的ip地址
- 权威服务器:存储着记录,即主机名到ip地址的映射
- 同时还有一个本地dns服务器,所有的请求先被发送到本地dns服务器,本地dns服务器向根dns服务器发出查询,获取到返回的顶级域dns服务器的ip地址;之后向顶级域dns服务器发出查询,获取到返回的权威dns服务器的ip地址;最后向顶级域服务器发出查询,获取到主机名对应的IP地址,返回给本地dns服务器,本地dns服务器再返回给浏览器,浏览器根据ip地址发出http请求。
- 在上面这个例子中前两次查询是递归的,后面三次查询是迭代的
- 很多情况下顶级域服务器只知道中间dns服务器的ip地址,要通过中间dns服务器才能获取到权威dns服务器的IP地址。例如一所大学有dns服务器,大学下的每个系也有自己的dns服务器,edu顶级域dns服务器知道中间dns服务器的ip地址——dns.umass.edu。之后通过这个中间dns服务器查询出权威dns服务器的ip地址——dns.cs.umass.edu。
dns缓存
- 当某dns服务器接收到一个响应后能将映射缓存在本地存储器中,但因为主机名到ip地址的映射不是永久的,所有一段时间后会失效。(通常为两天)
- 优点:
- 改善时延
- 减少因特网中dns报文的数量
dns记录和报文
- dns服务器中存储了资源记录(RR,resource record),资源记录是一个四元组(Name,Value,Type,TTL)。TTL为记录的生存时间。
- (relay1.bar.foo.com,145.37.93.126,A),Type为A的资源记录提供了规范主机名到ip地址的映射
- (foo.com,dns.foo.com,NS),Type为NS的资源记录提供了域到其权威dns主机名的映射
- (foo.com,relay1.bar.foo.com,CNAME),Type为CNAME的资源记录提供了主机别名到规范主机名的映射
- (foo.com,mail.bar.foo.com,MX),Type为MX的资源记录提供了邮件服务器主机别名到规范主机名的映射
- dns报文