计算机网络技术 王宇新 大连理工大学
第四章 应用层协议 与应用系统设计方法 第二节 域名系统DNS
一、 DNS的基本概念 DNS(Domain Name System) 作用是将主机域 名转换IP地址,它使得各种互联网应用成为 可能,是互联网所有应用层协议的基础。 每一台主机或路由器分配一个全局惟一的 地址;TCP/IP协议的网络层使用的地址标 识符IP地址,一个32位的二进制地址; DNS 是一种应用层协议,但与其它web等协议不同,它不直接与用户打交道。 大型的互连网络中需要有一个全局的地址系统,它能够给每一台主机或路由器的网络连接分配一个全局惟一的地址; 网络中的每一个主机或路由器至少有一个IP地址;在Internet中不允许有两个设备具有同样的IP地址; 如果一台主机或路由器连接到两个或多个物理网络,那么它可以拥有两个或多个IP地址。
为什么有了IP地址,还需要域名? 域名 — 用字符表示的网络主机名,一种主机标 识符; IP地址 — 数字型,难于记忆与理解,用于网 络层; 域名 — 字符型,便于记忆与理解,用于应用 层; 因特网采用层次树状结构的命名方法。任何一个 连接在因特网上的主机或路由器, 都有一个唯 一的层次结构的名字,即域名。 IP地址与域名都应该是全网唯一的, 并且它们之间具有对应关系。
DNS与其他 网络应用的关系 用户 DNS 服务器 客户端 Web 服务器 输入名字 处理主机名解析请求 将名字解析为地址 请求资源 处理请求 产生响应 透明性 处理应答 访问资源
在机器的地址表示中,从右到左依次为最高域名段、次高域名段等, Internet域名结构 TCP/IP协议中规定的层次型名字管理机制叫做 域名系统;将整个Internet划分为多个顶级域, 并为每个顶级域规定了通用的顶级域名; Internet主机域名的一般格式为: 按照地理域或机构域进行分层。 在机器的地址表示中,从右到左依次为最高域名段、次高域名段等, 最左面的一个标号为主机名。 mail.dlut.edu.cn
域名系统DNS必须具备的基本功能 名字空间:系统必须提供一个给所有可能出现 的结点命名的名字空间;(统一,无特殊编码) 名字空间:系统必须提供一个给所有可能出现 的结点命名的名字空间;(统一,无特殊编码) 名字注册:系统必须为每台主机分配一个在全 网具有唯一性的名字; 名字解析:系统要为用户提供一种有效的完成 主机名与网络IP地址转换的机制。
实现DNS的关键技术是借助于分布在互联网各处的数量众多的域名服务器 域名系统的功能 实现DNS的关键技术是借助于分布在互联网各处的数量众多的域名服务器 com、org、edu 等
二、DNS的实现 1. 域名空间和资源记录 DNS名字空间被组织成“域”与“子域”的层 次结构,在结构上像计算机中的树状文件目录 结构; 域名空间和资源记录按照树型命名空间结构和 与域名相关数据的技术规范建立的。 域名空间树上的每个结点和叶子都用一组信息 命名。 互联网使用域名标识主机,查询的目的是获取与之对应的IP地址资源。 对域名的查询请求中包括了要查询的域名和对要查找的资源信息的说明。 对域名的查询就是从某个域的域名集合中抽取某类特殊信息的过程。
2. 域名服务器 一组用来保存域名树结构和对应信息的服务器程序; 特定服务器在内部存储有某个域名空间子集的完整信息 ——“授权”服务器,管理“区域(Zone) ”的域名信息 存储有指向其他服务器的内容。
DNS根域名服务器 (root server) DNS根域名服务器至关重要;出于安全原因, 目前存在13个DNS根域名服务器,专用域为(a- m).root-server.net; P98表4-2能够看出,有些根域名服务器由分布 在不同地理位置的多台镜像DNS服务器组成。 DNS根域名服务器对于DNS系统的整体运行具有极为重要的作用;任何原因造成根域名服务器停止运转,都会导致整个DNS系统的关闭;出于安全原因,DNS根域名服务器不可能只有一台. 大多数根域名服务器由多台服务器构成的服务器集群组成。f.root-server.net分布在12地,香港、首尔等。
根域名服务器的地点分布图 共 40 个地点
3. 地址解析程序 地址解析程序可以从域名服务器中检索客户请求查询的某个域名对应的IP地址;
域名空间和资源记录、域名服务器与地址解析程序的关系 用户通过对本地地址解析程序的简单的过程调用或系统调用,对域名系统进行访问; 从地址解析程序的角度,域名系统是由数量未知的域名服务器构成的系统,且将每一个域名系统使用的数据库视为基本静态的数据库; 从域名服务器角度,域名系统是由相互独立的本地数据集构成;需要周期性刷新数据,并行接受地址解析请求。 域名系统的三个基本构件: 域名数据库 服务 用户
三、域名数据库 DNS必须有一个大型的、分布式的域名数据库; 存储的是按层次管理的域名空间数据; 这种层次结构可表示为根在上面的树形结构,结点都是根的子孙; 所有结点都是可以萌发新枝叶的点,通常将结点和枝叶都称为结点。 RFC1034表示的域名空间结构
Internet 域名空间的树状结构 根 四级 域名 mail ee bj edu com cctv ibm hp 二级 pku dlut 三级 www net org gov aero cn uk 顶级 … … … … … … … … 每个域名是由一连串被“.”分割的结点名表示
顶层域(top level domain, TLD) .com 商业实体 .edu 教育机构 .net 网络供应商 .org 非政府机构 .int 国际组织 .gov 政府 .mil 军事
域名系统数据库服务 根域名服务器只需存储顶层域的域名和地址信 息;根服务器下的每个TLD服务器也只需要存 储其下一层域名节点的有关信息;以此类推。 每个TLD跟踪其子域结点的域名信息变化,为 其子节点提供域名服务。每个子域只需对数量 有限的子域内部域名和地址信息进行管理。 将互联网域名空间划分为多个层次,提高查询效率,减少差错。
四、域名解析的基本工作原理 将域名转换为对应IP地址的过程称为域名解析(name resolution),完成该功能的是“域名解析器”软件。 域名解析方法: 递归解析(recursive resolution) 反复解析(iterative resolution)
主机向本地域名服务器查询过程
反复解析中 客户与服务器的交互过程 根域名服务器 反复查询 顶级域名服务器 dns.com 权限域名服务 dns.abc.com 本地域名服务器 dns.xyz.com y.abc.com 的 IP 地址 根域名服务器并不直接把域名直接转换成 IP 地址。 在使用反复查询时,根域名服务器把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器。 m.xyz.com 需要查找 y.abc.com 的 IP 地址
递归解析中 客户与服务器 的交互过程 (比较少用) 递归查询 根域名服务器 顶级域名服务器 dns.com 递归解析中 客户与服务器 的交互过程 (比较少用) 权限域名服务 dns.abc.com 本地域名服务器 dns.xyz.com y.abc.com 的 IP 地址 m.xyz.com 需要查找 y.abc.com 的 IP 地址
五、域名系统性能优化:复制与缓存 1. 复制 每个根服务器的许多副本存在于世界各地; 当一个新的子网加入Internet时,它在本地的 DNS服务器中配置一个根服务器表;为本网 用户的域名服务选择响应最快的根服务器; 实际应用中,地理上最近的域名服务器响应最好。
2. 缓存 每个服务器都保留一个域名缓存,每当查找一 个新的域名时,服务器将它置于缓存中; 主机在启动时从本地域名服务器下载域名和地 址的全部数据库,维护自己最近使用的域名的 高速缓存,并且只在从缓存中找不到域名时才 使用域名服务器。 DNS缓存比复制更为重要,使用名字的高速缓存可优化查询的开销;