DNS详解
一、DNS简介
DNS,全称Domain Name System(域名系统),是互联网的一项服务,它作为将域名和与之相对应的IP地址进行转换的分布式数据库,能够使人更方便地访问互联网,而不需要记住复杂的IP地址,DNS使用UDP端口53进行通信,当前每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
二、域名分层结构
域名采用层次树状结构的命名方法,任何一个连接在因特网上的主机或路由器都有唯一的层次结构名字,即域名,域名可以划分为根域、顶级域、主域名和子域名等部分。
层级 | 示例 |
根域 | . |
顶级域 | .com, .edu |
主域名 | aliyun.com |
子域名 | www.aliyun.com, example.aliyun.com |
三、DNS解析过程
DNS解析过程通常包括递归查询和迭代查询两种方式,以下是一个典型的DNS解析过程:
1、主机向本地服务器发送递归查询:假设主机m.xyz.com想知道另一个主机y.abc.com的IP地址,它会先向本地服务器dns.xyz.com进行递归查询。
2、本地服务器迭代查询根域名服务器:本地服务器采用迭代查询的方式,向一个根域名服务器查询。
3、根域名服务器返回顶级域名服务器地址:根域名服务器告诉本地服务器下一步应查询的顶级域名服务器dns.com的IP地址。
4、本地服务器查询顶级域名服务器:本地服务器向顶级域名服务器dns.com进行查询。
5、顶级域名服务器返回权限域名服务器地址:顶级域名服务器告诉本地服务器下一步应查询的权限服务器dns.abc.com的IP地址。
6、本地服务器查询权限域名服务器:本地服务器向权限域名服务器dns.abc.com进行查询。
7、权限域名服务器返回最终结果:权限域名服务器告诉本地服务器所查询的主机的IP地址。
8、本地服务器返回结果给主机:本地服务器最后把查询结果告诉m.xyz.com。
四、DNS术语
1、递归查询:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。
2、迭代查询:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪个域名服务器进行查询。
3、DNS缓存:将解析数据存储在靠近发起请求的客户端的位置,以此减少递归查询过程,使用户更快获得请求结果。
4、TTL:TTL值全称是“生存时间(Time To Live)”,表示DNS记录在DNS服务器上缓存的最长时间。
5、IPV4/IPV6双栈技术:在一个系统中同时使用IPV4和IPV6这两个可以并行工作的协议栈。
6、TLD Server:指顶级域名服务器。
7、DNS Resolver:指本地域名服务器,是DNS查找中的第一站,负责处理发出初始请求的DNS服务器。
8、Root Server:指根域名服务器,当本地域名服务器在本地查询不到解析结果时,会向其进行查询。
9、DNS Query Flood Attack:即DNS查询攻击,通过向被攻击的服务器发送大量的域名解析请求,导致DNS服务器解析域名超时。
10、URL转发:通过服务器的特殊设置,将一个域名指向另一个已存在的站点。
11、ednsclientsubnet:DNS扩展协议,允许DNS resolver传递用户ip地址给authoritative DNS server。
12、DNSSEC:即域名系统安全扩展,提供一种可以验证应答信息真实性和完整性的机制。
五、DNS记录类型
记录类型 | 描述 |
A记录 | 指定域名对应的IPv4地址。 |
AAAA记录 | 指定域名对应的IPv6地址。 |
CNAME记录 | 别名解析,将多个不同域名转到一个域名记录上。 |
TXT记录 | 一般指某个主机名或域名的说明。 |
MX记录 | Mail Exchanger记录,用于电子邮件系统发邮件时根据收信人的地址后缀定位邮件服务器。 |
NS记录 | Name Server记录,用来指定该域名由哪个DNS服务器来进行解析。 |
SRV记录 | 标识某台服务器使用了某个服务,常见于微软系统的目录管理。 |
CAA记录 | Certificate Authority Authorization记录,限定域名颁发的证书和CA之间的联系。 |
六、DNS报文格式
DNS报文由多个部分组成,每个部分都有特定的功能和格式。
1. DNS报文首部格式
字段名称 | 长度(字节) | 描述 |
事务ID | 2 | 用于关联DNS查询与应答 |
标志 | 2 | 包括查询/响应标志、opcode、AA、TC、RD、RA、rcode等信息 |
问题数 | 2 | 指定问题部分条目数 |
回答资源记录数 | 2 | 指定应答部分中回答资源条目数 |
权威资源记录数 | 2 | 指定权威资源记录数 |
附加资源记录数 | 2 | 指定附加资源记录数 |
2. 问题区格式
子字段名称 | 长度(字节) | 描述 |
QNAME | 可变 | 查询的域名 |
QTYPE | 2 | 查询类型,如A、NS等 |
QCLASS | 2 | 查询类别,通常为IN(互联网) |
3. 回答区格式
子字段名称 | 长度(字节) | 描述 |
NAME | 可变 | 资源记录名 |
TYPE | 2 | 资源记录类型 |
CLASS | 2 | 资源记录类别,通常为IN |
TTL | 4 | 生存时间 |
RDLENGTH | 2 | 资源数据长度 |
RDATA | 可变 | 资源数据,根据类型不同而不同 |
七、DNS客户端检测工具
1、host:解析域名对应的IP地址和别名等信息,语法:host [选项] [主机名或ip] [server]
。
host a www.baidu.com
2、nslookup:查询DNS信息的命令,语法:nslookup [主机名或IP]
。
nslookup www.baidu.com nslookup server #查看本机DNS服务器
3、dig:域名查询工具,可以用来测试域名系统工作是否正常,语法:dig [选项] [主机名]
。
dig @ns.baidu.com www.baidu.com A +trace
八、相关问题与解答
1.什么是递归查询?
递归查询是指DNS服务器为客户机完全解析域名(直到获得最终的IP地址)的过程,如果本地域名服务器无法回答一个查询,它会代表客户端向其他DNS服务器进行查询,直到得到最终结果,然后将结果返回给客户端。
2.什么是迭代查询?
迭代查询是指DNS服务器在收到查询请求时,如果不能直接回答,会将客户端引导到能回答该问题的下一个DNS服务器的IP地址,然后客户端继续向这个DNS服务器发送查询请求。
就是关于DNS的详细内容,涵盖了基本概念、解析过程、术语解释、记录类型、报文格式以及常用工具等方面,希望对您理解DNS有所帮助。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/117384.html