现在的位置: 首页 > 综合 > 正文

安装配置域名服务器(dns)- bind

2013年09月03日 ⁄ 综合 ⁄ 共 3721字 ⁄ 字号 评论关闭

安装配置域名服务器(dns- bind

作者:zccst

 

 

 

原理篇

1,什么是DNS

——DNSDomain Name Service,或者Domain Name Server,域名服务/域名服务器

当你在浏览器里输入:www.baidu.com之后,之所以可以上去,是因为有了DNS

简言之,DNS把一串名字,转换成了IP地址。

2,什么是BIND

Bind是使用最广泛的Domain Name Server,它是Berkeley Internet Name Domain Service的简写,伯克里大学编写的。

 

 

实践篇

Ubuntu

192.168.233.141

 

下载最新的Bind发行版:
http://www.isc.org
目前最新版本为:bind-9.6.1.tar.gz

一、安装

源文件:bind-9.6.1.tar.gz

进入源文件所在目录

tar  -zxvf  bind-9.6.1.tar.gz

cd  bind-9.6.1

./configure  --prefix=/usr/local/named  --enable-threads

make

make  install

安装到此完毕。下面查看安装版本号:

cd  /usr/local/named

sbin/named  -v

 

二、配置

(目前在/usr/local/named目录下)

mkdir dev
mkdir logs

(以上两个文件夹可选创)

1,创建etc目录

sudo  mkdir  etc

直接生成验证文件.rndc.conf 和密锁

sbin/rndc-confgen  >  etc/rndc.conf

但报错如下:

bash:  etc/rndc.conf:Permission denied

 

本以为是本条指令的权限不对,于是

useradd  named

chown  -R  named:named  /usr/local/named/

锁定用户
passwd -l named

但仍然失败,郁闷。

 

后来在同事的帮助下,问题解决:

首先,sudo  sbin/rndc-confgen  >  etc/rndc.conf的前半部分权限的对的,只是后半部分不对。而不是一开始自己以为的使用named用户。

 

修改root用户密码:

sudo  passwd  root

输入当前普通用户的密码后,便可重新设置root密码

切换用户角色,su  - 进入root用户

输入root新设置的密码后,顺利进入root权限,以后的操作就方便多了。

 

root权限下,执行

sbin/rndc-confgen  >  etc/rndc.conf

顺利生成rndc.conf控制命令的key文件(注:符号指向:’>’是覆盖,’>>’是添加)

然后cd  etc/

rndc.conf文件中提取named.conf用的key

tail  -10  rndc.conf  |  head  -9  |  sed  s/#/  //g  >  named.conf

自动在/usr/local/named/etc生成named.conf文件

 

2,创建 /var/named 目录

mkdir  /var/named

cd  /var/named

 

(1)vi  localhost.zone

添加以下内容:

$TTL    86400
$ORIGIN localhost.
@                       1D IN SOA       @ root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        @
                        1D IN A         127.0.0.1

 

(2) vi named.local

添加以下内容:

$TTL    86400
@       IN      SOA     localhost. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      localhost.

1       IN      PTR     localhost.

(3) dig命令直接生成named.root文件

dig > named.root

 

(4) vi test.zone(建立test.com域名正向解析文件:把网站名称转换成IP地址)

添加以下内容:

$ttl    1D
@               IN SOA  test.com.  root.test.com. (

                                       1053891162
                                        3H
                                        15M
                                        1W
                                        1D )

                        IN NS          test.com.
                        IN MX    5    test.com.
www                IN A          220.202.19.82

 

(5)vi test.local(建立test.com域名反向解析文件:把IP地址转换为网站名称)

添加以下内容:

$TTL 86400
@ IN SOA test.com. root.test.com.(
20031001;
7200;
3600;
43200;
86400);
@ IN NS test.com.
82 IN PTR 
www.test.com.

 

 

注释一:

IN表示后面的数据使用的是INTERNET标准

SOA表示授权开始

@则代表相应的域名

test.com  授权主机

root.test.com  管理者信箱   root@test.com

NS:表示是这个主机是一个域名服务器,

A:定义了一条A记录,即主机名到IP地址的对应记录

MX 定义了一邮件记录

CNAME:定义了对应主机的一个别名

type类型有三种,它们分别是master,slavehint它们的含义分别是:

master:表示定义的是主域名服务器

slave :表示定义的是辅助域名服务器

hint:表示是互联网中根域名服务器

zone关键字来定义域区的,一个zone关键字定义一个域区

PTR记录用来解析IP地址对应的域名

 

注释二:

Serial:其格式通常会是年月日+修改次序”(但也不一定如此,您自己能够记得就行)。当 slave 要进行资料同步的时候,会比较这个号码。如果发现在这里的号码比它那边的数值,就进行更新,否则忽略。不过设 serial 有一个地方您要留意:不能超过 10 位数字!

Refresh:这里是是告诉 slave 要隔多久要进行资料同步(是否同步要看 Serial 的比较结果)

Retry:如果 slave 在进行更新失败后,要隔多久再进行重试。

Expire:这是记录逾期时间:当 slave 一直未能成功与 master 取得联系,那到这里就放弃 retry,同时这里的资料也将标识为过期( expired )

Minimum:这是最小默认 TTL 值,如果您在前面没有用“$TTL”来定义,就会以此值为准。

 

 

3,主配置文件 named.conf

DNS 服务器的主体是域名服务器进程 named named启动后向DNS客户机提供域名解析服务,把域名转换成IP地址。
  named 启动时需要读取一个初始化文件,缺省情况下是 /etc/bind/named.conf,这是bind

抱歉!评论已关闭.