- 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上测试