安装配置域名服务器(dns)- bind
作者:zccst
原理篇
1,什么是DNS?
——DNS,Domain 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,slave和hint它们的含义分别是:
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