今天看了看DNS的资料,由此产生三个问题:
1. DNS的工作原理?
2. 递归和迭代查询的区别
3. DNS什么时候使用53/tcp 和 53/udp,953/tcp
一、DNS的原理是什么?
DNS其实就是用于域名和IP的互相解析,网上有个形容特别贴切, DNS好比就是一个巨大无比的号码本,上面清清楚楚的记录着各域名和IP的对应关系,比如说:baidu.com --->123.123.13.13亦或是123.123.13.13--->baidu.com。
这两个就分别对应DNS的正向解析和反向解析。
而当对某台服务器发起请求时,客户端的查询顺序是这样的:
客户端>主机的host文件>本地的DNS服务器>上一级DNS服务器>上上一级DNS服务器…>根DNS服务器,最终会通过一个权威的DNS拿到最权威的解析。
二、递归和迭代查询的区别是什么
递归:客户端只发一次请求,要求对方给出最终结果。返回的结果只有两种:查询成功或查询失败。
迭代:又称为“重指引”。客户端发出一次请求,对方如果没有授权回答(向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答),它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。
客户端-本地DNS服务端:这部分属于递归查询。
本地DNS服务端-外网:这部分属于迭代查询。(不启用转发模式)
三、DNS什么时候使用53/tcp和53/udp,953/tcp
UDP53端口用于DNS客户端与DNS服务器端的通信,而TCP53端口用于DNS区域之间的数据复制。而953端口则用于rndc的监控端口,监控bind的统计数据,不需要为了更新某个zone而重启bind。