搭建dns服务器
1:搭建工具bind97
需要安装的rpm包
bind97.i386 32:9.7.0-21.P2.el5_11.10 updates
bind97-chroot.i386 32:9.7.0-21.P2.el5_11.10 updates
bind97-devel.i386 32:9.7.0-21.P2.el5_11.10 updates
bind97-libs.i386 32:9.7.0-21.P2.el5_11.10 updates
bind97-utils.i386 32:9.7.0-21.P2.el5_11.10 updates
bind97-utils :提供 dig nslookup host 等客户端查询命令
bind97-libs :提供以上工具程序依赖的库
bind97-chroot :为了dns服务器的安全起见将named进程工作在/var/named/chroot/的假根目录下
bind-devel :二次开发用的 不是必须得
bind97 :服务主包,它提供的几个关键文件有:
/etc/named.conf
定义bind进程的工作属性,以及区域的定义
/etc/rndc.key redhat自带的密钥文件
rndc:Remote Name Domain Control :远程控制
/etc/rndc.conf bind程序自带的远程配置文件
以上两个远程工具有一个就能提供远程服务
/var/named/
存放区域数据文件
2.搭建流程 缓存dns-->主dns-->从dns-->添加各种功能,控制,安全
注:使用虚拟机搭建,配置虚拟机ip (192.168.31.11),关闭防火墙和selinux
1)定义bind97配置文件/etc/named.conf 先自己做最简单的
options {
directory "/var/named"; // 定义dns数据库文件所在的目录位置
};
zone "." IN { //定义根区域
type hint; //根区域类型
file "named.ca"; //根区域文件名
};
zone "localhost" IN { //定义本地正向解析文件
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN { //定义反向解析数据文件
type master;
file "named.loopback";
};
保存退出后修改权限为640.属主和属组为 root:named 应为named进程要访问这个文件
options {
参数;
};
参数的设定:
directory “/var/named” //
allow-recursion { 192.168.31.0/24; }; //
allow-transfer { 192.168.31.31; }; //
allow-query { };
服务器启动后缓存服务器就好了。局域网内其他机器可以设置此ip为dns
2) 在缓存服务器基础上,做主dns服务器
案例:1.我们注册了域名 zxs.com 且.com已经授权我们负责这个域的解析
2.主域名服务器IP 192.168.31.11
3.邮件服务器IP 192.168.31.12
4.网站服务器IP 192.167.31.13 和 14 网站服务器别名为 ftp
修改配置文件/etc/named.conf 定义zxs.com区域的文件名和位置 包括正向和反向
zone "zxs.com" IN {
type master;
file "zxs.com.zone";
};
zone "31.168.192.in-addr.arpa" IN {
type master;
file "192.168.31.zone";
};
创建区域自己域名的区域文件zxs.com.zone 放在之前定义好的目录下/var/named/
$TTL 600
@ IN SOA ns1.zxs.com. admin.zxs.com (
2017061301
1H
5M
2D
6H)
IN NS ns1
IN MX 10 mail
ns1 IN A 192.168.31.11
mail IN A 192.168.31.12
www IN A 192.168.31.13
www IN A 192.168.31.14
ftp IN CNAME www
修改文件的权限 640 属组为named
named-checkconf "zxs.com" /var/named/zxs.com.zone
编辑反向区域文件192.168.31.zone
$TTL 600
@ IN SOA ns1.zxs.com. admin.zxs.com (
2017061301
1H
5M
2D
6H)
IN NS ns1.zxs.com.
11 IN PTR ns1.zxs.com.
12 IN PTR mail.zxs.com.
13 IN PTR www.zxs.com.
14 IN PTR www.zxs.com.
修改文件权限属组
重启服务后就可以查询测试
3)从服务器搭建
IP 设置为 192.168.31.31
同主服务器一样安装软件包
修改/etc/named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
};
zone "zxs.com" IN {
type slave;
file "slaves/zxs.com.zone";
masters { 192.168.31.11; };
allow-transfer {none;};
};
zone "31.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.31.zone";
masters { 192.168.31.11; };
allow-transfer {none;};
};
注意主服务器向从服务器推送区域数据库文件,所以不用创建数据文件,从服务器数据文件放在/var/named/slaves目录中。区域中定义要相应修改
注意:此时主服务器中要添加从服务器的NS记录和A记录,否则ixfr 无法推送至从服务器中
修改主服务器数据库记录同时要更改序列号
启动namd服务后从服务器就好了测试实现axfr 和 ixfr
rndc 使用
用命令生成配置文件 rndc-confgen > /etc/rndc.conf
按照/etc/rndc.conf 中的要求将尾部注释的几行 追加到/etc/named.conf 尾部 重启named就可以使用本机rndc控制了。 默认rnd.conf 文件只侦听本地端口953,要想远程主机能通过rndc访问,需要修改侦听的IP范围
rndc命令用法
rndc -h 可以查看
例如 rndc -c /etc/rndc.conf notify “zxs.com” 通知主dns 向从服务器发起通知
acl 用法定义在最前面 供后面调用
程序默认的有 any 和 none
acl ACL_NAME {
192.168.31.0/24;
192.168.1.0/24;
};
view视图用法
view VIEW_NAME {
};
定义了视图,所有区域必须都在视图中
添加日志功能
定义两个子系统
category:产生日志的源 一共只有15个
查询的
区域传送的
可以通过category 定义日志来源
channal
syslog
file :自定义保存位置
定义日志记录的位置 一般一个位置只能放一种来源的日志 一种来源的日志可以放在不同的位置
category源
default
queries
xfer-in
xfer-on
config
network
notify
security
日志定义
logging {
channel querylog {
file "/var/log/named/bind_query.log" versions 5 size 1M;
severity dynamic;
print-time yes ;
print-severity yes ;
print-category yes ;
};
channel xfer_log {
file "/var/log/named/transfer.log" versions 3 size 10K;
severity debug 3;
print-time yes;
};
category queries { querylog; };
category xfer-out { xfer_log; };
};
DNS 服务器压力测试工具
queryperf
获取工具 下载源码包 cd至目录 /contrib/queryperf 编译安装即可