1.使用bind来安装DNS
# yum install bind 服务器软件包
# yum install bind-chroot 安全考虑 用来将bind与OS分离出来 虚拟的根
# yum install caching-nameserver 模板
2.了解bind的目录结构
# grep -v ^# /etc/sysconfig/named
ROOTDIR=/var/named/chroot
[root@stu254 chroot]# ls *
dev:
null random zero
etc:
localtime named.caching-nameserver.conf named.rfc1912.zones rndc.key
var:
named run tmp
[root@stu254 chroot]#
3.建立uplooking.com的正解与反解
修改主配置文件
[root@stu254 etc]# grep any named.caching-nameserver.conf
listen-on port 53 { any; };
allow-query { any; };
match-clients { any; };
match-destinations { any; };
监听端口,查询地址,客户端和查询目的地址 都改成any
[root@stu254 etc]#
建立正反解查询
[root@stu254 etc]# tail named.rfc1912.zones
zone "uplooking.com" IN {
type master;
file "uplooking.com.zone.db";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "uplooking.com.arpa.db";
};
[root@stu254 etc]#
建立正反解区域文件 从localhost.zone复制 修改
[root@stu254 named]# pwd
/var/named/chroot/var/named
[root@stu254 named]# cat uplooking.com.zone.db
$TTL 86400
@ IN SOA @ root (
2009060401 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dns.uplooking.com.
IN MX 5 mail.uplooking.com.
mail IN A 10.10.10.30
dns IN A 192.168.1.31
www IN A 192.168.1.31
[root@stu254 named]# cat uplooking.com.arpa.db
$TTL 86400
@ IN SOA @ root (
2009060401 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dns.uplooking.com.
IN MX 5 mail.uplooking.com.
30 IN PTR mail.uplooking.com.
31 IN PTR dns.uplooking.com.
31 IN PTR www.uplooking.com.
[root@stu254 named]#
修改区域文件的权限
# chown :named /var/named/chroot/var/named/uplooking.com.*
用语法检查工具检查配置
# named-checkconf /var/named/chroot/etc/named.caching-nameserver.conf
# named-checkzone uplooking.com /var/named/chroot/var/named/uplooking.com.*
zone uplooking.com/IN: loaded serial 2009060401
OK
#
没有问题 重新启动named
service named restart
4.语法检查和测试工具
DNS客户端修改成本机
[root@stu254 named]# cat /etc/resolv.conf
search uplooking.com
nameserver 192.168.1.31
[root@stu254 named]#
[root@stu254 named]# host www.uplooking.com
www.uplooking.com has address 192.168.1.31
[root@stu254 named]# host mail.uplooking.com
mail.uplooking.com has address 10.10.10.31
mail.uplooking.com mail is handled by 5 mail.uplooking.com.
[root@stu254 named]# host 192.168.1.31
31.1.168.192.in-addr.arpa domain name pointer www.uplooking.com.
[root@stu254 named]#
[root@stu254 named]# nslookup
> www.uplooking.com
Server: 192.168.1.31
Address: 192.168.1.31#53
Name: www.uplooking.com
Address: 192.168.1.31
> mail.uplooking.com
Server: 192.168.1.31
Address: 192.168.1.31#53
Name: mail.uplooking.com
Address: 192.168.1.31
> 192.168.1.31
Server: 192.168.1.31
Address: 192.168.1.31#53
31.1.168.192.in-addr.arpa name = www.uplooking.com.
31.1.168.192.in-addr.arpa name = mail.uplooking.com.
> exit
[root@stu254 named]#
5.负载均衡
修改正解文件
www 0 IN A 192.168.1.31
www 0 IN A 192.168.1.30
www 0 IN A 192.168.1.32
其中 0 是生存时间 可以当做权值来使用
用ping www测试 会每次显示不同IP
6.直接解析域名和连续域名解析和泛域名解析
在正解文件中添加
uplooking.com. IN A 192.168.1.31
# host uplooking.com
uplooking.com has address 192.168.1.31
连续域名解析,需要用$GENERATE函数 比如要解析1-254个循环的变量
stu$ 是主机名 192.168.1.$ 是对应地址
$GENERATE 1-254 stu$ IN A 192.168.1.$
$GENERATE 1-254 $ IN PTR stu$.uplooking.com.
泛域名解析 一定要写在最后
* IN A 192.168.1.31
7.搭建主从服务器
修改主机配置文件
[root@stu31 named]# tail -n 12 /var/named/chroot/etc/named.rfc1912.zones
zone "uplooking.com" IN {
type master;
file "uplooking.com.zone.db";
allow-transfer {192.168.1.32;};
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "uplooking.com.arpa.db";
allow-transfer {192.168.1.32;};
};
[root@stu31 named]#
在主机的zone文件中加入从机做NS
正解:
dns IN NS dns.uplooking.com.
IN A 192.168.1.32
反解:
32 IN NS dns.uplooking.com.
IN PTR dns.uplooking.com.
如不修改则只能向从机传递zone文件 从机不会随主机更新正解反解文件而更新
修改从机配置文件 无需建立zone文件
[root@stu32 named]# tail -n 12 /var/named/chroot/etc/named.rfc1912.zones
zone "uplooking.com" IN {
type slave;
file "slaves/uplooking.com.zone.db";
masters {192.168.1.31;};
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
file "slaves/uplooking.com.arpa.db";
masters {192.168.1.31;};
};
[root@stu32 named]#
测试
重新启动主从服务器,zone文件会自动复制过去
再向主服务器中添加新的正反记录并修改版本号,重新启动主后,从即可更新记录
8.只缓冲服务器
最主要的就是下面两项
forward only; 指明这个服务器是缓存域名服务器
forwarders 是转发dns请求到那个服务器
*forward 值有first和only两项
first 先查自定义的域,(但不查hint),查不到再转发到”forwarders”中的服务器,再查询hint.
only是先查自定义的域,查不到再转发到 “转发服务器列表”中的服务器,不再查询hint
可以在options段中使用forwarders和forward指令设置DNS转发:
options {
forwarders {
192.168.1.110;
192.168.1.112;
};
forward first;
};
forwarders { DNS_IP_1; DNS_IP_2; };
forwarders指令用于设置将DNS请求转发到哪个服务器,可以指定多个服务器的IP地址。




评论