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
相关推荐
Lsetea4 分钟前
curl指定--tlsv1.2仍连接TLS1.3:最低版本与tls-max排查
linux·https·ssl证书·curl·tls
Lsetea10 分钟前
curl访问HTTPS报47 Too many redirects:重定向循环与max-redirs排查
linux·http·https·ssl证书·curl
OnlyEasyCode16 分钟前
IIS开放端口转发后端
运维·服务器
合合技术团队1 小时前
合合信息旗下TextIn面向全球市场推出文档处理自动化公有云服务
运维·自动化
分布式存储与RustFS2 小时前
机器要下线,数据先线上搬家:RustFS 存储池退役实操
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
9624562 小时前
一次 Dell PowerEdge R750xs 启动故障复盘:从 iDRAC 带外管理到 Linux 多内核回退与 initramfs 重建
linux·运维·服务器
Flynn Liang2 小时前
MQTT 共享订阅$share/原理:怎么用它给消费端水平扩容做负载均衡
运维·物联网·mqtt·iot·mqtt broker
Zevalin爱灰灰2 小时前
Linux入门第一部分(Ubuntu入门篇) 第二章 浅尝Ubuntu(二)
linux·嵌入式·1024程序员节
海宇AI3 小时前
零信任架构实战:基于海宇行驶OCR证识别构建自动化租车车队行驶证电子档案网关
运维·人工智能·架构·自动化·1024程序员节
北京中科新远科技3 小时前
高速接口兼容排查实战:OSFP、QSFP112与QSFP56如何逐层验证
linux·运维·网络