网站搜索

在 RHEL 8 上将 Bind 设置为私有 DNS 服务器


域名系统 (DNS) 是一种用于翻译人类可读域名(或完全限定域名)(FQDN )) 到机器可读的 IP 地址,以定位网络(例如互联网)中的计算机。

在计算机和网络系统中,这是必要的,因为尽管FQDN很容易让人记住和使用,但计算机(客户端)是基于IP地址访问其他计算机(服务器)上的资源或服务。

在这方面,DNS 服务器(也称为名称服务器)维护 FQDN 目录并将其转换为 IP 地址;当提供主机名/FQDN时,它还可以返回IP地址。 DNS 服务器有多种类型,包括权威名称服务器、缓存名称服务器等。

在本文中,我们将引导您完成使用 BIND 开源软件在 RHEL 8 上安装和配置私有/内部权威 DNS 服务器的步骤。

要求:

  1. RHEL 8 最小化安装
  2. 启用 RedHat 订阅的 RHEL 8
  3. 具有静态 IP 地址的 RHEL 8

我的测试环境:

Domain: tecmint.lan
DNS Server IP and hostname: 192.168.56.100, dns-primary.tecmint.lan
DNS Client IP and hostname: 192.168.56.104, tecmint.tecmint.lan

第 1 步:在 RHEL 8 上安装绑定 DNS

1. 要在服务器上安装 bind 及其实用程序,请运行以下 cdnf 命令。

dnf install bind bind-utils

2. 接下来,暂时启动 DNS 服务,然后使其在系统启动时自动启动,并使用 systemctl 命令检查它是否已启动并正在运行。

systemctl start named
systemctl enable named
systemctl status named

步骤 2:在 RHEL 8 上配置 BIND DNS

3.要配置绑定DNS服务器,首先需要使用以下cp备份原始配置文件/etc/named.conf命令。

cp /etc/named.conf /etc/named.conf.orig

4. 现在打开 /etc/named.conf 配置文件,使用您最喜欢的命令行文本编辑器进行编辑,如下所示。

vi /etc/named.conf 

options 配置部分下,注释掉以下行。

options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";

5. 接下来,查找 allow-query 参数并将其值设置为您的网络,这意味着只有本地网络上的主机可以查询 DNS 服务器。

allow-query  {localhost; 192.168.56.0/24}

步骤 3:创建正向和反向 DNS 区域

转发区域是存储主机名(或FQDN)与IP地址关系的位置;它使用主机名返回一个IP地址。请注意,正常的 DNS 查询是正向查找查询。另一方面,反向区域根据主机的 IP 地址返回主机的 FQDN

6. 要定义正向反向区域,请在/etc/named.conf 的末尾添加以下行 文件。

//forward zone 
zone "tecmint.lan" IN { 
     type master; 
     file "tecmint.lan.db"; 
     allow-update { none; }; 
    allow-query {any; }
}; 
//backward zone 
zone "56.168.192.in-addr.arpa" IN { 
     type master; 
     file "tecmint.lan.rev"; 
     allow-update { none; }; 
    allow-query { any; }
};

我们简单解释一下上述区域配置中的选项:

  • 类型:定义该服务器在区域中的角色。值“master”表示它是维护区域数据主副本的权威服务器。
  • file:指定区域的数据库文件。
  • allow-update:指定允许为主区域提交动态 DNS 更新的主机。在这种情况下没有。

步骤 4:创建正向 DNS 区域文件

7. 首先,在/var/named目录下创建一个Forward zone文件。

vi /var/named/tecmint.lan.db

在其中添加以下配置。

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)

;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;IP for Name Server
dns-primary IN A 192.168.56.100

;A Record for IP address to Hostname 
www IN A 192.168.56.5
mail IN A 192.168.56.10
docs  IN A 192.168.56.20

我们简单解释一下上面的区域定义和参数。

  • TTL:指定RR的生存时间,$TTL指令为每个提供默认的TTL RR 没有特定的 TTL 设置。
  • @:它是主配置文件中定义的域名(例如howtoing.lan)的别名。
  • IN:表示互联网。
  • SOA:指定授权起始:权威名称服务器是谁(dns-primary.howtoing.lan)、管理员的联系信息( admin.howtoing.lan@符号替换为句点)以及其他相关信息。
  • NS:表示名称服务器。
  • 串行:DNS 服务器使用此值来验证特定区域文件的内容是否是最新的。
  • 刷新:指定从属 DNS 服务器应从主 DNS 服务器执行区域传输的频率。
  • 重试:指定从属设备应重试失败区域传输的频率。
  • 过期:确定当主服务器无法访问时,从服务器在回答客户端查询之前应等待多长时间。
  • 最小值:设置区域的最小 TTL。
  • A:主机地址。

第 5 步:创建反向 DNS 区域文件

8. 同样,在/var/named目录下创建一个Reverse zone文件。

vi /var/named/tecmint.lan.rev

然后在其中添加以下行。这里,PTR 与用于将 IP 地址映射到主机名的 A 记录相反。

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;Reverse lookup for Name Server
100 IN PTR dns-primary.tecmint.lan.

;PTR Record IP address to HostName
5 IN PTR www.tecmint.lan.
10 IN PTR mail.tecmint.lan.
20 IN PTR docs.tecmint.lan.

9. 按如下方式设置区域文件的正确所有权权限。

chown :named /var/named/tecmint.lan.db
chown :named /var/named/tecmint.lan.rev

10. 最后,在进行上述更改后,使用 named-checkconf 实用程序检查 DNS 配置和区域文件是否具有正确的语法(没有 out 意味着没有错误):

named-checkconf
named-checkzone tecmint.lan /var/named/tecmint.lan.db
named-checkzone 192.168.56.100 /var/named/tecmint.lan.rev

11.执行完所有必要的配置后,您需要重新启动 DNS 服务以使最近的更改生效。

systemctl restart named

12. 接下来,在任何客户端可以访问服务器上的 DNS 服务配置之前,您需要在系统防火墙配置中添加 DNS 服务并使用firewall-cmd实用程序重新加载防火墙设置,如下所示:

firewall-cmd --permanent --zone=public --add-service=dns 
firewall-cmd --reload

第 6 步:从客户端测试 DNS 服务

13. 在本节中,我们将展示如何从客户端测试 DNS 服务。登录客户端计算机,将其配置为使用上述 DNS 服务器。在 Linux 系统上,使用您喜欢的文本编辑器打开文件 /etc/resolve.conf

vi /etc/resolve.conf 

在其中添加以下条目,告诉解析器使用指定的名称服务器。

nameserver  192.168.56.100

保存文件并关闭它。请注意,您还必须在网络接口配置文件中指定 DNS 服务器。

14. 将 DNS 服务器 IP 192.168.56.100 添加为客户端计算机网络接口配置文件/etc/sysconfig/network-scripts/ifcfg-enp0s3< 如下图所示。

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=aba298ca-fa65-48cd-add9-6c3f1f28cee2
DEVICE=enp0s3
ONBOOT=no
DNS=192.168.56.100

15. 然后使用 nslookup 实用程序使用主机名查询 IP,反之亦然,wwwmaildocs< 网络中的服务器,如图所示。

nslookup 192.168.56.5
nslookup www.tecmint.lan
nslookup 192.168.56.10
nslookup mail.tecmint.lan
nslookup 192.168.56.20
nslookup docs.tecmint.lan
nslookup 192.168.56.100
nslookup dns-primary.tecmint.lan

概括

在本文中,我们展示了如何使用 BIND 软件在 RHEL 8 上安装和配置私有、权威的 DNS 服务器。我们希望您一切顺利,否则,请通过下面的反馈表向我们发送您的疑问或任何其他意见。