DNS消息格式
来源:互联网 发布:淘宝的营销词 编辑:程序博客网 时间:2024/06/05 16:48
一,简介
空谈误国,要让一大堆抽象的DNS概念落地,还是需要了解DNS消息格式的,本文会尽量详细地介绍DNS消息格式的每一个字段。
也可以移步rfc1035了解。
二,概览
DNS消息主要由五部分组成,如下图所示:
Header消息头部QuestionDNS请求Answer回答请求的资源记录(Resource Record(s))Authority指向域的资源记录Additional其他资源记录三,头部格式
头部消息的格式如下图所示:
各字段的意义:
Message ID16位的消息ID标示一次正常的交互,该ID由消息请求者设置,消息响应者回复请求时带上该ID。QR标示该消息是请求消息(该位为0)还是应答消息(该位为1)OPCODE请求类型,目前有三类值:
0 QUERY。标准查询
1 IQUERY, 反向查询
2 STATUS, DNS状态请求
5 UPDATE, DNS域更新请求
AA只在响应消息中有效。该位标示响应该消息的域名服务器是该域中的权威域名服务器。因为Answer Section中可能会有很多域名TC标示这条消息是否因为长度超过UDP数据包的标准长度512字节,如果超过512字节,该位被设置为1RD是否递归查询。如果该位被设置为1,则收到请求的域名服务器会递归查询域名,需要注意的是,该位为1,域名服务器不一定会做递归查询,这取决于域名服务器是否支持递归查询。RA在响应消息中清除并设置。标示该DNS域名服务器是否支持递归查询。RCODE只在响应消息中有效,标示响应消息的类型:
0 成功的响应
1 格式错误--域名服务器无法解析请求,因为请求消息格式错误
2 服务器错误--域名服务器因为内部错误无法解析该请求
3 名字错误-- 只在权威域名服务器的响应消息中有效,标示请求中请求的域不存在
4 Not Implemented--域名服务器不支持请求的类型
5 Refused -- 域名服务器因为策略的原因拒绝执行请求的操作。例如域名服务器不会为特定的请求者返回查询结果,或者域名服务器不会为特定的请求返回特定的数据
QDCOUNT标示请求部分的条目数ANCOUNT标示响应部分的资源记录数。如果响应消息中没有记录,则设置为0NSCOUNT标示权威部分的域名服务器资源记录数。如果响应消息中没有权威记录,则设置为0ARCOUNT标示额外部分的资源记录数。四 请求部分格式
请求消息中包含要请求的内容,请求部分中包含QDCOUNT(往往是1)个条目,每个条目遵循下面的格式
QNAME:请求的域名
QTYPE
QNAME请求的域名。这里需要注意的是域名的编码。请求的域名中没有“.”,域名中的“.”被编码为元信息,指示接下来的多少字节是有效信息。看个例子:
我要请求www.google.com.hk的A记录。
其中的QNAME段是:03 77 77 77 06 67 6f 6f 67 6c 65 03 63 6f 6d 02 68 6b 00
w w w . g o o g l e . c o m . h k
其中的蓝色字体就是元信息
QTYPE请求的资源记录的类型,最常见的有:
0x0001 A记录
0x0002 NS记录
0x0005 CNAME记录
0x0006 SOA记录
0x000B WKS记录
0x000C PRT记录
0x000F MX记录
0x0021 SRV记录
0x0026 A6记录
0x00FF 任何资源记录
更多的资源记录见维基百科
QCLASS请求的资源记录的类型,Internet或CHAOS?最主要的是:
0x0001 IN 或 Internet
五,DNS应答部分
DNS的剩余三个部分有相同的格式:
NAME
请求的域名。需要注意的是,此处的域名有两种类型的标示防范,一是上面提到的元信息标示方法;二是指针法。
指针法中请求的域名由一个16位的地址标示,该地址指向请求部分中的域名,它的地址是请求部分中域名距离消息开头的偏移量
TYPE16位。定义了RDATA部分中的内容:
0x0001 A记录
0x0002 NS记录
0x0005 CNAME记录
0x0006 SOA记录
0x000B WKS记录
0x000C PRT记录
0x000F MX记录
0x0021 SRV记录
0x0026 A6记录
0x00FF 任何资源记录
CLASS16位。响应的资源记录的类型,Internet或CHAOS?最主要的是:
0x0001 IN 或 Internet
TTL 32位。该资源记录被缓存的秒数。 RDLENGTH16位。RDATA部分的长度,单位是字节。 RDATA不同类型的资源记录有不同的RDATA格式:
SOA记录:
Primary NS 变长类型,域中master的名字
Admin MB 变长类型,域管理者的邮箱
Serial Number 32位
Refresh Interval 32位
Retry Interval 32位
Expiratio Limit 32位
TTL 32位
MX记录:
Preference
Main Exchanger 提供邮件服务的主机名
A记录:
IP地址,32位
PRT,NS记录
Name: 如果是PRT记录,则返回IP地址对应的域名;如果是NS记录,则返回NS。
转自:http://www.cnblogs.com/cobbliu/archive/2013/04/02/2996333.html
参考文献:
· http://www.zytrax.com/books/dns/apd/rfc1035.txt
· DNS以及所有标准归类http://en.wikipedia.org/wiki/Domain_Name_System
- DNS消息格式
- DNS消息格式
- DNS消息格式
- DNS报文格式
- 总结:DNS报文格式
- DNS协议 报文格式
- DNS报文格式
- DNS 报文格式
- DNS报文格式分析
- DNS的报文格式
- DNS报文格式
- DNS报文格式
- DNS协议 报文格式
- DNS报文格式
- DNS报文格式
- dns报文格式
- DNS报文格式
- DNS基本概念&报文格式
- [ArcGIS必打补丁]ArcGIS 10.1 SP1 for (Desktop, Engine, Server) Quality Improvement Patch
- windows 创建wifi共享网络
- eclipse 自动生成CXF项目 无Spring版
- java之Semaphore
- Office中依然存在OLE风险!
- DNS消息格式
- objc runtime 动态增加属性
- Matlab生成Word文件(含表格和图片插入)
- printf 打印字符串的任意一部分
- centos: git clone提示Permission denied publickey 问题
- zoj 1015 弦图判断
- js接收页面传来的参数
- Michael Jordan on Machine Learning
- 郭宇:Airpub - 纯前端博客引擎实践