BIND域名服务基础
一、DNS系统的作用及类型
1.解析类型
A.正向解析
根据主机名称(域名)查找对应的IP地址
B.方向解析
根据IP地址查找对应的主机域名
2.DNS类型
A.缓存域名服务器
- 通过向其他域名服务器查询获得域名--IP地址记录
- 将域名查询结果缓存到本地
- 自己没有独立、自主的域名解析数据
B.主域名服务器
- 特定DNS区域的官方服务器,具有唯一性
- 具有自主控制权
C.从域名服务器
与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。
- 从域名服务器解析结果来自于主域名服务器
二、BIND的安装和控制
1.安装BIND软件
bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm 提供了域名服务的主要程序及相关主件
bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm 为BIND提供一个伪装目录(将/var/named/chroot/文件夹作为BIND的根目录),以提高安全性
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm 提供了bind,bind-utils需要使用的函数库
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm 提供了对DNS服务器测试工具程序,如nslookup等。
[root@bourn Packages]# rpm -qa | grep bind
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64
bind-9.8.2-0.17.rc1.el6_4.6.x86_64
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64
[root@bourn Packages]#
2.BIND服务控制
[root@bourn Packages]# service named status
rndc: neither /etc/rndc.conf nor /etc/rndc.key was found
named is stopped
[root@bourn Packages]#
三、BIND服务的配置文件
1.主配置文件
[root@bourn Packages]# vi /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
#全局配置(options)
options {
listen-on port 53 { 127.0.0.1; };//监听地址和端口
listen-on-v6 port 53 { ::1; };
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 { localhost; };//允许使用本DNS服务的地址
recursion yes;//是否允许为客户机进行递归查询
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
#区域配置部分
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
2.区域数据配置文件
zone "." IN {
type hint;
file "named.ca";
};
- 在named.conf配置文件中的区域设置部分,主要是由“zone “DNS域” IN {};”的形式出现的,有多少个区域就设置多少个zone配置
- 每个zone区域都是可选的(包括根域、回环域、反向域),具体根据实际需要而定,zone配置部分的“IN”关键字表示“Internet”的意思,通常可以省略
type关键字用于设置该区域的类型,可设置为以下值:
- hint表示根域
- master表示主域
- slave表示从域等
file关键字用于指定该区域对应的数据文件名,如果没有指定绝对路径,则该文件默认位于全局配置中“directory”关键字指定的目录中,文件名由管理员自行定义
- 根域的数据文件文件名一般使用“named.ca”或者“named.root”,
A.正向、反向
zone "benet.com" IN {
type master;
file "benet.com.zone";
allow-transfer { 173.16.16.2; };//设置允许下载该区域解析记录的从域名服务的地址
allow-update { none; };
};//允许动态更新哪些客户机地址,none表示全部禁止
#对173.16.16.0/24网段的反向解析区域
zone "16.16.173.in-addr.arpa" IN {
type master;
file "173.16.16.arpa";
};
倒序网络地址:in-addr.arpa
B.全局TTL配置项及SOA记录
$TTL 86400 ; 有效地址解析记录的默认缓存时间
@ IN SOA benet.com. admin.benet.com. (
2009021901 ;更新序列号
3H ;刷新时间
15M ;重试延时
1W ;失效时间
1D ;无效地址解析记录的默认缓存时间
)
- $TTL(Time To Live,生存时间)记录
- SOA(Start Of Authority,授权信息开始)记录
C.域名解析记录
@ IN NS ns1.benet.com.
IN MX 10 mail.benet.com.
ns1 IN A 173.16.16.1
mail IN A 173.16.16.1
www IN A 173.16.16.1
ftp IN CNAME www
- NS域名服务器(Name Server)记录
NS记录以及NS记录对应服务器主机的A记录通常必需有的,A记录作为正向地址解析记录,是DNS服务器区域数据文件中数量最多的配置行
- MX邮件交换(Mail Exchange)记录
MX记录用于指定该区域内邮件服务器的地址,如果没有邮件服务器,可以省略MX配置记录行
- A地址(Address)记录,只用在正向解析的区域数据文件中
- CNAME别名(Canonical Name)记录
CNAME用于为同一个域名设置不同的名称,其对应的IP地址是相同的
- NS、MX记录行首的“@”符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或者制表位
反向解析
1 IN PTR www.benet.com.
4 IN PTR study.benet.com.
上面“4”,若在16.16.173.in-addr.arpa反向区域数据文件中,则对应为173.16.16.4的IP地址
- PTR指针(Point)记录,只用在反向解析的区域数据文件中
- 配置反向解析记录时,只需要指定IP地址中的主机地址部分即可,网络地址部分不用写
D.负载均衡
基于域名解析的负载均衡
- 同一域名对应到多个IP地址
movie IN A 173.16.16.11
movie IN A 173.16.16.12
movie IN A 173.16.16.13
DNS轮询负载均衡对于访问量较大的网络服务非常有用,通常这些服务会由多个不同IP地址的服务器共同承担(服务内容互为镜像)
E.泛域名解析
* IN A 173.16.16.173
找不到精确对应的A记录时,使用“*”进行匹配
泛域名解析相当于特定DNS域内的默认解析记录,通常对应到该域的主站点的IP地址,这样即使用户将FQDN中的主机名部分写错了,仍然可以找到该域的主站点
G.子域授权
将DNS子区域内主机地址的解析记录,授权给子域的域名服务器进行维护和解析
cn IN A 173.16.16.2
IN NS ns.jv.net.cn.
ns.jv.net.cn. IN A 173.16.16.2
3.检查配置文件
A.named-checkconf
named-checkconf [主配置文件]
[root@localhost ~]# cd /var/named/chroot/etc/
[root@localhost etc]# named-checkconf named.conf
B.named-checkzone
named-checkzone <域名> <区域数据文件>
[root@localhost ~]# cd /var/named/chroot/var/named/
[root@localhost named]# named-checkzone benet.com benet.com.zone
zone benet.com/IN: loaded serial 2009
OK