在RHEL 8上设置绑定为专用DNS服务器

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

域名系统DNS )是用于将人类可读域名(或完全限定域名FQDN ))转换为机器可读IP地址以在诸如因特网之类的网络中定位计算机的方法。

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

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

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

要求:

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

我的测试环境:

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

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

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

# dnf install bind bind-utils
在RHEL 8上安装绑定

在RHEL 8上安装绑定

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

# systemctl start named
# systemctl enable named
# systemctl status named
在RHEL 8上启动绑定服务器

在RHEL 8上启动绑定服务器

第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 "howtoing.lan" IN { 
     type master; 
     file "howtoing.lan.db"; 
     allow-update { none; }; 
    allow-query {any; }
}; 
//backward zone 
zone "56.168.192.in-addr.arpa" IN { 
     type master; 
     file "howtoing.lan.rev"; 
     allow-update { none; }; 
    allow-query { any; }
};

让我们简要解释上述区域配置中的选项:

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

第4步:创建转发DNS区域文件

7.首先,在/ var / named目录下创建Forward区域文件。

# vi /var/named/howtoing.lan.db

在其中添加以下配置。

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

;Name Server Information
@ IN NS dns-primary.howtoing.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
转发DNS区域文件

转发DNS区域文件

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

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

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

8.类似地,在/ var / named目录下创建一个Reverse区域文件。

# vi /var/named/howtoing.lan.rev

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

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

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

;PTR Record IP address to HostName
5 IN PTR www.howtoing.lan.
10 IN PTR mail.howtoing.lan.
20 IN PTR docs.howtoing.lan.
反向DNS区域文件

反向DNS区域文件

9.如下所示,在区域文件上设置正确的所有权。

# chown :named /var/named/howtoing.lan.db
# chown :named /var/named/howtoing.lan.rev

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

# named-checkconf
# named-checkzone howtoing.lan /var/named/howtoing.lan.db
# named-checkzone 192.168.56.100 /var/named/howtoing.lan.rev
检查DNS配置是否有错误

检查DNS配置是否有错误

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 

在其中添加以下条目,告诉解析程序使用指定的Nameservers。

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服务器查询IP。

# nslookup 192.168.56.5
# nslookup www.howtoing.lan
# nslookup 192.168.56.10
# nslookup mail.howtoing.lan
# nslookup 192.168.56.20
# nslookup docs.howtoing.lan
# nslookup 192.168.56.100
# nslookup dns-primary.howtoing.lan
检查DNS服务器查询

检查DNS服务器查询

摘要

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