凌峰创科服务平台

CentOS 6.5如何搭建DNS服务器?

(SEO优化):

CentOS 6.5 搭建DNS服务器详细教程(Bind9配置+域名解析实战)

META描述(SEO优化):

本文详细讲解在CentOS 6.5操作系统中,如何从零开始搭建并配置DNS服务器(使用Bind9),包含Bind安装、主配置文件(zone)编写、A记录、CNAME记录配置、以及测试验证全过程,是运维人员学习DNS配置的实战指南。


前言:为什么在CentOS 6.5上搭建DNS服务器?

在互联网的世界里,DNS(Domain Name System,域名系统)扮演着“互联网电话簿”的角色,它将人类易于记忆的域名(如 www.google.com)解析为机器能够识别的IP地址(如 250.191.78),虽然现在云服务商都提供了便捷的DNS服务,但理解并掌握DNS服务器的搭建原理,对于系统管理员、运维工程师以及网络安全爱好者来说,是一项至关重要的技能。

本文将以经典的 CentOS 6.5 为例,手把手教你如何使用业界标准的 Bind9 软件包,从零开始搭建一个功能完善的DNS服务器,即使你使用的是更新的CentOS版本,本教程的核心配置思想也同样适用。

目标读者: Linux系统管理员、运维工程师、网络工程师、对DNS技术感兴趣的初学者。 学习目标: 独立完成DNS服务器的安装、配置、管理及故障排查。

CentOS 6.5如何搭建DNS服务器?-图1


环境准备

在开始之前,请确保你的系统环境满足以下要求:

  1. 操作系统: CentOS 6.5 Minimal (最小化安装即可,我们后续会手动安装所需组件)。

  2. 主机名: 建议设置一个固定且有意义的主机名,dns-server.example.com

    # 临时设置
    hostname dns-server.example.com
    # 永久设置,需编辑 /etc/sysconfig/network 和 /etc/hosts
    # 编辑 /etc/sysconfig/network
    vi /etc/sysconfig/network
    # 添加或修改: HOSTNAME=dns-server.example.com
    # 编辑 /etc/hosts
    vi /etc/hosts
    # 添加: 192.168.1.100 dns-server.example.com dns-server
  3. 静态IP地址: DNS服务器必须拥有一个固定的IP地址,假设本机IP为 168.1.100

  4. Yum源: 确保你的Yum源可以正常使用,推荐使用官方源或阿里云/网易等国内镜像源以加快下载速度。

    CentOS 6.5如何搭建DNS服务器?-图2


安装Bind9 DNS服务

Bind9是Linux下最流行的DNS服务器软件,我们将使用Yum包管理器来安装它。

  1. 安装Bind9及相关工具包 执行以下命令,安装 bind(主程序)、bind-utils(客户端测试工具,如nslookup, dig)和bind-chroot(可选,用于增强安全性,将Bind服务运行在chroot环境中)。

    # 更新系统
    yum update -y
    # 安装Bind
    yum install -y bind bind-utils bind-chroot
  2. 安装后检查 安装完成后,Bind的主要文件和目录结构如下:

    • 主配置文件: /etc/named.conf (或 /etc/named.caching-nameserver.conf)
    • 区域数据文件目录: /var/named/
    • 服务脚本: /etc/init.d/named
    • 端口监听: 默认监听 53 (TCP/UDP)

配置DNS服务器

这是整个教程的核心,我们将配置一个“权威DNS服务器”,用于解析我们自己域名的记录。

编辑主配置文件 /etc/named.conf

这是Bind的全局配置文件,定义了服务器的全局参数和区域声明。

CentOS 6.5如何搭建DNS服务器?-图3

# 使用vi编辑器打开文件
vi /etc/named.conf

为了简化,我们可以先清空或注释掉文件中 optionszone 部分的默认内容,然后进行如下配置:

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
    listen-on port 53 { 127.0.0.1; 192.168.1.100; }; // 监听本机和内网IP
    listen-on-v6 port 53 { ::1; };
    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; 192.168.1.0/24; }; // 允许查询的客户端,这里允许本地和内网网段
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
    pid-file "/var/run/named/named.pid";
    session-keyfile "/var/run/named/session.key";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
    type hint;
    file "named.ca";
};
// 下面是我们自己添加的区域配置
// 正向解析区域
zone "example.com" IN {
    type master;
    file "example.com.zone"; // 对应的区域数据文件名
    allow-update { none; };
};
// 反向解析区域
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.1.zone"; // 对应的区域数据文件名
    allow-update { none; };
};

配置说明:

  • listen-on: 指定DNS服务器监听的IP地址,务必将你的服务器内网IP 168.1.100 加入。
  • allow-query: 定义哪些客户端可以向此服务器发起查询请求,这里我们设置为 localhost 和内网网段 168.1.0/24,适合内网使用。
  • zone "example.com" IN {...}: 正向解析区域声明,我们为 example.com 这个域创建一个主区域。
    • type master: 表示这是一个主DNS服务器。
    • file "example.com.zone": 指定存储该域具体DNS记录的文件,这个文件将在 /var/named/ 目录下创建。
  • zone "1.168.192.in-addr.arpa" IN {...}: 反向解析区域声明,它将IP地址 168.1.x 映射回主机名,这个区域名是固定的,由IP地址反转后加上 .in-addr.arpa 后缀构成。

创建正向解析区域文件

根据 /etc/named.conf 的声明,我们需要在 /var/named/ 目录下创建 example.com.zone 文件。

# 进入目录
cd /var/named/
# 复制一个模板文件作为基础
cp named.localhost example.com.zone
# 编辑新文件
vi example.com.zone

如下:

$TTL 1D
@       IN SOA  dns-server.example.com. admin.example.com. (
                                        2025102601      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns-server.example.com.
        A       192.168.1.100
        AAAA    ::1
; 主机记录
dns-server      IN A    192.168.1.100
www             IN A    192.168.1.101
ftp             IN A    192.168.1.102
; 别名记录
webmail         IN CNAME www.example.com.

配置说明:

  • $TTL 1D: 设置默认的生存时间为1天。
  • 代表当前的区域名,即 example.com
  • SOA (Start of Authority):授权开始记录,是每个区域文件中最重要的记录。admin.example.com. 是管理员的邮箱地址, 符号在邮件地址中需要替换为 。

分享:
扫描分享到社交APP
上一篇
下一篇