如何部署CentOS 6 BIND DNS服务器

时间:2020-01-09 10:39:07  来源:igfitidea点击:

说明

Bind是最受欢迎的命名服务之一。

本教程将将CentOS服务器准备成为DNS服务器。该服务器不会托管任何域,但是在以后的教程中,我们将学习使用此基本服务器设置它们。

目标

  • 创建一个基础DNS服务器,该服务器可用于递归查找和缓存查询。
  • 准备用于托管域区域的主DNS服务器。

系统配置

使用的服务器具有以下配置。一些信息将在教程中引用,并在此处显示,以简化后续操作。

主机名操作系统IP地址角色BIND版本
ns01CentOS 6.4172.30.1.5bind9.x

Bind服务器角色

在安装Bind之前,应先了解如何在环境中使用它。有几个选项可供选择,并且根据我们使用的配置的不同而不同。

|||
|--- |
|Cache-Only|此角色不包含和域或者区域。它纯粹作为一个缓存系统存在,以提高名称解析性能。每次查找都会转发到另一个DNS服务器。从服务器返回的结果在本地缓存|
|Master|主服务器是网络中承载的域或者区域的所有者。它是环境中唯一的读写DNS服务器|
|Slave|从属服务器是一个只读的命名服务器,它承载主服务器拥有的区域。这些通常用于冗余,如果主机停机进行维护,则允许名称解析服务继续|

安装Bind

我们需要先安装必备软件包,然后才能继续。

  • 使用Yum和CentOS存储库安装BIND。 yum install bind
  • 启动BIND名为start的服务
  • 配置"BIND"以在启动时启动。 " chkconfig命名于"

配置Bind

打开Bind的配置文件时,首先会看到全局选项,这些选项会影响服务器以及我们可能添加到主机域的每个区域。我在下面详细介绍了我们将遇到的默认选项。

全局选项和设置

  • 将Bind的配置文件打开到文本编辑器中。 nano / etc / named.conf
  • 查找options指令。它位于配置文件的顶部,应类似于CentOS服务器上的以下示例。
options {
        listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; };
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};
  • 从上面的输出中可以看到,有很多默认选项。下面是我们现在需要了解的四个。
监听端口53
定义IPv4的端口BIND侦听
定义IPv6的端口BIND侦听
DNS区域文件和状态的默认目录根
允许查询此服务器的IP地址或者子网
  • 分配一个IP地址或者多个IP地址,Bind会监听这些请求。我们将分配eth0的地址和本地环回。 `监听端口53 {172.30.1.5; 127.0.0.1;或者,要允许Bind侦听分配给服务器的所有可用IP地址,请输入any;而不是IP地址。
  • 为了允许客户端查询DNS服务器,我们需要修改allow-query选项。默认情况下,它仅允许来自本地主机的查询。我们将对其进行修改,以允许来自BIND服务器所在网络的查询。 allow-query {172.30.1.0/24; 127.0.0.1; };我们可以分配任意多个值,但是每个值都必须以分号结尾。与监听选项一样,我们可以输入any;允许任何人提交查询的权限。
  • 保存更改并退出文本编辑器。
  • 在BIND中加载新配置。服务名为重载

配置防火墙

在我们打开适当的端口之前,我们的客户将无法连接到我们的服务器。我们使用named.conf文件中listen-on选项定义的值来确定要打开的端口。默认情况下,IPv4和IPv6均使用53.

  • 启动System-config-firewall-tui工具。 system-config-firewal-tui
  • 通过按Tab键导航到``自定义''按钮。
  • 向下滚动受信任的服务列表并启用DNS。
  • 通过按Tab键导航到``关闭''按钮。
  • 按下Tab键导航至OK按钮。

将DNS服务器指向自身进行查找

除非我们将服务器指向其自身以在其网络设置中进行DNS查找,否则它将无法响应来自客户端及其自身查找的查询。在客户端可以使用此服务器之前,我们需要配置该服务器用于DNS名称解析的位置。

  • 在文本编辑器中打开resolv.conf文件。 nano / etc / resolv.conf
  • 清除所有现有选项,然后添加以下内容。我们这样做是因为它是目前环境中唯一的DNS服务器,并且该服务器还不是任何域的成员。域名服务器127.0.0.1
  • 保存更改并退出文本编辑器。
  • 更改立即生效。我们不需要重新启动任何服务。

测试服务器

为了验证一切正常,我们应该执行一些DNS查询。我们可以使用一些工具来执行此操作,例如nslookup,ping或者dig。由于服务器不托管任何域,因此我们必须针对公共域(例如Google)进行测试。在我们的示例中,我们将使用dig工具检查名称解析。

dig google.com

如果一切顺利,我们应该会看到类似的输出,其中显示了我们刚刚查询的完全限定域名的每条记录。

[Hyman@localhost named]# dig google.com

; >><< DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 >><< google.com
;; global options: +cmd
;; Got answer:
;; ->><<HEADER>><<- opcode: QUERY, status: NOERROR, id: 28565
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             300     IN      A       74.125.226.134
google.com.             300     IN      A       74.125.226.128
google.com.             300     IN      A       74.125.226.131
google.com.             300     IN      A       74.125.226.129
google.com.             300     IN      A       74.125.226.136
google.com.             300     IN      A       74.125.226.137
google.com.             300     IN      A       74.125.226.133
google.com.             300     IN      A       74.125.226.130
google.com.             300     IN      A       74.125.226.135
google.com.             300     IN      A       74.125.226.142
google.com.             300     IN      A       74.125.226.132

;; AUTHORITY SECTION:
google.com.             11184   IN      NS      ns1.google.com.
google.com.             11184   IN      NS      ns3.google.com.
google.com.             11184   IN      NS      ns4.google.com.
google.com.             11184   IN      NS      ns2.google.com.

;; ADDITIONAL SECTION:
ns2.google.com.         183984  IN      A       216.239.34.10
ns1.google.com.         183984  IN      A       216.239.32.10
ns3.google.com.         183984  IN      A       216.239.36.10
ns4.google.com.         183984  IN      A       216.239.38.10

;; Query time: 44 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Mar  8 10:10:56 2014
;; MSG SIZE  rcvd: 340

注意上面突出显示的SERVER值。这验证了我们的查询是从我们的DNS服务器而不是其他服务器进行的。