一、DNS系统概述


1、DNS系统的作用
【维护一个主机域名与IP地址的对应关系数据库,在必要时为客户端网络程序提供以下两方面的地址解析功能】
正向解析:将主机名(域名)解析为IP地址
反向解析:将IP地址解析为对应的域名

2、DNS系统的结构
【分布式数据库】
"." 根域服务器,是所有主机域名解析的源头
".cn" 顶级域,负责解析所有以"cn"结尾的域名
".com.cn" ".cn"的子域,负责解析所有以"com.cn"结尾的域名
".sina.com.cn" "com.cn"的子域,负责解析所有"sina.com.cn"域中所有主机的域名

3、DNS系统的类型
【缓存域名服务器】:主要功能是提供域名解析记录的缓存。只对用户查询过的域名解析记录进行缓存,适用于局域网内部
【主域名服务器】:是特定DNS区域的官方服务器,对于某个指定域,主域名服务器是唯一存在的,其域名解析记录具有权威性
需要在本地设置所管理区域的数据库文件
【从域名服务器】:提供备份。其提供的地址解析记录并不由自己决定,而是取决于主域名服务器


二、BIND域名服务基础


1、BIND的安装与服务控制
安装软件包:【安装光盘】bind-9.3.——
bind-utils-
bind-chroot-
caching-nameserver-
BIND服务控制:/etc/init.d/named start
service named start/stop/reload/restart/status

2、BIND配置文件
a.主配置文件
【初始为/etc/name.conf,安装了chroot以后则位于/var/named/chroot/etc下】
{主配置文件需手动创建: cp named-chkconfig /var/named/chroot/etc/named.conf}
【全局配置项包含在形如options {};的大括号中,区域的配置参数使用zone … {};的形式提供,每个配置行行尾都要添加分号】
【反向区域的名称有倒序的网络地址和in-addr.arpa组合而成,如:1.168.192.in-addr.arpa】
named-chkconfig /var/named/chroot/etc/named.conf 【对主配置文件进行检查】
b.区域数据库配置文件
【/var/named/chroot/var/named】
【通常包括TTL配置项、SOA记录和地址解析记录】
常见的地址解析记录项:NS域名服务器记录、邮件交换记录、A地址记录、CNAME别名记录
{NS和MX行首的@符号可以省略,但必须保留一个空格或制表位}


三、使用BIND构建域名服务器


1、构建缓存域名服务器
a.建立主配置文件named.conf
vi /var/named/chroot/etc/named.conf
option{}配置参数中的listen-on port 53 { 127.0.0.1 }改为DNS服务器的地址
b.启动named服务
service named start
netstat -anpl | grep :53
c.验证域名缓存服务器
使用nslookup命令进行解析

2、构建主域名服务器
a.确定本机的主机名、IP地址
【建议将两个DNS服务器的地址映射直接写入到/etc/hosts文件中,同时在/etc/resolv.conf文件中指定DNS服务器的地址】
b.建立主配置文件
【/var/named/chroot/etc/named.conf】
eg: zone "benet.com" IN {
type master;
file "benet.com.zone";
allow-transfer { 从域名服务器的IP}; 【该配置行设置允许从域名服务器下载该区域的地址数据库】
};
【如果该区域没有从域名服务器,则可以不设置allow-trabsfer语句】
c.建立区域数据库文件
【参考/var/named/chroot/var/named/localdomain.zone文件】
【cp localdomain.zone benet.com.zone】
vi benet.com.zone
@ SOA benet.com. admin.benet.com. {
……
}
@ IN NS s2.benet.com.
IN NS s1.benet.com.
IN MX 10 mail.benet.com.
s2 IN A 服务器IP地址
s1 IN A 服务器IP地址
mail IN A 服务器IP地址
d.重启named服务
e.验证主域名服务器
【nslookup 解析主机名和服务器名】

3、构建从域名服务器
a.确定本机的主机名、IP地址
【更改IP和主机名,并设置好/etc/hosts文件、/etc/resolv.conf文件】
b.建立主配置文件
【/var/named/chroot/etc/named.conf】
eg: zone "benet.com" IN {
type slave;
masters {主域名服务器IP};
file "slaves/benet.com.zone"; 【下载的数据库文件保存到slaves/子目录,和主服务器该区域配置文件名不同】
};
c.启动named服务
【服务启动以后,如配置无误,named将会自动从主域名服务器下载区域数据库文件,并保存到slaves子目录中】
【named启动成功后,可通过ls查看:ls -lh /var/named/chroot/var/named/slaves】
d.验证从域名服务器
【主域名服务器出现故障,从域名服务器才进行解析】

4、构建分离解析的域名服务器
【实际也还是主域名服务器,主要是根据不同的客户端提供不同的域名解析记录】
【DNS服务器面向internet和企业内部网络同时提供服务,可能需要将内网访问公司网站的数据直接发往公司内部服务器,以减轻网关服务器的负担】
a.建立主配置文件named.conf
【主要使用“view”配置语句和“match-clients”配置项】
eg: view “LAN”{
match-clients { 192.168.2.0/24;};
zone "benet.com" IN {
type master;
file "benet.com.zone.lan";
};
};
view “WAN”{
match-clients { any;};
zone "benet.com" IN {
type master;
file "benet.com.zone.wan";
};
};
b.分别建立对内对外解析的区域数据库文件
【/var/named/chroot/var/named/benet.com.zone.lan
/var/named/chroot/var/named/benet.com.zone.wan】
c.重启named服务
d.验证解析域名



**1)与BIND相关的软件包中,【bind-utils】提供了nslookup等DNS查询工具
2) BIND服务器的服务程序名是【named】
3)在BIND服务的named.conf配置文件中,【hint】类型的zone记录表示【根域】
【master】 【主域】
【slave】 【从域】
【forward】表示设置转发
4)在BIND服务的区域数据库文件中,【反向解析】使用【PTR】类型的地址记录
5)在BIND服务的主配置文件named.conf文件中,以【#】【//】开始的行表示注释行信息
6)在BIND服务的区域数据库配置文件中,以【;】开始的行表示注释行信息