十四、Bind软件的子域授权
全球网络的DNS服务器都是由多级所构成的,每一台主机通过域名服务找到所要访问的主机IP地址都是通过一层层DNS服务器找到的。而这样的结构就决定了,上级域名服务器必须具备找到子域的能力,例如tianxia.com.这个域名,在顶级域com.下就必须要找到tianxia.com.这个子域。所以上级域名服务器就必要在解析库文件中定义子域。
定义子域的方法,就是在域名解析库文件中定义一个子域的NS记录,然后再给这条NS记录定义一条A记录即可。例如在tianxia.com.这个域名下定义一个zg.tianxia.com.这个子域。
exp:
$TTL 1D $ORIGIN tianxia.com. @ IN SOA @ admin.tianxia.com. ( 2017101601 2H 10M 1D 1W ) IN NS ns1 IN NS ns2 zg IN NS ns1.zg //子域定义 zg IN NS ns2.zg //子域定义 ns1.zg IN A 2.2.2.2 //子域定义 ns2.zg IN A 2.2.2.3 //子域定义 ns1 IN A 1.1.1.1 ns2 IN A 1.1.1.2 www IN A 1.1.1.3 web IN CNAME www
当任何主机申请解析zg.tianxia.com.这个域时,当前域名服务器就会返回zg.tianxia.com.域的域名服务器IP地址。
十五、域名服务器转发定义
正常情况下,当域名服务器无法在本地解析域名时,会向根域名服务器申请迭代查询。如果希望在本地没有查询到,而转向指定服务器进行查询时,就必须定义域名服务器的转发。需要注意的是被转发的域名服务器必须允许为当前服务器做递归。
域名服务器定义转发规则还分为两种转发,第一种为区域转发,第二种为全局转发。
◆区域转发
区域转发实际上就是转发对某特定区域的解析请求,例如在子域zg.tianxia.com.这个子域下配置对tianxia.com.域名的解析全部转发到tianxia.com.域名服务器中
exp:
zone "tianxia.com." IN { type forward; forward { first }; forwarders { 192.168.5.130; }; };
配种中,type类型必须定义为forward;forward类型可定义为first或者only,first表示首先转发,当转发的服务器不响应时,自行去迭代查询,only表示仅转发;forwarders类型定义需要转发到的域名服务器IP地址。
◆全局转发
全局转发主要针对除本地没有通过zone定义的区域查询请求,全部转发给某服务器。实际上这是对域名服务器的一个全局定义,所以应该配置在/etc/named.conf中。格式为
exp:
options { ... forward {first|only}; forwarders { SERVER_IP; }; ... }
十六、访问控制列表配置
bind软件中为了进行相关的安全配置,设置了访问控制列表,由acl关键字来定义。acl访问控制列表实际上就是将一个或多个地址归并一个命名的集合,随后通过此名称即可对此集合内的所有主机实现统一调用。访问控制列表的定义规则:
acl acl_name{
ip1;
net/prelen;
...
}
exp:
acl tianxia_net{ 192.168.5.121; 1.2.3.0/24; };
在bind软件中默认有四个内置的访问控制列表,分别是none、any、local、localnet,分别表示没有主机、所有主机、本机、本机所在的网络。
常用的使用访问控制列表的指令有:
allow-query {};定义用于查询的主机
allow-transfer {};定义允许向哪些主机做区域传送
allow-recursion {};定义允许哪些主机向当前DNS服务器发起递归查询请求
allow-update {};定义允许动态更新区域数据库文件中的内容