当前位置:网站首页 > 技术博客 > 正文

bind9是什么



ISC的bind一直以来基本上都是DNS的工业标准,不过BIND一直是漏洞不断,直到出了BIND9,isc的开发人员对bind9进行了重写,才相对好了一点。

BIND9的安装就不用多说了,这里使用最新版本9.2.3,说白了也就是需要named这个可执行文件就可以了,其他的配置文件完全可以自己来写。如果需要进行服务的控制的话,则需要rndc这个文件了。named大约有4M多,strip一下也就1M多点,再裁减裁减完全可以做到400K的,做嵌入式的朋友也不妨考虑考虑这个了。

服务的启动与停止可以完全自己来写一个脚本来控制,启动的话先判断是否已经启动,,如果已经启动,则提示已经启动,否则执行,停止的时候先判断是否已经启动,是的话则,否的话提示没有启动,具体可在网上查找。

下面重点来说说BIND9的新功能.

是的最先读取的一个文件,支持如下语句:

  • Acl
  • Controls
  • Include
  • Key
  • Logging
  • Lwres
  • Options
  • Server
  • Trusted-keys
  • View
  • Zone

其中主要的是 ,,,,,,,其他的很少用到我们就来详细的对这些进行解释一下.

acl 用来对bind的访问进行限制,是一个全局的设置,前面配置的在整个中都适用,和路由器里面的有同工之处,语法是

 

其中的是一个地址列表,如,记住最后一定得有分号,有多个的话中间用分号格开,如

bind内置了4个acl分别是:

  • :对应所有的,也就是0.0.0.0/0.
  • :对应为空.
  • :对应本地机器.
  • :对应本地网络.

controls主要用于对bind进行控制,如:

 
 

设置控制的端口以及端口,用来设置控制的密钥

include是一个非常有用的选项,如果需要写程序来读写bind的配置文件,这个将会用到,因为bind的配置文件很不规则,但是用了include后,就可以变的很规则,就和数据库一样了,功用和c语言里面的一样。

用于导入拆分的配置文件。

options是用于设置bind的一些选项,我们将重点介绍,BING9支持的选项如下:

 
  • 是已经过时的选项,这里不用考虑,
  • 是尚未完成的选项,这里也不用考虑,下面详细介绍这里面的有用选项

注意,前面打的为选项

view(视)是bind9中提出的一个新概念,在这里可以理解为”从不同的眼光来看dns”,在这里这个词可真是取的经典呀,具体而已,就是根据不同的源地址,目的地址,解析请求来判断该给客户提供什么样的解析.其语法如下:

 

其中:

  • ,指的是view对应的源地址,
  • 指的是view对应的目的地址,
  • 指的是view对应是否仅仅是递归请求。

BIND在收到DNS的解析请求后,会首先判断该请求包的源地址和目标地址,然后根据视区里面的和和,判断是否属于第一个视区,符合的话就用第一个视区来进行解析,否则就判断下一个视区。然后再进行解析。如果所有的视区都不能对应,则DNS将返回的消息。

这样在防火墙的情况下,就有一个很好的解决办法了,比如一个典型的网络结构下,DMZ区全部在防火墙外网口上做的地址映射(DNAT),当DMZ区要访问本地网络的时候,单纯用传统的域名解析的话,是无法达到要求的,因为防火墙无法同时又做SNAT和DNAT,比如DMZ地址映射到外部地址,而域名服务器解析到,则的网络将无法访问,但是当用了VIEW后,你可以对来自该网络的解析请求将直接解析到,这样就可以访问了。

view里面可以包含,优先级是,里面的选项好多和里面一样,不过它只是对本一样,同样view里面的选项也只是对本view有效。

是bind的一个重要选项,不过关于网上的文章很多,在这里只是补充几点小技巧:

如何将域名直接解析为www服务器的地址,比如像那样直接解析为,这里可以在域的数据文件里面增加一个这样的地址记录:

这样的主机记录就可以实现了,为服务器的ip地址。

  1. 在用nslookup查询域的时候出现如下错误:,这种情况是没有对域名服务器本身做反向地址解析造成的,给域名服务器增加一条反向地址解析就可以了。
  2. 在用nslookup时出现如下错误:这种情况一般是在DNS进行递归查询的时候,超时造成的,可能是由于网络速度问题,也可能是路由等其他问题,或者对方域名服务器没有响应造成的.
  3. 在用nslookup时出现如下错误:,这种情况一般是域中没有该地址记录或没有别名记录.
  4. 在用nslookup时出现如下错误:一般是配置问题,请检测配置,或者是辅助域无法从主域中得到数据,再请求辅助域的时候会出现这种故障.

BIND的有用的网站:

  • https://www.isc.org/bind/
  • https://bind9.readthedocs.io/en/latest/reference.html
  • MaraDNS,安全的嵌入式DNS. http://www.maradns.org/
  • OakDNS 用python写的,和bind的区域文件和cache兼容,地址: http://www.digitallumber.com/oak
  • PowerDNS 一个仅支持认证的DNS,http://www.powerdns.org/
  • MYDNS以mysql作为后台的认证DNS,http://mydns.bboy.net/

版权声明


相关文章:

  • flex布局教程实例篇2025-01-17 10:30:06
  • opencv copymakeborder2025-01-17 10:30:06
  • 应用层的十一个协议2025-01-17 10:30:06
  • shell获取上一条命令执行结果2025-01-17 10:30:06
  • 生成树协议百科2025-01-17 10:30:06
  • linux v4l2驱动框架2025-01-17 10:30:06
  • 服务器的硬件配置2025-01-17 10:30:06
  • flask 工作流引擎2025-01-17 10:30:06
  • sql触发器的使用及语法2025-01-17 10:30:06
  • 深度置信网络和自编码器2025-01-17 10:30:06