1.子域授权的概念:
在原有的域上再划分出一个小的区域并指定新DNS服务器。在这个小的区域中如果有客户端请求解析,则只要找新的子DNS服务器。这样的做的好处可以减轻主DNS的压力,也有利于管理。一般做正向区域的子域授权即可。
正向解析区域子域方法:
假设父域,子域是ops.,子域内有2台名称服务器ns1。
要注意在父域定义好子域的ns1的A记录,不然子域不知道如何去×××器。
例如:
ops.. IN NS ns1.ops..
ns1.ops.. IN A 192.168.2.100
注意:子域和父域的域名服务器可以不在同一个网络内,只要彼此能通信即可。
2. 定义转发服务器【2种方式】
注意:被转发的服务器需要能够为请求者做递归,否则,转发请求不予进行。
(1) 全部转发: 凡是对非本机所有负责解析的区域的请求,统统转发给指定的服务器。
Options {
forward{first|only}
forwarders{IP_address ; };
}
(2) 区域转发:仅转发对特定的区域的请求至某服务器。
zone"ZONE_NAME" IN {
typeforward;
forward{first|only}
forwarders{IP_address ; };
}
#说明:
first表示先转发指定的区域服务器,如果没结果再去找根。
only是只转发给指定的区域服务器,有没有结果,都不会去找根。
注意:配置子域授权时候,需要关闭dnssec功能,即设置:
dnssec-enableno;
dnssec-validationno;
下面正式开始配置
环境搭建:
Server1:192.168.2.7父域
Server2:192.168.2.12子域
父域的DNS配置:(192.168.2.7上)
步骤概要:将其配置成缓存服务器,关闭dnssec,添加本区域,编写本区域解析库文件(其中要加入子域的NS记录、A记录)。
vi /etc/named.conf 修改如下:
options {
// listen-on port 53 { 127.0.0.1; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file"/var/named/data/named_stats.txt";
memstatistics-file"/var/named/data/named_mem_stats.txt";
// allow-query { localhost; };
recursion yes;
dnssec-enable no; //改为no
dnssec-validation no; //改为no
// dnssec-lookasideauto; //注释掉这句
/* Path to ISC DLV key */
// bindkeys-file "/etc/named.iscdlv.key";
// managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug{
file"data/named.run";
severitydynamic;
};
};
zone "." IN {
type hint;
file "";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
service named start
vi /etc/named.rfc1912.zones,在最后添加如下4行内容
zone "" IN {
typemaster;
file".zone";
};
cd /var/named
vi .zone内容如下:【注意FQDN中的注意点号】
$TTL 1D
$ORIGIN .
@ IN SOA ns1.. admin.. (
2015093212
1M
5M
1H
1D)
IN NS ns1
IN NS ns2
ns1 IN A 192.168.2.7
ns2 IN A 192.168.2.8
www IN A 192.168.2.7
* IN A 192.168.2.7 ;加了一条泛域名解析记录
;下面加的两条是子域授权要用到的,否则父域找不到子域
ops IN NS ns1.ops
ns1.ops IN A 192.168.2.12 ; 子域的dns地址
named-checkzone"" .zone # 检查区域文件
# 修改区域配置文件的权限
chown .named .zone
chmod 640 .zone
service named restart #重启dns服务
子域的DNS配置:(192.168.2.12上)
步骤概要:将其配置成缓存服务器,关闭dnssec,添加本区域和父区域,编写本区域解析库文件。
vi /etc/named.conf # 注释掉下面红色字体部分的代码,使其变成缓存服务器
options {
// listen-on port 53 { 127.0.0.1; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file"/var/named/data/named_stats.txt";
memstatistics-file"/var/named/data/named_mem_stats.txt";
// allow-query { localhost; };
recursion yes;
dnssec-enable no; //改为no
dnssec-validation no; //改为no
// dnssec-lookaside auto;
/* Path to ISC DLV key */
// bindkeys-file"/etc/named.iscdlv.key";
// managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug{
file"data/named.run";
severitydynamic;
};
};
zone "." IN {
type hint;
file "";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
service named start #启动named服务
vi /etc/named.rfc1912.zones,在最后添加2个区域:
zone "ops." IN {
type master;
file"ops..zone";
};
//定义转发到父域
zone "" IN {
type forward;
forwardonly;
forwarders { 192.168.2.7 ;};
};
vi /var/named/ops..zone 写入如下内容:
$TTL 1D
$ORIGIN ops..
@ IN SOA ns1.ops.. admin.ops.. (
2015093201
1M
5M
1H
1D )
IN NS ns1
ns1 IN A 192.168.2.12 ;本机地址
www IN A 192.168.2.30
* IN A 192.168.2.30
# 修改区域配置文件的权限
chown .named ops..zone
chmod 640 ops..zone
执行rndc reload或者service namedrestart
tail/var/log/messages 查看是否有错误提示。
多次执行dig命令检查:
# 在父域dns服务器上执行:
dig -t awww.ops. @192.168.2.7 父域能正常解析子域
说明我们定义的子域、父域配置成功了。