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
相关推荐
j_xxx404_5 分钟前
Linux:自主shell命令行解释器附源码
linux·运维·服务器
何以不说话26 分钟前
堡垒机jumpserver
运维·sql
开开心心就好27 分钟前
开源免费高速看图工具,支持漫画大图秒开
linux·运维·服务器·安全·ruby·symfony·1024程序员节
D11_27 分钟前
[特殊字符]️ 5379工具箱 - 全部网站链接汇总
服务器·百度·阿里云·typescript·编辑器
花间相见28 分钟前
【AI开发】—— Ubuntu系统使用nvm管理Node.js多版本,版本切换一键搞定(实操完整版)
linux·ubuntu·node.js
PPPPPaPeR.35 分钟前
从零实现一个简易 Shell:理解 Linux 进程与命令执行
linux·开发语言·c++
Byte不洛1 小时前
Linux 多线程:生产者消费者模型、阻塞队列与条件变量详解
linux·多线程·并发编程·pthread·生产者消费者模型
小Pawn爷1 小时前
13.virtualbox安装ubuntu
linux·运维·ubuntu
乾元1 小时前
暗网情报:自动化采集与情感分析在威胁狩猎中的应用
运维·网络·人工智能·深度学习·安全·架构·自动化
VekiSon1 小时前
Linux内核驱动——Ubuntu 网络启动环境配置与操作
linux·arm开发·嵌入式硬件·ubuntu