《DNS服务器配置和管理.ppt》由会员分享,可在线阅读,更多相关《DNS服务器配置和管理.ppt(30页珍藏版)》请在金锄头文库上搜索。
1、第第1818章章 DNSDNS服务器配置和管理服务器配置和管理DNS服务可以为用户提供域名和服务可以为用户提供域名和IP地址之间的自动转换地址之间的自动转换,通过,通过DNS,用户只需要输入机器的域名即可访问相关的服,用户只需要输入机器的域名即可访问相关的服务,而无需使用那些难以记忆的务,而无需使用那些难以记忆的IP地址。本节介绍在地址。本节介绍在Linux上如何使用上如何使用Bind搭建搭建DNS(Domian Name System,域名,域名解析系统)服务器。解析系统)服务器。18.1 DNS18.1 DNS简介简介DNS帮助用户在互联网上寻找路径。在互联网上的每帮助用户在互联网上寻找路
2、径。在互联网上的每一个计算机都拥有一个唯一的地址,称作一个计算机都拥有一个唯一的地址,称作“IP地址地址”(即互(即互联网协议地址)。由于联网协议地址)。由于IP地址是一串数字,难以记忆,而地址是一串数字,难以记忆,而DNS允许用户使用一串有意义的字符串(即允许用户使用一串有意义的字符串(即“域名域名”)取代,)取代,而由域名转换成为相应的而由域名转换成为相应的IP地址的这个过程就称为域名解析。地址的这个过程就称为域名解析。本章介绍如何在本章介绍如何在Red Hat Enterprise Linux 5.2上基于上基于Bind搭建和配置搭建和配置DNS服务器。服务器。18.1.1 DNS18.
3、1.1 DNS域名结构域名结构DNS域名又称为域名又称为DNS命名空间,它是以层次树状结构命名空间,它是以层次树状结构进行管理的,其最顶层是根域,根域在整个进行管理的,其最顶层是根域,根域在整个DNS命名空间中命名空间中是唯一的,而根域下可以分为多个子域,每一个子域下又可是唯一的,而根域下可以分为多个子域,每一个子域下又可以有多个子域。例如,以有多个子域。例如,Internet命名空间具有多个顶级域名命名空间具有多个顶级域名(top-level domain names,简称,简称TLD),如),如org、net、com、cn、hk等。而等。而cn顶级域名可以具有多个子域,如顶级域名可以具有多
4、个子域,如edu、net、org、com等;等;com子域又可以具有多个子域,子域又可以具有多个子域,例如例如sina、google、pconline等;而等;而sina又可以拥有多个又可以拥有多个子域。子域。18.1.1 DNS18.1.1 DNS域名结构域名结构18.1.2 DNS18.1.2 DNS工作原理工作原理在在DNS出现之前,通常是通过在计算机上维护一个出现之前,通常是通过在计算机上维护一个hosts文件(文件(/etc/hosts)的方式来实现主机名和)的方式来实现主机名和IP地址之地址之间的解析的。管理员在间的解析的。管理员在hosts文件中记录所有需要访问的主文件中记录所有
5、需要访问的主机的主机名和机的主机名和IP地址,当需要进行解析的时候系统会自动查地址,当需要进行解析的时候系统会自动查询询hosts文件,并找出匹配的解析关系。采用这种方式,每文件,并找出匹配的解析关系。采用这种方式,每台主机上都必须维护一个台主机上都必须维护一个hosts文件。网络中每增加一个计文件。网络中每增加一个计算机,就必须手工地修改所有主机的算机,就必须手工地修改所有主机的hosts文件,添加新计文件,添加新计算机的主机名和算机的主机名和IP地址对应记录。地址对应记录。18.1.2 DNS18.1.2 DNS工作原理工作原理18.2 DNS18.2 DNS服务器的安装服务器的安装Bin
6、d是一款开放源代码的是一款开放源代码的DNS服务器软件,它是由伯服务器软件,它是由伯克里大学(克里大学(Berkeley)编写的,全名为)编写的,全名为Berkeley Internet Name Domain(伯克利因特网域名),是目前世界上使用(伯克利因特网域名),是目前世界上使用最为广泛的最为广泛的DNS服务器软件,支持各种服务器软件,支持各种UNIX平台和平台和Windows平台。平台。18.2.1 18.2.1 如何获得如何获得BindBind安装包安装包Redhat Linux AS5自带了自带了9.3.4版本的版本的Bind。用户只要在安。用户只要在安装操作系统的时候把该软件选上
7、,装操作系统的时候把该软件选上,Linux安装程序将会自动完成安装程序将会自动完成Bind的安装工作。如果在安装操作系统时没有安装的安装工作。如果在安装操作系统时没有安装Bind,也可,也可以通过安装光盘中的以通过安装光盘中的RPM软件包进行安装。软件包进行安装。RPM安装包的文件安装包的文件名如下所示。名如下所示。bind-9.3.4-6.P1.el5.i386.rpm18.2.2 18.2.2 安装安装bindbind接下来将以接下来将以9.5.0版本的版本的bind源代码安装包为例,介绍源代码安装包为例,介绍在在Red Hat Enterprise Linux 5.2上安装上安装bind
8、的详细步骤,的详细步骤,如下所述。如下所述。(1)解压)解压bind-9.5.0-P2.tar.gz安装文件。安装文件。(2)进入)进入bind-9.5.0-P2目录,执行如下命令配置安装目录,执行如下命令配置安装选项。选项。(3)在)在bind-9.5.0-P2目录中执行如下命令编译并安装目录中执行如下命令编译并安装bind。(4)bind安装完成后需要手工运行如下命令生成主配安装完成后需要手工运行如下命令生成主配置文件置文件named.conf,文件存放在,文件存放在/usr/local/named/etc/目目录下。录下。18.2.3 18.2.3 启动和关闭启动和关闭bindbind安
9、装完成后就可以开始启动安装完成后就可以开始启动bind服务,服务,bind是通过是通过named命令进行启动,一般是让进程在后台运行,如下所示。命令进行启动,一般是让进程在后台运行,如下所示。# /usr/local/named/sbin/named &18.2.4 18.2.4 开机自动运行开机自动运行为了简化系统管理工作,可以编写为了简化系统管理工作,可以编写bind服务的启动关服务的启动关闭脚本,配置闭脚本,配置bind服务跟随操作系统自动启动或关闭,具体服务跟随操作系统自动启动或关闭,具体的脚本以及配置步骤如下所述。的脚本以及配置步骤如下所述。(1)编写)编写bind服务的启动关闭脚本
10、,文件名为服务的启动关闭脚本,文件名为named,并存放到,并存放到/etc/rc.d/init.d目录下。目录下。(2)在系统面板上选择)在系统面板上选择【系统系统】|【管理管理】|【服务器服务器设置设置】|【服务服务】命令命令,打开,打开【服务配置服务配置】窗口,选择窗口,选择【行动行动菜单菜单】|【添加服务添加服务】命令,在弹出的对话框中输入命令,在弹出的对话框中输入named。(3)单击)单击【确认确认】按钮后,服务列表中将添加一个按钮后,服务列表中将添加一个named服务。选择服务。选择named服务旁的复选框,设置该服务自服务旁的复选框,设置该服务自动开机启动,然后单击工具栏中的动
11、开机启动,然后单击工具栏中的【保存保存】按钮保存更改的按钮保存更改的配置。配置。18.2.4 18.2.4 开机自动运行开机自动运行18.3 Bind18.3 Bind服务器配置服务器配置Bind主要的配置文件包括主要的配置文件包括named.conf和相应的区域文和相应的区域文件,件,Bind中各种配置的更改主要都是通过修改这些文件来完中各种配置的更改主要都是通过修改这些文件来完成,修改完成后需要重启成,修改完成后需要重启Bind服务使配置生效。本节将介绍服务使配置生效。本节将介绍bind配置文件中的常用选项的使用方法,并给出具体的配置配置文件中的常用选项的使用方法,并给出具体的配置示例。示
12、例。18.3.1 18.3.1 named.confnamed.conf配置文件配置文件named.conf是是Bind的主要配置文件,里面存储了大量的的主要配置文件,里面存储了大量的Bind自身的设置信息。自身的设置信息。Bind安装完成后并不会自动创建该配置文件,用安装完成后并不会自动创建该配置文件,用户需要通过命令手工生成,新生成的户需要通过命令手工生成,新生成的named.conf配置文件的默认内配置文件的默认内容如下所示。容如下所示。key rndc-key algorithm hmac-md5;secret oPVRivMD8oROZNHvKjo7Hw=;controls inet
13、 127.0.0.1 port 953allow 127.0.0.1; keys rndc-key; ;1acl语句语句2controls语句语句3include语句语句4key语句语句5options语句语句6server语句语句7view语句语句8zone语句语句18.3.2 18.3.2 根区域文件根区域文件named.rootnamed.rootnamed.root是一个特殊的区域文件,在该文件中记录是一个特殊的区域文件,在该文件中记录了了Internet上的根上的根DNS服务器的名称和服务器的名称和IP地址。地址。DNS服务器服务器接到客户发来的解析请求后,如果在本地找不到匹配的接到
14、客户发来的解析请求后,如果在本地找不到匹配的DNS记录,则把请求发送到该文件中所定义的根记录,则把请求发送到该文件中所定义的根DNS服务器上进服务器上进行逐级查询。由于行逐级查询。由于Internet上的根上的根DNS服务器会随着时间发服务器会随着时间发生变化,因为生变化,因为named.root文件的内容也是不断更新的,用文件的内容也是不断更新的,用户可以定期登陆户可以定期登陆ftp:/ 18.3.3 正向解析区域文件正向解析区域文件正向解析区域文件用于映射域名和正向解析区域文件用于映射域名和IP地址,文件中包含地址,文件中包含了该区域的所有参数,包括域名、了该区域的所有参数,包括域名、IP
15、地址、刷新时间、重试地址、刷新时间、重试时间、超时等。时间、超时等。18.3.4 18.3.4 反向解析区域文件反向解析区域文件反向解析区域文件用于定义反向解析区域文件用于定义IP地址到域名的解析,它采地址到域名的解析,它采用与正向解析文件类似的选项和格式。但由于是进行反向解用与正向解析文件类似的选项和格式。但由于是进行反向解析,所以该文件是使用析,所以该文件是使用PTR指针记录,而不是主机记录。指针记录,而不是主机记录。18.4 18.4 配置实例配置实例为了帮助读者更好地理解为了帮助读者更好地理解Bind的配置与使用,本节将的配置与使用,本节将模拟具体的企业应用需求,给出网络拓扑,通过配置
16、一个具模拟具体的企业应用需求,给出网络拓扑,通过配置一个具有多个视图的有多个视图的DNS服务器实例介绍服务器实例介绍Bind在在Red Hat Enterprise Linux 5.2上的完整配置步骤。上的完整配置步骤。18.4.1 18.4.1 网络拓扑网络拓扑假设有这样一家公司:其局域网的网段为假设有这样一家公司:其局域网的网段为172.20.1.0/24,其中有,其中有5台计算机,分别为台计算机,分别为server1(172.20.1.1)、)、server2(172.20.1.2)、)、server3(172.20.1.3)、)、server4(172.20.1.4)和)和server
17、5(172.20.1.5)。在外网中有)。在外网中有3台应用服务器:台应用服务器:FTP服务器(主机名为服务器(主机名为ftp,IP地址为地址为61.124.100.1)、网站服务)、网站服务器(主机名为器(主机名为www,IP地址为地址为61.124.100.2)和邮件服务器)和邮件服务器(主机名为(主机名为mail,IP地址为地址为61.124.100.3)。此外,还有一)。此外,还有一台台DNS服务器,其主机名为服务器,其主机名为dns,内网,内网IP地址为地址为172.20.1.11,外网,外网IP地址为地址为61.124.100.11。18.4.1 18.4.1 网络拓扑网络拓扑18
18、.4.2 18.4.2 配置配置named.confnamed.conf为了区分内部网络和外部网络用户的解析结果,需要通为了区分内部网络和外部网络用户的解析结果,需要通过视图实现。在本例中定义了两个视图过视图实现。在本例中定义了两个视图internal和和external,分别对应内部网络和外部网络的用户。在这两个视图中分,分别对应内部网络和外部网络的用户。在这两个视图中分别定义不同的区域文件,从而实现内外网用户能得到不同的别定义不同的区域文件,从而实现内外网用户能得到不同的解析结果。下面把解析结果。下面把named.conf文件的内容分成多个部分进文件的内容分成多个部分进行说明。定义行说明。
19、定义Bind的加密密钥以及与的加密密钥以及与rndc间的控制,如下间的控制,如下所示。所示。/key语句采用系统默认配置,定义语句采用系统默认配置,定义bind的加密密钥的加密密钥key rndc-key algorithm hmac-md5;secret oPVRivMD8oROZNHvKjo7Hw=;controls inet 127.0.0.1 port 953allow 127.0.0.1; keys rndc-key; ;18.4.3 18.4.3 配置区域文件配置区域文件接下来需要定义区域文件,以实现域名和接下来需要定义区域文件,以实现域名和IP地址之间的地址之间的映射,所有区域文
20、件都保存到映射,所有区域文件都保存到/var/named目录下,文件的具目录下,文件的具体内容介绍如下。体内容介绍如下。1named.root2localhost-internal.zone3localhost-internal.arpa4company-internal.zone5company-internal.arpa6company-external.zone18.4.4 18.4.4 测试结果测试结果经过上述配置后,经过上述配置后,DNS服务器已经配置完成,接下来服务器已经配置完成,接下来可以进行测试以确定可以进行测试以确定bind的服务是否正确并满足需求。用户的服务是否正确并满足需
21、求。用户需要准备另外一台安装了需要准备另外一台安装了Linux系统的客户端主机。系统的客户端主机。18.5 DNS18.5 DNS常见问题及常用命令常见问题及常用命令本节将介绍基于本节将介绍基于Bind配置配置DNS服务器的常见问题的处服务器的常见问题的处理方法,以及与理方法,以及与DNS相关的常用命令的用法,通过这些命令相关的常用命令的用法,通过这些命令可以对可以对Bind服务和配置文件进行检查,以确定服务和配置文件进行检查,以确定Bind服务是服务是否正常,配置文件的格式是否正确。否正常,配置文件的格式是否正确。18.5.1 18.5.1 因因TTLTTL值缺失导致的错误值缺失导致的错误N
22、o default TTL set using SOA minimum instead错错误是由于没有在域中指定误是由于没有在域中指定TTL值,因为自值,因为自Bind 8.2开始,用开始,用户必须指定一条户必须指定一条$TTL语句来设置域的默认语句来设置域的默认TTL值。用户可在值。用户可在SOA记录前添加记录前添加$TTL语言,如下所示。语言,如下所示。$ttl 1D IN SOA . . ( 253891216 /版本号版本号 3H /刷新时间刷新时间 5M /重试时间重试时间 1W /保存时间保存时间 1D ) / TTL值值18.5.2 dig18.5.2 dig命令:显示命令:显示
23、DNSDNS解析结果以及配置解析结果以及配置信息信息dig命令除了可以显示解析结果以外,还可以查询与之命令除了可以显示解析结果以外,还可以查询与之相关的相关的DNS服务器的配置信息。服务器的配置信息。18.5.3 ping18.5.3 ping命令:解析域名命令:解析域名ping命令除了用于检测网络的连通性以外,还可以用命令除了用于检测网络的连通性以外,还可以用于域名解析。于域名解析。18.5.4 host18.5.4 host命令:正向反向解析命令:正向反向解析host命令是一个用于域名解析的简单命令,可以解析命令是一个用于域名解析的简单命令,可以解析域名对应的域名对应的IP地址或对地址或对
24、IP地址进行反向解析。下面是正常解地址进行反向解析。下面是正常解析的结果。析的结果。# host /正向解析正向解析 has address 172.20.1.5# host 172.20.1.5 /反向解析反向解析5.1.20.172.in-addr.arpa domain name pointer .如果解析失败,则如果解析失败,则host命令将返回如下结果:命令将返回如下结果:# host ; connection timed out; no servers could be reached18.5.5 named-18.5.5 named-checkconfcheckconf命令:检
25、查命令:检查named.confnamed.conf文件内容文件内容named-checkconf是是Bind所提供的一个工具,存放在所提供的一个工具,存放在/usr/local/named/sbin目录下,用于检查目录下,用于检查named.conf文件文件内容是否配置正确。其命令格式如下所示。内容是否配置正确。其命令格式如下所示。named-checkconf 文件位置文件位置如果如果named.conf文件配置正确,则该命令不会输出任文件配置正确,则该命令不会输出任何结果;否则将输出文件中的错误信息,如下所示。何结果;否则将输出文件中的错误信息,如下所示。# ./named-checkc
26、onf /usr/local/named/etc/named.conf/usr/local/named/etc/named.conf:19: missing ; before view18.5.6 named-18.5.6 named-checkzonecheckzone命令:检查区域文件命令:检查区域文件内容内容named-checkzone也是由也是由Bind所提供,存放在所提供,存放在/usr/local/named/sbin目录下,用于检查区域文件的内容目录下,用于检查区域文件的内容是否配置正确。其命令格式如下所示。是否配置正确。其命令格式如下所示。named-checkzone -djqvD -c class -o output -f inputformat -F outputformat -t directory -w directory -k (ignore|warn|fail) -n (ignore|warn|fail) -m (ignore|warn|fail) -i (full|local|none) -M (ignore|warn|fail) -S (ignore|warn|fail) -W (ignore|warn) zonename filename