模式:C/S模式
#vim /etc/services
端口:
tcp/53 udp/53 #用于客户端查询
tcp/953 udp/953 #用于DNS主从同步
安装DNS
BIND简介
BIND全称为Berkeley internet Name Domain(伯克利因特网名称域系统)。
BIND主要有三个版本:BIND4、BIND8、BIND9。
BIND融合了许多提高效率、稳定性和安全性的技术,而BIND9增加了一些超前的理念:IPV6支持、密钥加密、多处理器支持、线程安全操作、增量区传送等等。
#rpm -vih /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm //DNS服务的主程序包
#rpm -vih /mnt/Packages/bind-chroot-9.7.3-8.P3.el6.x86_64.rpm //提高安全性
注:bind-chroot是bind的一个功能,使bind可以在一个chroot的模式下运行。也就是说bind运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已。这样做的目的是为了提高安全性。因为在chroot的模式下,bind可以访问的范围仅限于这个子目录的范围里,无法进一步提升,进入到系统的其他目录中。
#rpm -vih bind-utils-9.7.3-8.P3.el6.x86_64.rpm //该包为客户端工具,默认安装,用于搜索域名指令。
或者
#yun install bind
#yun install bind-chroot
DNS服务器相关配置文件
#ls /etc/named.conf //named.conf是BIND的核心配置文件,它包含了BIND的基本配置,但其并不包括区域数据。
named.conf是BIND的并不包括区域数据。
启动服务
//要先启动named服务,否则/var/named/chroot/目录下的文件不会被挂载上。这个和RHEL5是不一样的。
#ls /var/named/chroot/
#/etc/init.d/named restart(有点慢稍等下)
#service named restart //重启服务
在客户端配置好DNS服务器地址
#cat /etc/resolv.conf (查看DNS服务器地址)
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=100.64.140.120(当前本地PC的IP地址)
修改配置文件,实战举例
例1:配置DNS服务器解析:xuegod.cn
#vim /var/named/chroot/etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
zone "xuegod.cn" IN{
type master;
file "xuegod.cn.zone";
};
创建zone文件
#cd /var/named
#cp -rp named.localhost xuegod.cn.zone
#vim xuegod.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
代替为
$TTL 1D
@ IN SOA ns.xuegod.cn. admin.xuegod.cn (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.xuegod.cn.
ns A 100.64.140.120
www A 100.64.140.120
mail A 100.64.140.121
smtp CNAME mail.xuegod.cn.
AAAA ::1
配置说明:
$TTL 1D;设置有效地址解析记录的默认缓解时间,默认为1天也就是1D。
#原来的@表示当前的域xuegod.cn.,为方便大家记忆,我们这里,直接写成xuegod.cn.
#设置SOA记录为:dns.xuegod.cn. #在此配置文件中写域名时,都把根.也要写上。
#域管理邮箱root.xuegod.cn,由于@有其他含义,所以用"."代替@。
0 ;更新序列号,用于标示数据库的变换,可以在10位以内,如果存在辅助DNS区域,建议每次更新完数据库,手动加1.
1D ;刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1天
1H ;重试延时,从域名服务器更新地址数据库失败以后,等待多长时间,默认为1小时
1W ;到期,失效时间,超过该时间仍无法更新地址数据库,则不再尝试,默认为一周
3H ;设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时
$TTL 1D;设置有效地址解析记录的默认缓解时间,默认为1天也就是1D。
#原来的@表示当前的域xuegod.cn.,为方便大家记忆,我们这里,直接写成xuegod.cn.
#设置SOA记录为:dns.xuegod.cn. #在此配置文件中写域名时,都把根.也要写上。
#域管理邮箱root.xuegod.cn,由于@有其他含义,所以用"."代替@。
0 ;更新序列号,用于标示数据库的变换,可以在10位以内,如果存在辅助DNS区域,建议每次更新完数据库,手动加1.
1D ;刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1天
1H ;重试延时,从域名服务器更新地址数据库失败以后,等待多长时间,默认为1小时
1W ;到期,失效时间,超过该时间仍无法更新地址数据库,则不再尝试,默认为一周
3H ;设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时
SOA:区域授权起始记录,区域文件第一条记录,而且一个区域文件只能有一条
NS:域的授权名称服务器
MX:域的邮件交换器,要跟着一个优先级值,越小越高
A:IPV4主机地址
AAAA:IPV6主机地址
PTR:解析IP的指针
CNAME:权威(正式)名称,定义别名记录
#cd
#service named restart
#ping www.xuegod.cn
查看返回的地址是否为设置的DNS:100.64.140.120(当前本地PC的IP地址)
例二、使DNS支持迭代查询
#vim /var/named/chroot/etc/named.conf
将蓝标的注释掉,这样客户端才能通过这个DNS进行递归查询。把DNS加密通讯功能关闭,才可以和根服务器实行迭代查询。
#service named restart
#ping www.baidu.com
ping:unknown host www.baidu.com
三、搭建DNS转发服务器
#vim /var/named/chroot/etc/named.conf
#service named restart
尝试ping百度,可以连通
#ping www.baidu.com
四、搭建DNS主从服务器
#vim /var/named/chroot/etc/named.conf
可以允许哪个网段的从DNS服务器,可以同步主DNS服务器zone文件,不写默认为所有。
配置从服务器
到另外一台主机上
安装DNS服务器
或者
#yum install bind
#yum install bind-chroot
#service named start(稍微有点慢)
#vim /var/named/chroot/etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
#dnssec-enable yes;
#dnssec-validation yes;
#dnssec-lookaside auto;
zone "xuegod.cn" IN{
type slave;
file "slaves/xuegod.cn.zone.file";
masters{ 100.64.140.120; };
};
#service named restart
#ls /var/named/chroot/var/named/slaves
xuegod.cn.zone.file
注:这样从DNS服务器就可以从主服务器上获取DNS解析记录信息了。
重启从DNS服务器会在:/var/named/chroot/var/named/slaves文件夹下自动创建一个文件
xuegod.cn.zone.file这个文件是从DNS服务器从主DNS服务器上获取的数据。
验证同步:
修改主DNS服务器区域文件
#vim /var/named/chroot/etc/named.conf
#service named restart
到从DNS服务器验证
#service named restart
#rm -rf /var/named/chroot/var/named/slaves/xuegod.cn.zone.file
#service named restart
#cart /var/named/chroot/var/named/slaves/xuegod.cn.zone.file
注:若发现没用同步,很正常,同步周期为1天。
六、DNS主从密钥认证
1、同步时间
主服务器
#vim /etc/ntp.conf
#service ntpd stop
#ntpdate 0.rhel.pool.ntp.org
从服务器
#vim /etc/ntp.conf
#service ntpd stop
#ntpdate 0.rhel.pool.ntp.org
2、生成密钥,进行主从认证,在主DNS服务器操作
#dnssec-keygen -a hmac-md5 -b 128 -n HOST abc
Kabc.+157+34056
-a hmac-md5:采用hmac-md5加密算法。
-b 128:生成的密钥长度为128位。
-n<nametype:ZONE | HOST | ENTITY | USER | OTHER
(DNSKEY generation defaults to ZONE)
abc:为生成密钥的名字
#cat Kabc.+157+34056.private
或者
#cat Kabc.+157+34056.key
#vim /var/named/chroot/etc/named.conf
(3)从DNS服务器
#vim /var/named/chroot/etc/named.conf
#service named restart