《DNS与BIND(第5版)》——7.3 整理文件

简介:

本节书摘来自异步社区《DNS与BIND(第5版)》一书中的第7章,第7.3节,作者: 【美】Joseph Davies 更多章节内容可以访问云栖社区“异步社区”公众号查看。

7.3 整理文件

当首次设置区域时,整理文件很简单:将它们全部放到一个目录中即可。这些文件中包含了一个配置文件和数个区域数据文件。然而,随着时间的推移,任务会越来越艰巨。有更多的网络加入,相应地就有更多in-addr.arpa区域。或许已经授权了一些子域,也已经开始为其他站点备份区域。一段时间后,当使用ls查看名称服务器的目录时,会发现一屏都无法列出所有内容。是时候重新整理这些文件了。BIND提供了一些功能用来帮助进行文件的整理。

BIND名称服务器支持一个叫做include的配置文件语句,它允许将一个文件的内容插入到当前的配置文件中。这个功能可以将一个非常大的配置文件分成多个较小的文件。

区域数据文件(适用于所有BIND版本)支持2条1控制语句:$ORIGIN和$INCLUDE。$ORIGIN语句可以改变一个区域数据文件的来源(origin),而$INCLUDE语句可以在当前的区域数据文件中插入新的文件。这两条控制语句并非资源记录;它们用来帮助维护DNS数据。特别是,它们让区域划分成子域的工作变得更简单:可以将每个子域的数据存放在不同的文件中。

7.3.1 使用多个目录
整理区域数据文件的方法之一,就是将其存放到不同的目录中。如果名称服务器是多个站点所在区域(正向和逆向解析)的primary,则可以将每个站点的区域数据文件分别存放到各自的目录中。另一种方法是将所有primary区域的数据文件存放到一个目录中,而将所有备份区域的数据文件存放到另一个目录中。如果选择将primary和slave区域分开的方式,那么配置文件看起来可能会像下面这个样子:


<a href=https://yqfile.alicdn.com/0853014d52eb38fbff8da697d05dd34a5261e608.png" >

这种划分方法的另一种变化,就是将配置文件分成三个文件:主文件,包含所有primary条目的文件,以及包含所有secondary条目的文件。主配置文件的内容如下所示:


<a href=https://yqfile.alicdn.com/d0d2a0b7a14bbe43d4f59429aba3adc9cc912cd6.png" >

named.conf.primary文件的内容如下所示:


<a href=https://yqfile.alicdn.com/57959b781781b84ce7b7594fca9a508e6c64a17b.png" >

named.conf.slave文件的内容如下所示:


<a href=https://yqfile.alicdn.com/fa40bcadbddb0c2535847eab54cb7064bdd13683.png" >

可能会觉得下面这种整理文件的方法会更好:将包含primary字样的配置文件放入primary子目录中,通过增加一个新的directory指令切换到此目录,并且删除每个文件名中的primary/(因为名称服务器现在就运行在该目录中)。然后对包含secondary字样的配置文件做类似的改变。遗憾的是,这种方法不起作用。BIND只允许定义一个工作目录。当名称服务器在不同目录间不断切换时,事情会变得相当混乱:例如,备份区域数据文件最终会在名称服务器切换到的上一个目录中。
**
7.3.2 改变区域数据文件的来源**
在BIND中,区域数据文件的来源(origin),默认是named.conf文件中zone语句的第二个字段。来源是一个域名,会自动附加到区域数据文件中所有不以“.”结尾的名称上。在区域数据文件中,可以使用$ORIGIN控制语句来修改来源,$ORIGIN后面跟着一个域名。(如果使用完整的域名,则不要忘记结尾的“.”!)此后,凡是不以“.”结尾的名称就会附加上新的来源。如果区域(例如movie.edu)中包含数个子域,可以使用$ORIGIN语句重新设置来源,并简化区域数据文件。例如:


<a href=https://yqfile.alicdn.com/823f88e6a68228b1f07e1ef02143f7d6e0c58b8e.png" >

本书第9章会深入讨论如何创建子域。

7.3.3 引入其他区域数据文件
一旦将区域划分成子域,就会发现,将每个子域的记录分别放在不同的文件中会比较方便。$INCLUDE控制语句可以帮助完成此项工作:


<a href=https://yqfile.alicdn.com/3881db745d3dbc9a3080efd9e0a314b4ec3d083e.png" >

要想进一步简化该文件,可以在引入文件时,在同一行指定新的来源:


<a href=https://yqfile.alicdn.com/829566561f855e4d82ccd613b0ed47f52c4d13ff.png" >

当在同一行指定来源和引入文件时,该来源只会作用于所引入的特定文件。例如,comedy.movie.edu这个来源只作用于db.comedy.movie.edu中的名称。在引入db.comedy.__movie.edu文件后,即使db.comedy.movie.edu中也有$ORIGIN控制语句,来源还是会变回$INCLUDE之前的设置。

相关文章
|
10天前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
23天前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
28天前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
19 0
|
1月前
|
前端开发 UED
前端解析Excel文件
前端解析Excel文件
33 0
|
3月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
152 0
|
3月前
|
JavaScript API Windows
Nodejs 文件 与 路径 相关用法实例解析
Nodejs 文件 与 路径 相关用法实例解析
75 0
|
20天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
28天前
|
SQL Java 数据库连接
springboot解析txt文件顺便加到数据库中(nohup文件)
springboot解析txt文件顺便加到数据库中(nohup文件)
108 1
|
28天前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0
|
28天前
|
存储 安全 Linux
C++文件格式深度解析:从底层结构到关键特性
C++文件格式深度解析:从底层结构到关键特性
244 3
C++文件格式深度解析:从底层结构到关键特性

相关产品

  • 云解析DNS
  • 推荐镜像

    更多