计算机网络(11)——DNS应用概述

DNS 概述

因特网上的主机有 IP 地址域名(hostname)这两种标识方式,域名几乎没有提供关于主机在因特网中位置的信息,且可能由不定长的字母数字组成,路由器难以处理,因此路由器喜欢定长的、有着层次结构的 IP 地址,但是人们喜欢便于记忆的域名标识方式

因此我们需要一种能进行域名到 IP 地址转换的目录服务,这就是域名解析系统(Domain Name System, DNS,DNS 是:

  • 一个由多层 DNS 服务器构成的分布式数据库。
  • 一个应用层协议:完成域名的解析。

DNS 协议虽然实现的是 Internet 的核心功能,但它却是一个应用层协议,其原因在于:
(1)使用客户-服务器模式运行在通信的端系统之间;
(2)在通信的端系统之间使用下面的端到端运输协议来传送 DNS 报文。

然而,DNS 与其他应用程序的不同之处在于,DNS 不是一个直接和用户打交道的应用,而是为因特网上的应用程序提供一种核心功能,即将主机名转换为其背后的 IP 地址

DNS 服务器通常是运行 BIND 软件的 UNIX 机器。DNS 协议运行在 UDP 之上,使用 53 号端口

举一个例子,当某用户主机上的一个浏览器(即一个 HTTP 客户)请求 URL:www.someschool.edu/index.html时,为了用户主机能将 HTTP 请求报文发送到 Web 服务器,该用户主机必须获得 www.someschool.edu 的 IP 地址。其做法如下:

  • 同一台用户主机上运行着 DNS 应用的客户端
  • 浏览器从上述 URL 中抽取出主机名 www.someschool.edu,并将这台主机名传给 DNS 应用的客户端。
  • DNS 客户向 DNS 服务器发送一个包含主机名的请求。
  • DNS 客户最终会收到一份回复报文,其中含有对应与该主机名的 IP 地址。
  • 一旦浏览器接收到来自 DNS 的该 IP 地址,它能够向位于该 IP 地址 80 端口的 HTTP 服务器进程发起一个 TCP 连接
  • 建立 TCP 连接之后,浏览器便可以通过 Socket 发送 HTTP 请求报文。

从这个例子,我们可以看到 DNS 给使用它的应用带来了额外的时延,但通常想获得的 IP 地址就缓存在一个“附近的” DNS 服务器中,这有助于减少 DNS 的网络流量和 DNS 的平均时延。

DNS 的功能

除了进行域名到 IP 地址的转换外,DNS 还提供了一些重要的服务:

  • 主机别名(host aliasing):主机有规范主机名(canonical hostname),也可能拥有一个或多个别名,通常主机别名(当存在时)比主机规范名更加容易记忆。应用程序可以调用 DNS 来获得主机别名对应的规范主机名以及主机的 IP 地址。
  • 邮件服务器别名(mail server aliasing):显而易见,人们也非常希望电子邮件地址好记忆。
  • 负载均衡(load distribution):DNS 也用于在冗余的服务器之间进行负载分配。繁忙的站点被冗余分布在多台服务器上,每台服务器均运行在不同的端系统上,有着不同的 IP 地址。由于这些冗余的 Web 服务器,一个 IP 地址集合因此与同一个规范主机名相联系。当使用映射到某地址集合的域名发出 DNS 请求时,DNS 服务器就使用 IP 地址的整个集合进行响应,但在每个回答中循环这些地址次序。因为客户通常总是向 IP 地址排在最前面的服务器发送 HTTP 请求报文,所以 DNS 就在所有这些冗余的 Web 服务器之间循环分配了负载。

DNS 工作机理概述

分布式、层次数据库

在这里插入图片描述

DNS 使用了大量的 DNS 服务器,它们以层次方式组织,并且分布在全世界范围内。没有一台 DNS 服务器拥有因特网上所有主机的映射,映射是分布在所有的 DNS 服务器上的。大致来说,有三种类型的 DNS 服务器:

  • 根 DNS 服务器本地 DNS 服务器无法解析域名时,本地 DNS 服务器访问根 DNS 服务器。如果根 DNS 知道映射,那么向本地 DNS 服务器返回映射,否则访问相应的顶级 DNS 服务器(递归、迭代)。
  • 顶级 DNS 服务器(Top-Level-Domain, TLD)。负责 com, org, net, edu 等顶级域名和国家顶级域名,例如 cn, uk, fr 等。
  • 权威 DNS 服务器。组织的域名解析服务器,提供组织内部服务器(如 Web 服务器和邮件服务器)的解析服务。一个组织机构能够选择实现它自己的权威 DNS 服务器以保存 DNS 记录,也可以选择支付费用让这些记录存储在某个服务提供商的一个权威 DNS 服务器中。

根、TLD和权威 DNS 服务器都处在该 DNS 服务器的层次结构中,但是还有一类重要的 DNS,称为本地 DNS 服务器(也叫默认域名解析服务器),严格来说它并不属于该服务器的层次结构,但它对 DNS 层次结构是重要的。每个 ISP(如一个大学、一个系、一个公司或一个居民区的 ISP)都有一个本地域名服务器,当该组织内部的主机进行 DNS 查询时,查询被发送到本地域名服务器,如果它无法解析域名,那么它起到代理的作用,将查询转发到 DNS 服务器层次结构中

DNS 查询示例

迭代查询

  • 被查询服务器返回域名解析服务器的名字;
  • “我不认识这个域名,但是你可以问这个 DNS 服务器”。

在这里插入图片描述

递归查询

  • 将域名解析的任务交给所联系的服务器。

在这里插入图片描述

DNS 缓存

为了改善时延性能并减少在因特网上到处传输的 DNS 报文数量,DNS 广泛使用了缓存技术。DNS 缓存的原理非常简单,在一个请求链中,当某 DNS 服务器接收一个 DNS 回答(包含主机名到 IP 地址的映射)时,它能将该回答中的信息缓存在本地存储器中。

由于域名和 IP 地址之间的映射并不是永久的,DNS 服务器在一段时间后(通常设置为两天)将丢弃缓存的信息。

DNS 记录和报文

DNS 记录格式

共同实现 DNS 分布式数据库的所有 DNS 服务器存储了资源记录(Resource Record, RR),它是一个包含了下列字段的 4 元组:
( N a m e , V a l u e , T y p e , T T L ) (Name, Value, Type, TTL) (Name,Value,Type,TTL)
我们忽略掉 T T L TTL TTL 字段, N a m e Name Name V a l u e Value Value 的值取决于 T y p e Type Type

  • T p y e = A Tpye = A Tpye=A

    Name: 主机域名
    Value:IP 地址

  • T y p e = N S Type=NS Type=NS
    Name:域(如edu.cn)
    Value:该域权威域名解析服务器的主机域名

  • T y p e = C N A M E Type=CNAME Type=CNAME

    Name:某一真实域名的别名
    Value:真实域名

  • T y p e = M X Type=MX Type=MX

    Value 是与 Name 相对应的邮件服务器的规范主机名

DNS 报文格式

DNS 只有查询回答这两种报文,并且查询和回答报文有着相同的格式:
在这里插入图片描述

  • 前 12 字节是首部区域。
    • 第一个字段(identification,标识符)是一个 16 比特的数,用于标识该查询。这个标识符会被复制到对该查询的回答报文中,以便用它来匹配发送的请求和接收到的回答。
    • 若干标志位(flags),可以标识报文类型(查询 or 回答)、是否希望递归、递归是否可用、回答报文是否是由所请求域名的权威 DNS 服务器回复的。
    • 还有 4 个有关数量的字段,这些字段指出了在首部后的 4 类数据区域出现的数量。
  • 问题区域包含着正在进行的查询信息。包括所查询的域名,以及查询的问题类型(例如主机地址是与一个名字相关联(类型 A A A)还是与某个名字的邮件服务器相关联(类型 M X MX MX))。
  • 回答区域包含了对最初请求的名字的资源记录。在回答报文的回答区域中可以包含多条 RR,因为一个主机名能够有多个 IP 地址(就像前面说的 DNS 负载均衡的功能)。
  • 权威区域包含了其他权威服务器的记录。
  • 附加区域包含了其他有帮助的记录。例如,对于一个类型 M X MX MX 请求的回答报文的回答区域包含了一条资源记录,该记录提供了邮件服务器的规范主机名,该附加区域包含一个类型 A A A 记录,该记录提供了用于该邮件服务器的规范主机名的 IP 地址。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值