centos6下BIND配置本地DNS

2013年2月22日 发表评论 阅读评论

在上一篇 centos6下BIND配置DNS缓存服务 中介绍了搭建本地DNS缓存的方法,通过该篇的配置,可以将本域内的DNS请求转发到外网或通过13台根域进行查询。不过像在域控环境下,我们还可能会伪造一个域名或只在本局域内使用的域名,将相应的域解析到局域网内的主机上 。本篇就总结下如何实现上面的需求,需要指出的是本篇的配置和DNS缓存并不冲突,DNS即可以实现局域网内的解析,也可以将不在本地正反解析中存在的域名记录转发或递归到外网的其他DNS上进行查询,并将结果返回。并通过dig、host、nslookup的查看测试方法。

一、服务配置

本篇使用的环境承接上一篇中的环境,这里不再列出。安装使用软件同样是bind-libs、bind-utils、bind、bind-chroot四个包。直接yum就好,不再赘述。涉及的配置文件主要有/etc/named.conf(主配置文件)和 /etc/named.rfc1912.zones(正反区域配置文件)。

1、named.conf主配置文件

主配置文件和上一篇中配置一样,无变化,内容如下:

# cat /etc/named.conf
options {
       listen-on port 53 { any; };
       //listen-on-v6 port 53 { ::1; };
       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 no;
       dnssec-validation no;
       dnssec-lookaside no;
       /* Path to ISC DLV key */
       /*bindkeys-file "/etc/named.iscdlv.key";
       managed-keys-directory "/var/named/dynamic";
       */
};
logging {
       channel default_debug {
                file"data/named.run";
                severity dynamic;
       };
};
zone "." IN {      //根域配置
       type hint;
       file "named.ca";
};
include"/etc/named.rfc1912.zones";
include "/etc/named.root.key";

2、区域主配置文件named.rfc1912.zones

域名规划

域名:361way.com
正向区域:361way.com
反向区域:0.168.192.in-addr.arpa
正向区域文件:361way.com.zone
反向区域文件:0.168.192.in-addr.arpa

注:反向区域名称一般为IP前三部分反过来写 +   in-addr.arpa 的格式

对应的在named.rfc1912.zones后面追加以下内容:

zone "361way.com" IN {
       type master;
       file "361way.com.zone";  //zone域文件在/var/named目录下
};
zone "0.168.192.in-addr.arpa" IN{
       type master;
       file "192.168.0.zone";
};

二、正反区域解析文件

1、区域解析文件说明

常见的正解文件 RR 相关信息
[domain]       IN           [[RR type]                 [RR data]]
主机名.         IN            A                    IPv4 的 IP 地址
主机名.         IN            AAAA                 IPv6 的 IP 地址
区域名.         IN            NS                   管理这个领域名的服务器主机名字.
区域名.         IN            SOA                  管理这个领域名的七个重要参数(如上说明)
区域名.         IN            MX     顺序数字       接收邮件的服务器主机名字
主机别名.       IN            CNAME                实际代表这个主机别名的主机名字.
单位:W=周、D=日、H=小时、M=分钟。
$TTL   86400             宏定义全局TTL时间
@      IN     SOA    ns.oracle.com.  root ( # ns.oracle.com. 是DNS服务器的名称
                         0               ; serial (d. adams) 仅作为序列号而已
                        1D               ;refresh          服务器的更新时间
                        15M              ; retry           重新更新时间间隔
                        1W               ; expiry          多久之后宣布失败
                        1H )             ;minimum          相当于缓存记忆时间

2、正向解析文件

# cat 361way.com.zone
$TTL 600
$ORIGIN 361way.com.
@      IN      SOA     ns.361way.com.  root.361way.com. (
                        2014121001      ;serial
                        1D              ;refresh
                        5M              ;retry
                        1W              ;expiry
                        1H)             ;minimum
@      IN      NS      ns.361way.com.
       IN      MX  5   mail.361way.com.
ns     IN      A       192.168.0.103
@      IN      A       192.168.0.102
www    IN      A       192.168.0.103
mail   IN      A       192.168.0.109
pop3   IN      A       192.168.0.103
iamp4  IN      A       192.168.0.103

3、反向区域配置

# cat 192.168.0.zone
$TTL 600
$ORIGIN 0.168.192.in-addr.arpa.
@      IN      SOA     ns.361way.com.  root.361way.com. (
                        2014121001      ;serial
                        1D              ;refresh
                        5M              ;retry
                        1W              ;expiry
                        1H)             ;minimum
@      IN      NS      ns.361way.com.
       IN      MX   5 mail.361way.com.
103      IN      PTR     ns.361way.com.
103      IN      PTR     www.361way.com.
102      IN      PTR     361way.com.
109      IN      PTR     mail.361way.com.
103      IN      PTR     pop3.361way.com.
103      IN      PTR     iamp4.361way.com.

需要注意的是,上面的103、102、109是对应的IP地址最后一位的数字

4、测试配置文件

系统为我们提供了named-checkconf和named-checkzone两个命令用于检测主配置文件和区域配置文件的语法正确情。

主配置文件检查
# named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone 361way.com/IN: loaded serial 2014121001
zone 0.168.192.in-addr.arpa/IN: loaded serial 2014121001
正向区域文件检查
# named-checkzone '361way.com' 361way.com.zone
zone 361way.com/IN: loaded serial 2014121001
OK
反向区域文件检查
# named-checkzone "0.168.192.in-addr.arpa" 192.168.0.zone
zone 0.168.192.in-addr.arpa/IN: 0.168.192.in-addr.arpa/MX 'mail.361way.com' (out of zone) has no addresses records (A or AAAA)
zone 0.168.192.in-addr.arpa/IN: loaded serial 2014121001
OK

最后确认,上面的正反区域两个文件在/var/named下对于named用户有读的权限,当然也可以直接chown named filename的方法更改属主。

三、服务启动相关

1、确认禁用了selinux

2、配置iptable中开放了udp与tcp的53端口

3、启动服务

# service named restart  

4、在其他主机的网口配置文件中ifcfg-ethx中增加或在/etc/resolv.conf中增加相关配置

# ifcfg-ethX中增加如下
DNS=192.168.0.103
# resolv.conf中增加的配置为
nameserver 192.168.0.103

四、dig、host、nslookup测试

1、dig测试

正向查询
# dig -t SOA 361way.com @192.168.0.103
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t SOA 361way.com @192.168.0.103
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15082
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;361way.com.                    IN      SOA
;; ANSWER SECTION:
361way.com.             600     IN      SOA     ns.361way.com. root.361way.com. 2014121001 86400 300 604800 3600
;; AUTHORITY SECTION:
361way.com.             600     IN      NS      ns.361way.com.
;; ADDITIONAL SECTION:
ns.361way.com.          600     IN      A       192.168.0.103
;; Query time: 1 msec
;; SERVER: 192.168.0.103#53(192.168.0.103)
;; WHEN: Wed Nov 11 23:29:47 CST 2015
;; MSG SIZE  rcvd: 113
反向查询
# dig -x 192.168.0.103 @192.168.0.103       //@后面的是DNS服务器地址,前面的是要反向查询的IP
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -x 192.168.0.103 @192.168.0.103
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49453
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;103.0.168.192.in-addr.arpa.    IN      PTR
;; ANSWER SECTION:
103.0.168.192.in-addr.arpa. 600 IN      PTR     iamp4.361way.com.
103.0.168.192.in-addr.arpa. 600 IN      PTR     ns.361way.com.
103.0.168.192.in-addr.arpa. 600 IN      PTR     www.361way.com.
103.0.168.192.in-addr.arpa. 600 IN      PTR     pop3.361way.com.
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 600     IN      NS      ns.361way.com.
;; ADDITIONAL SECTION:
ns.361way.com.          600     IN      A       192.168.0.103
;; Query time: 0 msec
;; SERVER: 192.168.0.103#53(192.168.0.103)
;; WHEN: Wed Nov 11 23:08:19 CST 2015
;; MSG SIZE  rcvd: 169

2、host命令测试

正向查询
# host -t A  www.361way.com  192.168.0.103
Using domain server:
Name: 192.168.0.103
Address: 192.168.0.103#53
Aliases:
www.361way.com has address 192.168.0.103
或者
# host -i www.361way.com
www.361way.com has address 192.168.0.103
反向查询
# host -t ptr 192.168.0.103 192.168.0.103
Using domain server:
Name: 192.168.0.103
Address: 192.168.0.103#53
Aliases:
103.0.168.192.in-addr.arpa domain name pointer pop3.361way.com.
103.0.168.192.in-addr.arpa domain name pointer iamp4.361way.com.
103.0.168.192.in-addr.arpa domain name pointer ns.361way.com.
103.0.168.192.in-addr.arpa domain name pointer www.361way.com.
# host -t ptr 192.168.0.102 192.168.0.103
Using domain server:
Name: 192.168.0.103
Address: 192.168.0.103#53
Aliases:
102.0.168.192.in-addr.arpa domain name pointer 361way.com.

3、nslookup测试

正向查询
# nslookup www.361way.com
Server:         192.168.0.103
Address:        192.168.0.103#53
Name:   www.361way.com
Address: 192.168.0.103
反向查询
# nslookup
> set q=ptr
> 192.168.0.102
Server:         192.168.0.103
Address:        192.168.0.103#53
102.0.168.192.in-addr.arpa      name = 361way.com.
> 192.168.0.103
Server:         192.168.0.103
Address:        192.168.0.103#53
103.0.168.192.in-addr.arpa      name = ns.361way.com.
103.0.168.192.in-addr.arpa      name = www.361way.com.
103.0.168.192.in-addr.arpa      name = pop3.361way.com.
103.0.168.192.in-addr.arpa      name = iamp4.361way.com.
>
或者直接使用
# nslookup -q=ptr 192.168.0.102     //windows下使用的是nslookup -qt=ptr 192.168.0.102
Server:         192.168.0.103
Address:        192.168.0.103#53
102.0.168.192.in-addr.arpa      name = 361way.com.

其中不论是linux下的-q或window下的-qt其都是-querytype的缩写




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.