如何在 Linux 中安装和配置 DNS 服务器

举报
Tiamo_T 发表于 2022/08/19 17:43:07 2022/08/19
【摘要】 域名服务 (DNS) 是一种互联网服务,可将 IP 地址映射到完全限定域名 (FQDN),反之亦然。 BIND 代表 Berkley Internet Naming Daemon。 BIND 是用于在 Linux 上维护名称服务器的最常用程序。

域名服务 (DNS) 是一种互联网服务,可将 IP 地址映射到完全限定域名 (FQDN),反之亦然。

BIND 代表 Berkley Internet Naming Daemon。

BIND 是用于在 Linux 上维护名称服务器的最常用程序。

在本教程中,我们将解释如何安装和配置 DNS 服务器。
如果您是 DNS 新手,您应该首先了解DNS 的基础知识及其工作原理。

一、网络信息

在本教程中,我们将为下图所示的网络设置本地 DNS 服务器。

我们将使用“hgst.com.cn”域作为此 DNS 安装的示例。“mail”、“web”、“ns”是驻留在此域中的主机。

可以将单个系统配置为充当缓存名称服务器、主/主和辅助/从属。我们将此 DNS 配置为 Primay/Master 以及缓存 DNS 服务器。

我们将在“10.42.0.83”上安装 DNS 服务器。

2.安装绑定

使用适用于您的 Linux 发行版的包管理实用程序安装 bind9 包。

在 Debian/Ubuntu 版本上,执行以下操作:

$ sudo apt-get install bind9

在 Redhat/CentOS/Fedora 版本上,执行以下操作:

# yum install bind9

所有的 DNS 配置都存储在 /etc/bind 目录下。主要配置是 /etc/bind/named.conf ,它将包括其他需要的文件。名为 /etc/bind/db.root 的文件描述了世界上的根名称服务器。

3.配置缓存NameServer

DNS 缓存服务器的工作是查询其他 DNS 服务器并缓存响应。下次给出相同的查询时,它将提供来自缓存的响应。缓存会定期更新。

请注意,即使您可以将绑定配置为作为主服务器和缓存服务器,出于安全原因,也不建议这样做。建议使用单独的缓存服务器。

配置缓存名称服务器所需要做的就是将您的 ISP(Internet 服务提供商)的 DNS 服务器或任何 OpenDNS 服务器添加到文件 /etc/bind/named.conf.options 中。例如,我们将使用 google 的公共 DNS 服务器 8.8.8.8 和 8.8.4.4。

取消注释并编辑 /etc/bind/named.conf.options 文件中如下所示的以​​下行。

forwarders {
    8.8.8.8;
    8.8.4.4;
};

完成上述更改后,重新启动 DNS 服务器。

$ sudo service bind9 restart

4.测试缓存NameServer

您可以使用 dig 命令来测试 DNS 服务。DIG 命令示例解释了有关如何执行 DNS 查找的更多信息。

$ dig ubuntu.com

;; Query time: 1323 msec

现在,当您第二次执行挖掘时,查询时间应该有所改善。正如你在下面看到的,第二次只用了 3 毫秒,因为它从我们的缓存 DNS 服务器获取信息。

$ dig ubuntu.com

;; Query time: 3 msec

5. 配置 Primary/Master Nameserver

接下来,我们将 bind9 配置为域/区域“thegeekstuff.net”的主节点/主节点。

作为配置我们的 Primary/Master Nameserver 的第一步,我们应该将 Forward 和 Reverse 解析添加到 bind9。

要向 bind9 添加 DNS 正向和反向解析,请编辑 /etc/bind9/named.conf.local。

zone "hgst.com.cn" {
    type master;
    file "/etc/bind/db.hgst.com.cn";
};
zone "0.42.10.in-addr.arpa" {
        type master;
        notify no;
        file "/etc/bind/db.10";
};

现在文件 /etc/bind/db.thegeekstuff.net 将包含将主机名解析为该域/区域的 IP 地址的详细信息,文件 /etc/bind/db.10 将包含将 IP 地址解析为主机名的详细信息.

6. 为 Primary/Master NameServer 构建正向解析

现在我们将前向解析所需的详细信息添加到 /etc/bind/db.thegeekstuff.net。

首先,将 /etc/bind/db.local 复制到 /etc/bind/db.thegeekstuff.net

$ sudo cp /etc/bind/db.local /etc/bind/db.hgst.com.cn

接下来,编辑 /etc/bind/db.hgst.com.cn 并替换以下内容。

  1. 在具有 SOA 的行中:localhost。– 这是负责该域的服务器的 FQDN。我在 10.42.0.83 中安装了 bind9,其主机名为“ns”。所以替换“本地主机”。与“ns.hgst.com.cn.”。确保它以点 (.) 结尾。
  2. 在具有 SOA 的行中:root.localhost。– 这是负责此服务器的人员的电子邮件地址。使用点(。)而不是@。我已经替换为 lak.localhost。
  3. 在具有 NS: localhost 的行中。– 这是为域 (NS) 定义名称服务器。我们必须将其更改为名称服务器的完全限定域名。将其更改为“ns.hgst.com.cn”。确保你有一个“。” 在最后。

接下来,为域定义 A 记录和 MX 记录。记录是将主机名映射到 IP 地址的记录,MX 记录将告诉邮件服务器用于该域。

更改完成后,/etc/bind/db.hgst.com.cn文件将如下所示:

$TTL    604800
@   IN  SOA ns.hgst.com.cn. lak.localhost. (
             1024       ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.hgst.com.cn.
hgst.com.cn.    IN      MX      10      mail.hgst.com.cn.
ns  IN  A   10.42.0.83
web IN  A   10.42.0.80
mail IN A   10.42.0.70

6. 为 Primary/Master NameServer 建立反向解析

我们会将反向解析所需的详细信息添加到文件 /etc/bind/db.10 中。将文件 /etc/bind/db.127 复制到 /etc/bind/db.10

$ sudo cp /etc/bind/db.127 /etc/bind/db.10

接下来,编辑 /etc/bind/db.10 文件,基本上更改与 /etc/bind/db.hgst.com.cn 相同的选项

$TTL    604800
@   IN  SOA ns.hgst.com.cn. root.localhost. (
             20         ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.

接下来,为 /etc/bind/db.hgst.com.cn中的每个 A 记录添加一条 PTR 记录。

$TTL    604800
@   IN  SOA ns.hgst.com.cn. root.hgst.com.cn. (
             20     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@    IN  NS  ns.
83   IN  PTR ns.hgst.com.cn.
70   IN  PTR mail.hgst.com.cn.
80   IN  PTR web.hgst.com.cn.

每当您修改文件 db.hgst.com.cn 和 db.10 时,您也需要增加“序列号”。通常管理员使用 DDMMYYSS 作为序列号,当他们修改时,相应地更改序列号。

最后重启bind9服务:

$ sudo service bind9 restart

7.测试DNS服务器

现在我们已经为我们的域配置了 DNS 服务器。我们将通过从 web.hgst.com.cn ping mail.hgst.com.cn 来测试我们的 DNS 服务器。

如果 ping 成功,那么我们已经成功配置了 DNS。

您还可以使用nslookupdig来测试 DNS 服务器。

在 web.hgst.com.cn 服务器上,将以下内容添加到 /etc/resolv.conf

nameserver 10.42.0.83

现在 ping,mail.hgst.com.cn,它应该从我们刚刚配置的 DNS 服务器中正确解析地址。

$ ping mail.hgst.com.cn

PING mail.hgst.com.cn (10.42.0.70) 56(84) bytes of data.
64 bytes from mail.hgst.com.cn (10.42.0.70): icmp_req=1 ttl=64 time=0.482 ms
64 bytes from mail.hgst.com.cn (10.42.0.70): icmp_req=2 ttl=64 time=0.532 ms
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。