1、DNS服务器子域受权的实现bash
一般本身架设DNS服务器给本身使用的公司都是内部有特殊需求,或者公司内部域名较多,为了方便之后的管理而架设。咱们知道一个域名就是一个区域,通常每一个区域都会有专人负责管理,当一个公司人员足够多时,这时就会有划分子域给下级部门管理的需求。在一个区域下划分子域,并给子域指定一个新的DNS服务器,这种方法是能够实现的,咱们一般称这种划分子区域的方法为子域受权。
服务器
实例:给wubinary.com域名划分一个blog.wubinary.com的子域。bind的安装配置及主DNS服务器的架设再也不此讨论网络
一、首先架设一个主DNS服务器,编辑/var/named/wubinary.com.zone文件,主DNS服务器的IP为192.168.0.6,资源记录数据文件以下:ide
$TTL 600 @ IN SOA dns.wubinary.com. dnsadmin.wubinary.com. ( 2014031203 2H 4M 1D 2D ) @ IN NS dns.wubinary.com. @ IN NS ns2.wubinary.com. @ IN MX 10 mail.wubinary.com. dns IN A 192.168.0.6 mail IN A 192.168.0.12 www IN A 192.168.0.48 ns2 IN A 192.168.0.80 blog.wubinary.com. IN NS dns.blog.wubinary.com. dns.blog.wubinary.com. IN A 192.168.0.2
注意,以上最后两行为子域的DNS服务器,只要在主DNS服务器定义好了子域的DNS服务器就等于给子域受权了。测试
二、而后在回到子域的服务器,192.168.0.2上配置子域区域。打开/etc/named.rfc1912.zones文件,在最末尾定义子域的区域。3d
zone "blog.wubinary.com" IN { type master; file "blog.wubinary.com.zone"; };
三、接着再定义子域DNS服务器的资源记录文件,/var/named/blog.wubinary.com.zone。blog
$TTL 600 @ IN SOA dns.blog.wubinary.com. dnsadmin.blog.wubinary.com. ( 2014031201 1H 5M 3D 1D ) @ IN NS dns.blog.wubinary.com. dns IN A 192.168.0.2 www IN A 192.168.0.78 ftp IN A 192.168.0.23
四、从新启动两边的DNS服务,测试一会儿域受权是否成功。递归
主域机器测试:dns
子域机器测试:ip
测试正常,操做成功!
2、DNS服务器域名解析转发
DNS转发的意义在于,定向查询,一台DNS服务器在获取到查询请求时,本身不尝试解析域名,而转发查询请求给指定的DNS服务器实现这次解析操做。假设,咱们如今碰到这么一种状况,咱们的DNS服务器是处在一个内网的网段,与外网不能直接通讯,在这个局域网中惟一一个能和外网通讯的是路由器或者其它的DNS服务器。那么若是咱们想要实现经过这台局域网的DNS服务器查询解析外网的域名,就要用到转发的功能了。
转发能够用参数forwarders和forward实现:
forwarders { IP_ADDR1; IP_ADDR; ...}; forward { only|first };
参数说明:
forwarders:用于定义转发的服务器的IP地址,能够写多个,用分号隔开。
forward:用于定义转发的操做,only为只做转发操做,有结果则返回结果,没有结果则什么操做也不做;first为先做转发操做,若是没有结果则去递归查找。
全局和区域:
这两个参数能够放在全局定义,也可放在区域定义,也能够两个同时使用,但无论怎样,放在区域的优先权更高。若是用于特定区域则把转发定义在区域内,若是用于全局,则把转发定义在全局。
转发实例:让上面的区域wubinary.com能够实现解析外网的域名。
一、区域wubinary.com所设的DNS服务器为局域网的IP地址,不能够解析外网域名。
二、由上图能够看出wubinary.com区域不能解析51cto.com的NS记录,咱们添加一个转发功能。
编辑/etc/named.conf文件,添加转发ip 192.168.0.1
三、修改完成后,重启服务,测试一下,能够解析了,转发成功!
说明:有的时候,若是咱们事先已经知道了某个区域DNS服务器的地址,为了避免让当前DNS服务器向根查询结果,那么咱们就能够直接使用转发,向当前DNS服务器指定一个地址,让它查询直接向这个地址请求,这样作的好处能明显的提升响应速度。
3、DNS中的访问控制列表
有的时候咱们需要在DNS配置文件中指定n个IP地址,若是全都写在一块儿的话,每块地方都要写一次,那么至关麻烦,若是使用一个参数定义那一片的IP地址,那么管理起来就至关方便了,这个就是DNS中的ACL,bind支持的访问控制表。
格式:
acl ACL_NAME { 172.16.0.0/16; 192.168.0.0/24 127.0.0.0/8; ... ... };
在全局选项中定义ACL,给每一个ACL取一个名字,这样之后每次引用,只须在填定IP地址的地方填写那个变量就好了。在bind中有几个事先定义好的ACL:
any: 任何主机 none: 无一主机 local: 本机 localnet: 本机的所在的网络