Bind编译安装详解

Bind编译安装详解

Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。

Bind一般可直接yum install安装,或是用RPM包安装,但有时我们需要其某些特别的功能是,就需要用到编译安装了。本文详细介绍bind编译安装的方法。

1.安装前准备:

首先,到http://www.isc.org/ 下载bind的源码安装包,我下的是bind-9.11.0b1.tar.gz9.11.0b1版本的,各位可自行下载自己需要的版本。

解压文件

tar xzvf  bind-9.11.0b1.tar.gz

创建普通用户用于bind的运行

[root@www bind-9.11.0b1]# groupadd -g 53 -r named

[root@www bind-9.11.0b1]# useradd -u 53 -g 53 -r named

[root@www bind-9.11.0b1]#

 

./configure配置

[root@www bind-9.11.0b1]# ./configure –prefix=/usr/local/bind9 –sysconfdir=/etc/named/ –disable-ipv6 –disable-chroot –enable-threads

一般不会出现什么问题,但如果有相关的模块没有安装,则会在这时候报错,不过没关系,缺什么,yum install 安装相应的 devel包就行了。

configure通过了就继续make && make install:…

 

    XML statistics (–with-libxml2)

    JSON statistics (–with-libjson)

————————————————————————

For more detail, use –enable-full-report.

========================================================================

[root@www bind-9.11.0b1]# make && make install

mkdir /usr/local/bind9/var

mkdir /usr/local/bind9/var/run

mkdir /etc/named

/bin/sh ./mkinstalldirs /usr/local/bind9/share/man/man1

/usr/bin/install -c isc-config.sh /usr/local/bind9/bin

rm -f /usr/local/bind9/bin/bind9-config

ln /usr/local/bind9/bin/isc-config.sh /usr/local/bind9/bin/bind9-config

/usr/bin/install -c -m 644 ./isc-config.sh.1 /usr/local/bind9/share/man/man1

rm -f /usr/local/bind9/share/man/man1/bind9-config.1

ln /usr/local/bind9/share/man/man1/isc-config.sh.1 /usr/local/bind9/share/man/man1/bind9-config.1

/usr/bin/install -c -m 644 ./bind.keys /etc/named

安装完成。

成功安装后,还需要设置一系列参数,让系统知悉bind安装在/usr/local/bind9的目录中。因而,执行以下命令:

vim /etc/profile.d/named.sh

exprot PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH  ##加入到PATH变量中

. /etc/profile.d/named.sh  ##重读配置文件

                           

vim /etc/ld.so.conf.d/named.conf

/usr/local/bind9/lib      ##导出库文件

                           

ldconfig  -v              ##系统重读

                           

ln -sv /usr/local/bind9/include /usr/include/named   ##导出头文件

                           

vim /etc/man.config                                     ##导出帮助文件

在空白行添加:

MANPATH /usr/local/bind9/share/man

至此,bind已编译安装完毕,但要使用bind,还需进行配置。                     

配置Bind

##定义配置文件

vim /etc/named/named.conf

        

options {

        directory "/var/named";

};

 

zone "." IN {

        type hint;

        file "named.ca";

};

 

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 "test.net" IN {

  type master;

  file "test.net.zone";

};

 

                  

##生成几个区域数据文件

##1.根区域

[root@www named]# dig -t NS . @8.8.8.8 > /var/named/named.ca

 

vim localhost.zone

$TTL    1d

@       IN      SOA     localhost.      admin.localhost. (

                        2017071801

                        1h

                        5m

                        7d

                        1d )

        IN      NS      localhost.

localhost.      IN      A       127.0.0.1

 

vim named.local$TTL    1d

@       IN      SOA     localhost.      admin.localhost. (

                        2017071801

                        1h

                        5m

                        7d

                        1d )

        IN      NS      localhost.

1       IN      PTR     localhost.

 

test.net.zone

$TTL 1D

$ORIGIN test.net.

@       IN      SOA     ns1.test.net. admin.test.net (

                        2016070601

                        1H

                        5M

                        7D

                        1D )

                IN  NS  ns1

                IN  NS  ns2

                IN  MX 10 mx1

                IN  MX 20 mx2

ns1     IN      A       172.16.10.10

ns2     IN      A       172.16.20.20

mx1     IN      A       172.16.10.10

mx2     IN      A       172.16.20.20

www     IN      A       172.16.10.10

web     IN      A       172.16.20.20

ftp     IN      CNAME   www

*       IN      CNAME   www

 

##修改文件权限为640

[root@www named]# chmod 640 ./*

[root@www named]#

[root@www named]# ls -lh

total 24K

drw-r—– 2   25   25 4.0K Jul 17 12:19 data

drw-r—– 2   25   25 4.0K Jul 17 15:07 dynamic

-rw-r—– 1 root root  132 Jul 18 01:21 localhost.zone

-rw-r—– 1 root root 2.1K Jul 18 01:15 named.ca

-rw-r—– 1 root root  126 Jul 18 01:23 named.local

-rw-r—– 1 root   25  333 Jul 10 15:12 test.net.zone

[root@www named]# chown :named ./*

[root@www named]# ls -lh

total 24K

drw-r—– 2   25 named 4.0K Jul 17 12:19 data

drw-r—– 2   25 named 4.0K Jul 17 15:07 dynamic

-rw-r—– 1 root named  132 Jul 18 01:21 localhost.zone

-rw-r—– 1 root named 2.1K Jul 18 01:15 named.ca

-rw-r—– 1 root named  126 Jul 18 01:23 named.local

-rw-r—– 1 root named  333 Jul 10 15:12 test.net.zone

[root@www named]#

[root@www named]# chmod 640 /etc/named/named.conf

[root@www named]# chown :named /etc/named/named.conf

 

OK,启动bind服务

 [root@www var]# named -u named

检查服务正常与否:

[root@www named]# ss -ntlup | grep :53

udp    UNCONN     0      0           172.16.10.10:53                    *:*      users:(("named",82889,515),("named",82889,516),("named",82889,517))

udp    UNCONN     0      0              127.0.0.1:53                    *:*      users:(("named",82889,512),("named",82889,513),("named",82889,514))

tcp    LISTEN     0      10          172.16.10.10:53                    *:*      users:(("named",82889,22))

tcp    LISTEN     0      10             127.0.0.1:53                    *:*      users:(("named",82889,21))

[root@www named]#

UDP53端口已然在监听

查询A记录:

[root@www named]# dig -t a www.test.net @172.16.10.10

 

; <<>> DiG 9.11.0b1 <<>> -t a www.test.net @172.16.10.10

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55151

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

 

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

; COOKIE: 27ba2f7f1e17a2290a97e22d578bc559a9b4b200c6fe5074 (good)

;; QUESTION SECTION:

;www.test.net.                  IN      A

 

;; ANSWER SECTION:

www.test.net.           86400   IN      A       172.16.10.10

 

;; AUTHORITY SECTION:

test.net.               86400   IN      NS      ns2.test.net.

test.net.               86400   IN      NS      ns1.test.net.

 

;; ADDITIONAL SECTION:

ns1.test.net.           86400   IN      A       172.16.10.10

ns2.test.net.           86400   IN      A       172.16.20.20

 

;; Query time: 0 msec

;; SERVER: 172.16.10.10#53(172.16.10.10)

;; WHEN: Mon Jul 18 01:50:17 CST 2016

;; MSG SIZE  rcvd: 153

@172.16.10.10服务器成功返回 www.test.net A记录

;; ANSWER SECTION:

www.test.net.           86400   IN      A       172.16.10.10

服务器运作正常!

 

至此,Bind服务器的编译安装已全部介绍完毕,是不是很简单呢?你也偿试一下吧!

注:通常我们都会编写一段脚本,让其能以系统服务的方式,开机自动运行,这样就不用每次启动都手工操作,此脚本网上有很多例子,我这里就不作介绍了,大家可以参考之后自行编写。

 

以上就是DNS服务器Bind的编译安装方法!作为初学者,我对linux的认识还是很肤浅,以上可能有不正确的地方,如有错漏,希望各位能指正,共同进步。

 

我的QQ153975050  小斌斌

在此感谢马哥及马哥团队的所有人,在linux的道路上引领我一直前进!

                                                            2016-07-18

 

 

 

 

                  

 

 

 

 

 

原创文章,作者:马哥Net19_小斌斌,如若转载,请注明出处:http://www.178linux.com/24689

(1)
马哥Net19_小斌斌马哥Net19_小斌斌
上一篇 2016-07-22
下一篇 2016-07-22

相关推荐

  • linux时间设置、screen使用、命令分类、hash作用、命令引用及history命令

    一、 生产环境发现一台服务器系统时间产生偏差,造成服务异常 解决方法             a、 如果服务器硬件时间准备的话,可使用命令:~#] hwclock -s              将硬件时钟同步到系统 &…

    Linux干货 2016-08-02
  • 2017中华数据库与运维大会强势回归!

         时隔一年,2017年中华数据库与运维大会将于06月03日在上海宝丰联大酒店强势回归,届时来自全国各行各业的IT从业人员将欢聚上海,探讨与交流数据库和运维的经验。       自2009年以来,超过4000位技术总监、技术负责人、架构师、项目经理、运维总监、运维经理、DBA经理、DBA、运维…

    2017-02-28
  • Linux系统启动过程中grub故障与修复(一)

    GRUB 是引导装入器 — 它负责装入内核并引导 Linux 系统。GRUB 可以引导多种操作系统,如Linux、 DOS、 Windows 。 GRUB共分为三个阶段:stage1主要负责BIOS和GRUB之间的交接,载入存放于各个分区中的开机文件;stage1.5是连接stage1和stage2之间的通道,起着过渡的作用,负责识别stage2所在/bo…

    2017-09-03
  • N22-第六周作业

    请详细总结vim编辑器的使用并完成以下练习题      vim是模式化的文本编辑器。在不同模式下,每一次按键的效果都不一样。vim有三种工作模式,分别是编辑模式,插入模式和末行模式。编辑模式是打开vim后的默认模式,用于查看文本或进行复制,粘贴,删除等编辑命令。插入模式是为了向文本中输入信息。末行模式是vim自带的命令行接口,能…

    Linux干货 2016-09-26
  • 优云APM最佳实践: 诊断平安城市视频网性能问题

    前言: 平安城市已经是一个关系你我他的民生工程,但由于本身系统的复杂性,给运维工作带来了极大的挑战。如何保障摄像头在线率?如何在系统中找到视频系统故障的问题所在?在我们某一次项目经历中,优云APM在发现问题,定位故障等方面,起了很大作用,帮助我们顺利的定位到了系统的故障所在。 平安城市是一个特大型、综合性非常强的管理系统,不仅需要满足治安管理、城市管理、交通…

    Linux干货 2016-08-05
  • 第一周博客作业-Linux发行版历史、哲学思想、FHS、命令格式、帮助等

    All + All – 第一周作业 1.计算机组成及功能 计算机组成 硬件 冯诺依曼体系 CPU 运算器 对数据做算暖苏运算和逻辑运算 控制器 寄存器等 程序的运行,是CPU通过调用硬盘中的程序至内存中执行来实现的 存储器 内存 ROM RAM 外存 硬盘 光盘 输入设备 鼠标、麦克风等 实现指令和参数的输入 输出设备 显示器、打印机等 实现结果…

    Linux干货 2017-07-02