一、BIND
1.安装bind:
# yum install bind �Cy
2.参看所有文件:
# rpm �Cql bind # 可知bind的程序名为named //重点关注/etc下的配置文件,及/sbin下的程序
3.精简主配置,利于理解工作机制
# cp /etc/name.conf /etc/name.conf.bak #备份 # vim /etc/name.conf #编辑,精简
4.启动服务
# service named start
启动服务需要生成随机数生成key,使用
# named �Cu named #手动启动named # ss �Ctunl | grep 53 # 端口被监听
4.查看/etc/named.tfc.1912.zones
已经定义 localhost域 和 本机反向解析域
二、正反向解析
正向解析
1.定义区域配置文件 172.16.251.zone
# vim /etc/named.conf #添加配置
2.创建区域数据库文件
# vim/etc/named/hoo.com.zone
# chown root:named hoo.com.zone # chmod 640 hoo.com.zone # named-checkconf # 检查 # named-checkzone "hoo.com"/var/named/hoo.com.zone
3.测试
# killall -1 named # dig �Ct A www.hoo.com @172.16.251.188 #查询域内www.hoo.com的A记录,@前留空格 # dig �Ct A ftp.hoo.com@172.16.251.188 # vim /etc/resolve.conf namesever 172.16.251.188 #将DNS服务器改成自己) # dig -t NS hoo.com #查询域内NS记录 # dig -t MX hoo.com 注:查询A记录,使用主机名;查询NS/MX记录使用域名
反向解析
1.定义区域配置文件 hoo.com
# vim /etc/named.conf #添加配置
2.创建区域数据库文件
# vim/etc/named/172.16.251.zone
# chown root:named 172.16.251.zone # chmod 640 172.16.251.zone # service named configtest #检查所有配置文件
3.测试
# service namedreload #与 killall -1 named 一样 # dig �C172.16.251.188
三、主从同步
1.在主服务器的区域数据文件中为从服务器添加一条NS记录和对应的A或PTR记录
# vim/var/named/hoo.com.zone #修改一条,添加两条 2014031002 #序列号+1,每一次修改序列号都+1,用以通知改变 @ IN NS ns2 ns2 IN A 172.16.251.240
同理 vim/var/named/172.16.251.zone ,添加反向
重启服务:
# service named reload
测试:
dig �Ct NS hoo.com dig -x 172.16.251.240
2.从服务器配置
a)确保从服务器能与主服务器通信:ping
b)编辑/etc/named.conf 该注释的注释
c)vim /etc/named/named.rfc1912.zones #添加区域文件
d)同步,则从服务器不需要自建数据文件
e)named �Cu named #手动启动named
f)ss �Ctunl | grep 53
g)vim /etc/named/slaves/hoo.com.zone #查看同步数据
3.测试
#dig -t A www.hoo.com@172.16.251.240 #dig �Ct NS hoo.com@172.16.251.188
4.区域传送(同步)安全控制(被不被允许的其他主机同步主DNS数据 ,推算内部网络拓扑和其他信息是极度危险的)
allow-transfer { IP; }; 允许IP在所在主机传输
主服务器添加配置:
zone “hoo.com.zone”添加: allow-transfer{127.0.0.1;172.16.251.240; }; zone "100.16.172.in-addr-arpa"添加: allow-transfer { 127.0.0.1; 172.126.251.240; };
检测语法:
#named-checkconf #service named configtest
测试:
#dig �Ct xafr www.hoo.com @127.0.0.1
从服务器也需不允许传输:
zone “hoo.com.zone”添加: Allow-transfer { none; };
检测语法:
zone “hoo.com.zone”添加: Allow-transfer { none; };
测试:
#dig �Ct xafr www.hoo.com@172.16.251.240
四、子域授权
在父域的配置中添加如下项:
授权的子区域名称
子区域的名称服务器
子区域的名称服务器的IP地址
1.主DNS服务器上配置
# vim /etc/named/hoo.com.com.zone #添加记录技术部记录 tech IN NS dns.tech dns.tech IN A 172.16.251.158 # named-checkzone “hoo.com” hoo.com.zone # service named reload
2.安装子域服务器,配置:
a)定义区域
在/etc/named/named.rfc1912.zones zone “tech.hoo.com" IN { type master; file “tech.hoo.com.zone”; }
b)编辑数据文件:
# vim /etc/named/tech.hoo.com.zone
# service named configtest # chown root:named /etc/named/tech.hoo.com.zone # chmod 640 /etc/named/tech.hoo.com.zone # named �Cu named
c)测试
主DNS: # dig �Ct NS tech.hoo.com @172.16.251.188 # dig�Ct A www.tech.hoo.com @172.16.251.188 子DNS: # dig �Ct NS tech.hoo.com @172.16.251.158 # dig�Ct A www.tech.hoo.com @172.16.251.158
d)修改 /etc/resolve.conf
namedserver 172.16.251.188 #将DNS改为自己
五、转发机制
子域范围内的客户端上无法解析父域成功,字符不负责父域,故而要传给根,没有在互联网上授权或者不能上互联网,则无法找到
在这样的情况下配置直接交个父域解析
配置区域转发(在子域配置)
解析某本机不负责的区域内的名称时不转发给根,而是转发给指定的主机;
# vim /etc/named/name.rfc1912.zones #添加转发域 zone “hoo.com” IN { Type forward; Forwarders { 172.16.251.188; 172.16.251.154; }; Forward only; };
测试:
# dig �Ct NS hoo.com
六、视图 view
只要启用view,所有地址都要包含在内,包括根
视图,实现将DNS服务器分切成N份;将一个DNS服务器工作在多个逻辑界面上,一个区域可以在不同的视图中各自定义一次;一个视图就是一个逻辑DNS,可以声明多个区域,在一个区域声明的可以仍在另一个区域中声明,因为在逻辑上他们互不相知,可以让视图同时声明N次。
实验模拟视图:
1.使用172.16.0.0/16网段模拟内网,要求内网访问时,DNS返回为内网地址;
2.使用192.168.0.0/16网段模拟外网,要求外网访问时,DNS返回为外网地址;
定义视图:
1.定义内网视图
# vim /etc/named.rfc1912.zones 将根定义进内网,将根从named.conf中删除,将named.rfc1912.zone文件原有的数据全部定义进内网。 下图为一部分。
2.定义外网视图
在/etc/named.rfc1912.zones中添加
3.定义数据文件
内网视图无需定义
定义外网视图
# cp/var/named/hoo.com.zone /var/named/hoo.com.zone.ex # chown root:named /var/named/hoo.com.zone.ex (cp 过后的权限为 root:root 会无法解析) # vim /var/named/hoo.com.zone.ex 直接进行IP地址替换 :%s@172\.16\.251@192\.168\.0@g # service named configtest # service named reload
4.测试
为主机添加IP地址: # ifconfig eth0:0 192.168.0.188 up # ifconfig #检查 测试内网 # dig �Ct NS hoo.com @172.16.251.188 测试外网 # dig -t NS hoo.com @192.168.0.188