DNS是什么:
- 一个由分层的DNS服务器实现的分布式数据库
- 一个使得主机能够查询分布式数据库的应用层协议。DNS在UDP之上使用53号端口
DNS工作机理
- 用户主机上的DNS接收到后,向网络发送DNS查询报文。所有的DNS报文都通过端口53发送。
- 经过查询,用户主机接收到一个提供希望映射的DNS回答报文,这个映射结果被传送到调用DNS的应用程序。
DNS查询
递归查询和迭代查询
- 递归查询,如果没有在DNS服务器上查询到该映射,此台服务器就会自己发送请求,请求其他DNS服务器,然后返回给请求此台DNS服务器的用户。
- 迭代查询,如果在DNS服务器上没有找到该映射,此台服务器就会返回上一级的DNS服务器,发送请求的用户就会将返回的结果进行再次请求。直到请求到对应的映射为止。
** 实践中,查询模式是,从请求主机到本地DNS服务器是递归的,其余的查询是迭代的。**
DNS记录和报文
记录
资源记录包含:Name,Value,Type,TTL
TTL记录该记录生存的时间。
- Type=A,则Name是主机名,Value是该主机名对应的ip地址。
- Type=NS,Name是一个域,Value是权威DNS服务器的主机名。
- Type=Cname,Value是别名为Name的主机对应的规范主机名。
- Type=MX,Value是个别名为Name的邮件服务器的规范主机名。
报文
- 前12个字节是首部区域,客户用它来匹配发送的请求和接收到的回答。
- 问题区域包括名字字段,包含被查询的主机名字,类型字段,正在被询问的问题的类型。