【TCP-IP详解卷一:协议】ch14 DNS:域名系统

1. 引言

DNS的主要任务是提供主机名和IP地址之间的转换。它是:1)由分层的DNS服务器实现的分布式数据库;2)一个使得主机能够查询分布式数据库的应用层协议

2. DNS基础

2.1 层次结构

在这里插入图片描述
命名树上任何一个结点的域名:将从该结点到最高层的域名串连起来,中间用点分隔。每个结点必须有唯一的域名,但域名树中不同结点可以使用相同的标识。
绝对域名(完全合格的域名)FQDN:以点为结尾的域名

2.2 顶级域名的划分
  1. arpa:地址到名字转换的特殊域
  2. 7个3字符长的组织域(普通域)
    在这里插入图片描述
  3. 2字符长的国家域(地理域)
2.3 区域和名字服务器
  1. 一个独立管理的DNS子树称为一个区域(zone)
  2. 一个区域的授权机构被委派后由它负责向该区域提供多个名字服务器
  3. 一个名字服务器负责一个或多个区域,每个区域要有一个主名字服务器和至少一个辅助名字服务器
  4. 主名字服务器从磁盘文件中调入该区域的所有信息,而辅名字服务器是从主服务器调入所有信息
  5. 每个名字服务器必须知道如何同根服务器联系,根服务器必须知道二级域中每个授权名字服务器的名字和位置
  6. 正在处理请求的名字服务器与根服务器联系,根服务器告诉它与另一个名字服务器联系
2.4 超高速缓存

名字服务器收到有关映射的消息后将消息存入高速缓存中,以后再遇到相同的映射请求就可以直接使用缓存中的结果。。

3. DNS报文格式

在这里插入图片描述

  1. QR:0表示查询报文,1表示响应报文
  2. opcode:0表示标准查询,1表示反向查询,2表示服务器状态请求
  3. AA:表示 “授权回答(authoritative answer)”
  4. TC:表示 “可截断的(truncated)”,使用UDP时该字段表示当应答的总长度超过512字节时只返回前512个字节
  5. RD:表示 “期望递归(recursion desired)”,可以在查询中设置,在响应中返回,该标志告诉名字服务器必须处理这个查询。
  6. RA:表示 “可用递归”,若名字服务器支持递归查询,则在响应中将此位置1
  7. 随后的3位(zero)必须为0
  8. rcode:返回码,0表示无差错,3表示名字差错
3.1 DNS查询报文中的问题部分

在这里插入图片描述举例:
在这里插入图片描述
在这里插入图片描述其中只有A类型和PTR类型能用于查询类型。前者表示期望获得查询名的IP地址,后者请求获得IP地址对应的域名

3.2 DNS响应报文中的资源记录部分

在这里插入图片描述
DNS报文最后3个字段——回答字段、授权字段和额外信息字段都采用该格式。

4. 指针查询(PTR)

给定一个IP地址,返回与该地址对应的域名。
组织加入Internet并获得DNS域名空间授权后,也获得了对应IP地址的in-addr.arpa域名空间的授权。
IP数据报到达一个作为服务器的主机时无论是TCP连接请求还是UDP数据报,服务器进程能获得的是客户的IP地址和端口号,某些服务器需要客户的IP地址来获得在DNS中的指针记录。

注意

  1. DNS名字是由DNS树的底部逐步向上书写的,例如IP地址为140.252.13.33的主机,其DNS名字为33.13.252.140.in-addr.arpa
  2. 应用中,名字解析函数(gethostbyaddr)会接收一个IP地址并返回对应主机的有关信息,反转字节和添加in-addr.arpa域由该函数自动完成。

5. 资源记录

资源记录的不同类型:

类型名描述
A表示期望获得查询名的IP地址
PTR用于指针查询。IP地址被看作in-addr.arpa域下的一个域名(标识符串)
CNAME“规范名字” ,用来表示一个域名(标识符串),有规范名的域名被称为别名
HINFO表示主机信息
MX邮件交换记录。主要用于:1)未连到Internet的站点将一个能连到的站点作为自己的邮件交换器(UUCP协议);2)将无法到达目的主机的邮件传送到一个替代主机;3)机构提供虚拟主机;4)防火墙网关用来限制外界与内部系统的连接
NS名字服务器记录。说明一个域的授权名字服务器,由域名表示。

6. 高速缓存

高速缓存由名字服务器维护。
DNS服务器接收一个DNS回答(例如,某主机名到IP地址的映射)时将映射缓存在本地存储器中,当另一个对相同主机名的查询到达该服务器时,本地DNS服务器就可以立即返回IP地址而不用查询任何其他DNS服务器。

7. 用UDP还是用TCP

UDP和TCP访问都是支持的(DNS名字服务器使用的熟知端口号无论对UDP还是TCP都是53),但主要使用的是UDP(需要自己处理超时和重传)。当响应中TC(删减标志)被置为1时表示响应的长度超出了512字节,这种情况下一般会用TCP重发原查询请求。另外,区域传送(辅助服务器、主名字服务器)时也会使用TCP,因为传送的数据比查询或响应要多得多。

8. 小结

  1. DNS层次树
  2. 名字解析器实现主机名与IP地址的转换
  3. DNS查询和响应的报文格式
  4. DNS的优化措施——指向域名的指针(减少报文长度)、查询结果的高速缓存、in-addr.arpa域(查找IP地址对应域名)、返回的附加资源记录(避免主机重发同一查询请求)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值