DNS 转发笔记(基于 CentOS7)
DNS 全局转发
情况 1: 在 DNS 服务器的配置中, 如果采用默认的配置, 其实效率是较低的, 因为默认情况下, 我们所有的非权威解析都会被发送到根服务器进行迭代查询. 如果采用转发, 如将我们的 DNS 解析请求转发到一些公共 DNS 服务器上, 由于公共 DNS 服务器上缓存了大量的解析, 因此能较原始的迭代查询快.
说明: 实现对非权威解析 (已缓存的除外) 都转发到特定 DNS 服务器
配置:
在主配置文件 / etc/named.conf 的全局选项中添加如下内容:
- options {
- # 指明转发器是谁
- forwarders { ip; };
- # only 表示仅转发
- # first 表示先进行转发, 如果没查询到结果, 那么它自己还会根据根提示向外迭代查询
- forward only|first;
- };
- ---------------------
举例:
- options {
- ......
- forwarders { 202.96.134.133;8.8.8.8; };
- };
如果仅设置 "forwarders", 则在无法联系转发器时, 就会尝试自己解析, 即转发到根服务器迭代查询实现解析(如果配置有根 zone).
如果想服务器在联系不到转发器时不进行多余操作, 则可以加上 "forward only;"(如下:); 这样如果联系不上转发器是, 服务器将只查询权威解析和本地缓存的解析.
- options {
- ......
- forwarders {
- 202.96.134.133;8.8.8.8;
- };
- forward only;
- };
转发区转发
情况 2: 某单位有个总部 DNS 服务器, 下属各部门又有自己的 DNS 服务器, 总的服务器由单位总部进行维护, 各部门的 DNS 自己进行维护. 单位所有终端的 IP 地址和 DNS 地址由总的 DHCP 服务器进行下发, 并且 DNS 为总部的 DNS 地址, 当需要解析部门的域名时, 可以通过总部的 DNS 进行区域转发, 完成 DNS 查询.
说明: 从 BIND9.1 开始, 引入转发区(forward zone ), 允许查询特定区域时, 将其转发到指定 DNS 服务器上.
配置:
在区域置文件 / etc/named.rfc1912.zone 中定义转发域:
- zone "区域名称" IN {
- # 区域的类型为转发
- type forward;
- # 指明转发器是谁
- forwarders {
- ip;
- };
- # only 表示仅转发, first 表示先进行转发, 如果没查询到结果, 那么它自己还会根据根提示向外迭代查询
- forward only|first;
- };
举例:
- zone "test.com" {
- type forward;
- forwarders {
- 192.168.2.3;192.168.2.4;
- };
- forward first;
- };
如上, 我们可以将某个域的解析直接转发到其权威服务器上, 可以实现快速解析.
来源: http://www.bubuko.com/infodetail-3149024.html