分享

Linux下搭建DNS服务器和配置文件(named.conf)祥解

 孔林卢 2012-02-25

Linux下搭建DNS服务器和配置文件(named.conf)祥解

| 暂无评论 | 559阅

配置之前先了解一下BIND DNS服务器软件:BIND是一种开源的DNS(Domain Name System)协议的实现,包含对域名的查询和响应所需的所有软件。它是互联网上最广泛使用的一种DNS服务器,对于类Unix系统来说,已经成为事实上的标准。

为了构架DNS服务器来解析域名或IP地址,我们得安装BIND和caching-nameserver。为了TCP和UDP53数据包能通过,我们也有必要配置路由器。

安装 BIND 软件包

1、安装

# yum -y install bind caching-nameserver

2、配置

下面的例子是以公网IP(172.16.0.80/29),局域网IP(192.168.0.0/24),域名()作说明。在配置你自己的服务器时,请使用你自己的IP和域名。

# vim /etc/named.conf

options {
directory "/var/named";
# query range
allow-query { localhost; 192.168.0.0/24; };
# transfer range
allow-transfer { localhost; 192.168.0.0/24; };
# recursion range
allow-recursion { localhost; 192.168.0.0/24; };
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
# here is the section for internal informations
vimew "internal" {
match-clients {
localhost;
192.168.0.0/24;
};
zone "." IN {
type hint;
file "named.ca";
};
# set zones for internal
zone "" IN {
type master;
file ".lan";
allow-update { none; };
};
# set zones for internal
zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.db";
allow-update { none; };
};

zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};

zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};

zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
};

vimew "external" {
match-clients {
any;
};

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

# set zones for external
zone "" IN {
type master;
file ".wan";
allow-update { none; };
};

# set zones for external *note
zone "80.0.16.172.in-addr.arpa" IN {
type master;
file "80.0.16.172.db";
allow-update { none; };
};
};

include "/etc/rndc.key";

# *note : For How to write for reverse resolvimng, Write network address reversely like below.

the case for 192.168.0.0/24
network address? 192.168.0.0
range of network? 192.168.0.0 - 192.168.0.255
how to write? 0.168.192.in-addr.arpa

case of 172.16.0.80/29
network address? 172.16.0.80
range of network? 172.16.0.80 - 172.16.0.87
how to write? 80.0.16.172.in-addr.arp

设置Zones

创建zone文件以便服务器能解析域名IP。

1、内部zone文件

这个例子使用的是内网地址(192.168.0.0/24),域名(),请根据自己的具体情况配置。

# vim /var/named/.lan

$TTL    86400
@        IN    SOA   ns.. root.. (
               2007041501   ;Serial
               3600         ;Refresh
               1800         ;Retry
               604800       ;Expire
               86400        ;Minimum TTL

)
               # define name server
               IN    NS     ns..
               # internal IP address of name server
               IN    A       192.168.0.17
               # define Mail exchanger
               IN    MX 10   ns..

               # define IP address and hostname
ns             IN    A       192.168.0.17

2、外部zone文件

这个例子使用的是外网地址(172.16.0.80/29),域名(),请替换成自己的。

# vim /var/named/.wan

$TTL      86400
@          IN    SOA    ns.. root.. (
                 2007041501    ;Serial
                 3600          ;Refresh
                 1800          ;Retry
                 604800        ;Expire
                 86400         ;Minimum TTL
)
                 # define name server
                 IN        NS   ns..
                 # external IP address of name server
                 IN        A    172.16.0.82
                 # define Mail exchanger
                 IN        MX 10 ns..

                 # define IP address and hostname
ns               IN        A     172.16.0.82

创建zone文件使服务器能够反向解析IP到域名。

3、内部zone文件

这个例子使用的是内网地址(192.168.0.0/24),域名(),请使用自己的设置替换。

# vim /var/named/0.168.192.db

$TTL    86400
@       IN    SOA  ns.. root.. (
              2007041501     ;Serial
              3600           ;Refresh
              1800           ;Retry
              604800         ;Expire
              86400          ;Minimum TTL
)
              # define name server
              IN        NS    ns..

              # define range that this domain name in
              IN        PTR   .
              # define IP address and hostname
              IN        A     255.255.255.0

17            IN        PTR   ns..

4、外部zone文件

这例子使用外网地址(172.16.0.80/29),域名(),请替换成自己的。

# vim /var/named/80.0.16.172.db

$TTL     86400
@        IN    SOA  ns.. root.. (
               2007041501     ;Serial
               3600           ;Refresh
               1800           ;Retry
               604800         ;Expire
               86400          ;Minimum TTL
)
               # define name server
               IN        NS   ns..

               # define range that this domain name in
               IN        PTR  .
               # define IP address and hostname
               IN        A     255.255.255.248

82             IN        PTR   ns..

启动BIND

1、完成BIND的配置后,在启动named之前,还需要建立chroot环境。

# yum -y install bind-chroot
# /etc/rc.d/init.d/named start
# chkconfig named on

2、操作检验

确认服务器已经正确解析域名或IP地址。

# dig ns..
; <<>> DiG 9.3.4 <<>> ns..
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54592
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
 
;; QUESTION SECTION:
;ns..           IN   A
 
;; ANSWER SECTION:
ns.. 86400   IN   A    192.168.0.17
 
;; AUTHORITY SECTION:
.     86400   IN   NS   ns..
 
;; Query time: 0 msec
;; SERVER: 192.168.0.17#53(192.168.0.17)
;; WHEN: Thu Mar 8 19:35:19 2007
;; MSG SIZE rcvd: 68 

# dig -x 192.168.0.17
; <<>> DiG 9.3.4 <<>> -x 192.168.0.17
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45743
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
 
;; QUESTION SECTION:
;17.0.168.192.in-addr.arpa.           IN   PTR
 
;; ANSWER SECTION:
17.0.168.192.in-addr.arpa. 86400   IN   PTR   ns..
 
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa.     86400   IN   NS     ns..
 
;; ADDITIONAL SECTION:
ns..          86400   IN   A       192.168.0.17
 
;; Query time: 0 msec
;; SERVER: 192.168.0.17#53(192.168.0.17)
;; WHEN: Thu Mar 8 19:37:50 2007
;; MSG SIZE rcvd: 107

配置从DNS服务器

配置从DNS服务器比较简单。下面的例子主DNS是“ns.”,从DNS是“ns.example.info”。

1、在主DNS服务器的zone文件作如下配置

# vim /var/named/.wan

$TTL     86400
@        IN   SOA   ns.. root.. (
              # update serial
              2007041501      ;Serial
              3600            ;Refresh
              1800            ;Retry
              604800          ;Expire
              86400           ;Minimum TTL
)
              IN         NS   ns..
              # add name server
              IN         NS   ns.example.info.
              IN         A    172.16.0.82
              IN         MX 10 ns..

ns            IN         A    172.16.0.82

# rndc reload
server reload successful

2、配置从DNS服务器

# vim /etc/named.conf

    # add these lines below
    zone "" IN {
          type slave;
          masters { 172.16.0.82; };
          file "slaves/.wan";
};

# rndc reload
server reload successful
# ls /var/named/slaves
.wan         # zone file in master DNS has been just transfered

设置别名记录,如果你想为你的主机设置另一个名称,在zone文件定义CNAME记录

# vim /var/named/server-Linux.info.wan

$TTL    86400
@       IN    SOA   ns.server-linux.info. root.server-linux.info. (
              # update serial
              2007041501      ;Serial
              3600            ;Refresh
              1800            ;Retry
              604800          ;Expire
              86400           ;Minimum TTL
)
              IN        NS    ns.server-linux.info.
              IN        A     172.16.0.82
              IN        MX 10 ns.server-linux.info.

ns            IN        A     172.16.0.82
# aliase IN CNAME server's name
ftp          IN       CNAME   ns.server-linux.info. 

# rndc reload
server reload successful

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多