企业DNS服务器搭建入门

1470阅读 0评论2014-07-30 pizimsn
分类:LINUX

企业DNS服务器搭建入门

dns简介

  DNSDomain Name System,域名系统),能使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串,通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53

域名空间

  DNS的分布式数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中的路径,这棵逆向树称为域名空间(domain name space )。在树的顶端,有惟一的一个根,叫做“根(root)。同文件系统一样,DNS的树在每个分叉点可以有任意多个分支,这些分叉点称为“节点”(node)。树的深圳度不得超过127层(实际应用也不可能超过)。

域名

  树中每个节点都有一个可以长达63个字符的文本标号(text label)(不含“.”)。空标号(长度为0)是为根保留的。树中任何一个节点的完整域名(domain name)都是从该节点到根的路径上所有节点标号的顺序连接。域名总是从节点向根(向上)的方向读。并用“.”来分隔路径上所出现的各个名字(文本标号)。

Bind项目

Bind(Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,占有率达90%20世纪80年代由柏克莱加州大学计算机系统研究小组的四个研究生一同编写了BIND的第一个版本,现由互联网系统协会(Internet Systems Consortium)负责开发与维护。

 

 

Bind搭建

环境准备

操作系统:CentOS6.4

服务器IP

192.168.100.60    ns1.linuxservers.cn

192.168.100.61    ns2.linuxservers.cn

Bind安装

从官方网站下载

wget

解压

tar xzvf bind-9.9.5.tar.gz

安装

./configure --prefix=/usr/local/bind --disable-openssl-version-check

make;make install

bind配置

远程管理配置文件rndc.conf

/usr/local/bind/sbin/rndc-confgen > /usr/local/bind/etc/rndc.conf

 

主配置文件named.conf

实现基本DNS功能的named.conf文件可分为4大块:选项文本块,安全认证文本块,查询日志记录文本块,区域文本块。这种分类法仅仅是为了描述方便。

vim named.conf

1)选项文本块

options {

   directory "/data/named";     #数据文件与程序分开存储,即数据文件存储到/data/named

   version "[unknown version]";     #隐藏bind的版本信息

   allow-query-cache {any;};     

   pid-file "named.pid";

};

2)安全认证文本块

key "rndc-key" {

       algorithm hmac-md5;

       secret "kJDNwui6Rr/39ODlLTOHSg==";

};

 

controls {

       inet 127.0.0.1 port 953

       allow { 127.0.0.1; } keys { "rndc-key"; };

};

 

3)查询日志记录块

logging {

         channel query_log {

                     file "query.log" versions 5  size 20m;

                     severity info;

                     print-time yes;

                     print-category yes;

                     };

         category queries {

                     query_log;

                     };

};

注释:

file "query.log" versions 5  size 20m; 定义了查询日志的文件名称为query.log,每个日志文件大小为20MB,达到这个容量后,自动轮转日志。

 

4)区文本块

zone "." IN {

     type hint;

     file "named.root";

     };

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 "linuxservers.cn" IN {

     type master;

     file "linuxservers.cn.zone";

     allow-update { none; };

     };

zone "yanfa.com" IN {

     type master;

     file "yanfa.com.zone";

     allow-update { none; };

     };

 

这四个区块,语法基本相同,type的值一共有5类,根域“.”人类型typehint,它与后面几个稍有不同,File指定的四个区数据文件,应当被放在named.conf的选项块“directory “/data/named”;”中进行的。

最后将前面4个区块的配置合成,写入named.conf如下:

[root@master ~]# cat /usr/local/bind/etc/named.conf

options {

   directory "/data/named";     #数据文件与程序分开存储,即数据文件存储到/data/named

   version "[unknown version]";

   allow-query-cache {any;};

   pid-file "named.pid";

};

 

key "rndc-key" {

       algorithm hmac-md5;

       secret "kJDNwui6Rr/39ODlLTOHSg==";

};

 

controls {

       inet 127.0.0.1 port 953

       allow { 127.0.0.1; } keys { "rndc-key"; };

};

 

 

logging {

         channel query_log {

                     file "query.log" versions 5  size 20m;

                     severity info;

                     print-time yes;

                     print-category yes;

                     };

         category queries {

                     query_log;

                     };

};

 

zone "." IN {

     type hint;

     file "named.root";

     };

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 "linuxservers.cn" IN {

     type master;

     file "linuxservers.cn.zone";

     allow-update { none; };

     };

zone "yanfa.com" IN {

     type master;

     file "yanfa.com.zone";

     allow-update { none; };

     };

 

撰写区数据文件

前面在配置文件中定义了5个区,共指定了5个区数据文件,下面列出每个区数据文件的内容。

  1. 根域区数据文件named.root

可从ftp://ftp.rs.internic.net/domain/下载最新named.root文件

内容示例如下所示:

;       This file holds the information on root name servers needed to

;       initialize cache of Internet domain name servers

;       (e.g. reference this file in the "cache  .  "

;       configuration file of BIND domain name servers).

;

;       This file is made available by InterNIC

;       under anonymous FTP as

;           file                /domain/named.cache

;           on server           FTP.INTERNIC.NET

;       -OR-                    RS.INTERNIC.NET

;

;       last update:    June 2, 2014

;       related version of root zone:   2014060201

;

; formerly NS.INTERNIC.NET

;

.                        3600000  IN  NS    A.ROOT-SERVERS.NET.

A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4

A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:BA3E::2:30

;

; FORMERLY NS1.ISI.EDU

;

.                        3600000      NS    B.ROOT-SERVERS.NET.

B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201

B.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:84::B

;

; FORMERLY C.PSI.NET

;

.                        3600000      NS    C.ROOT-SERVERS.NET.

C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12

C.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2::C

;

; FORMERLY TERP.UMD.EDU

;

.                        3600000      NS    D.ROOT-SERVERS.NET.

D.ROOT-SERVERS.NET.      3600000      A     199.7.91.13

D.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2D::D

;

; FORMERLY NS.NASA.GOV

;

.                        3600000      NS    E.ROOT-SERVERS.NET.

E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10

;

; FORMERLY NS.ISC.ORG

;

.                        3600000      NS    F.ROOT-SERVERS.NET.

F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241

F.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2F::F

;

; FORMERLY NS.NIC.DDN.MIL

;

.                        3600000      NS    G.ROOT-SERVERS.NET.

G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4

;

; FORMERLY AOS.ARL.ARMY.MIL

;

.                        3600000      NS    H.ROOT-SERVERS.NET.

H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53

H.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:1::803F:235

;

; FORMERLY NIC.NORDU.NET

;

.                        3600000      NS    I.ROOT-SERVERS.NET.

I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17

I.ROOT-SERVERS.NET.      3600000      AAAA  2001:7FE::53

;

; OPERATED BY VERISIGN, INC.

;

.                        3600000      NS    J.ROOT-SERVERS.NET.

J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30

J.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:C27::2:30

;

; OPERATED BY RIPE NCC

;

.                        3600000      NS    K.ROOT-SERVERS.NET.

K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129

K.ROOT-SERVERS.NET.      3600000      AAAA  2001:7FD::1

;

; OPERATED BY ICANN

;

.                        3600000      NS    L.ROOT-SERVERS.NET.

L.ROOT-SERVERS.NET.      3600000      A     199.7.83.42

L.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:3::42

;

; OPERATED BY WIDE

;

.                        3600000      NS    M.ROOT-SERVERS.NET.

M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33

M.ROOT-SERVERS.NET.      3600000      AAAA  2001:DC3::35

; End of File

 

  1. 区数据文件localhost.zone

$TTL    86400

$ORIGIN localhost.

@                   1D IN SOA    @ root (

                             42         ; serial (d. adams)

                             3H         ; fefresh

                             15M        ; retry

                             1W         ; expiry

                             1D )       ; minimum

                    1D IN NS     @

                    1D IN A      127.0.0.1

 

  1. 区文件named.local

$TTL    86400

@     IN   SOA  localhost. root.localhost. (

                   2006121601     ; serial (d. adams)

                       3H         ; refresh

                       15M        ; retry

                       1W         ; expiry

                       1D )       ; minimum

      IN   NS     localhost.

1     IN   PTR    localhost

 

  1. 区数据文件linuxservers.cn.zone

$TTL  1D

@               IN SOA ns1.linuxservers.cn. root.ns1.linuxservers.cn. (

                                  2009071966    ; serial

                                  3H            ; refresh

                                  15M           ; retry

                                  1W            ; expiry

                                  1D )          ; minimum

                      IN NS       ns1.linuxservers.cn.

                    

;A recorder

@                     IN A        192.168.100.60

ns1                   IN A        192.168.100.60

www                   IN A        192.168.100.60

blog                  IN A        192.168.100.61

配置文件介绍

1行: 设定缓存时间(TTL time-to-live)为1天,默认单位是秒,可选用的单位是周(W,天(D),小时(H),分钟(M)等。如果设定为0表示不缓存。

2~8行: 权威服务器设定。

         @代表域linuxservers.cn

         IN SOA代表internet的资源类型是SOA.在区数据文件中,还可能有NS,MX,A,PRT,CNAME,TXT等其他资源类型。

         Ns1.linuxservers.cn。充当授权服务器的主机,名为ns1.linuxservers.cn。这个名称不能随意指定,它必须与你在域名注册商设置的相一致时,才能在互联网中提供正常的DNS服务。

        3行是数字形式的序列号,主要用它来决定是否同步主从DNS的数据,每次更新区数据文件时,都应当记得修改这个数值。

        4行设置从DNS每隔3小时对比检查一次主DNS服务器的序列号。

        5行设置从DNS请求主DNS失效后,重试时间为15分钟。

        6行设定主DNS失效时,从DNS可对外提供域名服务的有效期为1周。

        7行设定否定TTL缓存时间为1天。

8行:设置1NS资源记录,也就是说我们有1DNS服务器可用

11~14行: 设定4A记录。分别是linuxservers.cnns1.linuxservers.cnblog.linuxservers.cn

区数据文件的书写注意几点如下:

启动bind服务

/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf

检查bind是否启动

ps -ef | grep named

root     20117     1  0 15:38 ?        00:00:00 /usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf

上一篇:linux高级技巧:集群的搭建(一)
下一篇:Zimbra管理手册