如何在 CentOS 中创建辅域名服务器

发布于 2024-12-22 13:56:42 字数 4210 浏览 9 评论 0

上篇教程 里,我们为一个测试域 exmample.tst 创建了一个主域名服务器(ns1)。在本篇中,我们会在 CentOS 中使用 bind 包为相同的域创建一个辅域名服务器(ns2)。

当创建一个辅 DNS 服务器的时候,下面的因素需要仔细考虑。

  • 在辅域名服务器中,你不需要手动创建正向和反向区域文件。这些区域文件会定期从主域名服务器上面同步。
  • 当主域名服务器上的任何区域文件被修改的时候,'serial'参数也应当被更新。只有当主服务器上面区域文件的 serial 被修改之后,辅 DNS 服务器才会进行同步。

我们假设辅 DNS 服务器的 IP 地址是 172.16.1.4。让我们来进行安装。

设置主机名

就像主域名服务器一样,辅域名服务器的主机名也应当是一个完全限定域名(FQDN)。

# vim /etc/sysconfig/network

HOSTNAME=ns2.example.tst

注意,在该文件中设置的主机名在服务器启动的时候会被使用。因此,如果你在系统启动之后修改该文件,修改结果不会立刻生效。下面的命令可以用来在系统运行的时候修改并及时生效。

# hostname ns2.example.tst

设置之后,可以用下面的命令来查看主机名称。

# hostname

ns2.example.tst

在进行下面的步骤之前,确保所有三台服务器的主机名称已经被正确设置。

安装软件包

就像 主服务器 一样,配置一台辅域名服务器可以使用 chroot 或者不用。必须的软件包可以使用 yum 轻松安装。

不使用 chroot:

# yum install bind

使用 chroot:

# yum install bind-chroot

为区域文件的传输准备配置文件

在 CentOS 中使用 bind 创建域名服务器后,默认设置允许所有的区域文件被任意服务器同步。安全起见,我们需要配置主域名服务器,只允许它允许辅域名服务器进行同步。

1. 主域名服务器

不使用 chroot:

# vim /etc/named.conf

使用 chroot:

# vim /var/named/chroot/etc/named.conf

zone "example.tst" IN {
    type master;
    file "example-fz"; ## 文件 example-fz 在主域名服务器上 ##
    allow-update { none; };
    allow-transfer {172.16.1.4; }; ## 允许辅域名服务器进行传输 ##
};

zone "1.16.172.in-addr.arpa" IN {
    type master;
    file "rz-172-16-1"; ##文件 rz-172-16-1 在主域名服务器上##
    allow-update { none; };
    allow-transfer {172.16.1.4; }; ## 允许辅域名服务器进行传输 ##
};

2. 辅域名服务器

软件安装后提供的默认配置文件就可以用来配置辅域名服务器。但是,我们使用会使用另外一个实例配置文件来进行配置,因为这样便于调整。

不使用 chroot:

# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /etc/named.conf

使用 chroot:

# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

当执行完上面的命令进行文件拷贝后,添加下面的内容到刚才那个拷贝后的文件中。

options {
        directory "/var/named";
        forwarders {8.8.8.8; };

};

zone "example.tst" IN {
        type slave;  ## 该主机为辅域名服务器 ##
        file "example-fz"; ## 这个文件会被自动创建 ##
        //allow-update { none; };
        allow-transfer {172.16.1.3; };  ## 定义必要时进行从其传输的主域名服务器 ##
        masters {172.16.1.3; }; ## 定义主域名服务器 ##
};

zone "1.16.172.in-addr.arpa" IN {
        type slave; ## 该主机被定义为辅域名服务器 ##
        file "rz-172-16-1"; ## 这个文件会被自动创建 ##
//      allow-update { none; };
        allow-transfer {172.16.1.3; };  ## 定义主域名服务器 ##
        masters {172.16.1.3; };
};

结束工作

为了确保没有权限相关的问题,我们需要做如下调整。

不使用 chroot:

chmod 770 /var/named/

使用 chroot,你需在 named 服务启动后按照下面的命令修改权限。

# chmod 770 /var/named/chroot/var/named

现在万事俱备,我们可以重启 named 服务。或者,确保 named 服务已经被加到了开始列表中。

# service named restart
# chkconfig named on

如果不出意外,辅域名服务器应该会向主域名服务器请求一个区域的传输,并且产生自己的/var/named 目录。日志文件/var/log/messages 会包含一些 named 服务的有用信息,包括区域文件传输过程中的信息。

测试一个辅域名服务器

我们可以使用 dig 或者 nslookup 进行 DNS 测试操作。在本篇教程中我们会使用 nslookup 来进行演示。必要的软件包可以通过 yum 进行安装。

# yum install bind-utils
# nslookup

> server 172.16.1.4
Default server:     172.16.1.4
Address:            172.16.1.4#53

> example.tst
Server:             172.16.1.4
Address:    172.16.1.4#53

Name:       example.tst
Address:    172.16.1.3

> set type=mx
> example.tst
Server:             172.16.1.4
Address:            172.16.1.4#53

example.tst         mail exchanger = 10 mail.example.tst.

> exit

排错提示

  1. 我们无需在辅域名服务器上创建任何区域文件。所有的区域文件都会与主域名服务器进行同步。
  2. 辅域名服务器上的 named 服务会定期与主服务器进行同步。如果你想来一次及时的同步,可以使用命令"rncd retransfer "。如下:
# rndc retransfer example.tst
  1. 只有当主服务器上区域文件的 serial 数字被修改变大的时候,辅域名服务器才会进行更新。
  2. 确保用户 named 可以对文件夹/var/named 或者/var/named/chroot/var/named(使用 chroot 的情况下)进行写操作。
  3. /var/log/messages 会包含有用的信息。
  4. 我已经将 SELinux 关闭了。
  5. 确保防火墙对 UDP53 端口开放。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

三人与歌

暂无简介

文章
评论
28 人气
更多

推荐作者

佚名

文章 0 评论 0

今天

文章 0 评论 0

゛时过境迁

文章 0 评论 0

达拉崩吧

文章 0 评论 0

呆萌少年

文章 0 评论 0

孤者何惧

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文