BIND服务搭建
在整个Internet 互联网中数连接了无数的服务器、个人主机,大部份的网站、邮件服务器等都使用了域名形式的地址(如:www.liu.com 、www.baidu .com )。将域名映射到IP 地址





在整个Internet 互联网中数连接了无数的服务器、个人主机,大部份的网站、邮件服务器等都使用了域名形式的地址(如:www.liu.com 、www.baidu .com )。将域名映射到IP 地址,域名显然比IP 地址更加直观易记。
DNS 系统在网络中的作用就是维护着一个数据库,其中记录了各种主机域名与IP 地址的对应(可以说是映射),以便客户机在访问时的正反向地址查询服务,
1. 正向解析:根据域名查询IP 地址,将域名解析成IP 地址
2. 反向解析:根据IP 地址查询域名,将IP 地址解析成域名
每台DNS 服务器都只负责管理一个有限范围(一个或者几个域,“liu.com”就是一个域)内的主机域名和IP 地址的对应关系,这些特定的DNS 域名地址段称为“zone”(区域)。根据地址解析的方向不同,DNS 区域相对应地分为正向区域(包换域名到IP 地址的解析记录)和反向区域(包含IP 地址懂啊域名的解析记录)。
DNS 服务器常见类型
根据所管理的区域地质数据的来源不同,DNS 系统可以分为不同的类型。在同一台DNS 服务器中,相对与不同的区域来说,也拥有不同的身份,常见的集中类型如下。
缓存域名服务器
只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存服务器时,必须设置根域或指定其他DNS 服务器地址作为解析来源。
主域名服务器
维护某一个特定DNS 区域的地址数据库,对其中的解析记录具有自控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
从域名服务器
与主域名服务器提供完全相同的DNS 解析服务,通常用于DNS 服务器的热备份。对于客户机来说,无论使用主域名服务器还是从域名服务器,查询的结果都一样。关键区别在于,从域名服务器提供的解析结果并不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
从服务器可以一个区域的或多个区域的主域名服务器,同时也可以是从服务器
BIND 的安装和控制
这里安装DNS 服务软件DBIN (Berkeley Inetenet Name Daemon,伯克利Internet 域名),BIND 不是唯一能够提供域名服务的DNS 服务程序,但是他确是应用最广泛的,BIND 可以运行在大多数linux/UNIX主机中,其官方网站位于:http://www.isc.org/
,安装BIND 软件
在Rhel 5系统光盘中自带了BIND 服务的安装文件,主要包括以下 1. bind :提供了域名服务器的主要程序及相关文件
2. Bind-utils :提供了对DNS 服务器的测试工具程序,如nslookup 等
3. bind-libs :提供了bind 、bind-utils 需要使用的库函数
4. Bind-chroot :为BIND 服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为BIND 的根目录),以提高安
全性
5. caching-nameserver :提供构建缓存域名服务器的基本配置文件,这些文件在构建主、从域名服务器时也可以作
为参考
查看安装的情况,如有缺省包通过光盘安装所需要的包
[root@lgzzsa ~]# rpm -qa | grep "^bind"//查询所有安装的rpm 包并过滤以bind 开头的行然后输出显示结果 bind-libs-9.3.6-20.P1.el5
bind-utils-9.3.6-20.P1.el5
[root@lgzzsa /]# cd /media/RHEL_5.8 i386 DVD/Server///切换目录
[root@lgzzsa Server]# rpm -ivh bind-chroot-9.3.6-20.P1.el5.i386.rpm caching-nameserver-9.3.6-20.P1.el5.i386.rpm bind-9.3.6-20.P1.el5.i386.rpm //安装指定包(这里的安装顺序很重要)
BIND 服务控制
BIND 安装完成后会自动添加一个系统服务名为”named“的系统服务,通过脚本文件/etc/init.d/named或service 工具可以控制DNS 域名服务的运行(所有已RPM 方式安装的服务的配置主配置或脚本配置都在/etc/init.d/中) 例如:下面查看named 服务状态
[root@lgzzsa Server]# service named status//查看named 服务的状态信息
rndc: connect failed: 127.0.0.1#953: connection refused
named 已停//当前服务停止状态
[root@lgzzsa Server]# service named start|reload //启动或者重载服务配置文件
[root@lgzzsa Server]#chkconfig –list named //查看服务是否开机自启动
[root@lgzzsa Server]#chkconfig named on //设置所有运行级别开机均自启动
BIND 服务的配置文件
使用BIND 软件构件域名服务时,主要涉及两种类型的配置文件:主配置文件和区域数据文件。其中,主配置文件用于设置named 服务的全局选项,注册区域及访问控制等各种运行参数;区域数据文件用于存放某个DNS 区域的地址解析记录
主配置文件
主配置文件named.conf 通常位于/etc/目录下,如果安装了bind-chroot 软件包,则主配置文件默认位于/var/named/chroot/etc/目录下,需要用户手工建立或者参考” etc/named.caching-nameserver.conf “文件(这里指的是
,named.conf 文件)。在named.conf 文件中,主要包括全局配置,区域配置两个部分,每一条配置记录的行尾以”; “结束
[root@lgzzsa Server]# cd /var/named/chroot/etc///切换目录 [root@lgzzsa etc]# ls//显示当前目录下的文件(主要查看这两个参考文件)
localtime named.caching-nameserver.conf (named.conf参考文件) named.rfc1912.zones (这个参考文件主要包含了区域设置,默认只向本机提供DNS 域名解析) rndc.key
若使用本范文创建named.conf ,应注意修改或删除默认的监听设置、查询控制,以便能够为局域网段的客户机提供服务。另外,logging 、view 配置部分一般用不到,可以先注释以免其干扰。
1. 全局配置部分
全局配置参数包括在形如”options {};“的大括号中。
[root@lgzzsa etc]# cp -p named.caching-nameserver.conf named.conf//使用复制的方法将指定文件复制为新的文件 [root@lgzzsa /]# vim named.conf//编辑文件
listen-on port 53 { 192.168.1.1; };//监听端口和IP 地址(不指定则监听53的所有服务。通用)
listen-on-v6 port 53 { ::1; };//IPv6监听的TCP 的端口和IP 地址
directory "/var/named"; //区域数据文件的默认存放位置(所有的区域将存放在此目录中。通用) dump-file "/var/named/data/cache_dump.db"; //设置域名缓存数据库文件位置(用于缓存服务器)
statistics-file "/var/named/data/named_stats.txt";//设置状态统计文件位置(用于缓存服务器)
memstatistics-file "/var/named/data/named_mem_stats.txt";//也是状态统计文件位置(用于缓存服务器) allow-query { 192.168.1.0/24; }; //允许使用本DNS 的网段
allow-transfer { 192.168.1.0/24; 192.168.2.0/24; };//允许从服务器下载的地址(手动添加的,不指定默认相应所有。通用)
allow-query-cache { localhost;};//IP v6
masters { 192.168.1.1; };//指定主服务器地址(手动添加的,用于从服务器)
file "slavers/liu.com.zone";//将区数据文件保存到slavers/中的指定文件中(手动添加的,用于从服务器) view localhost_resolver {
match-clients { 192.168.1.0/24; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones"; //将指定文件包含进来(相当于named.conf 的分块,也可以不用分块)
};
zone "." IN { //根区域,给根一个存放数据文件(这里添加这个区域的用处是让本机可以根据该区域数据文件中的跟信息去寻找根服务器位置。将客户机的解析请求转发给互联网中根服务器进行迭代查询,然后反馈结果给该主机,该主机在反馈给客户机)
type hint;//区域类型
file "named.ca";//区域数据文件(file 用来定于区域数据文件,如果上面是从服务器,这里就指定主服务器IP 地址,还有在下面添加“masters { 主服务器; };”)
};
上述配置内容中,“dump-file 、statistics-file 、memstatistics-file”等配置项用于指定缓存数据库文件、状态统计文件的位置。添加了“zone “.” IN {……}”部分的根区域设置,尽管缓存服务器并没有自控的区域数据,但可以向根服务器进行迭代查询,并最终获得解析结果反馈给客户(如果客户请求解析一个域名时,缓存中没有就需要迭代查询,然后反馈个用户查询信息,然后保存到)。
有时候为了提高解析效率,可以不想根区域查询,而是将来自客户机的查询请求转给指定的DNS 服务器(如电信或者移动的DNS 服务器),缓存服务器接收到反馈信息后再传递给客户端。这样这里就不需要”zone "." IN {”了,
,在全局配置中添加“forwarders { 192.168.1.2;};”参数即可实现上述功能。
确认根区域数据文件named.ca
根区域的区域数据文件默认位于/var/named/chroot/var/named/named.conf中,在文件中记录了Internet 中13台根服务器的域名和IP 地址等相关信息。
[root@lgzzsa named]# cat named.ca //显示指定文件内容
;; ANSWER SECTION:
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
.
.
.
.
.
.
.
.
.
.
.
;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.
518400 IN 518400 IN 518400 IN 518400 IN 518400 IN 518400 IN 518400 IN 518400 IN 518400 IN 518400 IN 518400 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN 3600000 IN NS F.ROOT-SERVERS.NET. NS G.ROOT-SERVERS.NET. NS H.ROOT-SERVERS.NET. NS I.ROOT-SERVERS.NET. NS J.ROOT-SERVERS.NET. NS K.ROOT-SERVERS.NET. NS L.ROOT-SERVERS.NET. NS M.ROOT-SERVERS.NET. NS A.ROOT-SERVERS.NET. NS B.ROOT-SERVERS.NET. NS C.ROOT-SERVERS.NET. A 198.41.0.4 AAAA 2001:503:ba3e::2:30 A 192.228.79.201 A 192.33.4.12 A 128.8.10.90 A 192.203.230.10 A 192.5.5.241 AAAA 2001:500:2f::f A 192.112.36.4 A 128.63.2.53 AAAA 2001:500:1::803f:235 A 192.36.148.17 A 192.58.128.30 AAAA 2001:503:c27::2:30 A 193.0.14.129 AAAA 2001:7fd::1 A 199.7.83.42 A 202.12.27.33 AAAA 2001:dc3::35
,区域配置部分
区域配置参数使用”zone …… { };“的配置格式,一台DNS 服务器可以为多个区域提供解析,因此在named.conf 文件中也可以有很多个zone 配置段。区域类型安装解析方向分为正向区域和反向区域。这里参考/var/named/chroot/etc/named.rfc1912.zones即可。
[root@lgzzsa /]# vim /var/named/chroot/etc/named.rfc1912.zones//编辑文件(这里是手动创建此文件,注意中括号的对应) zone "liu.com" IN {//正向解析区域
type master;//类型为主区域(“slave”为从)
file "liu.com.zone";//区域数据文件
allow-transfer { 192.168.1.2|none; };//允许下载的从服务器地址
};
zone "1.168.192.in-addr.arpa" IN {//反向解析区域
type master;
file "1.168.192.local";
allow-transfer { 192.168.1.2|none; };
};
区域配置是需要注意如下: 1. 每个zone 区域都是可选的(包括根域、回环域、反向域)
2. 反向域的名称由倒序的网络地址和”.in-addr.arpa“组合而成
3. File 配置项用户指定实际的区域数据文件,文件名由管理员自行设置
修改完成以上的两个配置文件后,可以执行named-checkconf 命令对named.conf 文件进行语法检查。如果文件中没有语法错误,该命令不会给出任何提示;反之则是错误后提示信息。带”-z“选项的named-chechconf 命令还可以尝试加载主配置文件中对应得区域数据库文件、并检查该文件是否存在问题。
[root@lgzzsa /]# named-checkconf /var/named/chroot/etc/named.conf//检查named.conf 文件语法(这里没有提示任何错误)
区域数据配置文件
区域数据文件默认位于/var/named/chroot/var/named/目录下,需要手工建立或者正向区域参考” localhost.zone “文件、反向区域参考” named.ip6.local “,每个区域数据文件对应一个DNS 解析区域,文件名及内容该域的管理员自行设置(包括添加各种主机记录)。
[root@lgzzsa named]# cd /var/named/chroot/var/named///切换目录
[root@lgzzsa named]# ls //查看文件(一下是我们要做为样版复制后改名即可,然后根据需要配置) localdomain.zonenamed.ip6.local
[root@lgzzsa named]#cp -p localdomain.zone liu.com.zone
[root@lgzzsa named]#cp -pnamed.zero 1.168.192.local
根域”.“的区域数据文件比较特殊。Internet 中所有的DNS 服务器使用同一份根区域数据文件,其中列出了所有根服务器的域名和IP 地址。根区域数据文件可以从国际互联网络信息中心(InterNIC )的官方网站”httpdL//www.internice.net/“下载,文件名为named.root 或named.ca
在区域数据文件中,主要包括TTL 配置项、SOA (Start Of Authority,授权信息开始)记录、地址解析记录。