centos环境下配置DNS主备

📌 本文详细记录了在 centos环境下搭建主从 DNS 服务器的完整过程,实现高可用域名解析服务。适合运维工程师和网络管理员参考。

📖 目录

  • 环境准备

  • 主 DNS 服务器配置

  • 从 DNS 服务器配置

  • 客户端 DNS 配置

  • 测试与验证

  • 故障排除


🎯 环境准备

网络拓扑结构

10.0.0.0/24 网段
├── Server1 (主 DNS): 10.0.0.101
├── Server2 (从 DNS): 10.0.0.102  
├── Server3 (Web服务器): 10.0.0.103
└── Desktop (客户端): 10.0.0.104

系统要求

  • centos

  • 所有服务器需配置静态 IP

  • 主机名已正确设置

  • 关闭 SELinux 或配置合适策略(生产环境建议配置)

  • 防火墙开放相应端口


🖥️ 主 DNS 服务器配置 (Server1)

1. 安装 BIND 软件包

bash

# 更新系统并安装 BIND
sudo dnf install bind bind-utils -y

2. 配置主文件 /etc/named.conf

bash

sudo nano /etc/named.conf

修改以下关键配置:

conf

options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { none; };  # 禁用 IPv6
    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; 10.0.0.0/24; };
    
    # 允许区域传输的从服务器 IP
    allow-transfer  { 10.0.0.102; };
    
    # 递归查询设置
    recursion yes;
    
    # 转发器(可选,指向网关或公共DNS)
    forwarders { 8.8.8.8; 8.8.4.4; };
    
    # DNS 安全扩展
    dnssec-enable yes;
    dnssec-validation yes;
    
    # 响应策略区域(可选)
    response-policy { zone "rpz.local"; };
};

# 正向解析区域
zone "lab.org" IN {
    type master;
    file "dbf";  # 正向解析文件
    allow-update { none; };
    allow-transfer { 10.0.0.102; };
    notify yes;  # 主服务器更新时通知从服务器
};

# 反向解析区域
zone "0.0.10.in-addr.arpa" IN {
    type master;
    file "dbr";  # 反向解析文件
    allow-update { none; };
    allow-transfer { 10.0.0.102; };
    notify yes;
};

# 根域名服务器提示
zone "." IN {
    type hint;
    file "named.ca";
};

3. 创建正向解析区域文件

bash

sudo nano /var/named/dbf

区域文件内容:

zone

$TTL 86400      ; 1 day 默认TTL值
@       IN SOA  server1.lab.org. admin.lab.org. (
                2024052701  ; Serial - 格式: YYYYMMDDNN
                86400       ; Refresh - 24小时
                3600        ; Retry - 1小时
                604800      ; Expire - 7天
                10800       ; Minimum TTL - 3小时
                )

; 名称服务器记录
        IN NS   server1.lab.org.
        IN NS   server2.lab.org.

; 邮件交换记录(可选)
        IN MX 10 mail.lab.org.

; A记录 - 主机地址
server1         IN A     10.0.0.101
server2         IN A     10.0.0.102
server3         IN A     10.0.0.103
desktop         IN A     10.0.0.104

; 别名记录(CNAME)
www             IN CNAME server3.lab.org.
mail            IN CNAME server1.lab.org.
ftp             IN CNAME server2.lab.org.


4. 创建反向解析区域文件

bash

sudo nano /var/named/dbr
$TTL 86400
@       IN SOA  server1.lab.org. admin.lab.org. (
                2024052701
                86400
                3600
                604800
                10800
                )

; 名称服务器
        IN NS   server1.lab.org.
        IN NS   server2.lab.org.

; PTR记录 - 反向解析
101     IN PTR  server1.lab.org.
102     IN PTR  server2.lab.org.
103     IN PTR  server3.lab.org.
104     IN PTR  desktop.lab.org.

5. 设置文件权限

bash

# 修改文件所有者和权限
sudo chown named:named /var/named/dbf /var/named/dbr
sudo chmod 640 /var/named/dbf /var/named/dbr

# 检查配置文件语法
sudo named-checkconf /etc/named.conf
sudo named-checkzone lab.org /var/named/dbf
sudo named-checkzone 0.0.10.in-addr.arpa /var/named/dbr

6. 配置防火墙

bash

# 开放 DNS 端口
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

# 验证端口开放
sudo firewall-cmd --list-all | grep dns

7. 启动并启用服务

bash

# 启动 BIND 服务
sudo systemctl start named
sudo systemctl enable named
sudo systemctl status named

# 设置开机自启
sudo systemctl enable named

🔄 从 DNS 服务器配置 (Server2)

1. 安装 BIND

bash

sudo dnf install bind bind-utils -y

2. 配置从服务器

bash

sudo nano /etc/named.conf

修改配置如下:

conf

options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { none; };
    directory       "/var/named";
    allow-query     { localhost; 10.0.0.0/24; };
    recursion yes;
    allow-transfer  { none; };  # 从服务器不允许区域传输
};

# 正向解析区域(从区域)
zone "lab.org" IN {
    type slave;
    file "slaves/dbf.slave";
    masters { 10.0.0.101; };
    allow-notify { 10.0.0.101; };
};

# 反向解析区域(从区域)
zone "0.0.10.in-addr.arpa" IN {
    type slave;
    file "slaves/dbr.slave";
    masters { 10.0.0.101; };
    allow-notify { 10.0.0.101; };
};

3. 创建 slaves 目录

bash

sudo mkdir -p /var/named/slaves
sudo chown named:named /var/named/slaves
sudo chmod 770 /var/named/slaves

4. 检查配置并启动服务

bash

# 检查配置文件
sudo named-checkconf /etc/named.conf

# 配置防火墙
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

# 启动服务
sudo systemctl start named
sudo systemctl enable named
sudo systemctl status named

🎯 总结

通过以上步骤,您已经成功搭建了高可用的主从 DNS 服务器架构。主要优势:

  1. 高可用性:主从架构确保 DNS 服务不间断

  2. 负载分担:查询请求可在两台服务器间分配

  3. 数据一致性:自动区域同步保证数据一致

  4. 易于管理:只需在主服务器修改记录

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值