主DNS配置从服务器:
我们知道,DNS服务器在网络服务中可能出现故障当机等状况,会导致DNS服务瘫痪,显然在实际的网络应用中我们不希望出现这种状况,所有我们就要配置从服务器来在主DNS服务器出现故障时代替他来工作,然而作为价格昂贵的服务器本身你又不希望出现这种极大的浪费,所有从服务器在实际工作中是和主服务器共同分担DNS解析任务的,这样既解决了服务器故障导致的问题,还可以缓解DNS服务器的压力。
那么要配置一个从服务器我们又该怎么做呢?
前提:我们要为本地配置一个从服务器aolens2。从服务器的IP 172.16.249.125
所以aolens2中也需要安装bind,zone,但无需解析库,可以直接去主服务器去同步。
1)首先,我们需要在主服务器配置文件中(/etc/named.conf)配置一个从服务器的定义
先去域名注册商(.com)哪里添加一个NS记录,指向从服务器节点。并添加到父域 的解析库中。
还需要在本地回应上级的NS记录,保持一致。主服务器中配置/var/named/aolens.com.zone文件。是主服务器的配置文件。
为什么要添加多个NS呢?那是应为主服务器发生变化时只通知NS定义的节点。要使从服务器得到同步就需要添加NS记录。
改变以后,版本号需要改变。。。
zone”ZONE_NAME”IN{typeslave;file”slaves/ZONE_NAME.zone”;master{172.16.249.138;};}
OK!
如果修改主服务器的配置,需要先配置主服务器,修改序列号,rndc reload 加载。
从服务器就可以获取到了。
6)添加反解zone。
配置文件1.16.192.zone也修改为。
版本号修改:
service named restart 重启named服务
从服务器上就可以反解出主服务器的名字了。
查询正向NS记录
dig -t NS aolens.com @172.16.249.138
反向查询NS记录。
dig -t NS 249.16.172.in-addr.arpa @172.16.249.138
dig -t AXFR aolens.com @172.16.249.138 :获取所有节点
7)如果单单这样就可以获取服务器数据那就太危险了,别人可以通过模拟从服务器IP的方式获取主服务器的数据。所以我们要控制主服务器,让他只能同步给从服务器,而从服务器给谁都不同步。这样就相对安全了很多。
在bind中有内置的acl(访问控制列表)
none:表示死所有都不同步
any:表示所有都同步
localhost:只给本机同步
localnet:给同步给同网络
allow-update:允许更新
allow-transfer { ip; ip; ip; … }; none|any|localhost|localnet 都是allow-transfer的参数
我们该从服务器的配置文件vim /etc/named.rfc1912.zone中添加allow-transfer { none; };表示不允许任何人同步
结果:rndc reload 加载后在主从服务器上都是无法同步的。
而主服务器则需要让从服务器同步:
配置文件vim /etc/named.rfc1912.zone
主服务器同步自己
从服务器同步主服务器:
即使这样IP以明文的方式传输还是很危险,所以,实际应用中是以加密IP 的方式发送密钥去请求,而接受服务器也是接受密钥来解析的。
所以我们建设的区域一般是不允许任何人更新的。需要在我们自己创建的zone中加上allow-update { none; };
/etc/named.rfc1912.zones
DNS的权限控制就这样配置了,
8)我们前边用了那么多rndc命令,那我们来了解一下rndc命令。
rndc reload:装在配置文件
rndc reload zone [class [view]] :装在一个区域。
rndc retransfer zone [class [view]]:让主服务器重新给从服务器发送数据的,执行端在从服务器
rndc flush :清空缓存。
rndc status:显示配置详细信息
9)DNS子域创建授权
我们基于aolens.com.创建它的子域op.aolnes.com.
而子域下存在主机
创建子域dev.aolens.com. 主机为
向子域授权:只需要在父域的区域解析库中添加“胶水记录”,glub record
胶水记录:就是在父域的解析库中加上
生气是拿别人做错的事来惩罚自己