1、DNS概述
1)作用、层次结构、查询过程
2)DNS服务器类型
缓存域名服务器:也叫缓存服务器,提供域名解析记录的缓存,提高查询速度和效率
主域名服务器:也叫权威名称服务器,维护某一特定DNS区域的数据库,是该区域的权威服务器
从域名服务器:也叫辅助域名服务器,提供备份,其区域文件从主域名服务器拷贝而来
注:主、从域名服务器只是针对某一特定DNS区域而言的,对不同的区域可能有不同角色
2、BIND域名服务
BIND(Berkeley Internet Name Daemon)伯克利Internet域名服务
1)相关软件包
bind-9.3.3-7.el5.i386.rpm 提供域名服务的主程序
bind-utils-9.3.3-7.el5.i386.rpm 提供测试工具程序
bind-libs-9.3.6-4.P1.el5_4.2 提供bind、bind-utils需要使用的库函数
bind-chroot-9.3.3-7.el5.i386.rpm 提供伪装目录
caching-nameserver-9.3.3-7.el5.i386.rpm 提供样例文件
注:cache-nameserver软件包实际上只是提供了一些配置样例文件,熟悉的话也可以不安装该软件包
2)安装
rpm -ivh /mnt/iso/Server/bind-9.3.4-6.P1.el5.i386.rpm
rpm -ivh /mnt/iso/Server/caching-nameserver-9.3.4-6.P1.el5.i386.rpm
服务名:named
监听端口:53
主配置文件:/etc/named.conf
区域数据文件:/var/named
3、主配置文件/etc/named.conf
主配置文件用于设置全局选项、注册区域及访问控制等参数,包括全局配置和区域配置
#cp –a /etc/named.caching-nameserver.conf /etc/named.conf
1)全局配置
设置监听地址/端口、区域数据文件的默认位置、允许使用DNS服务的网段等
例:
options {
listen-on port 53 { any; };
directory "/var/named"; ---- directory项是必须的,其他都可以省略
allow-query { any; };
forwarders { 218.2.135.1; 8.8.8.8; }; -----配置转发器
};
2)区域配置
设置DNS区域,包括域名、服务器角色、区域数据文件名等
hint表示根域、master表示主域、slave表示从域
例:
zone "benet.com" IN { -----关键字IN可以省略
type master;
file "benet.com.zone";
allow-transfer { 192.168.1.2; }; -----允许下载区域数据的从域名服务器
};
zone "1.168.192.in-addr.arpa" IN { -----由倒序的网络地址和.in-addr.arpa组成
type master;
file "benet.com.arpa";
allow-transfer { 192.168.1.2; };
};
注:①每一条配置记录都以分号结尾
②检查主配置文件:named-checkconf –z /etc/named.conf
③named服务默认以用户named身份运行,拷贝named.conf时需要保留权限和归属,或手动修改权限
4、区域配置文件/var/named/
区域数据文件用于存放DNS区域的地址解析记录,包括TTL配置项、SOA、地址解析记录
@符号表示当前的DNS区域名,相当于benet.com
凡是不以点号结尾的名称,系统都会自动加上当前域名作为后缀
注:①cp -a /var/named/localdomain.zone /var/named/benet.com.zone
②检查区域配置文件:named-checkzone benet.com benet.com.zone
③基于DNS解析的负载均衡:同一个域名对应多个不同的IP地址,轮询负载均衡
④泛域名解析:同一个IP地址对应多个不同的域名,只需添加一条主机地址为“*”的A记录即可
⑤子域委派(子域授权):将子域的解析工作交给其他DNS服务器完成
5、配置
1)构建缓存域名服务器
2)构建主域名服务器
3)构建从域名服务器
注:①根区域hint不允许被传输
②下载的区域文件保存到/var/named/slaves/目录中
③从域名服务器的区域名必须与主服务器相同,但区域文件名可以与主服务器上名称不同
4)构建分离解析的域名服务器
即根据不同的客户端提供不同的域名解析记录,例:对同一个域名www.benet.com分别为内网和外网用户提供不同的域名解析记录
match-clients { 192.168.1.0/24; };
注:①需要关闭iptables,客户端才能正常解析域名
②tail /var/log/messages