• 1. 第3章 DNS服务器
    • 2. 目录3.1 DNS服务器简介 3.1.1 DNS原理简介 3.1.2 选择使用DNS 3.1.3 DNS域名空间的分层结构 3.1.4 DNS域名服务器的类型 3.1.5 域名解析过程 3.2 DNS服务器软件包的安装 3.2.1 DNS服务器的相关软件包 3.2.2 安装“caching-nameserver-*”软件包 3.3 DNS服务器配置实例
    • 3. 3.1 DNS服务器简介 3.1.1 DNS原理简介 DNS(Domain Name System,域名系统)是因特网的一项核心服务,它可以作为将域名和IP地址互相映射的一个分布式数据库,能够使人们很方便的访问因特网,而不用去记住能够被机器直接读取的数字IP地址。
    • 4. DNS作为一种组织域层次结构和网络服务的命名系统,主要用于命名TCP/IP网络(如Internet)中含有DNS域名到各种数据类型(如IP地址)的映射。通过DNS,用户可以使用友好的名称查找计算机和服务在网络上的位置。当用户在应用程序中输入DNS域名时,DNS服务可以将此名称解析为与此名称相关的其他信息。例如,在TCP/IP网络中,计算机只以数字形式的IP地址在网络上与其他计算机通信,但是数字IP地址不方便用户记忆。DNS的出现提供了一种方法,将用户计算机或服务名称映射为数字地址,使用户能够使用简单的名称(如www.imau.edu.cn)来定位诸如网络上的WEB服务器或邮件服务器。
    • 5. ①www.imau.edu.cn的IP地址是多少?②www.imau.edu.cn的IP地址是202.207.48.53DNS数据库记录: www.imau.edu.cn:202.207.48.53 ……
    • 6. 3.1 DNS服务器简介 3.1.2 选择使用DNS 在一个TCP/IP架构的网络环境中,DNS是一个非常重要且使用频繁的系统。其主要功能就是将易于记忆的Domain Name(如www.imau.edu.cn)与不容易记忆的IP Address(如202.207.48.53)进行转换。而上面执行DNS服务的这台网络主机,就称之为DNS服务器。一般情况下,人们都认为DNS只是将Domain Name转换成IP Address,然后再用查询到的IP Address去连接(即“正向解析”)所请求的服务。事实上,将IP Address转换成Domain Name的功能也是经常使用到的,当login到一台LINUX工作站时,工作站就会去做反向查询,找出你是从哪个地方连线进来的(即“反向解析”)。
    • 7. 3.1 DNS服务器简介 3.1.3 DNS域名空间的分层结构 在域名系统中,每台计算机的域名是由一系列用点分开的字母和数字组成的。FQDN(Full Qualified Domain Name,全部有资格的域名)在因特网的DNS域名空间中,是其层次结构的基本单位,任何一个域最多属于一个上级域,但可以有多个或没有下级域。在同一个域下不能有相同的域名或主机名,但在不同的域下则可以有相同的域名或主机名。
    • 8. 3.1 DNS服务器简介 3.1.3 DNS域名空间的分层结构 1.根域(Root Domain) 2.顶级域(Top-Level Domain, TLD) 3. 各级子域(Sub Domain) 4. 反向域(in-addr.arpa)
    • 9. 1.根域(Root Domain) 在DNS域名空间中,根域只有一个,它没有上级域,以原点“.”表示。全世界的IP地址和DNS域名空间都是由位于美国的InterNIC(Internet Network Information Center,因特网信息管理中心)负责管理或授权管理的。目前全世界有13台根域服务器,这些根域服务器也位于美国,并由InterNIC管理。在根域服务器中并没有保存全世界的因特网网址,其中只保存着顶级域的“DNS服务器—IP地址”的对应数据。
    • 10. 2.顶级域(Top-Level Domain, TLD)在根域之下的第一级域便是顶级域,它以根域为上级域,其数目有限而不能轻易变动。顶级域是由InterNIC统一管理的。在FQDN中,各级域之间都以原点“.”分隔,顶级域位于最右边。
    • 11. 常用的地理域和机构域有: (1)机构域 .com 商业组织 .edu 教育组织 .net 网络支持组织 .mil 美国军事机构 .gov 美国政府机构 .int 国际组织 (2)地理域 .AU 澳大利亚  .RU 俄联邦 .FR 法国 .DE 德国 .JP日本  .KR韩国 .TW中国台湾 .CN 中国 .CA加拿大  .IT意大利 .CH 瑞士 .SG新加坡 .UK 英国  .US美国
    • 12. 3. 各级子域(Sub Domain)在DNS域名空间中,除了根域和顶级域之外,其他域都称为子域。
    • 13. 4. 反向域(in-addr.arpa) 为了完成反向域解析过程,需要使用另外一个概念,即反向域。
    • 14. 3.1.4 DNS域名服务器的类型 一般情况下,DNS服务器有如下三种类型: 主服务器 附加的辅助服务器 附加的Caching-only服务器
    • 15. 1. 主服务器 每个区域有唯一的主服务器,其中包含了授权提供服务指定区域的数据库文件的主拷贝,还包含了所有子域和主机名的资源记录。 2. 附加的辅助服务器 辅助服务器为它的区域从该区域中的主DNS服务器上获取数据。
    • 16. 3. 附加的Caching-only服务器 与主服务器不同的是,Caching-only服务器不与任何DNS区域相关联,而且不包含任何活跃的数据库文件。一个Caching-only服务器开始时没有任何关于DNS域结构的信息,它必须依赖于其他DNS服务器来得到这方面的信息。每次Caching-only服务器就将该信息存储到它的名字缓存(Name Cache)中,当另外的请求需要得到这方面的信息时,该Caching-only服务器就直接从高速缓存中取出答案并予返回。一段时间之后Caching-only服务器就包含了大部分常见的请求信息。
    • 17. 为使DNS服务得到实现,必须存在一个主DNS服务器,而附加的辅助服务器则不是必须的。一般建立辅助服务器有下面两个好处:(1)冗余 当主DNS服务器出现故障时,辅助DNS服务器可以承担起服务的功能。为达到最大限度的容错,主DNS服务器与作为备份的辅助DNS服务器要做到尽可能的独立。
    • 18. (2)减负 当网络较大且服务较繁忙时,可以用辅助DNS服务器来减轻对主DNS服务器的负担。
    • 19. 3.1.5 域名解析过程 计算机在网络上进行通信时只能识别如“202.207.48.53”之类的IP地址,而不能认识域名。但是,当打开浏览器,在地址栏中输入域名后,就能看到所需要的页面,这是因为DNS服务器自动把域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页,DNS的解析过程如图3-2所示。
    • 20. 域名:www.imau.edu.cnDNS ServerIP地址:202.207.48.53图3-2 DNS用途
    • 21. DNS是典型的客户机/服务器(C/S)模式结构,其查询过程如下:首先请求程序通过客户端解释器(Client-Resolver)向服务器端(Server)发出查询请求,等待由服务器端数据库(Server-Database)给出应答,并解释Server给出的答案,然后把所得信息传给提出请求的程序。
    • 22. 以下我们利用一个范例,来说明DNS域名解析的完整流程,假设客户端利用浏览器尝试连接www.imau.edu.cn,以启动该网页,DNS解析过程如图3-3所示。
    • 23. 98254367101本地 DNS服务器根网域“.” DNS服务器.cn DNS服务器imau.edu.cn DNS服务器客户机edu.cn DNS服务器图3-3 DNS域名解析的完整流程
    • 24. 1. 本机解读器发送递归查询的请求到本地的域名服务器,以请求解析主机名称为www.imau.edu.cn的IP地址信息。
    • 25. 2. 本地域名服务器如果无法由本身的数据库解析此域名,那它将会对此主机名称进行解析,也就是将原本的主机名称分解为“www”、“imau”、“edu”和“cn”4个部分,并且以自右向左的顺序逐步解析。本地的域名服务器会从本身缓存文件中找出根域网“.”的域名服务器地址,然后请求根域网的域名服务器代为解析“www.imau.edu.cn”的主机名称。
    • 26. 3. 根域网“.”的域名服务器无法解析“www.imau.edu.cn”的主机名称,但它可以解析“cn”部分。因此它会响应本地域名服务器的一份列表,在此列表中包含许多负责管理“cn”域名区的服务器IP地址。
    • 27. 4. 本地域名服务器发送一个重复查询的请求到负责管理“cn”域名区的服务器,并请求代为解析“www.imau.edu.cn”的主机名称。
    • 28. 5. 负责管理“cn”域名区的域名服务器无法解析“www.imau.edu.cn”的主机名称,但可以解析“edu.cn”的部分。因此它会响应本地域名服务器的一份列表,在此列表中包含许多负责管理“edu.cn”域名区的服务器IP地址。
    • 29. 6. 本地域名服务器发送一个重复查询请求到负责管理“edu.cn” 域名区的服务器,并请求代为解析“www.imau.edu.cn”的主机名称。
    • 30. 7. “edu.cn”域名区的服务器可以解析“imau.edu.cn”的部分。因此它会响应本地域名服务器的一份列表,在此列表中包含许多负责管理“imau.edu.cn”域名区的服务器IP地址。
    • 31. 8. 本地域名服务器发送一个重复查询的请求到负责管理“imau.edu.cn”域名区的服务器,并请求代为解析“www.imau.edu.cn”的主机名称。
    • 32. 9. “imau.edu.cn”域名区的服务器可以解析“www.imau.edu.cn”的主机名称,并会将解析后的主机IP地址传回本地的域名服务器。
    • 33. 10. 最后本地的域名服务器可以满足来自客户端的重复查询,并将解析出的IP地址传回客户端。
    • 34. 3.2 DNS服务器软件包的安装3.2.1 DNS服务器的相关软件包 Red Hat Enterprise Linux 5中的DNS服务器是通过Bind软件来实现的,在安装系统过程中选择“DNS Server”选项卡安装如下软件包:
    • 35. bind-*:DNS名称服务器软件。 bind-devel-*:DNS开发工具,不是必需的。 bind-utils-*:dig,host一级nslookup等DNS测试工具。 caching-nameserver-*:缓存DNS服务器的基本配置文件,包括样本/etc/named.conf和/var/named/localhost.zone文件。 system-config-bind-*:Red Hat Enterprise Linux 5的GUI DNS 配置工具。 其中“caching-nameserver-*”包需要手动安装。
    • 36. 查看系统中是否安装了bind软件包的命令为:“rpm –qa | grep bind”,如果显示如图3-4所示的内容,说明bind软件包已经安装;否则,可在Red Hat Enterprise Linux 5安装盘的Server目录下找到DNS服务的RPM安装包(包括多个文件),使用“rpm –ivh”命令进行安装。
    • 37. 图3-4 查看bind软件包
    • 38. 3.2.2 安装“caching-nameserver-*”软件包 DNS服务器的基本配置文件包“caching-nameserver-*”必须手动安装。在桌面上打开“DVD-ROM”,如图3-5所示。
    • 39. 图3-5 打开“DVD-ROM”
    • 40. 在弹出的窗口中打开“Server”文件夹,如图3-6所示。图3-6 打开“Server”文件夹
    • 41. 找到“caching-nameserver-*”软件包,右键单击它并在弹出的快捷菜单 中选择“用软件包安装工具打开”,如图3-7所示。 图3-7 “caching-nameserver-*”软件包
    • 42. 紧接着会弹出一个确认窗口,点击“应用”按钮后,在弹出的小窗口中 选择“无论如何都安装”,如图3-8所示。 图3-8 确认安装窗口
    • 43. “caching-nameserver-*”软件包安装好后,配置DNS服务器所需要的软件包就已经全部安装完毕了,下面开始具体配置DNS服务器。
    • 44. 3.3 DNS服务器配置实例 宿主机器Windows XP的IP地址为:202.207.50.77;虚拟机VMware下的Red Hat Enterprise Linux 5的IP地址为:202.207.50.79。将Red Hat Enterprise Linux 5架设为DNS服务器,域名为dns.bgl.net,并为宿主机器Windows XP提供域名www.bgl.net。
    • 45. 准备工作: 在宿主机器Windows XP下打开命令提示符窗口,输入“ipconfig”命令,查看宿主机器的IP(202.207.50.77)。 在虚拟机VMware下的Red Hat Enterprise Linux 5中,激活终端窗口,然后输入“ifconfig”命令查看虚拟机IP(202.207.50.79)。
    • 46. DNS的主要配置文件包括: /etc/named.conf //DNS服务器的全局配置文件。 /etc/named.rfc1912.zones //DNS服务器的区域配置文件。 /var/named/named.local //用于本地回环地址解析的反向解析文件。 /var/named/localhost.zone //用于本地回环地址解析的正向解析文件。 /var/named/domainname.zone //用户建立的本地主机区域数据库文件。
    • 47. Red Hat Enterprise Linux 5中的DNS默认使用了chroot (增强DNS服务器安全性)方式,将named进程运行在/var/nemad/chroot目录中,全局配置文件和区域配置文件保存在/var/named/chroot/etc目录中,区域数据库文件保存在/var/named/chroot/var/named目录中,并在/var/named目录中建立区域数据库文件的符号链接。
    • 48. 1. 修改主配置文件 Red Hat Enterprise Linux 5中DNS服务器的主配置文件有两个,一个是全局配置文件/var/named/chroot/etc/named.caching-namedserver.conf;一个是区域配置文件/var/named/chroot/etc/named.rfc1912.zones。 首先将/var/named/chroot/etc目录下的named.caching-namedserver.conf文件改名为named.conf,如图3-9所示。
    • 49. 图3-9 重命名全局配置文件
    • 50. 然后用vi编辑器打开全局配置文件named.conf,修改内容如图3-10所示,用方框圈起来的是做了修改的地方。
    • 51. 图3-10 修改全局配置文件
    • 52. 上面的改动实际上就是把对本机(127.0.0.1)的设置放开到对任何机器(any),修改完毕后保存退出(按Esc键后输入“:wq”)。 用vi编辑器编辑区域配置文件named.rfc1912.zones,在文件的末尾添加正反解析部分,内容如图3-11所示。即指定当进行正向域名解析时,查找的用户自定义正向解析文件是“zheng”;当进行反向域名解析时,查找的用户自定义反向解析文件是“fan”。
    • 53. 图3-11 修改区域配置文件 保存退出。
    • 54. 2. 创建用户自定义正反解析文件 先将路径切换到/var/named/chroot/var/named下,分别在系统提供的正反解析文件的样本文件“localhost.zone”和“named.local”的基础上复制生成用户自定义正反解析文件,名称要与区域配置文件“named.rfc1912.zones”中定义的相同,分别为“zheng”和“fan”,并对内容进行简单修改。 首先切换目录,查看样本文件,如图3-12所示。
    • 55. 图3-12 /var/named/chroot/var/named 目录
    • 56. 复制样本文件过程如图3-13所示。 图3-13 复制样本文件
    • 57. 修改用户自定义正向解析文件“zheng”,如图3-14所示。这里将域名服务器的域名设置成了“dns.bgl.net”,又在文件末尾添加了两条正向解析记录,将域名“dns.bgl.net”映射到了IP为202.207.50.79的机器上,即Red Hat Enterprise Linux 5系统;将域名“www.bgl.net”映射到了IP为 202.207.50.77的机器上,即宿主机Windows XP系统。
    • 58. 图3-14 修改后的正向解析文件
    • 59. 修改反向解析文件“fan”,如图3-15所示。和用户自定义正向解析文件一样,先设置了DNS服务器的域名dns.bgl.net,然后在文件的末尾添加了两条反向解析记录,将IP地址“202.207.50.79”映射为域名“dns.bgl.net”;将IP地址“202.207.50.77”映射为域名“www.bgl.net”,和前面的用户自定义正向解析文件“zheng”中是一致的。
    • 60. 图3-15 修改后的反向解析文件
    • 61. 3. 为用户自定义正反解析文件建立符号链接文件 在/var/named目录下建立/var/named/chroot/var/named/下的“zheng“和”fan”的链接,做链接之前的目录内容如图3-16所示。
    • 62. 图3-16 链接前的/var/named目录
    • 63. 做链接的过程及/var/named目录链接后的状态如图3-17所示。 图3-17 链接后的/var/named目录
    • 64. 4.修改正反向解析文件的所有者和所有组 用“chown”命令修改/var/named/chroot/var/named/目录下文件的所有者和所有组,效果如图3-18所示。
    • 65. 图3-18 修改正反向解析文件的所有者和所有组
    • 66. 5.修改DNS服务器的IP地址 用vi编辑器修改DNS客户端配置文件/etc/resolv.conf,修改内容如图3-19所示,即将首选的DNS服务器设置成Red Hat Enterprise Linux 5系统(IP地址为202.207.50.79)。
    • 67. 图3-19 修改后的/etc/resolv.conf文件
    • 68. . 启动服务并测试 用“service named start”命令启动DNS服务,然后用“ping”命令进行测试, 效果如图3-20所示。 图3-20 启动服务并测试
    • 69. 从图3-20中可以看到,启动DNS服务后,ping域名dns.bgl.net可以顺利解析为202.207.50.79。 对宿主机器Windows XP的域名www.bgl.net进行测试前需要将Windows XP的防火墙关闭,Red Hat Enterprise Linux 5的防火墙也必须关闭。 Windows XP下关闭防火墙的工作可通过设置“网上邻居->属性->本地连接->属性->高级->设置->关闭”来完成,如图3-21所示。
    • 70. 图3-21 关闭Windows XP的防火墙
    • 71. Red Hat Enterprise Linux 5下关闭防火墙需要在终端窗口中输入“setup”命令,在弹出的窗口中选择“防火墙配置”,然后在安全级别中设置为“禁用”,如图3-22所示。
    • 72. 图3-22 关闭Red Hat Enterprise Linux 5的防火墙
    • 73. 然后在终端窗口中用“ping”命令测试宿主机器Windows XP的域名 “www.bgl.net”, 即可畅通,如图3-23所示。 图3-23 测试域名www.bgl.net
    • 74. 当然也可以在宿主机器Windows XP下测试域名“dns.bgl.net”和“www.bgl.net”,但要注意先把“TCP/IP协议”中的DNS服务器指定为虚拟机下Red Hat Enterprise Linux 5的IP“202.207.50.79”,如图3-24所示。
    • 75. 图3-24 设置DNS服务器
    • 76. 打开宿主机器Windows XP下的命令提示符窗口,用“ping”命令测试域名“dns.bgl.net”和 “www.bgl.net”,效果如图3-25所示。 图3-25 在宿主机器Windows XP上测试