14章 DNS:域名系统
14.1 引言
域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息。DNS提供了允许服务器和客户程序相互通信的协议。
14.3 DNS报文格式
DNS由12字节长的首部和4个长度可变的字段组成。
标识字段有客户程序设置,并由服务器返回结果。
- QR:0标识查询,1表示响应报文
- opcode:0标准查询,1反向查询,2服务器状态请求
- AA:授权回答(authoritative answer)。该名字服务器是授权于该域的
- TC:可截断的(truncated)。使用UDP时,它表示当应答总长度超过512字节时,只返回前512字节。
- RD:期望递归(recursion desired)。1:递归查询,服务器必须处理这个查询;0:迭代查询,如果没有授权回答,服务器可返回一个能解答该查询的其他服务器列表
- RA:可用递归。如果名字服务器支持递归查询,该字段置1。
- zero:必须置0
- rcode:一个4bit返回码。0:无差错,3:名字差错
14.3.1 DNS查询报文中的问题部分
- 查询名每个标识符以首字节的计数值来说明随后的标识符的字节长度,每个名字以最后为0结束。
- 技术字节必须是0~63
- 该字段无需填充字节
每个问题有一个查询类型,而每个响应也有一个类型。常用的查询类型是A类型,标识期望获得查询名的IP地址。一个PTR查询则请求获得一个IP地址对应的域名。这是一个指针查询。
14.3.2 DNS响应报文中的资源记录部分
DNS报文最后三个字段,回答字段、授权字段和附加信息字段,均采用一种称为资源记录RR(Resource Record)的相同格式。
- 域名:记录中资源数据对应的名字。格式同14-6
- 类型:RR的类型码。值同查询类型一样。通常为1,指Internet数据。
- 生存时间:客户程序保留该资源记录的秒数。资源记录通常的生存时间值为2天。
- 资源数据长度:资源数据的数量。该数据格式依赖于类型字段值。对于类型1 ,资源数据是4字节的IP地址。
例子:
14.5 指针查询
指针查询的方式。即给定一个IP地址,返回与改地址对应的域名。