- 使用53端口
- 域名不区分大小写
- 底层为UDP协议而不是TCP协议
- 如果很短时间内没有响应返回,就再次发送记录
- 重复一定次数后尝试另一个服务器
- 每次查询报文都包含一个标识符,并复制到响应中,以防止混淆查询结果
- 为什么浏览器上不了网,QQ却能连上?
- DNS出了故障,而QQ直接通过IP地址连接服务器,无须DNS解析
层次性服务器
- 采用分布式,层次性数据库
- 负责管理下级域的DNS服务器需要把自己的IP地址注册到上级DNS服务器中
-
本地DNS服务器
- 每个用户通过ISP接入网络时,该ISP应该提供一台本地DNS服务器的地址
- 当用户主机发送DNS请求时,该请求被发往本地DNS服务器,该服务器代替用户向上述分层DNS数据库迭代请求
-
向本地DNS服务器发送消息时,我们当然也需要知道DNS服务器IP地址,不过这个地址是事先设置好的,无须查询
-
权威DNS服务器
- 每个组织(域名)必须提供可访问的权威DNS服务器来记录组织下面的服务器地址
- 当然也可以付费把记录储存在服务提供商提供的权威DNS服务器中
- 注册域名时,需要提供权威权威DNS服务器地址,此时注册登录机构将下面记录插入DNS系统中
(example.com, dns.example.com, NS) (dns.example.com, 212.212.212.1, A)
DNS记录
- 格式:
(Name, Value, Type, TTL)
TTL
表示生存时间
Type
分类:Type=A
: 表示域名到IP地址的映射(www.example.com, 145.37.92.1, A)
Type=NS
: 表示该域或组织到权威DNS的域名(foo.com, dns.foo.com, NS)
Type=CNAME
: 别名到到规范域名的映射- 一般是多对一映射
(foo.com, relay1.bar.foo.com, CNAME)
别名(CNAME)
-
当一个服务器可以提供多种服务时,为了方便记忆和管理,可以让多个别名指向同一个规范域名
- 例如
host.example.com
可以提供web和邮件服务,那么可以把www.example.com
和@example.com
都指向host.example.com
- 例如
-
当使用CDN服务的时候,服务商提供的就是一个CNAME地址
- CDN服务商可以比较方便更换提供的域名的A记录,而不用变更所有使用者域名的A记录
- CDN服务商可以比较方便更换提供的域名的A记录,而不用变更所有使用者域名的A记录
-
最上层是常规的DNS解析过程,用户通过local DNS做递归查询,最终定位到taobao.com权威DNS服务器
-
中间层可以称为GSLB(Global Server Load Balancing),作用是提供域名的智能解析,根据一定的策略返回结果
- taobao.com权威DNS服务器会根据不用的域名,CNAME到不同的GSLB做智能调度
- CNAME的作用有点类似请求分发
-
最下层是应用层,提供真正的服务