DNS
简介
DNS是域名服务系统。
TCP/IP协议中的IP层都是通过IP地址进行通信的,但是IP地址是一串数字,不利于记忆,为了更加便于通信,需要名字服务,可以通过容易记忆的命名来替代IP地址,通信过程中再通过名字服务将名字更换为IP地址。
IP的名字服务就是域名。
域名一般通过三级结构构成,A.B.C,例如www.aigetting.com,其中com是顶级域名,aigetting.com是权威域名。
DNS系统本质就是通过域名查询IP的地址的系统,DNS提供了一个分层的命名空间,企业和个人可以将名字注册到DNS系统。通信的时候可以通过这些名字获取实际提供服务的服务器的IP地址。
DNS也是一个分布式的数据库,可以可靠的为全球提供服务。
原理
DNS服务器
域名一般是多层结构,按照“.”作为分隔符可以将域名切分为多个层次,不同层次对应不同的命名空间。
例如www.aigetting.com,其中com是顶级域名,aigetting.com是二级域名,www.aigetting.com是三级域名。
DNS解析的过程实现是首先请求DNS解析器,例如请求www.aigetting.com,DNS解析器会首先查询是否已经缓存了该域名,如果有缓存则直接返回。
如果DNS解析器没有缓存该数据,则会请求根域名服务器,根域名服务器会根据访问的顶级域名返回对应的顶级域名服务器,比如返回处理com顶级域名的顶级域名服务器,顶级域名一般通过组织(例如.com、.edu 或 .org)和国家(例如.cn、.hk、.us等)进行区分。
在路由到顶级域名服务器之后,会讲DNS请求转发到对应的权威域名服务器。权威域名服务器会返回对应的IP地址信息。
根据职责可以把DNS服务器分为根域名服务器,顶级域名服务器,权威域名服务器。
根据DNS的职责不同可以分为权威服务器以及非权威服务器,其中非权威服务器只能作为缓存提供查询服务,不能提供域名注册等域名的写入更新能力。
DNS记录类型
DNS 记录提供与域名相关的详细信息,DNS记录根据服务内容的不同分为多种类型的记录。
- A 记录: 将域名映射到 IPv4 地址。
- AAAA 记录:将域名映射到 IPv6 地址。
- MX(Mail Exchange) 记录:到邮件服务器的映射。
- TXT 记录:将文本存储在 DNS 记录中,主要用于验证域名所有权和防止垃圾邮件。
- NS(名称服务器)记录: NS 记录直接发送到域或子域的权威名称服务器。
- CNAME 记录:将域名映射到其他域或子域的别名。
查询协议
业务和DNS服务之间的通信协议是基于UDP的,因为DNS协议本身数据包较小,如果使用TCP协议,链接的建立以及销毁在整个通信过程中占据比重过大,效率较低,所以使用UDP协议是较为合适的,UDP协议使用53端口号。
DNS的查询报文和回应报文结构是相同的。
DNS报文结构分为头部和数据区域。其中数据区域又问题问题域和应答域。