5154

Good Luck To You!

CentOS 6.5如何搭建DNS服务器?详细步骤与配置方法

在CentOS 6.5系统中搭建DNS(域名系统)服务器,可以通过BIND(Berkeley Internet Name Domain)软件实现,DNS作为互联网的核心服务之一,负责将人类可读的域名转换为机器可识别的IP地址,是网络通信的基础,本文将详细介绍在CentOS 6.5上安装、配置和管理DNS服务器的完整步骤,包括主从服务器配置、区域文件管理及常见问题排查。

CentOS 6.5如何搭建DNS服务器?详细步骤与配置方法

安装BIND软件包

确保系统已更新至最新状态,然后安装BIND相关软件包,打开终端,执行以下命令:

sudo yum update -y
sudo yum install bind bind-utils -y

bind是DNS服务器的核心软件包,bind-utils提供了测试DNS服务的工具(如nslookupdig等),安装完成后,启动BIND服务并设置开机自启:

sudo service named start
sudo chkconfig named on

配置主DNS服务器

主DNS服务器的配置文件位于/etc/named.conf,该文件定义了DNS服务器的全局参数和区域声明,以下是基础配置示例:

options {
    listen-on port 53 { 127.0.0.1; any; };  # 监听所有接口的53端口
    directory       "/var/named";            # 区域文件存放目录
    allow-query     { any; };               # 允许所有客户端查询
    recursion yes;                          # 启用递归查询
};
zone "example.com" IN {
    type master;                            # 主区域类型
    file "example.com.zone";                # 区域文件名
    allow-transfer { 192.168.1.100; };      # 允许从服务器IP
    allow-update { none; };                 # 禁止动态更新
};
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.1.zone";                  # 反向解析区域文件
};

保存配置文件后,创建正向和反向区域文件,以example.com为例,正向区域文件/var/named/example.com.zone内容如下:

$TTL 86400
@   IN  SOA ns1.example.com. admin.example.com. (
        2025081501  ; 序列号
        3600        ; 刷新间隔
        1800        ; 重试间隔
        604800      ; 过期时间
        86400       ) ; 最小TTL
@   IN  NS  ns1.example.com.
ns1 IN  A   192.168.1.10
www IN  A   192.168.1.20
mail IN  A   192.168.1.30

反向区域文件/var/named/192.168.1.zone内容如下:

CentOS 6.5如何搭建DNS服务器?详细步骤与配置方法

$TTL 86400
@   IN  SOA ns1.example.com. admin.example.com. (
        2025081501
        3600
        1800
        604800
        86400 )
@   IN  NS  ns1.example.com.
10  IN  PTR ns1.example.com.
20  IN  PTR www.example.com.
30  IN  PTR mail.example.com.

注意:区域文件的所有者需设置为named,权限为640

sudo chown named:named /var/named/example.com.zone
sudo chown named:named /var/named/192.168.1.zone
sudo chmod 640 /var/named/*.zone

配置从DNS服务器

从DNS服务器用于主服务器的冗余和负载均衡,在从服务器上安装BIND后,修改/etc/named.conf,区域声明调整为:

zone "example.com" IN {
    type slave;
    file "slaves/example.com.zone";        # 区域文件将自动下载至slaves目录
    masters { 192.168.1.10; };             # 主服务器IP
};

重启named服务后,从服务器会自动从主服务器同步区域文件,检查/var/named/slaves/目录确认文件是否同步成功。

测试与故障排查

使用nslookupdig工具测试DNS解析是否正常:

nslookup www.example.com
dig example.com MX

若解析失败,检查以下事项:

CentOS 6.5如何搭建DNS服务器?详细步骤与配置方法

  1. 防火墙规则:确保53端口(TCP/UDP)已开放:
    sudo iptables -I INPUT -p tcp --dport 53 -j ACCEPT
    sudo iptables -I INPUT -p udp --dport 53 -j ACCEPT
  2. 日志文件:查看/var/log/messages/var/named/named.run定位错误信息。
  3. 配置语法:使用named-checkconf检查配置文件语法,named-checkzone验证区域文件:
    sudo named-checkconf /etc/named.conf
    sudo named-checkzone example.com /var/named/example.com.zone

安全加固建议

  1. 限制查询范围:在options段中设置allow-query { localhost; trusted_network; };,避免开放解析。
  2. 启用DNSSEC:通过dnssec-keygen生成密钥,并在区域中添加DNSKEYRRSIG记录。
  3. 定期更新:保持BIND软件版本最新,修补安全漏洞。

相关问答FAQs

Q1: 如何修改DNS服务器的监听地址,仅允许内网访问?
A1: 在/etc/named.confoptions段中,将listen-on port 53 { any; }修改为内网IP段,例如listen-on port 53 { 127.0.0.1; 192.168.1.0/24; };,然后重启named服务。

Q2: DNS区域文件中的序列号(Serial Number)作用是什么?从服务器如何同步更新?
A2: 序列号是一个10位数字,格式为YYYYMMDDSS,每次修改区域文件后需递增,从服务器会定期检查主服务器的序列号,若发现更大值则触发区域传输(AXFR)同步数据,序列号未正确更新可能导致从服务器无法同步。

发表评论:

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

«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.