一、DNS协议理论知识
1. 域名结构
定义:域名系统采用层次结构的命名方法,每个域名由标号序列组成,总长度不能超过255个字符。
组成:域名由点号分割成多个标号(标签),每个标号最长63个字符。
级别:最低级的域名写在左边,最高级域名写在右边,如jocent.me
中的me
是顶级域名,jocent
是二级域名。
服务基础:域名服务主要基于UDP协议,服务器端口号为53。
2. 域名服务器
根域名服务器:全球共有13个,负责管理顶级域名的服务器信息。
顶级域名服务器:负责管理特定顶级域名下的所有二级域名。
权限域名服务器:负责一个区的域名解析工作。
本地域名服务器:客户端首先向本地域名服务器发起查询请求。
3. 域名解析过程
步骤一:本机向本地域名服务器发出DNS请求报文。
步骤二:本地域名服务器向本机回应DNS响应报文,包含域名对应的IP地址。
递归查询:本地域名服务器为客户机完全解析域名(直到获得最终IP地址)的过程。
迭代查询:每次查询返回部分结果,直到获得最终答案。
4. 递归查询与迭代查询的区别
类型 | 描述 |
递归查询 | 本机向本地域名服务器发出一次查询请求,直到得到最终的IP地址。 |
迭代查询 | 本地域名服务器向根域名服务器查询,直到获得最终答案。 |
二、DNS协议报文格式
1. 头部
会话标识(2字节):用于区分请求报文和应答报文。
标志(2字节):包括QR(查询/响应标志)、opcode(操作码)、AA(授权回答)、TC(可截断)、RD(期望递归)、RA(可用递归)和rcode(返回码)。
数量字段(8字节):包括Questions(查询问题的数量)、Answer RRs(回答记录的数量)、Authority RRs(授权记录的数量)和Additional RRs(附加记录的数量)。
2. 问题部分
查询名:需要查询的域名,以点号分隔。
查询类型:指定查询的类型,如A记录、MX记录等。
查询类:通常为IN(Internet),表示互联网类别。
3. 回答部分
回答记录:包含查询域名的详细信息,如IP地址、别名等。
三、相关问题与解答
1. 什么是DNS?
答:DNS(Domain Name System)即域名系统,用于将易于记忆的域名转换为计算机能够识别的IP地址。
2. DNS的主要功能是什么?
答:DNS的主要功能是将域名解析为对应的IP地址,以便计算机能够通过域名访问目标主机。
3. DNS查询过程中,递归查询和迭代查询有什么区别?
答:递归查询是本地域名服务器为客户机完全解析域名(直到获得最终IP地址)的过程;而迭代查询则是每次查询返回部分结果,直到获得最终答案。
4. DNS协议报文中的头部包含哪些信息?
答:DNS协议报文的头部包含会话标识、标志和数量字段等信息,用于区分请求和应答报文、指示查询类型和状态、以及说明后续区域的记录数。