如何在CentOS8上使用BIND搭建私有DNS服务器?

BIND也被称为 "Berkeley Internet Name Domain "是现在最流行的域名系统(DNS)之一。它是一个开源的,并在Linux操作系统上提供DNS服务。一般来说,它可以帮助你把一个完全合格的域名解析成IP地址或IP地址到域名。它可以作为一个权威的名称服务器,并提供了一些功能,如负载平衡,动态更新,分割DNS等。
在本教程中,我们将向您展示如何在CentOS 8上使用BIND设置私有DNS服务器。
先决条件
一个CentOS 8 系统的云服务器。
访问root用户账户(或访问具有根权限的管理员账户)。
在本教程中,我们将使用以下设置。
主机名 : ns1.a5idc.local
IP地址:192.168.1.100
本地网络 : 192.168.1.0/24
第1步:登录服务器并更新服务器操作系统包。
首先,以root用户身份通过SSH登录CentOS 8服务器。
ssh root@IP_Address -p Port_number...
你需要用你的服务器的IP地址和SSH端口号来代替'IP_Address'和'Port_number'。此外,如果需要的话,将'root'替换为管理员账户的用户名。
在开始之前,你必须确保服务器上安装的所有CentOS软件包都是最新的。你可以通过运行以下命令来完成。
dnf update -y
第2步:安装BIND DNS服务器
默认情况下,绑定包在CentOS 8标准存储库中可用。您可以通过运行以下命令来安装它:
dnf install bind bind-utils -y
一旦安装了BIND,请启动BIND服务并启用它以在系统重新引导时启动:
systemctl start named
systemctl enable named
第3步:配置BIND DNS服务器
默认情况下,BIND服务器仅在localhost上侦听。因此,您将需要对其进行配置以在所有网络接口上进行侦听。您可以通过编辑文件/etc/named.conf来配置它:
nano /etc/named.conf
注释掉以下几行:
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
更改以下行以允许查询您的本地网络:
allow-query { localhost;192.168.1.0/24; };
完成后保存并关闭文件。
第4步:创建正向和反向DNS区域
前向区用于解析主机名到IP地址,而反向区用于解析IP地址到主机名。一般来说,所有正常的DNS查询都是前向查找查询。您可以在/etc/named.conf文件中定义正向查找区和反向查找区。
编辑/etc/named.conf文件。
nano /etc/named.conf
在文件末尾添加以下几行内容
//Forward Zone
zone "a5idc.local" IN {
type master;
file "a5idc.local.db";
allow-update { none; };
};
//Reverse Zone
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.db";
allow-update { none; };
};
保存并在完成后关闭文件。
第5步:创建正向和反向区域文件
接下来,您需要创建上一步中定义的正向和反向区文件。默认情况下,所有的zone查找文件都位于/var/named目录内。
首先,使用以下命令创建一个正向区文件。
nano /var/named/rosehosting.local.db
添加以下几行内容。
$TTL 86400
@ IN SOA ns1.a5idc.local. root.a5idc.local. (
3 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
;Name Server Information
@ IN NS ns1.a5idc.local.
;IP address of Name Server
ns1 IN A 192.168.1.100
;A - Record HostName To Ip Address
www IN A 192.168.1.101
;CNAME record
ftp IN CNAME www.a5idc.local.
保存并关闭文件,然后用以下命令创建一个反向区文件。
nano /var/named/192.168.1.db。
添加以下几行内容。
$TTL 86400
@ IN SOA ns1.a5idc.local. root.a5idc.local. (
3 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
;Name Server Information
@ IN NS ns1.a5idc.local.
;Reverse lookup for Name Server
100 IN PTR ns1.a5idc.local.
;PTR Record IP address to HostName
101 IN PTR www.a5idc.local.
保存并在完成后关闭该文件。
第6步:验证DNS配置
配置完所有的区域文件后,需要验证配置文件。
首先,用以下命令验证主配置文件。
named-checkconf /etc/named.conf
如果一切正常,就不会看到任何错误。
接下来,用下面的命令验证前向区文件。
named-checkzone rosehosting.local /var/named/rosehosting.local.db
你应该得到以下结果:
zone rosehosting.local/IN: loaded serial 3
OK
接下来,用下面的命令验证逆向区文件。
named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.db
你应得到以下输出。
zone 1.168.192.in-addr.arpa/IN: loaded serial 3
OK
最后,重启BIND服务以应用这些更改。
systemctl restart named
第7步:配置防火墙
接下来,您需要为53端口创建一个防火墙规则,以允许来自客户端机器的DNS查询。你可以用下面的命令来创建它。
firewall-cmd --permanent --add-port=53/udp
接下来,重新加载文件墙服务以应用这些更改。
firewall-cmd --reload
第8步:验证DNS服务器
至此,BIND DNS服务器已经安装配置完毕。是时候检查一下它是否正常工作了。
首先,编辑你的/etc/resolv.conf文件,添加你的DNS服务器IP。
nano /etc/resolv.conf
在文件的开头添加以下一行。
nameserver 192.168.1.100
保存并关闭文件,然后使用dig命令验证前向查找。
dig www.a5idc.local
或
dig ns1.a5idc.local
至此,你就已经成功在CentOS 8上用BIND搭建了一个私有DNS服务器。