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
相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式