Ubuntu采用bind9配置DNS服务器



Ubuntu采用bind9配置DNS服务器

最近公司项目需要用到dns服务器,就搭建了dns服务器。

 

1. BIND9 的安装与配置
1.1 bind简介

BIND (Berkeley Internet Name Domain)是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,包括

* 域名服务器 (named)
* DNS解析库函数
* DNS服务器运行调试所用的工具

是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,

按照ISC的调查报告,BIND是世界上使用最多最广泛的域名服务系统。不论你的邮件服务器,WEB服务器或者其他的services如何的安全可靠,DNS的故障会给你带来用户根本无法访问这些服务。

BIND,也是我们常说的named,由于多数网络应用程序使用其功能,所以在很多BIND的弱点及时被发现。主要分为三个版本:

v4


1998年多数UNIX捆绑的是BIND4,已经被多数厂商抛弃了,除了OpenBSD还在使用。OpenBSD核心人为BIND8过于复杂和不安全,所以继续使用BIND4。这样一来BIND8/9的很多优点都不包括在v4中。
v8

就是如今使用最多最广的版本,其详细内容可以参阅 BIND 8+ 域名服务器安全增强
v9

最新版本的BIND,全部重新写过,免费(但是由商业公司资助),也添加了许多新的功能(但是安全上也可能有更多的问题)。BIND9在2000年十月份推出,现在稳定版本是9.3.2。

 

2. 安装方式

   目前有两种方式:源码安装和apt-get或者rpm安装。

 

2.1 源码安装

    

下载地址  http://www.isc.org/products/BIND

 

tar zxvf bind-9.2.6.tar.gz

包括以下子目录:bin(全部BIND二进制源代码,包括named),contrib(一些工具) 

,doc(BIND的文档,包括资源手册),lib(BIND使用的库的源代码),make(makefile文件). 

#./configure 

编译BIND,输入: 
#make all 
安装BIND 
#make install

 

 

2.2 apt-get

apt-get install bind9   

2种方式笔者都使用了第二种方式简单很多,第二种方法会生成很多基础的配置文件,使用起来简单了很多 

 

这里以第二种方法来介绍:安装完成后,配置如下
# ls /etc/bind/ -l
total 44
-rw-r--r-- 1 root root 237 Jan 16 2006 db.0
-rw-r--r-- 1 root root 271 Jan 16 2006 db.127
-rw-r--r-- 1 root root 237 Jan 16 2006 db.255
-rw-r--r-- 1 root root 353 Jan 16 2006 db.empty
-rw-r--r-- 1 root root 256 Jan 16 2006 db.local
-rw-r--r-- 1 root root 1507 Jan 16 2006 db.root
-rw-r--r-- 1 root bind 1611 Jan 16 2006 named.conf
-rw-r--r-- 1 root bind 165 Jan 16 2006 named.conf.local
-rw-r--r-- 1 root bind 672 Jan 16 2006 named.conf.options

-rw-r--r-- 1 root root  490 Feb 18 05:45 named.conf.default-zones
-rw-r----- 1 bind bind 77 Aug 4 08:41 rndc.key
-rw-r--r-- 1 root root 1317 Jan 16 2006 zones.rfc1918

 

 

配置文件说明:

named.conf  Bind主配置文件
named.conf.options全局选项
db.root   根服务器指向文件, 由Internet NIC创建和维护, 无需修改, 但是需要定期更新
db.local    localhost正向区文件,用于将名字localhost转换为本地回送IP地址 (127.0.0.1)


db.127    localhost反向区文件,用于将本地回送IP地址(127.0.0.1)转换为名字localhost

其中,主配置文件/etc/named.conf的配置语句

命令 用法 
acl 定义IP地址的访问控制清单 
control 定义ndc使用的控制通道 
include 把其他文件包含到配置文件中 
key 定义授权的安全密钥 
logging 定义日志写什么,写到哪 
opitons 定义全局配置选项和缺省值  
server 定义远程服务器的特征 
trunsted-keys 为服务器定义DNSSEC加密密钥 
zone 定义一个区

默认情况下, 内容如下:

// This is the primary configuration file for the BIND DNS server named.

//

// Please read /usr/share/doc/bind9/README.Debian.gz for information on the 

// structure of BIND configuration files in Debian, *BEFORE* you customize 

// this configuration file.

//

// If you are just adding zones, please do that in /etc/bind/named.conf.local

 

include "/etc/bind/named.conf.options";

include "/etc/bind/named.conf.local";

include "/etc/bind/named.conf.default-zones";

可见主配置文件主要是包含三个部分:

1、named.conf.options 一些配置选项

2、named.conf.default-zones 默认的本地规则,包含跟文件、正向区文件反向区文件

root@ubuntu:/etc/bind# cat named.conf.default-zones 

// prime the server with knowledge of the root servers

zone "." {

type hint;

file "/etc/bind/db.root";

};

 

// be authoritative for the localhost forward and reverse zones, and for

// broadcast zones as per RFC 1912

 

zone "localhost" {

type master;

file "/etc/bind/db.local";

};

 

zone "127.in-addr.arpa" {

type master;

file "/etc/bind/db.127";

};

 

zone "0.in-addr.arpa" {

type master;

file "/etc/bind/db.0";

};

 

zone "255.in-addr.arpa" {

type master;

file "/etc/bind/db.255";

};

 

3、Named.conf.local 这个是用来用户定义的,我们在这里面添加域即可

   测试域名:smart-clouds.cn
   测试ip: 192.168.206.138 主域名服务器 
   

 

 

Named.conf.local中增加

zone "smart-clouds.cn"{

    type master;

    file "/etc/bind/db.smart-clouds.cn";

//    allow-query-cache { any; };

    allow-query { any; };

    allow-update { any; };

//    recursion yes;

};

 

zone "206.168.192.in-addr.arpa"{

    type master;

    file "/etc/bind/db.192.smart-clouds.cn";

};

增加db.smart-clouds.cn

root@ubuntu:/etc/bind# touch db.smart-clouds.cn

root@ubuntu:/etc/bind# cat db.smart-clouds.cn 

;ND data file for local loopback interface

;

$TTL 604800

$ORIGIN smart-clouds.cn.

@ IN SOA smart-clouds.cn. root.smart-clouds.cn. (

2006080401 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;

 

@ IN NS ns1

@ IN A 192.168.206.138

ns1 IN A 192.168.206.138

www IN A 192.168.206.138

 

root@ubuntu:/etc/bind# cat /etc/bind/db.192.smart-clouds.cn 

 

$TTL 604800

@ IN SOA smart-clouds.cn. root.smart-clouds.cn. (

2006080401 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;

@ IN NS smart-clouds.cn.

138 IN PTR http://www.smart-clouds.cn.

138 IN PTR ns1.smart-clouds.cn.

 

 

内容含义参看http://hi.baidu.com/ubuntu2me/blog/item/235b94c9f84ea3107e3e6f06.html

http://www.cnblogs.com/cobbliu/archive/2013/03/19/2970311.html

 

这样一个简单的dns服务就已经实现

4、启动以及测试本地dns

   root@ubuntu:/etc/bind# /etc/init.d/bind9 restart

   查看启动日志文件

   root@ubuntu:/etc/bind# tail /var/log/syslog

 

Mar 19 22:43:14 ubuntu named[61378]: managed-keys-zone: loaded serial 3

Mar 19 22:43:14 ubuntu named[61378]: zone 0.in-addr.arpa/IN: loaded serial 1

Mar 19 22:43:14 ubuntu named[61378]: zone 255.in-addr.arpa/IN: loaded serial 1

Mar 19 22:43:14 ubuntu named[61378]: zone 127.in-addr.arpa/IN: loaded serial 1

Mar 19 22:43:14 ubuntu named[61378]: zone localhost/IN: loaded serial 2

Mar 19 22:43:14 ubuntu named[61378]: zone smart-clouds.cn/IN: loaded serial 2006080401

Mar 19 22:43:14 ubuntu named[61378]: all zones loaded

Mar 19 22:43:14 ubuntu named[61378]: running

Mar 19 22:43:14 ubuntu named[61378]: zone smart-clouds.cn/IN: sending notifies (serial 2006080401)

启动异常信息都从该日志中查看

查看bind进程是否启动 

root@ubuntu:/etc/bind# ps -aux|grep named

bind     61378  0.0  0.8 164688 12904 ?        Ssl  22:43   0:00 /usr/sbin/named -u bind

root     61440  0.0  0.0  15940   916 pts/11   S+   22:47   0:00 grep --color=auto named

 

   遇到的问题

   1rndc: connect failed: 127.0.0.1#953: connection

      解决http://blog.csdn.net/lujisheng/article/details/4637204

   2、出现文件不能生成

      chown -R bind 某文件夹 如chown -R named /etc/bind/

 

   修改/etc/resolv.conf文件 该文件用来设置采用dns服务器 修改为nameserver 127.0.0.1即采用本地dns服务

   测试 

   正向 root@ubuntu:/etc/bind# host smart-clouds.cn

        smart-clouds.cn has address 192.168.206.138

   反向 root@ubuntu:/etc/bind# host 192.168.206.138

        138.206.168.192.in-addr.arpa domain name pointer ns1.smart-clouds.cn.

   本地测试完成

 

5、增加日志信息

   参考   http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=212998&extra=page%3D1%26filter%3Dtypeid%26typeid%3D331%26digest%3D1%26typeid%3D331%26digest%3D1

   说明日志配置信息统一放到named.conf.options

   日志生成到哪取决于named.conf.options中的

   directory "/var/cache/bind";的设置如果日志不能生成同前面提到的

   chown -R bind

   

root@ubuntu:/etc/bind# cat /var/cache/bind/query.log 

19-Mar-2015 19:09:48.810 queries: client 127.0.0.1#50563 (smart.clouds.cn): query: smart.clouds.cn IN A + (127.0.0.1)

19-Mar-2015 19:11:01.011 queries: client 127.0.0.1#39147 (smart-clouds.cn): query: smart-clouds.cn IN A + (127.0.0.1)

     

6、公网dns服务器实现

   需要申请公网的域名,并且将服务器的域名注册。

 

参考文献

http://hi.baidu.com/ubuntu2me/blog/item/235b94c9f84ea3107e3e6f06.html

http://www.cnblogs.com/cobbliu/archive/2013/03/19/2970311.html

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=212998&extra=page%3D1%26filter%3Dtypeid%26typeid%3D331%26digest%3D1%26typeid%3D331%26digest%3D1

http://blog.csdn.net/lujisheng/article/details/4637204

 

 

猜你喜欢

转载自blog.csdn.net/colourzjs/article/details/44491479