计算机网络-应用层-DNS:因特网的目录服务

应用层-DNS:因特网的目录服务

  • DNS:因特网的目录服务
    • DNS提供的服务
    • DNS工作机理概述
      • 集中式设计
      • 分布式、层次数据库
      • DNS缓存
    • DNS记录和报文
      • DNS报文
      • 在DNS数据库中插入记录

DNS:因特网的目录服务

主机的一种标识方法使用它的主机名,如cnn.com、www.baidu.com。主机名几乎没有提供关于主机在因特网的位置的信息。主机名可能有不定长的字母数字组成,路由器难以处理。所以主机也可以使用IP地址进行标识。

IP地址由4个字节组成,有严格的层次结构。

DNS提供的服务

域名系统(DNS)的主要任务是进行主机名到IP地址转换的目录服务。
DNS是:
①一个由分层的DNS服务器(DNS server)实现的分布式数据库;
②一个使得主机能够查询分布式数据库的应用层协议。
DNS服务器通常是运行 BIND ( Berkeley Internet Name Domain )软件[BIND 2012]的 UNIX机器,,DNS协议运行在UDP之上,使用53号端口。

DNS通常是有其他应用层协议所使用的,包括HTTP/SMTP/FTP,将用户提供的主机名解析为IP地址。
某用户主机浏览器发送请求报文之前:
1、同一台用户主机上运行着DNS应用的客户端。
2、浏览器从URL中抽取出主机名,并将主机名传给DNS应用的客户端
3、DNS客户向DNS服务器发送一个包含主机名的请求
4、DNS客户最终会收到一份回答报文,其中含有对应于该主机名的IP地址
5、一旦浏览器接受到来自DNS的该IP地址,它能够向位于该IP地址某端口的HTTP服务器进程发起一个TCP连接。

DNS还提供一些重要服务:
•主机别名(host aliasing)有着复杂主机名的主机能拥有一个或者多个别名。主机別名(当存在时)比主机规范名更加容易记忆。应用程序可以删用DNS来获得主机别名对应 的规范主机名以及主机的IP地址.

•邮件服务器别名(mail server aliasing)。电子邮件应用程序可以调用DNS,对提供的邮件服务器别名进行解析,以获得该主机的规范主机名及其IP地址。

•负载分配(load distribution), DNS也用于在冗余的服务器(如冗余的Web服务器 等)之间进行负载分配。一个IP地址集合因此与同一个规范主机名相联系,DNS数据库中存储着这些IP地址集合,当客户对映射到某地址集合的名字发出一个DNS请求时.该服务器用IP地址的整个集合进行响应,但在每个回答中循环这些地址次 序,,因为客户通常总是向IP地址排在最前面的服务器发送HTTP请求报文,所以 DNS就在所有这些冗余的Web服务器之间循环分配了负载。

DNS工作机理概述

运行在用户主机上的某些应用程序(如Web浏览器或邮件阅读器)需要将主机名转换为IP地址。
这些应用程序将调用DNS的客户端,并指明需要被转换的主机名(在 很多基于UNIX的机器上,应用程序为了执行这种转换需要调用函数gethostbyname())。用户主机上的DNS接收到后,向网络中发送一个DNS査询报文。所有的DNS请求和回答报文使用UDP数据报经端口53发送。经过若干毫秒到若干秒的时延后,用户主机上的DNS接收到一个提供所希望映射的DNS回答报文,这个映射结果则被传递到调用DNS的应用程序。

集中式设计

DNS的一种简单设计是在因特网上只使用一个DNS服务器,该服务器包含所有的映 射。在这种集中式设计中,客户直接将所有査询直接发往单一的DNS服务器.同时该 DNS服务器直接对所有的査询客户做出响应。

这种设计的问题:
1、单点故障。如果DNS服务器崩溃,整个因特网崩溃。
2、通信容量。 单个DNS服务器很难支持所有DNS查询。
3、远距离的集中式数据库。 相隔较远距离的查询,会带来低速和拥塞。
4、维护。单个DNS服务器的中央数据库很大,保存、更新和维护很困难。

分布式、层次数据库

以层级方式组织,分级查找相应内容。
查找时:客户->根DNS服务器–>客户->TLD服务器–>客户->权威服务器

主要有3种服务器:
1、根DNS服务器。实际每台“服务器”是一个冗余服务器的网络,以提供安全性和可靠性。

2、顶级域服务器。这些服务器负责顶级域名如com、org、net、edu和gov, 以及所有国家的顶级域名如uk、fr、ca和jp。Verisign Global Registry Services公司维护com顶级域的TLD服务器;Educause公司维护edu顶级域的TLD服务器。

3、权威DNS服务器。在因特网上具有公共可访问主机(如Web服务器和邮件服务器)的每个组织机构必须提供公共可访问的DNS记衆.这些记录将这些主机的名字映射为IP地址。 一个组织机构的权威DNS服务器收蔵了这些DNS记录。

还有一种重要的DNS服务器,称为本地DNS服务器。每个ISP (如一 个大学、一个系、一个公司或一个居民区的ISP)都有一台本地DNS服务器(也叫默认名字服务器)。当主机与某个ISP连接时,该ISP提供一台主机的IP地址,该主机具有一台或多台其本地DNS服务器的IP地址。通过访问Windows或UNIX的网络状态窗口,能够容易地确定你本地DNS服务器的IP地址。

当主机发出DNS请求时,该请求被发往本地DNS服务器,它起着代理的作用。

DNS缓存

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

DNS记录和报文

共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(RR)。RR提供了主机名到IP地址的映射。每个DNS回答报文包含了一条或多条资源记录。

资源记录是一个包含了下列字段的4元组:
(Name,Value,Type,TTL)
TTL是该记录的生存时间,它决定了资源记录应当从缓存中删除的时间。

•如果Type = A.则Name是主机名,Value是该主机名対应的IP地址。因此.一条 类型为A的资源记录提供了标准的主机名到IP地址的映射。例如(relay. bar.foo.com, 145. 37.93. 126. A)就是一条类型 A 记录。
•如果Type = NS,则Name是个域(如foo. com),而Value是个知道如何获得该域中主机IP地址的权威DNS服务器的主机名。这个记录用于沿着査询链来路由DNS 査询。例如(foo.com, dns.foo.com, NS)就是一条类型为NS的记录。
•如果Typr = CNAME,则Value是别名为Name的主机对应的规范主机名。该记录能够向査询的主机提供一个主机名对应的规范主机名,例如(foo.com. relayI. bar.foo.com, CNAME)就是一条 CNAME 类型的记录。
•如果Type = MX,则Value是个别名为Name的邮件眼务器的规范主机名。举例来 说,(foo.com, mail.bar.foo.com, MX)就是一条MX记录。MX记录允许邮件服务器主机名具有简单的别名.值得注意的是,通过使用MX记录,一个公司的邮 件服务器和其他服务器(如它的Web服务器)可以使用相同的别名。为了获得邮 件服务器的規范主机名,DNS客户应当请求一条MX记录;而为了获得其他服务 器的规范主机名,DNS客户应当请求CNAME记录。

如果一台DNS服务器是用于某特定主机名的权威DNS服务器,那么该DNS服务器会有一条包含该主机名的类型A及记录(即使该DNS服务器不是其权威DNS服务器.它也可能在缓存中包含有一条类型A记录)。如果服务器不是用于某主机名的权威服务器.那么该服务器将包含一条类型NS记录,该记录对应于包含主机名的域;它还将包括一条类型A记录,该记录提供了在NS记录的Value字段中的DNS服务器的IP地址。

DNS报文

•前12个字节是首部区域,其中有几个字段。第一个字段(标识符)是一个16比特的数,用于标识该査询。这个标识符会被复制到对查询的回答报文中,以便让客户用它来匹配发送的请求和接收到的回答。标志字段中含有若干标志。1比特的“査询/回答”标志位指出报文是査询报文(0)还是回答报文(1)。当某DNS 服务器是所请求名字的权威DNS服务器时.1比特的“权威的”标志位被置在回答报文中。如果客户(主机或者DNS服务器)在该DNS服务器没有某记录时希望它执行递归査询,将设置1比特的“希望递归”标志位。如果该DNS服务器支持递归查询。在它的回答报文中会对1比特的“递归可用”标志位置位。在该首部中,还有 4个有关数量的字段.这些字段指出了在首部后的4类数据区域出现的数量。
•问题区域包含着正在进行的査询信息,该区域包括:①名字字段。指出正在被查询的主机名字;②类型字段。它指出有关该名字的正被询问的问题类型,例如主机地址是与一个名字相关联(类型A)还是与某个名字的邮件服务器相关联(类型MX)。
•在来自DNS服务器的回答中,回答区域包含了对最初请求的名字的资源记录。每个资源记录中有Type (如A、NS. CNAME和MX)字段、Value字段和 TTL字段。在回答报文的回答区域中可以包含多条RR,因此一个主机名能够有多个IP地址(例如.就像本节前面讨论的冗余Web服务器)。
•权威区域包含了其他权威服务器的记录。
•附加区域包含了其他有帮助的记录。例如,对于一个MX请求的回答报文的回答 区域包含了一条资源记录,该记录提供了邮件服务器的规范主机名。该附加区域包含一个类型A记录.该记录提供了用于该邮件服务器的规范主机名的IP地址。
计算机网络-应用层-DNS:因特网的目录服务_第1张图片

在DNS数据库中插入记录

注册登记机构(registrar)是一个商业实体. 它验证该域名的唯一性,将该域名输入DNS数据库,对提供的服务收取少量费用。因特网名字和地址分配机构(Internet Corporation for Assigned Names and Numbers, ICANN)向各种注册登记机构授权.

1、当你向某些注册登记机构注册域名时,需要向该机构提供你的基本和辅助权威DNS服务器的名字和IP地址。
2、对这两个权威 DNS 服务器的毎一个。该注册登记机构确保将一个类型NS和一个类型A的记录输入TLD服务器,特别是对于基本权威服务器.该注册登记机构将两条资源记录插入该DNS系统中。
3、必须确保用于Web服务器类型A资源记录和用于邮件服务器的类型MX资源记录被输入你的权威DNS服务器中。(毎个DNS服务器中的内容都是静态配置的,例如来自系统管理员创建的配置文件。最近,在DNS协议中添加了一个更新(UPDATE)选项,允许通过DNS报文对数据库中的内容进行动态添加或者删除。)
4、一旦完成所有这些步骤.人们将能够访问你的Web站点.并向你公司的雇员发送电 子邮件 我们通过验证该说法的正确性来总结DNS的讨论。

例子:假定在澳大利亚的Alice要观看www. networkulopia. com的Web页面。如前面所讨论,她的主机将首先向其本地DNS服务器发送请求。该本地眼务器接着则联系一个TLD com服务器。(如果TLD com服务器的地址没有被缓存,该本地DNS服务器也将必须与根DNS服务器相联系。)该TLD服务器包含前面列出的类型NS和类型A资源记录,因为注册登记机构将这些资源记录插入所有的TLD com服务器。该TLD com服务器向Alice的本地DNS服务器发送一个回答,该回答包含了这两条资源记录。该本地DNS服务器则向212.212.212.1(基本权威DNS服务器的IP地址)发送一个DNS査询,请求对应于www.networkutopia.com的类型A记录。该记录提供了所希望的Web服务器的IP地址.如212.212.71.4,本地DNS服务器将该地址回传给Alice的主机。Alice的浏览器此时能够向主机212.212.71.4发起一个 TCP连接,并在该连接上发送一个HTTP请求。

你可能感兴趣的:(网络协议)