1、dns主从:
从服务和主服务器拥有一模一样的数据库文件;从dns服务器是区域级别的概念。
主从同步:需要两台主机的时间一直,否则不能正确完成,命令ntpdate用来指定时间服务器。
2、配置一个正向区域的从DNS服务器的步骤:
①、主服务器上配置:
a、确保区域数据文件中为每个从服务器配置NS记录;
b、并且在正向区域文件需要为每个从(辅助)DNS服务器的NS记录的主机名配置一个A记录,且此A后面的地址为"真正从(辅助)服务器的IP地址",否则同步过去
②、从服务器上配置:
a、定义一个区域为从区域
示例:
zone "zone_name" IN {
type slave;
file "slaves/zone_name.zone"; //区域数据文件,放在此位置,不需要自己创建,自动同步过来
masters { MASTER_IP; } //指定主DNS服务器ip地址
}
为什么辅助区域配置文件放在/var/named/slaves目录下呢?
[root@localhost slaves]# ps aux | grep named
named 1980 0.0 1.5 157904 16044 ? Ssl 19:08 0:00 /usr/sbin/named -u named //named进程以named身份运行
[root@localhost slaves]# ls /var/named/ -ld //named目录的权限 不允许named组用户对其进行写操作,因此不能创建文件
drwxr-x---. 5 root named 4096 Feb 4 19:07 /var/named/
[root@localhost slaves]# ls /var/named/slaves/ -ld //slaves目录允许named进程组用户有RWX权限,避免风险
drwxrwx---. 2 named named 4096 Dec 5 2012 /var/named/slaves/
[root@localhost slaves]#
主从dns正向区域配置步骤示例:主dns:192.168.0.107;从dns:192.168.0.102
注意:主从同步要确保关闭了selinux和防火墙,除非策略通过,否则会同步不成功。
①、主服务器配置
[root@localhost /]# cat /var/named/magedu.com.zone
$TTL 1D
$ORIGIN magedu.com.
@ IN SOA @ admin.magedu.com. (
2018020401
1H
20M
1D
1W
)
@ IN NS ns1.magedu.com.
@ IN NS ns2.magedu.com.
ns2 IN A 192.168.0.102
ns1 IN A 192.168.100.100
www.magedu.com. IN A 192.168.100.105
IN A 192.168.100.106
web1.magedu.com. IN CNAME www.magedu.com.
[root@localhost /]#
[root@localhost /]# named-checkconf
[root@localhost /]# named-checkzone magedu.com /var/named/magedu.com.zone
注意:主配置文件中的“allow-query { localhost; };”注释掉 ;每次更改区域数据配置文件都要手工改动serial(序列号)
[root@localhost /]# systemctl restart named 或:[root@localhost /]# systemctl reload named
[root@localhost /]# systemctl status named
②、从dns服务器配置:
]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type slave;
file "slaves/magedu.com.zone";
masters { 192.168.0.107; };
};
[root@localhost slaves]# named-checkconf //检查区域配置是否有语法错误
[root@localhost slaves]# rndc reload //重读配置文件
[root@localhost slaves]# ls /var/named/slaves/
magedu.com.zone //此文件会自动从主dns服务器通过不过来
③、验证:
[root@localhost slaves]# dig -t a www.magedu.com @192.168.0.102
3、配置一个反向区域的从DNS服务器的步骤:(注意:反向区域要与正向区域的记录对应)
①、主服务器上配置:
a、确保区域数据文件中为每个从服务器配置NS记录;
b、并且在反向区域文件需要为每个从(辅助)DNS服务器的NS记录的主机名配置一个PTR记录,且此PTR的"name地址"为"真正从(辅助)服务器的IP地址",否则同步过去
②、从服务器上配置:
a、定义一个反向区域为从区域
示例:
zone "网段地址.in-addr.arpa" IN {
type slave;
file "slaves/zone_name.zone"; //区域数据文件,放在此位置,不需要自己创建,自动同步过来
masters { MASTER_IP; } //指定主DNS服务器ip地址
}
主从dns反向区域配置步骤示例:主dns:192.168.0.107;从dns:192.168.0.102 (要有对应的正向解析区域)
①主dns服务器上配置:
root@localhost /]# cat /etc/named.rfc1912.zones
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.zone";
};
主dns反向区域数据文件配置:
[root@localhost /]# cat /var/named/192.168.0.zone
$TTL 3600
$ORIGIN 0.168.192.in-addr.arpa.
@ IN SOA ns1.magedu.com. admins.magedu.com. (
2018020226
1D
2H
30M
1W
)
IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
102 IN PTR ns2.magedu.com.
107 IN PTR ns1.magedu.com.
205 IN PTR www.magedu.com.
206 IN PTR www.magedu.com.
207 IN PTR www.magedu.com.
[root@localhost /]#
②、从服务器反向区域配置:
[root@localhost slaves]# cat /etc/named.rfc1912.zones
zone "0.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.0.zone";
masters { 192.168.0.107; };
};
③、验证:
[root@localhost slaves]# ls /var/named/slaves/
192.168.0.zone magedu.com.zone
[root@localhost slaves]#
[root@localhost slaves]# dig -x 192.168.0.207 @192.168.0.102 //查看102是否可以解析此地址
[root@localhost slaves]# dig -t axfr 0.168.192.in-addr.arpa @192.168.0.102 //手动同步区域文件
注意:手动传送存在风险,因为任何人都可以传送,需要访问控制来限制主从间的传送。
4、子域授权配置:
如:父域:magedu.cn
子域:ops.magedu.cn
正向解析区域授权子域的方法:
配置文件中添加:
ops.magedu.com. IN NS ns1.ops.magedu.com.
ns1.ops.magedu.com. IN A IP_ADDR
注意:如果有多个子域都要在此处添加相应记录。
子域授权配置示例:父dns:192.168.0.107;子dns:192.168.0.105
父域配置:
区域配置文件:
[root@localhost named]# cat /etc/named.rfc1912.zones
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
[root@localhost named]# named-checkconf
区域数据配置文件:
[root@localhost named]# cat /var/named/magedu.com.zone
$TTL 3600
$ORIGIN magedu.com.
@ IN SOA @admin.magedu.com. (
2017020517
1D
1H
1W
10M
)
IN NS ns1.magedu.com.
ns1 IN A 192.168.0.200
www IN A 192.168.0.210
www IN A 192.168.0.220
web IN CNAME www
ops IN NS ns2.ops
ns2.ops IN A 192.168.0.105
[root@localhost named]#
子域配置:
子域配置文件:
[root@localhost ~]# cat /etc/named.rfc1912.zones
zone "ops.magedu.com" IN {
type master;
file "ops.magedu.com.zone";
};
[root@localhost named]# named-checkconf
子域数据配置文件:
[root@localhost named]# cat ops.magedu.com.zone
$TTL 3600
$ORIGIN ops.magedu.com.
@INsoa ops.magedu.com. admin.ops.magedu.com. (
2018020103
1D
10M
1W
12H
)
IN NS ns1.ops.magedu.com.
ns1INA 10.10.10.100
wwwINA 10.10.10.110
www INA 10.10.10.120
webINCNAME www
[root@localhost named]# named-checkzone ops.magedu.com /var/named/ops.magedu.com.zone
验证结果:
父域可以解析子域:(在107上输入命令)
[root@localhost named]# dig -t a www.ops.magedu.com @192.168.0.107 //自己解析子域的资源记录,可以解析
[root@localhost named]# dig -t a www.ops.magedu.com @192.168.0.105 //自己主机让105解析资源记录,可以解析
[root@localhost named]# dig -t a www.magedu.com @192.168.0.107 //自己解析自己,可以解析
子域解析父域:(在105上输入命令)
[root@localhost named]# dig -t a www.ops.magedu.com. @192.168.0.105 //自己解析自己,可以解析
[root@localhost named]# dig -t a www.ops.magedu.com. @192.168.0.107 //自己让父域解析自己,可以解析
[root@localhost named]# dig -t a www.magedu.com. @192.168.0.105 //自己不能解析父域
-------------------------------------------------------------------------------------------------------------------------------------
5、定义转发区域
注意: 被转发的服务器必须允许为当前的服务器做递归
转发区域分类:
①、区域转发:仅转发对某些特定区域的解析请求 ;一般编辑辅助配置文件(named.rfc1912.zone)
②、全局转发:只要不是自己负责,都转发给递归服务器;反本地没有通过zone定义的区域查询请求,通通转发给某转发器。 ;一般在主文件(named.conf)的option中配置
区域转发:语法格式如下:(一般编辑辅助配置文件(named.rfc1912.zone) ) zone "ZONE_NAME" IN { type forward; forward {first | only}; forwarders { SERVER_IP; }; } 注意:first:首先转发,转发器不存在时,自己去迭代查询; only:只转发,若不成功,则一直处在等待状态 转发的地址可以有多个,以分号分开,前后有空格 示例:如父子域,父域可以解析子域,是因为有指向子域的域名服务器的记录,但是子域不能去解析父域,因为子域和父域是两个不同的域,子域需要转发给根才可以去解析父域的资源记录。 解决办法:在子域上做区域转发,凡是要解析父域的资源记录,都转向父域的IP地址。如下:为父子域的子域做转发,在子域上配置如下: [root@localhost named]# cat /etc/named.rfc1912.zones zone "magedu.com" IN { //要转发的区域 type forward; //区域的类型 forward only; //仅转发 forwarders { 192.168.0.107; }; //转发的IP地址 }; [root@localhost named]# rndc reload [root@localhost named]# dig -t a www.magedu.com @192.168.0.105 //子域可以成功解析父域资源记录。 |
全局转发:语法格式如下:(一般在主文件(named.conf)的option中配置 ) options { ... forward only forwarders { SERVER_IP; }; ... } 转发区域查找顺序:先去找zone中的转发,没有在去查找option中的转发 示例:如父子域,父域可以解析子域,是因为有指向子域的域名服务器的记录,但是子域不能去解析父域,因为子域和父域是两个不同的域,子域需要转发给根才可以去解析父域的资源记录。 解决办法:在子域上做全局转发,凡是要解析未知的资源记录,都转向父域的IP地址。如下:为父子域的子域做转发,在子域上配置如下: options { listen-on port 53 { 127.0.0.1; 192.168.0.105; }; 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; 192.168.0.0/24; }; recursion yes; dnssec-enable no; dnssec-validation no; dnssec-lookaside no; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; forward only; forwarders { 192.168.0.107; }; }; |
6、bind中的安全相关配置:
①、acl:访问控制列表,把一个或多个地址归并一个命名的集合,然后通过此名称对集合内的所有主机实现统一调用。
acl格式:
acl ACL_NAME {
IP; //可以写多个ip,每行一个
NET/MASK; //支持以长度的方式书写掩码
}
注意1:acl要先于options定义,才可在options中进行调用;acl一般在主文件named.conf中配置,但是在辅助配置文件named.rfc1912.zone中也可以引用。
示例:
acl allow_ziyu {
192.168.0.0/24;
172.168.100.0/24;
10.10.10.10;
};
注意2:bind有四个内置的acl,如下:
none:不允许任何主机
any:允许任何主机
localhost:本机
localnet:本地主机IP所属的网络段。
②、访问控制指令:
在全局文件named.conf中配置对全局起作用
在区域文件name.rfc1912.zone中配置仅对当前域起作用。
注意:区域中的配置会覆盖主文件中的配置。
allow-query { } //允许查询的主机,白名单;
allow-transfer { } //允许向哪些主机做区域传送;默认为向所有主机,应该在主服务器上配置仅允许:向从(辅助)dns服务器传送。其他都不允许。
allow-recursion { } //允许哪些主机向当前dns服务器发起递归查询请求;白名单
allow-update { } //是否允许更新ddns用的,允许动态更新区域数据库文件中的内容,有进程自动更新。如:allow-update { none; };
示例:在options中添加访问控制指令如下:
options {
allow-query { allow_ziyu; }; //可以引用acl、ip。
allow-transfer { allow_ziyu; };}
recursion yes //允许所有递归,也可以写成allow-recursion { }的形式,
}
在区域中做控制:
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
allow-query { allow_IP; };
allow-transfer { allow_transfer; }; //仅允许从服务器复制。
};
7、bind view:主要用来控制哪些主机访问哪些地址的,如果有两个dns的话。(智能DNS)的实现
格式:
view VIEW_NAME {
zone;
zone;
zone;
};
示例:
view internal {
match-client { 172.16.0.0、16;};
zone "magedu.com" IN {
type master;
file "magedu.com/internal";
};
}
view external {
match-client { any; };
zone "magedu.com" IN {
type master;
file "magedu.com/external";
};
};