Bind是什么
Rocky Linux BIND (Berkeley Internet Name Domain) 是一种用于实现域名系统(DNS)的开源软件。它允许计算机网络上的计算机将 IP 地址映射到易记的域名上,从而方便用户访问互联网资源。在Rocky Linux上,你可以使用BIND来配置和管理DNS服务器。
以下是在Rocky Linux上使用BIND的一些常见功能描述:
- 域名解析: BIND 允许你将域名映射到 IP 地址,使得用户可以使用易记的域名来访问网络上的计算机。
- 反向解析: BIND 能够执行反向解析,将 IP 地址转换为域名。这在某些网络配置中非常有用。
- DNS记录管理: 你可以配置各种类型的DNS记录,包括A记录(将域名映射到IPv4地址)、AAAA记录(将域名映射到IPv6地址)、CNAME记录(将域名映射到另一个域名)、MX记录(指定邮件服务器)等。
- 区域文件配置: BIND 使用区域文件来存储DNS记录。你可以编辑这些文件来配置域名与IP地址的映射关系,以及其他DNS记录。
- DNS安全性: BIND 支持DNSSEC(DNS Security Extensions),这是一种用于增强DNS安全性的技术。它可以防止DNS缓存投毒攻击等安全威胁。
- DNS负载均衡: BIND 支持负载均衡配置,可以将请求分发到多个服务器,从而提高系统的性能和可用性。
- 日志记录和监控: BIND 提供了丰富的日志记录功能,可以帮助你监控DNS服务器的性能和活动。你可以配置日志记录级别,以便跟踪特定类型的事件。
- 动态更新: BIND 支持动态DNS(DDNS),允许客户端动态地更新DNS记录。这在移动设备和移动IP地址的情况下非常有用。
环境准备
设置Rocky Linux服务器上的FQDN
sudo hostnamectl set-hostname ns.pangshare.com
Bind安装
在Rocky Linux系统上安装BIND及其相关工具通常是通过包管理器(如dnf)来完成的。以下是在Rocky Linux上安装BIND及其相关工具的步骤:
更新系统:
在安装任何软件包之前,建议先更新系统的包列表。运行以下命令来更新系统:
sudo dnf update
安装BIND:
使用以下命令来安装BIND软件包:
sudo dnf install bind bind-utils
如果你希望BIND在系统启动时自动启动,可以运行以下命令:
sudo systemctl enable named
这样,BIND服务将会在系统启动时自动启动。
BIND配置文件的作用和用途
通过命令rpm -qc bind
查看BIND的配置文件列表,这些文件的作用和用途如下:
/etc/logrotate.d/named:
这个文件包含了用于定期轮换 BIND 日志文件的配置。Logrotate 是一个用于管理系统日志文件的工具,它可以确保日志文件不会无限增长,从而节省磁盘空间。
/etc/named.conf:
这是 BIND DNS 服务器的主要配置文件。它包含了 BIND 服务器的全局配置信息,以及关于域名(zones)和 DNS 记录的详细配置。你可以在这个文件中指定 BIND 的行为、设置各种类型的 DNS 记录和配置区域(zones)。
/etc/named.rfc1912.zones:
这个文件通常包含了一些标准的 RFC 1912 定义的 DNS 区域(zones)配置。这些配置定义了一些特定的 DNS 区域,例如反向解析区域。
/etc/named.root.key:
这个文件包含了 DNS 根域(root zone)的公钥。这个文件是 DNSSEC(DNS Security Extensions)的一部分,用于增加 DNS 的安全性。
/etc/rndc.conf 和 /etc/rndc.key:
这些文件包含了 RNDC(Remote Name Daemon Control)工具的配置信息和密钥。RNDC 是一个用于远程管理 BIND 服务器的工具,它可以通过加密连接与 BIND 服务器通信,执行各种操作。
/etc/sysconfig/named:
这个文件包含了 BIND 服务器的启动参数和环境变量的配置。它允许你在启动 BIND 时设置一些特定的选项。
/var/named/named.ca:
这个文件包含了 DNS 根域(root zone)的公钥和证书。它也是 DNSSEC 的一部分,用于验证 DNS 记录的真实性。
/var/named/named.empty、/var/named/named.localhost 和 /var/named/named.loopback:
这些文件包含了一些特殊的 DNS 区域,分别用于空(empty)域、localhost 域和 loopback 域的配置。这些区域通常在本地 DNS 服务器上使用,用于特定的网络配置和解析需求。
BIND配置文件修改
step1:设置BIND仅在IPv4上运行
/etc/sysconfig/named
文件来设置BIND服务的启动参数。如果你想要指定BIND或者named
命令仅在IPv4上运行,你可以在/etc/sysconfig/named
文件中添加以下行:
OPTIONS="-4"
这行配置会让BIND服务仅在IPv4网络上运行。在这个配置中,-4
选项指定了BIND只使用IPv4地址。
保存文件后,重启BIND服务,使得新的配置生效:
sudo systemctl restart named
step2:在防火墙中添加BIND端口
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
step3:编辑named.conf
配置文件
vim /etc/named.conf
将named.conf
中的listen-on port 53和allow-query的地址均修改为any。
在BIND的配置文件named.conf
中,listen-on port 53
和 allow-query
是两个关键配置项,用于指定BIND服务器监听的网络接口和允许查询的客户端地址。
listen-on port 53
:- 默认情况下,BIND服务器会监听系统上的所有网络接口上的53端口,这是DNS服务的默认端口。
- 将
listen-on port 53
设置为any
会使BIND服务器监听系统上所有可用的网络接口,而不仅限于特定的IP地址。这允许BIND响应来自任何网络接口的DNS查询请求。
allow-query
:- 默认情况下,
allow-query
配置项限制了可以向BIND服务器发出DNS查询请求的客户端IP地址范围。 - 将
allow-query
设置为any
表示允许所有IP地址的客户端向BIND服务器发出DNS查询请求,而不进行任何限制。
- 默认情况下,
设置 listen-on port 53
和 allow-query
为 any
的主要原因可能是为了允许任何计算机都能够查询该DNS服务器,这在某些特定网络环境下可能是需要的。例如,在内部企业网络中,可能希望所有内部计算机都能够向内部DNS服务器发出查询请求,以便解析内部域名。但是,在公共网络中,通常会限制谁能够向DNS服务器发出查询请求,以提高安全性,防止未经授权的查询。
编写区域配置文件/etc/named.rfc1912.zones
假设我们现在需要对域名pangshare.com
做IP地址的正向解析和反向解析动作。那么我们需要做如下修改。
编写pangshare.com
ZONES信息
zone "pangshare.com" IN {
type master;
file "pangshare.com.zone";
allow-update {none;};
};
zone "131.72.168.192.in-addr.arpa" IN {
type master;
file "192.168.72.131.arpa.zones";
allow-update {none;};
};
配置正向解析
从/var/named
目录复制一份正向解析的模板文件(named.localhost
),使用-a
参数以保留原始文件的所有者、所属组、权限属性等信息。这样做是为了确保BIND服务程序能够顺利读取文件内容。接着,在新文件中填写域名和IP地址的对应数据,并保存配置。
cd /var/named
cp -a named.localhost pangshare.com.zone
编辑正向解析pangshare.com.zone
$TTL 1d
@ IN SOA ns1.pangshare.com. admin.pangshare.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.pangshare.com.
ns1 IN A 192.168.72.131
www IN A 192.168.72.131
mail IN A 192.168.72.131
在这个配置文件中我们增加了ns1
、www
、mail
正向解析记录并将域名映射到了192.168.72.131
的IP上。
验证正向解析
重新加载named.service服务使配置生效
systemctl reload named.service
使用dig
来验证正向解析是否生效
dig www.pangshare.com
www.pangshare.intra. 860 IN A 192.168.72.131
配置反向解析
从/var/named
目录复制一份模板文件(named.localhost
),使用-a
参数以保留原始文件的所有者、所属组、权限属性等信息。这样做是为了确保BIND服务程序能够顺利读取文件内容。接着,在新文件中填写域名和IP地址的对应数据,并保存配置。
cd /var/named
cp -a named.localhost 192.168.72.131.arpa.zones
编辑反向解析192.168.72.131.arpa.zones
$TTL 1D
@ IN SOA ns1.pangshare.com. admin.pangshare.com. (
2023103102 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1.pangshare.com.
IN PTR mail.pangshare.com.
验证反向解析
重新加载named.service服务使配置生效
systemctl reload named.service
使用dig
来验证正向解析是否生
dig -x 192.168.72.131
131.72.168.192.in-addr.arpa. 86400 IN PTR mail.pangshare.intra.
至此,我们完成了基于Rocky Linux的BIND服务部署以及正向、反向解析的设置工作。
此文章为原创文章,作者:胖哥叨逼叨,如若转载,请与我联系并注明出处:https://www.pangshare.com/2841.htm