RedHat系统搭建DNS主从服务器

环境说明

复制代码
主 DNS 服务器:IP 150.138.83.69,负责解析域名并同步数据到从服务器
从 DNS 服务器:IP 192.168.40.100,从主服务器同步解析记录,提供冗余服务
客户端:IP 192.168.40.200,用于测试 DNS 解析

解析需求:
正向解析:www.zuiyou.com → 192.5.5.5,bbs.zuiyou.com → 192.6.6.6
反向解析:192.5.5.5 → www.zuiyou.com,192.6.6.6 → bbs.zuiyou.com

一、安装 DNS 服务(主从服务器均执行)

1.安装 bind 主程序和管理工具

bash 复制代码
yum install -y bind

2.启动 named 服务并设置开机自启

bash 复制代码
systemctl enable --now named

二、配置主 DNS 服务器(150.138.83.69)

1.修改主配置文件 /etc/named.conf

bash 复制代码
vim /etc/named.conf

修改以下内容:

复制代码
options {
         listen-on port 53 { any; };       # 监听所有IP的53端口
         allow-query     { any; };         # 允许所有主机查询

2. 添加区域配置(正向 + 反向)

编辑 /etc/named.rfc1912.zones

bash 复制代码
vim /etc/named.rfc1912.zones
复制代码
zone "zuiyou.com" IN {
    type master;
    file "zuiyou.com.zone";
    allow-transfer { 192.168.40.100; };
};
zone "5.5.192.in-addr.arpa" IN {
    type master;
    file "192.5.5.zone";
    allow-transfer { 192.168.40.100; };
};

zone "6.6.192.in-addr.arpa" IN {
    type master;
    file "192.6.6.zone";
    allow-transfer { 192.168.40.100; };
};

3.正向解析区域(域名 zuiyou.com

bash 复制代码
cp -a /var/named/named.localhost /var/named/zuiyou.com.zone
vim /var/named/zuiyou.com.zone
复制代码
$TTL 1D
@       IN SOA  zuiyou.com. admin.zuiyou.com. (
                                    0       
                                    1D
                                    1H
                                    1W
                                    3H )
    IN NS   ns.zuiyou.com.
ns      IN A    150.138.83.69
www     IN A    192.5.5.5
bbs     IN A    192.6.6.6

4.创建反向解析文件

bash 复制代码
cp -a /var/named/named.localhost /var/named/192.5.5.zone
cp -a /var/named/named.localhost /var/named/192.6.6.zone
bash 复制代码
vim /var/named/192.5.5.zone 
复制代码
$TTL 1D
@       IN      SOA     zuiyou.com. admin.zuiyou.com. (
                                    0       
                                    1D
                                    1H
                                    1W
                                    3H )
            NS      ns.zuiyou.com.
5       IN      PTR     www.zuiyou.com.
bash 复制代码
vim /var/named/192.6.6.zone
复制代码
$TTL 1D
@       IN      SOA     zuiyou.com. admin.zuiyou.com. (
                            0
                            1D
                            1H
                            1W
                            3H )
    IN      NS      ns.zuiyou.com.
6       IN      PTR     bbs.zuiyou.com.

5.检查配置文件语法并重启 named 服务

bash 复制代码
named-checkconf
named-checkzone "zuiyou.com" /var/named/zuiyou.com.zone
named-checkzone "5.5.192.in-addr.arpa" /var/named/192.5.5.zone
named-checkzone "6.6.192.in-addr.arpa" /var/named/192.6.6.zone
systemctl restart named

三、配置从 DNS 服务器(192.168.40.100)

1.修改主配置文件 /etc/named.conf

bash 复制代码
vim /etc/named.conf
复制代码
options {
         listen-on port 53 { any; };
         allow-query     { any; };

2.编辑 /etc/named.rfc1912.zones,添加与主服务器对应的区域,但类型为 slave:

复制代码
 zone "zuiyou.com" IN {
      type slave;                   # 从服务器
      masters { 150.138.83.69; };   # 主服务器IP
      file "slaves/zuiyou.com.zone";  # 同步的文件存放路径(自动创建)
 }; 
 zone "5.5.192.in-addr.arpa" IN {
       type slave;
       masters { 150.138.83.69; };
       file "slaves/192.5.5.zone";
 };

 zone "6.6.192.in-addr.arpa" IN {
       type slave;
       masters { 150.138.83.69; };
       file "slaves/192.6.6.zone";
};

3. 验证配置并重启服务

bash 复制代码
named-checkconf
systemctl restart named

通过检查是否生文件来判断

bash 复制代码
ls /var/named/slaves/

正确输出:

复制代码
192.5.5.zone  192.6.6.zone  zuiyou.com.zone

四、客户端配置及检查结果(设DNS指向服务器)

1.产看网络链接名称

bash 复制代码
nmcli connection show

2.设置 DNS

bash 复制代码
nmcli connection modify <连接名称> ipv4.dns "150.138.83.69 192.168.40.100"
nmcli connection up <连接名称>

验证正向解析

bash 复制代码
nslookup www.zuiyou.com
nslookup bbs.zuiyou.com

验证反向解析

bash 复制代码
nslookup 192.5.5.5
nslookup 192.6.6.6

输出示例:

复制代码
[root@client ~]# nslookup www.zuiyou.com
Server:		192.168.40.100
Address:	192.168.40.100#53

Name:	www.zuiyou.com
Address: 192.5.5.5

[root@client ~]# nslookup 192.5.5.5
5.5.5.192.in-addr.arpa	name = www.zuiyou.com.

五、遇到的问题

主服务器53端口未开放,只能通过NAT转发内部端口到其它外部端口

产生问题:

复制代码
1.从服务器无法获取主服务器DNS信息
解决方案:
在named.rfc1912.zones在主服务器IP后加上对应外部端口
masters { 150.138.83.69 port 33669; };

2.客户端DNS配置里主服务器地址无效
无有效解决方案,客户端系统的默认 DNS 配置都只支持 53 端口
修改端口后,普通客户端无法自动适配
必须手动指定端口,实用性较低。

从服务器为C类IP地址,访问公网亦经过NAT转发

产生问题:

复制代码
主服务器配置的allow-transfer192.168.40.100并非访问主服务器的实际IP
解决方案:
1.访问IP信息查询工具网站获取当前设备的公网IP地址
如:https://ip.cn/
后将公网IP地址替换192.168.40.100
2.若运营商可获取公网IP v6可用DDNS将自己的公网IP v6绑定域名
后将域名替换192.168.40.100
相关推荐
wuyk5553 小时前
【Socket 进阶之路】第 3 章 TCP 三次握手 & 四次挥手深度剖析|连接建立、断开、状态机、TIME_WAIT 核心工程问题
服务器·开发语言·网络·物联网·网络协议·tcp/ip
一技安身9 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
平头哥AI9 小时前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go
代码村新手10 小时前
Linux调试器-gdb的使用
linux
新时代牛马11 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
两点王爷12 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器
xx~t12 小时前
嵌入式——51单片机1
linux·c语言·单片机·嵌入式硬件·51单片机
啦啦啦啦啦zzzz12 小时前
利用RAII机制进行日志的采集
linux·服务器·c++·网络编程·c++20
0+11112 小时前
Linux --线程概念与控制
linux·运维·服务器·jvm
nLif13 小时前
基于GTK的简易MFC对话框兼容层 -- MfcToGTK
linux·c++·mfc·gtk