-
主从复制:
1、应该为一台独立的名称服务器;
2、主服务器的区域解析库文件中必须有一条NS记录是指向从服务器;
3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中;
4、主服务器得允许从服务器作区域传送;
5、主从服务器时间应该同步,可通过ntp进行;
6、bind程序的版本应该保持一致;否则,应该从高,主低;
定义从区域的方法:
zone “ZONE_NAME” IN {
type slave;
masters { MASTER_IP; };
file “slaves/ZONE_NAME.zone”;
};
-
打开缓存解析服务
-
检查dns端口是否监听
[root@centos72 named]# ss -tunl | grep 172.16.31.124
-
增加zone
[root@centos72 named]# vim /etc/named.rfc1912.zones
zone “cpe.com” IN {
type slave;
masters { 172.16.31.125; };
file “slaves/cpe.zone”;
};
zone “31.16.172.in-addr.arpa” IN {
type slave;
masters { 172.16.31.125; };
file “/var/named/slaves/31.16.172.zone”;
};
-
测试ns同主服务器。
Feb 17 08:08:52 centos72 named[6866]: managed-keys-zone: sync_keyzone:dns_journal_open -> unexpected error
Feb 17 08:08:52 centos72 named[6866]: managed-keys-zone: unable to synchronize managed keys: unexpected error
Feb 17 08:08:52 centos72 named[6866]: reloading zones succeeded
Feb 17 08:08:52 centos72 named[6866]: zone 31.16.172.in-addr.arpa/IN: Transfer started.
Feb 17 08:08:52 centos72 named[6866]: transfer of ‘31.16.172.in-addr.arpa/IN’ from 172.16.31.125#53: connected using 172.16.31.124#58706
Feb 17 08:08:52 centos72 named[6866]: zone 31.16.172.in-addr.arpa/IN: transferred serial 2016021601
Feb 17 08:08:52 centos72 named[6866]: all zones loaded
Feb 17 08:08:52 centos72 named[6866]: transfer of ‘31.16.172.in-addr.arpa/IN’ from 172.16.31.125#53: Transfer completed: 1 messages, 9 records, 259 bytes, 0.001 secs (259000 bytes/sec)
Feb 17 08:08:52 centos72 named[6866]: running
Feb 17 08:08:52 centos72 named[6866]: zone 31.16.172.in-addr.arpa/IN: sending notifies (serial 2016021601)
-
创建子域
-
子域授权:分布式数据库
-
正向解析区域子域方法:
-
定义一个子区域:
ops.magedu.com. IN NS ns1.ops.magedu.com.
ops.magedu.com. IN NS ns2.ops.magedu.com.
ns1.ops.magedu.com. IN A 1.1.1.1
ns2.ops.magedu.com. IN A 1.1.1.2
fin.magedu.com. IN NS ns1.fin.magedu.com.
fin.magedu.com. IN NS ns2.fin.magedu.com.
ns1.fin.magedu.com. IN A 3.1.1.1
ns2.fin.magedu.com. IN A 3.1.1.2
-
在父域转发库中添加子域名授权:
[root@repo ~]# vim /var/named/cpe.zone
ops.cpe.com. IN NS ns1.ops.cpe.com.
ops.cpe.com. IN NS ns2.ops.cpe.com.
ns1.ops.cpe.com. IN A 11.100.40.125
ns2.ops.cpe.com. IN A 11.100.40.14
-
配置子域服务器
同主dns服务器配置
注意:标白的是坑。
注意:关闭dnssec功能:dnssec-enable no; dnssec-validation no;
-
定义转发服务器:
注意:被转发的服务器需要能够为请求者做递归,否则,转发请求不予进行;
-
全部转发: 凡是对非本机所有负责解析的区域的请求,统统转发给指定的服务器;
Options {
forward {first|only}
fowwarders
}
-
区域转发:仅转发对特定的区域的请求至某服务器;
zone “ZONE_NAME” IN {
type forward;
forward {first|only}
forwarders
}
-
例如:
[root@localhost ~]# vim /etc/named.conf
forward first;
forwarders { 172.16.31.125; };
-
创建子域查询库
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone “ops.cpe.com” IN {
type master;
file “ops.cpe.com.zone”;
};
-
配置子域查询库
[root@localhost ~]# vim /var/named/ops.cpe.com.zone
$TTL 86400
$ORIGIN ops.cpe.com.
@ IN SOA ops.cpe.com. admin.ops.cpe.com (
2017021701
1H
5M
1W
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
mx1 IN A 11.100.40.14
ns1 IN A 11.100.40.125
ns2 IN A 11.100.40.14
www IN CNAME ns1
* IN CNAME www
ops.cpe.com. IN A 11.100.40.14
-
bind中基础的安全相关的配置:
-
acl: 把一个或多个地址归并为一个集合,并通过一个统一的名称调用;
-
acl acl_name {
ip;
ip;
net/prelen;
};
-
示例:
acl mynet {
172.16.0.0/16;
}
-
bind有四个内置的acl:
-
none: 没有一个主机;
-
any: 任意主机;
-
local: 本机;
-
localnet: 本机的IP同掩码运算后得到的网络地址;
-
-
注意:只能先定义,后使用;因此,其一般定义在配置文件中options的前面;
访问控制的指令:
allow-query {}: 允许查询的主机;白名单;
allow-transfer {}:允许区域传送的主机;白名单;
allow-recursion {}: 允许递归的主机;
allow-update {}: 允许更新区域数据库中的内容;
-
例如:
zone “zmjchina.cn” IN {
type master;
file “zmjchina.zone”;
allow-query { “jiazitext”; };
allow-transfer { “jiazitext”; };
allow-update { “jiazi1”; };
// allow-recursion { 192.168.3.17; }; 无法使用
};
zone “3.168.192.in-addr.arpa” IN {
type master;
file “3.168.192.zone”;
allow-query { none; };
};
acl “jiazitext” {
10.0.0.1; 192.168.3.17;
};
acl “jiazi” {
192.168.3.0/24;
};
acl “jiazi1” {
192.168.3.17;
};
-
控制递归在named.conf中完成
[root@localhost ~]# vim /etc/named.conf
acl “jiazi111” {
192.168.3.0/24;
};
recursion yes;
allow-recursion { “jiazi111”; };
-
bind view:
-
视图:
-
一个bind服务器可定义多个view,每个view中可定义一个或多个zone;
-
每个view用一来匹配一组客户端;
-
多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件;
-
-
view VIEW_NAME {
match-clients { };
-
[root@localhost ~]# vim /etc/named.rfc1912.zones
}
view jia {
match-clients { “mynet”; };
allow-recursion { “mynet”; };
zone….
};
-
[root@localhost ~]# vim /etc/named.conf
acl “mynet” {
192.168.3.10/32;
};
-
注意:
-
一旦启用了view,所有的zone都只能定义在view中;
-
仅有必要在匹配到允许递归请求的客户所在view中定义根区域;
-
客户端请求到达时,是自上而下检查每个view所服务的客户端列表;
-
-
CDN: Content Delivery Network
-
智能DNS:
dnspod
dns.la