在 Linux 网络服务中,BIND9是最经典、使用最广泛的 DNS 服务器软件,支持权威解析、递归查询、区域转发、主从复制等核心功能。本文从零开始,带你吃透 BIND9 的核心概念、安装配置、正向 / 反向解析、DNS 转发、Web 绑定及主从区域传送,一站式搞定 DNS 服务部署。

一、DNS 核心概念速通

先理清 DNS 基础术语,后续配置不迷路:

  1. DNS 系统:分层分布式数据库,实现域名↔IP映射、邮件路由等功能,客户端通过解析器发起查询。
  2. 域与域名:DNS 是树形结构,域名从右到左由点分隔,如ourhost.example.com
  3. 区域(Zone):DNS 树的管理单元,服务器对区域内域名有完整解析权限。
  4. 权威服务器:存储区域完整数据,响应带AA(权威应答) 标记。
    • 主服务器(Master):维护区域数据原始副本,配置手动编辑 / 动态更新。
    • 辅助服务器(Slave):通过区域传送同步主服务器数据,实现高可用。
  5. 缓存服务器:执行递归查询并缓存结果,提升解析效率。
  6. 转发服务器:自身不做完整递归,将查询转发给上级 DNS 服务器。


二、BIND9 软件简介

BIND9 是开源 DNS 服务器,基于MPL 2.0协议开源,功能全面、兼容性强,是 Linux 环境 DNS 服务的首选方案。


三、BIND9 安装(CentOS/RHEL 8+)

执行一键安装命令,包含主程序和工具包:

dnf install bind bind-utils -y
  • bind:DNS 服务主程序(named)
  • bind-utils:dig/nslookup 等 DNS 测试工具


四、核心配置文件解析

BIND9 主配置文件为/etc/named.conf,核心配置项如下:

options {
    # 监听53端口,指定本机IP/any(所有网卡)
    listen-on port 53 { 127.0.0.1; any;};
    # 区域数据文件存放目录
    directory "/var/named";
    # 允许所有客户端查询
    allow-query { localhost;any; };
    # 开启递归查询
    recursion yes;
    # 关闭DNSSEC(实验环境简化配置)
    dnssec-enable no;
    dnssec-validation no;
};

# 根域名服务器指向(所有DNS服务器必备)
zone "." IN {
    type hint;
    file "named.ca";
};

# 引入子配置文件
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

关键配置说明

  • listen-on:DNS 默认监听53 端口,生产环境建议指定内网 IP,不建议用 any。
  • allow-query:控制允许访问 DNS 服务的客户端,实验环境设为 any。
  • recursion:开启递归,让服务器帮客户端完成完整域名解析。


五、区域文件模板(SOA 记录)

区域文件存储解析记录,SOA 记录是核心,定义主从同步规则:

字段 含义 推荐值
Serial 序列号(格式:yyyymmddnn) 主从同步依据
Refresh 辅服务器检查更新间隔 1D(1 天)
Retry 连接主服失败后重试间隔 1H(1 小时)
Expire 数据过期时间(超时停止解析) 1W(1 周)
Minimum 否定缓存 TTL 3H(3 小时)

正向解析模板(/var/named/named.localhost):

$TTL 1D
@ IN SOA @ rname.invalid. (
    0       ; serial
    1D      ; refresh
    1H      ; retry
    1W      ; expire
    3H )    ; minimum
NS @
A 127.0.0.1
AAAA ::1


六、实战实验(核心环节)

实验 1:正向解析(域名→IP)

baidu.com为例,配置正向解析:

  1. 修改/etc/named.conf,添加区域配置:

zone "baidu.com" IN { 
    type master;
    file "named.baidu.com"; 
};
  1. 创建区域数据文件/var/named/named.baidu.com

$TTL 1D 
@ IN SOA @ admin.baidu.com. (
    0       ; serial
    1D      ; refresh
    1H      ; retry
    1W      ; expire
    3H )    ; minimum
IN NS ns.baidu.com.
IN MX 10 mail.baidu.com.
ns IN A 192.168.226.130
mail IN A 192.168.226.1
www IN A 192.168.226.5
www IN A 192.168.226.10
ftp IN CNAME www.baidu.com
  1. 重启服务并验证:

systemctl restart named
# 验证NS记录
dig -t NS baidu.com @192.168.226.130
# 验证A记录
dig -t A www.baidu.com @192.168.226.130

实验 2:反向解析(IP→域名)

  1. named.conf添加反向区域:

zone "226.168.192.in-addr.arpa" IN {
    type master;
    file "named.fanxiang";
};
  1. 反向区域文件/var/named/named.fanxiang

$TTL 1D
@ IN SOA @ admin.baidu.com. (
    0       ; serial
    1D      ; refresh
    1H      ; retry
    1W      ; expire
    3H )    ; minimum
IN NS ns.baidu.com.
130 IN PTR ns.baidu.com.
1 IN PTR www.baidu.com.
  1. 验证反向解析:

dig -x 192.168.226.130 @192.168.226.130

实验 3:DNS 转发服务器

将本地 DNS 查询转发给公共 DNS(114.114.114.114):

  1. 修改named.conf

options {
    listen-on port 53 { 192.168.226.130; };
    forward only;  # 仅转发,不本地递归
    forwarders { 114.114.114.114; };  # 上级DNS
};
  1. 重启服务,客户端测试解析。

实验 4:绑定 Web 服务器解析

实现域名访问本地 Web 服务:

  1. 配置haha.com区域:

zone "haha.com" IN { 
    type master;
    file "named.haha.com"; 
};
  1. 区域文件named.haha.com

$TTL 1D 
@ IN SOA @ admin.haha.com. (
    0       ; serial
    1D      ; refresh
    1H      ; retry
    1W      ; expire
    3H )    ; minimum
IN NS ns.haha.com.
ns IN A 192.168.226.130
www IN A 192.168.226.130
  1. 客户端访问:

curl www.haha.com

实验 5:主从区域传送(DNS 高可用)

区域传送实现主→从数据同步,分两种方式:

  • AXFR:完全区域传送(新从服务器首次同步)
  • IXFR:增量区域传送(主服更新后同步)

从服务器配置

zone "zhangsan.com" IN {
    type slave;  # 从属服务器
    masters { 192.168.197.128; };  # 主服务器IP
    file "slaves/named.zhangsan";  # 同步文件存放路径
};

同步成功后,从服务器会自动拉取主服务器的区域数据,实现解析高可用。


七、BIND9 服务管理命令

# 启动服务
systemctl start named
# 开机自启
systemctl enable named
# 重启服务
systemctl restart named
# 查看状态
systemctl status named
# 检查配置语法
named-checkconf
# 检查区域文件语法
named-checkzone baidu.com /var/named/named.baidu.com


八、总结

BIND9 作为经典 DNS 服务器,覆盖了权威解析、递归查询、转发、主从复制等企业级需求。本文从概念到实战,完整演示了 BIND9 的部署与应用,实验环境可直接复用,生产环境只需调整监听 IP、访问权限等安全配置即可上线。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐