一、DNS基础介绍
1、定义:DNS即域名系统(Domain Name System),是一种将域名和IP地址相互映射的以层次结构分布的数据库系统,允许终端用户设备将给定的人类可读URL转换为网络可以理解的机器可用IP地址。
2、作用:DNS的主要作用是实现域名到IP地址的解析,方便用户通过易于记忆的域名访问互联网上的服务器,而无需记住复杂的IP地址。
3、工作原理:当用户在浏览器中输入一个域名时,浏览器会先查询本地缓存,如果未找到,则会向本地DNS服务器发起查询请求,本地DNS服务器接收到查询请求后,会首先查询自己的缓存,如果未找到,它会向根域名服务器发起查询,根域名服务器会告诉本地DNS服务器所查询的域名所属的顶级域名服务器的IP地址,本地DNS服务器接收到根域名服务器返回的IP地址后,会向顶级域名服务器发起查询请求,权威域名服务器会告诉本地DNS服务器所查询的域名的权威域名服务器的IP地址,本地DNS服务器接收到权威域名服务器返回的IP地址后,会将其缓存,并将解析结果返回给用户的浏览器。
4、组成部分:主要包括域名空间(domain name space)和资源记录(resource record)、域名服务器(name server)以及解析器(resolver)。
二、DNS报文结构
1、首部:标识(Identification):16位字段,用于标识报文,用于匹配查询和响应;标志(Flags):包含多个标志位,如查询/响应标志、递归标志等;查询记录数(QDCount):指定查询部分的问题数目;回答记录数(ANCount):指定回答部分的记录数目;授权回答记录数(NSCount):指定权威部分的记录数目;附加信息记录数(ARCount):指定附加部分的记录数目。
2、查询部分:域名(QNAME):一个以字节为单位的域名列表,表示查询的域名;查询类型(QTYPE):16位字段,表示查询的资源记录类型;查询类别(QCLASS):16位字段,表示查询的资源记录类别。
3、回答部分:域名(NAME):一个以字节为单位的域名列表,表示查询的域名;类型(TYPE):16位字段,表示资源记录的类型;类别(CLASS):16位字段,表示资源记录的类别;生存时间(TTL):32位字段,表示资源记录的生存时间;数据长度(RDLENGTH):16位字段,表示资源记录数据字段的长度;资源记录数据(RDATA):实际的资源记录数据,可以是IPv4地址、IPv6地址、CNAME等。
4、权威部分:类似于回答部分,包含权威服务器的资源记录信息。
5、附加部分:类似于回答部分,包含额外的资源记录信息,通常用于提供额外的信息,如DNSSEC签名等。
三、基于CH394的DNS实现步骤
1、初始化CH394并创建UDP socket:link成功后可通过CH394向DNS服务器发查询报文,DNS服务器ip要与路由器DNS服务器IP一致,目的端口为53。
2、发送查询报文:按照DNS报文结构构造查询报文并发送给DNS服务器。
3、解析回答报文:接收并解析DNS服务器返回的回答报文,获取所需的IP地址等信息。
四、相关问题与解答
1、问:什么是DNS?
答:DNS即域名系统(Domain Name System),是一种将域名和IP地址相互映射的以层次结构分布的数据库系统,允许终端用户设备将给定的人类可读URL转换为网络可以理解的机器可用IP地址。
2、问:DNS的作用是什么?
答:DNS的主要作用是实现域名到IP地址的解析,方便用户通过易于记忆的域名访问互联网上的服务器,而无需记住复杂的IP地址。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/140359.html