5154

Good Luck To You!

centos系统dns服务器

entOS系统常用BIND搭建DNS服务器,通过安装bind、配置named.conf及创建区域文件实现

CentOS系统DNS服务器搭建详解

DNS基础概念与作用

DNS(Domain Name System)即域名系统,是互联网中不可或缺的分布式命名服务,其核心功能是将人类可读的域名(如www.example.com)转换为计算机使用的IP地址,在局域网环境中,搭建私有DNS服务器可以实现自定义域名解析、提高网络管理效率,并增强安全性,以下是关于CentOS系统中使用BIND软件构建DNS服务的完整指南。

安装BIND软件包

  1. 更新系统仓库:执行sudo yum update确保获取最新软件版本。
  2. 安装主程序及工具:运行命令sudo yum install bind bindutils,其中bind为主服务组件,bindutils包含dig/nslookup等测试工具。
  3. 验证安装路径:默认配置文件位于/etc/named.conf,区域文件存储于/var/named/目录下。

配置主配置文件(/etc/named.conf)

此文件定义全局参数和运行模式,关键修改项如下表所示: | 参数 | 原始值 | 建议修改值 | 说明 | ||||| | listenon port 53 | {127.0.0.1}; | {any;} | 允许所有IP访问53端口 | | allowquery | {localhost;} | {any;}或指定IP段 | 控制哪些客户端能发起查询请求 | | recursion | no | yes | 启用递归查询以支持外部域名解析 | | directory | /var/named | 保持默认 | 指定工作目录,无需更改 |

示例片段:

options {
    listenon port 53 { any; };
    allowquery { any; };
    recursion yes;
};

注意:生产环境建议限制allowquery范围以提高安全性。

创建区域文件与正向/反向解析

假设我们要为内部域名internal.lan建立解析,步骤如下:

  1. 声明区域:编辑/etc/named.rfc1912.zones添加条目:
    zone "internal.lan" IN {
        type master;
        file "internal.lan.zone";
    };
  2. 编写正向解析记录:新建/var/named/internal.lan.zone并写入:
    $TTL 86400
    @   IN SOA     ns1.internal.lan. admin.internal.lan. (
                2025080201 ; Serial Number
                3600       ; Refresh interval
                1800       ; Retry interval
                604800     ; Expiry time
                86400 )    ; Negative cache TTL
    @        IN NS   ns1.internal.lan.
    ns1      IN A    192.168.1.100
    www      IN A    192.168.1.200
    mail     IN A    192.168.1.201
  3. 配置反向解析(可选):若需通过IP反查域名,则追加到同一文件:
    168.1.inaddr.arpa IN {
        type master;
        file "rev.internal.lan";
    };

    对应创建/var/named/rev.internal.lan如:

    100 IN PTR ns1.internal.lan.
    200 IN PTR www.internal.lan.

启动服务并设置开机自启

完成上述配置后,执行以下命令:

sudo systemctl start named       # 立即启动服务
sudo systemctl enable named      # 加入开机启动项

使用systemctl status named检查运行状态是否正常。

客户端配置与测试方法

  1. 修改客户端的DNS设置:在目标主机的/etc/resolv.conf中添加一行:
    nameserver <DNS服务器IP>

    nameserver 192.168.1.100

  2. 测试命令组合
    • ping www.internal.lan → 应返回192.168.1.200的响应包
    • nslookup mail.internal.lan → 显示对应的A记录IP地址
    • dig x 192.168.1.200 → 验证反向解析是否正确
  3. 跨平台兼容性:Windows用户可通过控制面板→网络连接→属性→IPv4设置同样的DNS地址。

常见问题排查思路

现象 可能原因 解决方案
无法解析新添加的记录 SERIAL未递增 修改区域文件中SOA行的序列号
外部网络访问失败 firewalld未放行UDP/TCP 53端口 firewallcmd addport=53/udp permanent
日志报错“refused” allowquery限制过严 调整配置文件中的白名单策略

相关问题与解答

Q1:如何实现主从架构的高可用性?
A:需要在主服务器上配置notify yes;并在从服务器的named.conf中使用slave类型指向主服务器IP,定期同步数据。

zone "example.com" IN {
    type slave;
    masters { 192.168.1.100; };
    file "slaved/example.com";
};

Q2:为什么修改区域文件后需要重启服务?
A:BIND采用缓存机制提升性能,仅当检测到配置变更时才会重新加载,手动执行systemctl restart named可强制刷新缓存,确保改动立即生效,对于频繁更新的场景,建议使用rndc reload命令避免中断正在进行的请求。

通过以上步骤,您已成功在CentOS上部署了一个功能完善的DNS服务器,该方案不仅适用于局域网环境,还可扩展为支持递归查询

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.