Rocky Linux 9 配置 DNS 主辅服务器
- Linux
- 10天前
- 47热度
- 0评论
1. 环境准备
主服务器(Master):IP 地址为 192.168.1.10,域名为 example.com。
从服务器(Slave):IP 地址为 192.168.1.20,域名为 example.com。
确保两台服务器都已安装 Rocky Linux 9,并且网络互通。
2. 在主服务器上配置 BIND
2.1 安装 BIND
在主服务器上安装 BIND:
sudo dnf install bind bind-utils -y
2.2 配置主服务器
编辑 BIND 的主配置文件 /etc/named.conf:
sudo vi /etc/named.conf
修改 options 部分,确保允许从服务器传输区域文件:
options {
listen-on port 53 { 127.0.0.1; 192.168.1.10; }; # 监听地址
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; 192.168.1.0/24; }; # 允许查询的客户端
allow-transfer { 192.168.1.20; }; # 允许从服务器传输区域文件
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
在文件末尾添加区域配置:
zone "example.com" IN {
type master;
file "example.com.zone";
allow-transfer { 192.168.1.20; }; # 允许从服务器传输区域文件
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
allow-transfer { 192.168.1.20; }; # 允许从服务器传输区域文件
};
2.3 创建区域文件
在 /var/named/ 目录下创建区域文件。
正向区域文件 (example.com.zone):
sudo vi /var/named/example.com.zone
内容如下:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023101001 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
ns1 IN A 192.168.1.10
ns2 IN A 192.168.1.20
www IN A 192.168.1.100
mail IN A 192.168.1.200
反向区域文件 (192.168.1.zone):
sudo vi /var/named/192.168.1.zone
内容如下:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023101001 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
10 IN PTR ns1.example.com.
20 IN PTR ns2.example.com.
100 IN PTR www.example.com.
200 IN PTR mail.example.com.
2.4 设置文件权限
确保 BIND 可以读取这些文件:
sudo chown root:named /var/named/example.com.zone
sudo chown root:named /var/named/192.168.1.zone
sudo chmod 640 /var/named/example.com.zone
sudo chmod 640 /var/named/192.168.1.zone
3. 在从服务器上配置 BIND
3.1 安装 BIND
在从服务器上安装 BIND:
sudo dnf install bind bind-utils -y
3.2 配置从服务器
编辑 BIND 的主配置文件 /etc/named.conf:
sudo vi /etc/named.conf
修改 options 部分:
options {
listen-on port 53 { 127.0.0.1; 192.168.1.20; }; # 监听地址
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; 192.168.1.0/24; }; # 允许查询的客户端
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
在文件末尾添加区域配置:
zone "example.com" IN {
type slave;
file "slaves/example.com.zone";
masters { 192.168.1.10; }; # 主服务器 IP
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.1.zone";
masters { 192.168.1.10; }; # 主服务器 IP
};
3.3 设置文件权限
确保 BIND 可以写入 /var/named/slaves/ 目录:
sudo chown named:named /var/named/slaves
3.4 启动并启用 BIND 服务
启动 BIND 服务并设置为开机自启:
sudo systemctl start named
sudo systemctl enable named
4. 测试主从同步
在从服务器上检查区域文件是否已同步:
ls /var/named/slaves/
如果看到 example.com.zone 和 192.168.1.zone,说明同步成功。
5. 配置防火墙
在主从服务器上允许 DNS 服务通过防火墙:
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload
6. 测试 DNS 解析
使用 dig 或 nslookup 测试 DNS 解析:
dig @192.168.1.10 www.example.com
dig @192.168.1.20 www.example.com
如果主从服务器都能返回正确结果,说明配置成功。
通过以上步骤,你已经在 Rocky Linux 9 上成功配置了 DNS 主从服务器。主服务器负责管理区域文件,从服务器自动同步区域文件并提供冗余服务。