bind中的ACL和rndc
DNS除了服务器外,还具有一些访问控制和视图功能。
访问控制是指仅对定义的网络进行解析,视图也就是智能解析。
1》访问控制是通过acl函数来实现的,acl把一个或多个地址归为一个集合,随后可通过此统一的名称对此集合内的所有主机进行统一调用。
2》注意:只能先定义,后使用,因此一般定义在配置文件中,处于options的前面。
3》格式:
acl acl_name {
ip; 具体的ip地址
net/prelen; 表示一个网段
……
};
示例:
acl mynet {
172.16.0.0/16;
10.10.10.10;
};
4》bind 有四个内置的acl:
none: 没有一个主机
any: 任意主机
localhost: 本机
localnet: 本机的IP同掩码运算后得到的网络地址
5》定义好后,在下方的options中或在其他的zone中进行调用。其中的访问控制的指令:
allow-query {}: 允许查询的主机;白名单
allow-transfer {}:允许区域传送的主机;白名单
allow-recursion {}: 允许递归的主机, 建议全局使用
allow-update {}:允许更新
rndc
1》由于DNS服务器的重要性,每次修改配置文件、解析库文件后不可能都要进行重启服务器操作,否则会导致用户在重启过程当中出现无法解析的情况。因此就需要有种管理机制能够平滑的去管理这些操作,这种机制rndc。
2》rndc是bind安装包提供的一种控制域名服务运行的工具。它监听tcp的953端口,它可以运行在其他计算机上,通过网络与DNS服务器进行连接,然后根据管理员的指令对named进程进行远程控制,此时,管理员不需要DNS服务器的根用户权限。
3》使用rndc可以在不停止DNS服务器工作的情况下进行数据的更新,使修改后的配置文件生效。
4》rndc与DNS服务器实时连接时,需要通过数字证书进行认证。rndc在连接通道中发送命令时,必须使用经过服务器认证的密钥加密。可以使用rndc-confgen命令产生密钥和相应的配置,再把这些配置分别放入name.conf和rndc的配置文件rndc.conf中。
5》rndc: remote name domain controller,是一个服务,用来提供辅助性的管理功能,该服务监听在主机tcp的935号端口,默认与bind 安装在同一主机,且只能通过127.0.0.1连接DNS服务的named。因此仅允许本地使用,不允许远程。
智能DNS解析
智能DNS解析也就是DNS的视图,bind view,view功能的实现也是需要结合acl来实现的。
1》view是一个函数,一个bind服务器可定义多个view ,每个view 中可定义一个或多个zone,用来实现不同的来源ip解析不同的结果。
2》每个view 用来匹配一组客户端
3》多个view 内可能需要对同一个区域进行解析,但使用不同的区域解析库文件
4》格式:
view VIEW_NAME {
match-clients { testacl; };
zone “adc.com” {
type master;
file “adc.com.zone”;
};
include “/etc/named.rfc1912.zones”;
} ;
5》注意:
1。一旦启用了view ,所有的zone 都只能定义在view中
2。仅在允许递归请求的客户端所在view中定义根区域
3。客户端请求到达时,是自上而下检查每个view 所在服务的客户端列表
DNS基础排除
1》例如:dig A example.com
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> Aexample.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:30523
...
2》SERVFAIL:The nameserver encountered a problem while processing the query.
可使用dig +trace 排错,可能是网络和防火墙导致
3》NXDOMAIN :The queried name does not exist in the zone.
可能是CNAME 对应的A记录不存在导致
4》REFUSED :The nameserver refused the client's DNS request due to policy restrictions.
可能是DNS 策略导致
5》NOERROR 不代表没有问题,也可以是过时的记录
6》查看是否为权威记录,flags:aa 标记判断
7》被删除的记录仍能返回结果,可能是因为* 记录存在
如:*.example.com. . IN A 172.25.254.254
9》注意“.”的使用
10》避免CNAME指向CNAME记录,可能产生回环
test.example.com. IN CNAME lab.example.com.
lab.example.com. IN CNAME test.example.com.
11》正确配置PTR 记录,许多服务依赖PTR ,如sshd,MTA
12》正确配置轮询round-robin