6,DNS编译安装

过程:

一、安装

1、新建用户:

mkdir /usr/local/bind-9.9.2/

groupadd named

useradd -s /sbin/nologin -d /usr/local/bind-9.9.2/ -g named named

##Creating mailbox file: File exists  ---》 这里什么提示文件已经存在,没关系的。

 

2、解压编译

wget https://ftp.isc.org/isc/bind9/9.16.23/bind-9.16.23.tar.xz

tar -xvf bind-9.16.23.tar.xz

./configure --prefix=/usr/local/bind-9.9.2 --enable-threads

make &&make install

 

--prefix=/usr/local/bind-9.9.2 指定程序安装目录

--enable-threads 多线程支持

--sysconfdir=/etc/named/      设置named.conf配置文件放置的目录,默认是"$prefix/etc"

--localstatdir=/var            设置 run/named.pid 放置的目录,默认是"$prefix/var"

 

至此,安装完成,但自行编译bind源码包会产生如下问题

(1)没有配置文件

(2)没有区域解析文件(包括13个根服务器的解析文件)

(3)没有rndc的相关配置文件

 

 

[root@Linux1 bind-9.9.2]# cd /usr/local/bind-9.9.2/

[root@Linux1 bind-9.9.2]# ls

bin  etc  include  lib  sbin  share  var

 

3、配置

这里针对chroot机制做简单的配置,跟实际生产环境配置的思路是一致的。

[root@Linux1 bind-9.9.2]# pwd

/usr/local/bind-9.9.2

[root@Linux1 bind-9.9.2]# mkdir chroot

###这里先创建chroot来作为named的家目录,如果是系统创建用户自动生成家目录,会去copy /etc/skel 下的一些环境配置文件,而这些配置文件在这里是没必要的。

 

 

[root@Linux1 bind-9.9.2]# ls

bin  chroot  etc  include  lib  sbin  share  var

[root@Linux1 bind-9.9.2]# grep named /etc/passwd

named:x:501:501::/usr/local/bind-9.9.2/:/sbin/nologin

 

[root@Linux1 bind-9.9.2]# cd chroot/

[root@Linux1 chroot]# mkdir {dev,etc,var/{log,run,named}} -p

[root@Linux1 chroot]# cd dev

[root@Linux1 dev]# ls -lL /dev/zero /dev/null /dev/random 

crw-rw-rw-. 1 root root 1, 3 Oct 16 13:46 /dev/null

crw-rw-rw-. 1 root root 1, 8 Oct 16 13:46 /dev/random

crw-rw-rw-. 1 root root 1, 5 Oct 16 13:46 /dev/zero

[root@Linux1 dev]# mknod null c 1 3

[root@Linux1 dev]# mknod random c 1 8

[root@Linux1 dev]# mknod zero c 1 5

[root@Linux1 dev]# ls

null  random  zero

 

[root@Linux1 ~]# cd /usr/local/bind-9.9.2/chroot/etc/

创建主配置文件 named.conf ,我个人实验的配置文件内容如下:

options {

        listen-on port 53 { any; };

        directory       "/var/named";    #--》注意:这里是相对路径,即/usr/local/bind-9.9.2/chroot/ 目录下的                                                                                      /var/named 。这个和后面的dns服务启动时所引用的配置文件是有关联的:/usr/local/bind-9.9.2/sbin/named -u named -c /etc/named.conf -t /usr/local/bind-9.9.2/chroot/   , -c /etc/named.conf 这个路径也是相对路径,即为/usr/local/bind-9.9.2/chroot/etc/named.conf

        allow-query     { any; };

        recursion yes;

};

logging {

         channel "named-log" {

         file "/var/log/named.log";      #--》 这里也是相对路径。/usr/local/bind-9.9.2/chroot/var/log/named.log

         severity  info;

        print-time yes;

        print-category yes;

         };

          category queries { named-log; };

 

};

 

zone "5617.com" IN {

        type master;

        file "5617.com.zone";

        allow-update { none; };

};

 

[root@Linux1 etc]# ls

named.conf

[root@Linux1 etc]# cd ../var/named/

[root@Linux1 named]# ls

5617.com.zone

[root@Linux1 named]# mkdir /var/named

[root@Linux1 named]# cat 5617.com.zone 

$TTL 86400

@ IN SOA dns01.5617.com. root (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

@ IN NS dns01.5617.com.

@ IN A 192.168.1.100

dns01 IN A 192.168.1.100

test IN A 192.168.1.200

www IN CNAME dns01

[root@Linux1 chroot]# /usr/local/bind-9.9.2/sbin/named-checkconf /usr/local/bind-9.9.2/chroot/etc/named.conf 

[root@Linux1 chroot]# echo $?

0

[root@Linux1 chroot]# /usr/local/bind-9.9.2/sbin/named-checkzone 5617.com /usr/local/bind-9.9.2/chroot/var/named/5617.com.zone 

zone 5617.com/IN: loaded serial 0

OK

[root@Linux1 chroot]#

 

修改配置文件权限,不然启动失败。

[root@Linux1 chroot]#

[root@Linux1 chroot]# chmod -R 777 /usr/local/bind-9.9.2/chroot

 

 

(3)启动服务:

[root@Linux1 etc]# /usr/local/bind-9.9.2/sbin/named -u named -c /etc/named.conf -t /usr/local/bind-9.9.2/chroot/

[root@Linux1 ~]# ps aux | grep name

named    12770  0.0  1.1  10768  5684 ?        Ss   15:30   0:00 /usr/local/bind-9.9.2/sbin/named -u named -c /etc/named.conf -t /usr/local/bind-9.9.2/chroot/

root     12786  0.3  1.5  46016  7772 ?        Ssl  15:33   0:00 named

root     12792  0.0  0.1   4328   720 pts/0    S+   15:33   0:00 grep name

 

named基础参数解析

  • -g 指定named为前台运行
  • -c 指定named运行的配置文件
  • -t 指定named运行文件的base目录 配置文件中directory设置的目录的根就是/usr/local/named而不再是系统的根/

 

 

 

 

(4)测试:

[root@Linux1 ~]# ifconfig | grep 'inet addr' | grep -v 127.0.0.1 | sed 's; Bcast.*;;' | awk -F':' '{print $2}'

10.10.1.18

[root@Linux1 ~]# cat /etc/resolv.conf

nameserver 10.10.1.18

[root@Linux1 ~]# nslookup 10.10.1.18

Server: 10.10.1.18

Address: 10.10.1.18#53

 

canonical name = dns01.5617.com.

Name: dns01.5617.com

Address: 192.168.1.100

 

[root@Linux1 ~]# nslookup dns01.5617.com 10.10.1.18

Server: 10.10.1.18

Address: 10.10.1.18#53

 

Name: dns01.5617.com

Address: 192.168.1.100

 

[root@Linux1 ~]# cat /usr/local/bind-9.9.2/chroot/var/log/named.log 

16-Oct-2012 07:24:43.103 queries: client 10.10.1.18#43367 (): query: IN A + (10.10.1.18)

16-Oct-2012 07:24:53.958 queries: client 10.10.1.18#34658 (dns01.5617.com): query: dns01.5617.com IN A + (10.10.1.18)

 

(5)开机自动启动:

[root@Linux1 ~]# echo '/usr/local/bind-9.9.2/sbin/named -u named -c /etc/named.conf -t /usr/local/bind-9.9.2/chroot/' >> /etc/rc.local

 

以上是个简单的配置过程,主要就是注意named.conf 中路径的问题。

 

posted @ 2023-10-10 11:12  pwcc  阅读(34)  评论(0)    收藏  举报