子域授权:

      正向解析区域授权子域的方法:

           ops.claude666.com.          INNSns1.ops.claude666.com.

           ops.claude666.com.          INNSns2.ops.claude666.com.

           ns1.ops.magedu.com.      IN      AIP.AD.DR.ESS

           ns2.ops.magedu.com.      IN      AIP.AD.DR.ESS

实现原理:

      在本域名服务器上正向解析库文件中定义子域对应的dns服务器的主机名和A记录即可;

定义转发:

      注意:被转发的服务器必须允许为当前服务做递归;

1)    区域转发:仅转发对某特定区域的解析要求;

zone“zone_name”   IN {

  type forward;

  forward {first|only};

  forwards { server_ip; };

};

first:首先转发;转发器不响应时,自行去迭代查询;

only:只转发;

2)    全局转发:针对凡本地没有通过zone定义的区域查询请求,通通转给某转发器;

options{

……

forward {first|only};

   forwards { server_ip; };

};

示例:子域授权;父域主机:192.168.19.128,子域主机:192.168.19.134

父域上:

1.     父域主配置文件配置;

Linux 自学笔记——bind高级应用_第1张图片

注意:主配置文件中dnssec-enable后面需要改为no;dnssec-validation 后面也需要改为no;

2.     定义zone;

Linux 自学笔记——bind高级应用_第2张图片

3.     创建区域解析库;

Linux 自学笔记——bind高级应用_第3张图片

4.     属组及权限修改;

Linux 自学笔记——bind高级应用_第4张图片

子域上:

1.     子域主配置文件;

Linux 自学笔记——bind高级应用_第5张图片

2.     添加子域zone和定义区域解析库文件;

Linux 自学笔记——bind高级应用_第6张图片

3.     属组及权限修改;

Linux 自学笔记——bind高级应用_第7张图片

测试:

父域上:解析子域www.ops.claude.com的地址;

直接解析,出错了,出现以下情况,没有解析出来;

Linux 自学笔记——bind高级应用_第8张图片

在命令之后加上+norecurse;则能成功解析;

Linux 自学笔记——bind高级应用_第9张图片

子域上:

解析父域 www.claude.com;出错了,解析的不是父域地址,因此192.168.19.134也是可联网的,此解析的是网络上的地址;

Linux 自学笔记——bind高级应用_第10张图片

 

定义转发服务器;

1.     配置子域的/etc/named.rfc1912.zones文件,添加一下信息;

Linux 自学笔记——bind高级应用_第11张图片

2.     重启服务,子域解析父域,解析成功;

Linux 自学笔记——bind高级应用_第12张图片

3.     也可定义全局转发;

Linux 自学笔记——bind高级应用_第13张图片

 

DNS中基础的安全相关的配置:

acl:访问控制列表;把一个或多个地址归并一个命名的集合,随后通过此名称即可对此集全内的所有的主机实现统一调用;

格式:

            aclacl_name {

        ip;

        net/prelen

}

示例:

acl mynet {

        172.16.0.0/16;

        127.0.0.0/8

};

bind有四个内置的acl

            none:没有一个主机;

            any:任意主机;

            local:本机;

      localnet:本机所在的ip所属的网络;

访问控制指令:

            allow-query  {};允许查询的主机:白名单;

           allow-transfer {};允许向那些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;

           allow-recursion {};允许哪些主机向当前DNS服务器发起递归查询请求;

           allow-update{};DDNS,允许动态更新区域数据库文件中的内容;

bindview:视图,将请求者根据其来源进行分类,分类后实现使用不同的区域解析库来解析对某区域主机的请求,目前主要应用CDN技术领域;

配置格式:

      view VIEW_NAME {

  match-clients{};

  zone{};

zone{};

};

一个bind服务器可定义多个view,每个view中可定义一个或多个zone;

每个view用来匹配一组客户端;

每个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件;

 

Note:

1)    一旦启用了view,所有的zone都只能定义在view中;

2)    仅有必要在匹配到的允许递归请求的客户所在view中定义根区域;

3)    客户端请求到达时,时自上而下检查每个view所服务的客户端列表;

     

示例:

内网部署了一台web服务器,要求内网用户通过dns服务器解析,解析结果为web服务器的内网地址;外网用户解析,解析结果为web服务器发布到网关的ip地址。

1.     DNS服务器主配置文件如下:/etc/named.conf

Linux 自学笔记——bind高级应用_第14张图片

2.     主辅配置文件配置:/etc/named.rfc1912.zones;

1)内网解析视图;

Linux 自学笔记——bind高级应用_第15张图片

2)外网解析视图;

Linux 自学笔记——bind高级应用_第16张图片

3.     解析库文件配置:

1)    内网解析库文件

Linux 自学笔记——bind高级应用_第17张图片

2)    外网解析库文件;

Linux 自学笔记——bind高级应用_第18张图片

4.     验证:

在内网主机上解析;

Linux 自学笔记——bind高级应用_第19张图片

在外网主机上解析:

解析地址会变成2.2.2.1和2.2.2.3;

 

手动编译bind9;

1.     准备全新的虚拟机,安装编译必备组件“development tools” “server platformdevelopment”

2.     下载bind9压缩文件,并解压缩;

Linux 自学笔记——bind高级应用_第20张图片

3.     创建系统组和系统用户;

bcabafb77c6f114cbb60792aa8e421fe.png-wh_

4.     编译安装;

5fce76956c7c75280db767bac4fd39fd.png-wh_

--prefix :安装包放在统一的路径下

--sysconfdir :配置文件路径

5.     Make && make install

Linux 自学笔记——bind高级应用_第21张图片

Note:对于所有的编译安装来说,下面的都可能用到:

      修改PATH变量,导出二进制程序的搜索路径;

      导出库文件搜索路径;

      导出头文件搜索路径;

      导出帮助文件手册搜索路径;

6.     修改PATH变量,导出二进制程序搜索路径;

Linux 自学笔记——bind高级应用_第22张图片

7.     导出库文件搜索路径;

Linux 自学笔记——bind高级应用_第23张图片

8.     导出头文件搜索路径;

Linux 自学笔记——bind高级应用_第24张图片

9.     导出帮助文件手册搜索路径

编辑文件/etc/man.config

Linux 自学笔记——bind高级应用_第25张图片

保存之后可以man一下named测试;

10.准备配置文件;

1)    编辑/etc/named/named.conf

Linux 自学笔记——bind高级应用_第26张图片

2)    编辑解析库库文件;

编辑/var/named/named.ca

Linux 自学笔记——bind高级应用_第27张图片

      创建localhost.zone文件,和named.local文件;

      Linux 自学笔记——bind高级应用_第28张图片

11.更改属主属组,并检查配置文件、区域文件语法错误;

1)    更改属主属组;

Linux 自学笔记——bind高级应用_第29张图片

2)    检查配置文件语法错误;

Linux 自学笔记——bind高级应用_第30张图片

12.启动;

Linux 自学笔记——bind高级应用_第31张图片

查看服务是否开启;

Linux 自学笔记——bind高级应用_第32张图片

13.测试;

Linux 自学笔记——bind高级应用_第33张图片

14.Rndc的使用;

1)    配置文件的创建;

Linux 自学笔记——bind高级应用_第34张图片

2)    复制/etc/named/rndc.conf中的文件至named.conf文件中;

Linux 自学笔记——bind高级应用_第35张图片

3)    删除/etc/named/named.conf文件中的以下行前面的#号;

Linux 自学笔记——bind高级应用_第36张图片

修改后的结果:

Linux 自学笔记——bind高级应用_第37张图片

4)    测试使用;

Linux 自学笔记——bind高级应用_第38张图片