Linux初学者学习笔记

20170921 DNS服务(二)

2017-09-25  本文已影响11人  哈喽别样
  • bind view
  • 编译安装bind
  • DNS排错

一、bind view

(一)智能DNS

(二)bind view

(1) view:视图
view VIEW_NAME {
match-clients { testacl; };
zone "magedu.com" IN {
  type master;
  file "magedu.com.zone";};
  include "/etc/named.rfc1912.zones";
};
(2)实验:实现不同网段的客户端对同一个主机的DNS查询请求分配不同的IP
acl beijing_net {
        192.168.136.0/24;                  //定义此acl为北京地区的iP
};

acl henan_net {
        172.18.0.0/16;                     //定义此acl为河南地区的iP
};

view beijing_view {
        match-clients {beijing_net;};      //匹配北京的acl
        include "/etc/named.rfc1912.zones.bj";
};

view henan_view {
        match-clients {henan_net;};        //匹配河南的acl
        include "/etc/named.rfc1912.zones.hn";
};
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bj
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.hn
rm -f /etc/named.rfc1912.zones
vim /etc/named.rfc1912.zones.bj     //以下为文件增加内容

zone "hellopeiyang.com" IN {
        type master;
        file "hellopeiyang.com.zone.bj";     //由此看到之后要修改解析库文件
};

zone "." IN {    
        type hint;
        file "named.ca";
//根区域设置原保存在/etc/named.conf文件中,但是由于定义view后所有zone都要定义在zone中,
  而beijing_view和henan_view都需要包含根区域,故将此设置迁移到独立设置文件中,
  也可以在两个view中分别定义根区域设置

vim /etc/named.rfc1912.zones.hn          //以下为文件增加内容

zone "hellopeiyang.com" IN {
        type master;
        file "hellopeiyang.com.zone.hn";
};

zone "." IN {
        type hint;
        file "named.ca";
cp -p /var/named/hellopeiyang.com.zone  /var/named/hellopeiyang.com.zone.bj
cp -p /var/named/hellopeiyang.com.zone  /var/named/hellopeiyang.com.zone.hn
vim /var/named/hellopeiyang.com.zone.bj

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                        101     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A       192.168.136.230
websrv  A       192.168.136.229     //来自192.168.136.0/24网段的主机应该返回的ip
www     CNAME   websrv

vim /var/named/hellopeiyang.com.zone.hn

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                        101     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A       192.168.136.230
websrv  A       172.18.0.66        //来自172.18.0.0/16网段的主机应该返回的ip    
www     CNAME   websrv
named-checkconf
named-checkzone hellopeiyang.com /var/named/hellopeiyang.com.zone.bj
named-checkzone hellopeiyang.com /var/named/hellopeiyang.com.zone.hn
rndc reload

dig www.hellopeiyang.com @172.18.250.79

二、编译安装bind

(一)安装前准备

(二)编译安装过程

(三)编译安装后配置

vim /etc/profile.d/env.sh
export PATH=/app/bind9/bin:/app/bind9/sbin:$PATH

source /etc/profile.d/env.sh
vim /etc/bind9/named.conf

options {
        directory "/var/named/";
};

zone "." IN {
        type hint;
        file "named.ca";
};
zone "test.com" IN {
        type master;
        file "test.com.zone";
};

vim /var/named/test.com.zone

$TTL 1d
@       IN      SOA     dns1 admin ( 101 1d 8h 1w 1d )
                NS      dns1
dns1            A       192.168.136.129
www             A       192.168.6.6
vim /etc/man.config
MANPATH /app/bind9/share/man    //添加一行

man named.conf                  //查看named.conf配置文件帮助

(四)启动bind

chown root:named /var/named/* /etc/bind9/named.conf
修改文件权限
named -u named -f -g -d 3
前端以级别3方式运行,-f:前台运行,-g 日志显示在标准错误输出即屏幕,-d:排错级别 debug_level

成功启动后,测试成功,并且也看到了日志记录

(五)rndc的配置

(1)rndc命令(TCP 953端口)

语法:rndc COMMAND

COMMAND
status:查询当前状态
reload:重载主配置文件和区域解析库文件
reload zonename:重载区域解析库文件
retransfer zonename:手动启动区域传送,而不管序列号是否增加
notify zonename:重新对区域传送发通知
reconfig:重载主配置文件
querylog:开启或关闭查询日志文件/var/log/message
trace:递增debug一个级别
trace LEVEL:指定使用的级别
notrace:将调试级别设置为0
flush:清空DNS服务器的所有缓存记录
(2)配置rndc

直接使用rndc的相关命令发现不可用,提示rndc: neither /etc/bind9/rndc.conf nor /etc/bind9/rndc.key was found。由于rndc属于客户端工具,修改named服务的配置时,需要生成预共享秘钥,实现与服务器端的通讯。

打开/etc/bind9/rndc.conf文件,发现提示将蓝色注释行的设置信息添加到/etc/bind9/named.conf文件中

vim /etc/bind9/named.conf     //添加以下内容

key "rndc-key" {
        algorithm hmac-md5;
        secret "V+GtFM3bQjW7n3zU8OFB6g==";
 };
 
controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
 };

重新启动named服务,rndc命令成功运行,bind的安装基本结束

(六)压力测试

(1)编译安装压力测试工具queryperf
cd /usr/src/bind-9.10.6/contrib/queryperf     //进入工具的源代码目录
./configure                     //生成makefile
make                            //编译
cp queryperf /app/bind9/bin     //复制编译生成的二进制文件至bind的二进制文件安装目录
(2)queryperf工具的使用

queryperf -d test.txt -s 127.0.0.1-d 测试文件, -s DNS服务器IP

三、DNS排错

上一篇下一篇

猜你喜欢

热点阅读