2、DNS源码安装

0)下载bind软件包

http://www.isc.org/software/bind

1) 解压缩

  1. tar -zxvf bind-9.3.P2.tar.gz –C /tmp     (tar -xvf bind-9.3.P2.tar –C /tmp)
  2. cd /tmp/bind-9.3.P2

2) 配置

  1. ./configure --prefix=/usr/local/webserver/bind
  2. 其他编译参数看自己需求
  3. --with-openssl=no
  4. --prefix:指定安装目录
  5. --sysconfdir:设置named.conf配置文件放置的目录
  6. --localstatdir:设置 run/named.pid 放置的目录
  7. --with-libtool:将BIND的库文件编译为动态共享库文件,这个选项默认是未选择的。
  8. --enable-threads:如果系统有多个CPU,那么可以使用这个选项打开线程支持以提高服务器性能

3) 编译安装

  1. make;make install

4) 新建named用户

  1. useradd -r named (-r是新建系统账户)

5) 添加环境变量

  1. vim  ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/webserver/bind/sbin:/usr/local/webserver/bind/bin

source  ~/.bash_profile

6) 建立配置文件

  1. cd /usr/local/webserver/bind

生成rndc控制命令的key文件(用于生成rndc使用的认证秘钥)  用BIND自带的rndc-confgen工具即可

  1. /usr/local/webserver/bind/sbin/rndc-confgen > /usr/local/webserver/bind/etc/rndc.conf

# Start of rndc.conf

key "rndc-key” {

algorithm hmac-md5;

secret "grepF25jC4215m41WQsqKQ==“;

};

options {

default-key "rndc-key”;

default-server 127.0.0.1;

default-port 953;

};

# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:

# key "rndc-key" {

#      algorithm hmac-md5;

#      secret "grepF25jC4215m41WQsqKQ==";

# };

#

# controls {

#      inet 127.0.0.1 port 953

#           allow { 127.0.0.1; } keys { "rndc-key"; };

# };

# End of named.conf

7) 从rndc.conf中提取named.conf用的key

  1. #tail -10 /usr/local/webserver/bind/etc/rndc.conf | head -9 | sed s/#\ //g > /usr/local/webserver/bind/etc/named.conf

最终得到如下信息:

key "rndc-key" {

algorithm hmac-md5;
  secret "grepF25jC4215m41WQsqKQ==";
 };
 
 controls {
  inet 127.0.0.1 port 953
  allow { 127.0.0.1; } keys { "rndc-key"; };

};

8) 配置named.conf加如下代码

  1. vi /usr/local/webserver/bind/etc/named.conf(复制时候注意标点符号的中英文输入法)

添加如下信息:

options {

directory "/usr/local/webserver/bind/zone";

pid-file "named.pid";

};

zone "." IN {

type hint;

file "named.root";

};

//本地正向解析

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

};

//本地test域解析

zone "test.com" IN {

type master;

file "test.zone";

allow-update { none; };

};

9) 配置zone文件

mkdir /usr/local/webserver/bind/zone && cd /usr/local/webserver/bind/zone

用dig命令直接生成named.root文件:

  1. dig @a.root-servers.net > named.root

vim  /usr/local/webserver/bind/zone/localhost.zone

  1. $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

vim  /usr/local/webserver/bind/zone/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.

  1. vim  /usr/local/webserver/bind/zone/test.zone

$ttl    1D

@               IN SOA  test.com.  root.test.com. (

1053891162 ; Serial

3H; Refresh

15M;Retry

1W ; Expire

1D ); Minimum

IN NS         ns.test.com.

IN MX    5    test.com.

IN A          3.3.3.3

ns                 IN A          1.2.3.4

www             IN A         220.202.19.82

10) 目录文件权限

  1. /usr/local/webserver/bind/*
  2. 【755的权限】【named用户和组】

11) 特殊文件配置权限

  1. /usr/local/webserver/bind/zone/*   /usr/local/webserver/bind/etc/*
  2. 【640的权限】【named用户和组】

因为是将秘钥(也就是密码)放在named.conf和rndc.conf中,所以要确保无权控制名称服务器的用户都无法读取这两个文件

12)验证配置文件和zone文件(这两条命令都没有错的时候就是Ok了)

/usr/local/webserver/bind/sbin/named-checkconf  /usr/local/webserver/bind/etc/named.conf

/usr/local/webserver/bind/sbin/named-checkzone test.com /usr/local/webserver/bind/zone/test.zone

13) 启动bind

  1. /usr/local/webserver/bind/sbin/named -g(可以查看错误)
  2. /usr/local/webserver/bind/sbin/named -c /usr/local/webserver/bind/etc/named.conf & -u bind

14) 验证域名解析是否成功

  1. dig @127.0.0.1 test.com
时间: 2024-08-07 04:04:01

2、DNS源码安装的相关文章

shell脚本:lnmp等源码安装脚本

##脚本功能: # 源码安装dns.nginx.php.memcached.gonet.mysql,并做相关的配置 # ##脚本说明: # ##更新记录: # 1.增加dns.nginx的配置文件 # 2.优化mysql.nginx.dns等安装的部分函数 # 3.增加安装gonet服务的功能函数 -------------------------- #!/bin/bash # by colin on 2016-01-06 # revision on 2016-04-29 ###########

源码安装httpd2.4及实现用户访问控制及https的实现

实验环境: CentOS release 6.6(Final)   1台 Windows XP             1台 IP地址: 172.16.31.8      http1.stu31.com        web服务器端 172.16.31.188     Windows XP           测试客户端 WindowsXP 安装了chrom浏览器和系统自带的IE浏览器 软件版本: httpd-2.4.9.tar.bz2 一.实验准备阶段: 程序开发包组安装 [[email pr

BIND简易教程(0):在Ubuntu下源码安装BIND(其实跟前面的教程没太大关系)

之前介绍过BIND的基本使用啦.关于BIND的入门级使用方法见:http://www.cnblogs.com/anpengapple/p/5877661.html简易教程系列,本篇只讲BIND安装. 本来源码安装不想介绍了,但是最近重装的时候,还是爆出来好多问题.唉,apt方式装习惯了,生成配置文件的脚本都是按照apt的目录和用户来的,源码方式有些坑.所以,还是介绍一下吧(有些部分是直接照前面扒下来的). 首先,因为需要开启DNSSec,所以必须要安装openssl.如果不需要装,或者已经安装好

centos7.2源码安装openssl1.0.2

centos7.2默认是安装了opensll软件包的,但是部署个别服务时,由于版本太低.会影响服务的正常部署.只能使用源码安装提高openssl软件版本. 因为之前有openssl软件包,所以要先移除之前版本: 删除旧版本: yum remove -y openssl openssl-devel 源码安装openssl需要perl环境编译,如果没有perl环境还是需要安装: yum -y install perl perl-devel 现在新版本openssl: wget https://www

centos6.5 64 源码安装redis服务,建立可远程连接的redis数据库

安装环境:centos6.5 64位 使用的包:redis-2.8.19.tar.gz  tcl8.6.3-src.tar.gz 包的下载链接:http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz http://download.redis.io/releases/redis-2.8.19.tar.gz 本次安装的目录/home/hadoop/redis为任意目录 代码实现: 1,安装需要的支持环境 su root cd /home/h

ubuntu php5.6源码安装

今天又花了一天时间装了php,感觉php的源码安装也挺麻烦的,整个过程各种报错. 下篇文章准备整合所有查找到的报错和解决方法. php和nginx一样,在安装前需要装一堆的依赖.有libmcrypt.mcrypt.mhash.其实远不止这三个包,在后面的configure和make中还会陆陆续续安装一些依赖. 1.安装libmcrypt.mcrypt.mhash(整个过程都在/usr/local/src/php目录下) #创建/usr/local/src/php目录并进入mkdir /usr/l

LinuxMint下的Orionode源码安装

1. Orionode介绍 Eclipse-orion是Eclipse项目下面的一个子项目,orion是一个在在线版的代码编辑环境.其介绍参考http://wiki.eclipse.org/Orion. Eclipse-orion是使用Java语言开发的, Orionode则是使用Node.js开发的一个简易版orion.关于orionode跟orion的特性差异请查考http://wiki.eclipse.org/Orion/Node/Getting_started. 2. Node.js和n

nsq 学习(一)源码安装nsq

1.源码安装nsq go get github.com/tools/godep go get github.com/bmizerany/assert godep get github.com/bitly/nsq/... godep执行之后,如果报错: godep: outdated Godeps missing source code This dependency list was created with an old version of godep. To work around thi

bash-scripts源码安装lamp(apache、php及部分扩展、mysql)

安装包版本:httpd-2.2.29.tar.gzzlib-1.2.8.tar.gzapr-util-1.5.4.tar.gzapr-1.5.1.tar.gzlibpng-1.6.17.tar.gzjpegsrc.v9a.tar.gzlibgd-gd-2.1.1.tar.gzphp-5.6.7.tar.gzfreetype-2.5.5.tar.gzlibmcrypt-2.5.8.tar.gzlibxml2-2.9.2.tar.gzmysql-5.6.23.tar.gz ======安装包下载网站