如何在 Linux 中安装和配置 DNS 服务器
域名服务 (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 并替换以下内容。
- 在具有 SOA 的行中:localhost。– 这是负责该域的服务器的 FQDN。我在 10.42.0.83 中安装了 bind9,其主机名为“ns”。所以替换“本地主机”。与“ns.hgst.com.cn.”。确保它以点 (.) 结尾。
- 在具有 SOA 的行中:root.localhost。– 这是负责此服务器的人员的电子邮件地址。使用点(。)而不是@。我已经替换为 lak.localhost。
- 在具有 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。
您还可以使用nslookup和dig来测试 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
- 点赞
- 收藏
- 关注作者
评论(0)