(七)DNS服务器配置实例
举例一:
使用view语句搭建具有内外视图功能的DNS服务器,并能够根椐不同的客户端地址实现不同的解析结果,假设局域网地址为192.168.255.0/24,局域网内各主机分别为rhel1:192.168.255.128; rhel2:192.168.255.12; rhel3:192.168.255.129; rhel4:192.168.255.120; rhel5:192.168.255.4为从DNS服务器;以及一个提供DNS服务的主机(主机名:dns,局域网内IP地址:192.168.255.3,外网IP地址:101.25.67.89);此外还有三个应用服务器:www服务器(主机名:www;IP地址:101.25.67.5),邮件服务器(主机名:mail;IP地址:101.25.67.2),FTP服务器(主机名:ftp;IP地址:101.25.67.1),要实现的功能是:局域网内的主机可以解析到外网;外网用户可以解析到内网的WWW服务器,邮件服务器和FTP服务器,但不可以解析到局域网内的主机;不允许外网用户反向解析内网地址,不允许外网用户采用递归查询方式使用该DNS服务器。配置步骤如下:
(1)需安装以下两个软件包:
#rpm –ivh bind-9.3.3-7.el5.i386.rpm(第二张光盘) ; #rpm –ivh bind-chroot-9.3.3-7.el5.i386.rpm(第二张光盘)
(2)编辑/var/named/chroot/etc/named.conf文件内容如下:
(此文件需用户自己创建,可从/usr/share/doc/bind-9.3.3/sample/etc中复制到/var/named/chroot/etc/目录下,并在/etc/下创建一个链接)
option {
directory “/var/named”; //默认路径
dump-file “/var/named/data/cache_dump.db”;
startistice-file “/var/named/data/named_stats.txt0”;
};
acl “my lan” { //创建一个访问控制列表,其中127.0.0.1是本机,192.168.255.0/24表示本地局域网
127.0.0.1; 192.168.255.0/24; //地址列表可以用any , none , localnets , localhost
}; //any:任何主机;none:不匹配任何主机;localhost:本地主机;localnets:本地网络所有主机
view “internal” { //定义内部视图
match-clients { “my lan” };
recursion yes; //表示在这个view中的所有请求都使用递归查询
zone “.” IN { //IN为地址类型,可以不写,默认的就是IN类
type hint; //根服务器的特殊类型
file “name.root”; //文件在name.ca下
}; //每个view必须有zone “.”
//设置正向解析
zone “mydomain.com” {
type master;
file “mydomain.com.internal.db”;
allow-transfer { 192.168.255.4 }; //设置域传输控制选项
};
//设置反向解析
zone “ 255.168.192.in-addr.arpa” IN {
type master;
file “255.168.192.in-addr.arpa.internal.db”;
};
};
view “external” {
match-clients { any; }; //any表示external视图对任何主机开放,但一定要放在internal视图的后面,这样acl中定义的主机就会首先使用internal视图里面的zone
recussion no; //关闭递归,使DNS服务器忽略外部用户的非本地解析请求
zone “.” IN { //每个view必须有zone “.”
type hints;
file “name.root”;
};
//该zone与internal视图中的设置类似,由于外网用户不允许反向解析到内网,因此没有设置反向解析zone
zone “mydomain.com” {
type master;
file “mydomain.com.external.db”;
allow-transfer { 123.66.88.2; };
}:
};
其中name.root可以从ftp://ftp.rs.internal.net下载,不需要自己编写。
(3)编辑区域文件mydomain.com.internal.db(位于/var/named/chroot/var/named/目录下),如下所示:
$TTL 86400
@ IN SOA dns.mydomain.com. admin.mydomain.com. ( 2007060901;28800;14400;3600000;86400; ) //主授权记录,@表示mydomain.com域,admin.mydomain.com.是用户admin在mydomain.com域下的邮箱地址//
@ IN NS dns.mydomain.com. //@域的DNS服务器是dns.mydomain.com
@ MX 10 mail.mydomain.com. //@域的邮件投递到mail.mydomail.com
dns IN A 192.168.255.3 //DNS服务器的地址是192.168.255.3
mail IN A 101.25.67.2 //mail服务器的地址是101.25.67.2
ftp IN A 101.25.67.1 //ftp服务器的地址是101.25.67.1
www IN A 101.25.67.5 //www服务器的地址是101.25.67.5
rhel1 IN A 192.168.255.128 //rhel1.mydomain.com的IP地址是192.168.255.128
rhel2 IN A 192.168.255.12 //rhel2.mydomain.com的IP地址是192.168.255.12
rhel3 IN A 192.168.255.129 //rhel3.mydomain.com的IP地址是192.168.255.129
rhel4 IN A 192.168.255.120 //rhel4.mydomain.com的IP地址是192.168.255.120
rhel5 IN A 192.168.255.4 //rhel5.mydomain.com的IP地址是192.168.255.4
(4)编辑区域文件 mydomain.com.external.db(同样位于/var/named/chroot/var/named/目录下),如下所示:
@ IN SOA dns.mydomain.com. admin.mydomain.com. ( 2007060901;28800;14400;3600000;86400; ) //主授权记录,@表示mydomain.com域,admin.mydomain.com.是用户admin在mydomain.com域下的邮箱地址//
@ IN NS dns.mydomain.com. //@域的DNS服务器是dns.mydomain.com
@ MX 10 mail.mydomain.com. //@域的邮件投递到mail.mydomail.com
dns IN A 192.168.255.3 //DNS服务器的地址是192.168.255.3
mail IN A 101.25.67.2 //mail服务器的地址是101.25.67.2
ftp IN A 101.25.67.1 //ftp服务器的地址是101.25.67.1
www IN A 101.25.67.5 //www服务器的地址是101.25.67.5
//由于该视图对应外网的查询,不希望外部用户知道本地局域网的IP地址,所以没有添加本地主机信息
(5)编辑反向解析区域文件255.168.192.in-addr.arpa.internal.db(同样位于/var/named/chroot/var/named/目录下),如下所示:
$TTL 86400
@ IN SOA dns.mydomain.com. admin.mydomain.com. ( 2007060901;28800;14400;3600000;86400; )
@ IN NS dns.mydomain.com.
3 IN PTR dns.mydomain.com.
128 IN PTR rhel1.mydomain.com.
12 IN PTR rhel2.mydomain.com.
129 IN PTR rhel3.mydomain.com.
120 IN PTR rhel4.mydomain.com.
4 IN PTR rhel5.mydomain.com.
举例二:
1构建单纯的缓存域名服务器--RHEL5系统专门为配置缓存域名服务器提供了名为caching-nameserver-9.3.3-7.el5.i386.rpm的软件包,而且缓存域名服务器安装完caching-nameserver软件包后不需要修改任何其它的配置工作就可以启动运行,并实现域名查询和缓存的功能,但该服务器主机需要能够访问互联网,因为缓存服务器应能够与互联网中的其他DNS服务器进行网络连接,以查询DNS客户机的域名解析请求,在局域网内部构建缓存域名服务器的主要目的是提高域名解析的速度和节约对互联网访问的出口带宽。
(1)需安装以下两个软件包
#rpm –ivh bind-9.3.3-7.el5.i386.rpm(被依赖,第二张光盘) ;#rpm -ivh caching-nameserver-9.3.3-7.el5.i386.rpm(第四张光盘)
安装生成了以下主要的配置文件:
配置文件: /etc/named.caching-nameserver.conf /etc/named.rfc1912.zones
正向和反向区域文件:/var/named/localdomain.zone /var/named/localhost.zone /var/named/named.ca /var/named/named.broadcast /var/named/named.local /var/named/named.ip6.local /var/named/named.zero
缓存域名服务器的主配置文件named.caching-nameserver.conf内容如前面所示,不需要进行任何修改。在缓存域名服务器启动后就可以使用nslookup等域名查询命令对缓存域名服务器进行测试。
2构建主域名服务器----假设要构建的主域名服务器的IP地址是192.168.1.2,并且在主域名服务器中设置从域名服务器地址为192.168.1.3,需要在主域名服务器中添加名为1test.com的域名区域,该域名中主机的网络地址为192.168.1.0/24。在1test.com区域中需要设置地址记录,别名记录,域名服务器记录和邮件交换记录等基本的域名资源记录,本例不涉及互联网中DNS服务器对1test.com域名的指向,即1test.com域只在局域网内部的主,从域名服务器中有效。
(1)建立主配置文件:在上面构建好的缓存域名服务器的基础上,由named.caching-nameserver.conf复制一份名为named.conf的主配置文件(如果没有创建named.conf文件时,则系统在启动named进程时,默认读取的配置文件为named.caching-nameserver.conf.如果存在named.conf文件,则不再读取named.caching-nameserver.conf文件)。
(2)修改配置文件:在/etc/named.conf配置文件的未尾添加1test.com域的正向区域和反向区域设置。正向区域的区域名称为1test.com,类型为主域名服务器,区域文件名称为1test.com.zone,设置内容如下:
zone “1test.com” {
type master;
file “1test.com.zone”;
};
1test.com域中所有主机都在子网192.168.1.0中,因此反向解析区域的名称是1.168.192.in-addr.arpa,类型为主域名服务器,区域文件名是192.168.1.rev:
zone “1.168.192.in-addr.arpa” {
type master;
file “192.168.1.rev”;
};
(3)在/var/named目录中建立正向和反向区域文件:根据主配置文件named.conf中的设置,正反向区域文件须保存在工作目录/var/named下,可用vi编辑器建立。
在1test.com.zone区域文件中按照如下要求添加地址记录:
名为ns1的主机,IP地址为192.168.1.2,该主机将作为主域名服务器使用;
名为ns2的主机,IP地址为192.168.1.3,该主机将作为从域名服务器使用;
名为host1的主机,IP地址为192.168.1.11,该主机将作为邮件服务器使用;
名为host2的主机,IP地址为192.168.1.12,该主机将作为网页服务器使用;
设置别名:别名记录又称CNAME记录,用于在区域文件中对主机名称设置别名。通过设置别名记录,具有多种功能的同一个服务器可以具有多个域名。在1test.com域中为host1主机设置别名为mail,host1主机将使用别名mail.1test.com作为邮件服务器使用;为host2主机设置别名为www,host2主机将使用别名作为网页服务器使用。
添加邮件交换记录:邮件交换记录又称MX记录,用于设置当前域中提供邮件服务的服务器名称。1test.com域名需要设置使用mail.1test.com主机作为邮件服务器。设置了邮件交换记录后,所有发向XXX@1test.com邮箱的电子邮件都将发往mail.1test.com服务器主机。
完整的正向区域文件内容如下:
#cat /var/named/1test.com.zone
$TTL 86400
@ IN SOA ns1.1test.com. hostmaster.1test.com. (
42 ;serial (d. adams)
3H ;refresh
15M ;retry
1W ;expiry
1D ) ;minimum
@ IN NS ns1.1test.com.
@ IN NS ns2.1test.com.
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
host1 IN A 192.168.1.11
host2 IN A 192.168.1.12
mail IN CNAME host1
www IN CNAME host2
@ IN MX 5 mail.1test.com.
建立对应的反向区域文件:
#cat /var/named/192.168.1.rev
$TTL 86400
@ IN SOA ns1.1test.com. hostmaster.1test.com. (
42 ;serial (d. adams)
3H ;refresh
15M ;retry
1W ;expiry
1D ) ;minimum
@ IN NS ns1.1test.com.
@ IN NS ns2.1test.com.
2 IN PTR ns1.1test.com.
3 IN PTR ns2.1test.com.
11 IN PTR host1.1test.com.
12 IN PTR host2.1test.com.
(4)测试配配置文件和区域文件:
#name-checkconf ------------自动检测系统中的”/etc/named.conf”文件的内容,如果有语法错误,屏幕将显示发现的错误内容。
#name-checkzone 1test.com /var/named/1test.com.zone----第一个参数需指定区域名称,如1test.com;第二个参数需指定区域文件名
(5)重启named服务器程序:#service named restart
3构建从域名服务器-------从域名服务器作为主域名服务器的辅助和备份服务器,在自身DNS服务器中不建立区域文件,而是从主服务器中查询接收并保存区域文件,从域名服务器需要在与主域名服务器不同的主机中构建,本例为上面构建的主域名服务器构建从域名服务器,(1)从域名服务器主机需要安装如下两个软件包:
#rpm –ivh bind-9.3.3-7.el5.i386.rpm(被依赖,第二张光盘) ;#rpm -ivh caching-nameserver-9.3.3-7.el5.i386.rpm(第四张光盘)
(2)软件包安装完成后,同样由/etc/named.caching-nameserver.conf复制一份名为/etc/named.conf的主配置文件,并添加1test.com域和其反向