ubuntu搭建配置bind(转)

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";

};
    1. 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

遇到的问题

    1. rndc: connect failed: 127.0.0.1#953: connection

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

    1. 出现文件不能生成

      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 # c
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)

  1. 公网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


你可能感兴趣的:(ubuntu搭建配置bind(转))