BIND9 9.20.29 介绍与选型指南
BIND9 9.20.29 介绍与选型指南:官方资料溯源的权威+递归一体 DNS 套件(named/rndc/DNSSEC 组件与解析流程)、三轨版本策略、功能特性、快速上手与适用限制,以及与 PowerDNS、Knot DNS、NSD、dnsmasq、Unbound 的量化选型对比(2026-10-20 实查,未做本地安装实测)。
BIND9 9.20.29 介绍与选型指南
目标:基于官方公开资料(ISC 官网、ISC GitLab 仓库、BIND 9 ARM 官方文档、Ubuntu 软件源索引)溯源介绍 BIND 9.20.29 的架构、能力与选型对比。本文不做本地安装与运行实测,全部版本号、日期与社区数据逐项标注来源与查询日期(2026-10-20)。
一、环境信息
1.1 查询说明
- 查询日期:2026-10-20。
- 信息获取方式:纯官方资料溯源(ISC 官网 isc.org/bind、版本表与下载页、GitLab 仓库 isc-projects/bind9、GitHub 官方副本仓库 isc-projects/bind9、BIND 9 ARM 文档站 bind9.readthedocs.io、Ubuntu 22.04 jammy 软件源索引),未做本地安装与运行实测。
- 版本结论:当前主线版本为 BIND 9.20.29(ISC 官网版本表标注 Current Stable/ESV,2026-09 发布)。
1.2 版本与许可依据
| 项目 | 实查结果(2026-10-20) | 来源 |
|---|---|---|
| 最新稳定版 | 9.20.29(Current Stable/ESV,2026-09 发布,支持至 2028-Q2) | isc.org/bind 版本表 |
| 上一代 ESV | 9.18.50(2026-06 发布,2026-Q2 EOL) | isc.org/bind 版本表 |
| 开发线 | 9.21.26(Development,2026-09 发布) | isc.org/bind 版本表 |
| 9.18 线生命周期 | 2026-06 正式 EOL("June 2026 release marks the End of Life for BIND 9.18") | isc.org/blogs/2026-06-10-bind9-18-eol |
| 版本策略 | 同时维护 Stable、ESV(扩展支持)、Development 三条线 | ISC KB aa-00896 |
| 开源许可 | MPL-2.0(Mozilla Public License 2.0) | isc.org/bind 首页明示 |
| 代码仓库 | gitlab.isc.org/isc-projects/bind9(官方主仓库,GitHub 为只读副本) | isc.org/bind |
| 社区热度 | GitHub 同步副本 782 stars / 186 forks(副本仓库不承载 issue,官方开发在 GitLab) | github.com/isc-projects/bind9(GitHub API,2026-10-20 实查) |
| Ubuntu 22.04 仓库版 | 9.18.39-0ubuntu0.22.04.7(jammy-security 口径,main 源) | Ubuntu jammy 软件源索引(2026-10-20 查询) |
1.3 官方来源清单
| 来源 | 地址 |
|---|---|
| ISC BIND 9 产品页 | https://www.isc.org/bind/ |
| ISC 下载页 | https://www.isc.org/download/ |
| 当前版本源码目录 | https://downloads.isc.org/isc/bind9/cur/ |
| 官方主仓库(GitLab) | https://gitlab.isc.org/isc-projects/bind9 |
| GitHub 只读副本 | https://github.com/isc-projects/bind9 |
| BIND 9 ARM(管理员参考手册) | https://bind9.readthedocs.io/en/stable/ |
| 版本选择建议 KB | https://kb.isc.org/docs/aa-01540 |
| 支持策略与版本编号 KB | https://kb.isc.org/docs/aa-00896 |
| 漏洞矩阵 KB | https://kb.isc.org/docs/aa-00913 |
| 显著特性矩阵 KB | https://kb.isc.org/docs/aa-01310 |
| ISC Ubuntu 软件源 | https://launchpad.net/~isc |
💡 版本速读:ISC 官网版本表三行并排——9.20.29(Current Stable/ESV)、9.18.50(EOL)、9.21.26(Development)。9.18 ESV 线已于 2026 年 6 月终止,而 Ubuntu 22.04 jammy 官方仓库仍以 9.18.39 为可装版本(由 Ubuntu 安全团队持续打补丁维护),两套时间线不同步,选型时需区分「上游支持线」与「发行版维护线」两个口径。
二、软件概述
BIND(Berkeley Internet Name Domain)是 Internet Systems Consortium(ISC)维护的 DNS 协议经典实现,也是互联网上最早、部署最广的权威 + 递归一体 DNS 服务器软件。ISC 官网对其定位的原话是 "Versatile, classic, complete name server software"——Whatever your application is, BIND 9 probably has the required features(官网首页明示),即以「全功能」为核心卖点:权威区服务、递归解析缓存、DNSSEC 签名与验证、视图分流、响应策略区(RPZ)过滤、速率限制(RRL)等能力全部内置于同一套 named 守护进程。
几个影响选型的基础事实:
- 一体双角色:单进程 named 同时承担权威(zone 数据应答)与递归(替客户端问遍全网)两种角色,通过 zone 类型与 view 配置切分;这与 Unbound(纯递归)、NSD(纯权威)的单角色定位不同。
- 事实标准:多数 RFC 的权威 DNS 行为(NOTIFY、IXFR、DDNS、TSIG、DNSSEC)都以 BIND 作为参考实现,文档与人才储备在同类产品中最厚(官网自述 "there are more network engineers who are already familiar with BIND 9 than with any other system")。
- 许可 MPL-2.0:弱著作权开源许可,允许与专有代码链接组合而仅要求对 MPL 覆盖文件开源,企业集成友好度介于 BSD 与 GPL 之间(isc.org/bind 明示)。
- 维护主体:ISC 是非营利组织,BIND 9 与 Kea DHCP、Stork 管理平台构成其产品线;除社区支持邮件列表 bind-users 外,提供 Gold/Silver/Bronze 三档商业订阅支持(官网 Support options 表)。
三、核心架构
本章按 BIND 9 ARM(bind9.readthedocs.io)与官方仓库结构拆解组件与解析流程(官方公开资料口径,未做本地实测)。
3.1 组件与文件形态
| 组件 / 工具 | 角色 |
|---|---|
| named | 主守护进程,监听 53/UDP+TCP 提供解析,权威与递归共用 |
| rndc | 远程名称守护进程控制通道客户端,经 953/TCP 以 TSIG 密钥认证下发 reload/flush/zonestatus 等指令 |
| named.conf(主配置) | 由 named.conf.options / named.conf.local / named.conf.default-zones 等 include 片段组成(Debian/Ubuntu 发行约定) |
| zone 文件 | RFC 1035 主文件格式,权威区数据;动态更新场景另有 .jnl 日志 |
| dnssec-keygen / dnssec-signzone / dnssec-dsfromkey / dnssec-verify | DNSSEC 离线签名工具族;9.16 起内置 KASP(dnssec-policy)可由 named 自动签名轮换 |
| named-checkconf / named-checkzone / named-compilezone | 配置与 zone 文件静态校验 / 编译 |
| named-journalprint | 回放动态更新 journal(.jnl)内容 |
| dig / host / nslookup / delv | 查询验证客户端,其中 delv 面向 DNSSEC 验证细节 |
| tsig-keygen / ddns-confgen | 生成 TSIG 密钥与 DDNS 配置片段 |
3.2 解析与控制流程
┌────────────┐
客户端查询 ───────► │ named :53 │
(UDP/TCP) └─────┬──────┘
│ ① 命中缓存 → 直接应答
│ ② 本机权威 zone(master/slave 数据)→ 权威应答(aa)
▼
┌───────────────┐
│ 递归解析引擎 │
└───┬───────┬───┘
forwarders │ │ 递归迭代
(forward only/ │ │ 根 . → TLD → 权威 NS
first 可选) ▼ ▼
上游解析器 从根服务器逐级迭代
并缓存结果(含 DNSSEC 验证)
运维控制面:rndc ──953/TCP(TSIG 认证)──► named
(reload / flush / zonestatus / freeze / querylog / stop …)
主从同步:primary ──NOTIFY──► secondary
secondary ──AXFR/IXFR(9.18 起可走 TLS,XoT)──► primary
3.3 关键机制
- zone 类型:primary(master)、secondary(slave)、stub、forward、hint(根提示)五类,view 可按客户端源地址呈现不同 zone 数据(split-horizon,内外网分离的经典手段)。
- DNSSEC 双向能力:对外可作签名权威(dnssec-policy/KASP 自动化密钥轮换),对内可作验证递归(managed-keys 自动管理根信任锚,
dnssec-validation auto为默认)。 - 安全加固组件:RPZ(响应策略区,基于 zone 的过滤改写)、RRL(对放大攻击源的速率限制)、cookies/最小化响应等,均在 ARM "Security" 章节有专述。
- 可观测性:statistics-channels(HTTP 输出 XML/JSON 统计)、DNSTAP 抓包、querylog;配合 Grafana 等外部面板。
四、功能特性
以下条目均可在 BIND 9 ARM 或版本 Release Notes 中找到对应章节(bind9.readthedocs.io / downloads.isc.org 各版本 RELEASE-NOTES)。
- 权威服务全套:master/slave 主从与自动区传送(AXFR/IXFR + NOTIFY)、动态更新(RFC 2136,可配 TSIG 签名限权)、Catalog Zones(RFC 9432,海量小区的自动化分发)、Response Policy Zones。
- 递归解析全套:完整迭代解析与缓存、视图(view)按源地址分流、转发器(forward only / first)、RPZ 过滤、RRL 限速、NXDOMAIN 重定向、最小响应与 QNAME 最小化。
- DNSSEC 全链路:签名(KASP 自动化或离线工具链)、验证(信任锚自动管理)、dnssec-verify/dnssec-dsfromkey 等配套工具、算法含 RSASHA256/ECDSAP256/Ed25519 等。
- 加密 DNS:9.18 起支持 DoT(DNS over TLS,RFC 7858)服务端与 XoT(区传送走 TLS);客户端工具 dig 支持 +tls 模式查询。
- 运维控制面:rndc 全命令族、named-checkconf/named-checkzone 静态校验、rndc-confgen/tsig-keygen 密钥工具、journal 回放工具。
- 企业级细节:多线程并发(每接口多 UDP socket)、内建 RRL 抗反射放大、filter-aaaa 插件、分类日志(logging 语句)、JSON/XML 统计输出。
五、快速开始(概要)
以官方文档口径概览安装渠道(本章为认知概要,具体命令与回显见本系列安装篇):
- Ubuntu/Debian 系:发行版仓库直接安装 bind9(Ubuntu 22.04 jammy 官方仓库为 9.18.39 线,Debian 由 bind.debian.net 提供 bind / bind-esv / bind-dev 三源);ISC 官方另维护 Ubuntu PPA(launchpad.net/~isc)提供更新的稳定版。
- RHEL/CentOS/Fedora 系:发行版仓库 bind 包,或 ISC 官方 COPR 仓库(copr.fedorainfracloud.org/coprs/isc)。
- 源码:downloads.isc.org/isc/bind9/cur/ 下载 tar.xz 源码包与 ASC 签名自行编译。
- 配置骨架:主配置 named.conf 按发行版约定 include 片段;改完用 named-checkconf 校验、rndc reload 生效;zone 数据用 named-checkzone 校验。
- 验证闭环:dig 查询本机 zone、rndc status 看运行状态。
六、适用场景与限制
6.1 适用场景
- 企业权威 + 递归一体部署:一台 named 同时对内递归、对外权威,配合 view 实现内外网域名视图分离——这是 BIND 最经典、同类单角色产品需要两台组合才能覆盖的场景。
- DNSSEC 签名权威:需要给自有域名做 DNSSEC 签名并自动化密钥轮换(KASP),或作为验证递归出口。
- 主从多级架构:跨机房主从同步(IXFR 增量传送省带宽)、Catalog Zones 批量管理上千个小区。
- 强管控递归出口:RPZ 恶意域名拦截、RRL 抗放大、按 ACL 精细分权(allow-recursion/allow-query)。
- 合规与人才储备敏感组织:MPL-2.0 许可、ISC 非营利维护、可选商业支持,审计与采购链路成熟。
6.2 限制与注意点
- 学习曲线陡峭:named.conf 语句体系(options/view/zone/acl/key/controls)庞大,ARM 是同类中最厚的文档之一;无内置 Web 管理台(ISC 的 Stork 主打 Kea,DNS 支持为辅)。
- 发行版版本滞后:Ubuntu 22.04 jammy 官方仓库停留在 9.18.39,而上游 9.18 线已 EOL;要跟进 9.20.29 需换用 ISC 官方 PPA 或自行编译,选型时须明确「谁的补丁在保」。
- 默认配置偏宽松:默认监听所有接口且递归开启,公网机器必须显式收敛 listen-on/allow-recursion,否则易成开放解析器。
- 资源占用高于轻量方案:多线程 + 多 socket 架构在极小场景(家用路由)不如 dnsmasq 轻巧。
- 动态更新区文件位置受发行版安全策略约束:Debian/Ubuntu 的 AppArmor 配置约定 /etc/bind 只读、动态 zone 工作文件放 /var/lib/bind,跨发行版迁移配置时容易踩坑。
七、同类选型对比
7.1 候选概览
| 软件 | 定位 | 开源许可 |
|---|---|---|
| BIND 9.20.29 | 权威 + 递归一体全功能 DNS 套件 | MPL-2.0 |
| PowerDNS(Authoritative + Recursor) | 权威与递归拆分双组件、后端可插拔(SQL/HTTP API/Lua) | GPL-2.0 |
| Knot DNS | 高性能权威服务器(knotc 控制面,DNSSEC 自动化强) | GPL-3.0 |
| NSD | 纯权威服务器(NLnet Labs,与 Unbound 配对) | BSD-3-Clause |
| dnsmasq 2.93 | 轻量 DNS + DHCP + RA + PXE 网关工具 | GPL-2.0/GPL-3.0 双许可 |
| Unbound 1.26.1 | 验证型递归缓存解析器(NLnet Labs) | BSD-3-Clause |
7.2 量化对比(2026-10-20 实查)
| 维度 | BIND 9.20.29 | PowerDNS | Knot DNS | NSD | dnsmasq 2.93 | Unbound 1.26.1 |
|---|---|---|---|---|---|---|
| 开源许可 | MPL-2.0 | GPL-2.0 | GPL-3.0 | BSD-3-Clause | GPL-2.0/GPL-3.0(双许可自选) | BSD-3-Clause |
| GitHub stars | 782(isc-projects/bind9 只读副本,主仓库在 gitlab.isc.org) | 4500(PowerDNS/pdns) | 326(CZ-NIC/knot) | 572(NLnetLabs/nsd) | 396(imp/dnsmasq,官方仓库自托管 thekelleys.org.uk) | 4990(NLnetLabs/unbound,2026-10-19 实查) |
| 角色定位 | 权威 + 递归一体(view 分流) | 权威(Auth)与递归(Recursor)双组件分装 | 纯权威(递归另配 knot-resolver) | 纯权威 | 转发缓存 + DHCP 一体 | 纯递归 + DNSSEC 验证 |
| DNSSEC | 签名(KASP 自动)+ 验证双向 | Auth 支持在线签名;Recursor 验证 | 权威签名自动化程度高 | 签名需离线工具链 | 无签名能力(可转发验证态) | 验证为主(不承担权威) |
| 递归与缓存 | 内置(可关) | Recursor 组件承担 | 需另配 knot-resolver | 无 | 仅转发 + 小缓存 | 核心能力 |
| 动态更新(DDNS) | 支持(RFC 2136 + journal) | Auth 支持(API 为主) | 支持 | 不支持(定位纯静态权威) | 不支持 | 不适用 |
| 管理界面 | 无内置(第三方 Webmin/Stork 辅助) | PowerDNS-Admin 等生态 | Web 控制台/Text API | 无 | 无 | unbound-control CLI |
| 典型场景 | 企业权威 + 递归一体、内外网视图、DNSSEC 全链路 | 数据库驱动海量 zone、API 自动化 | 顶级性能权威、DNSSEC 大区 | 高性能纯权威(配合 Unbound) | SOHO 网关、家庭路由 | 企业递归出口、隐私解析 |
(stars 与许可取自各项目 GitHub 仓库/GitHub API 2026-10-20 实查;Unbound 数据沿用站内《Unbound 1.26 介绍与选型指南》2026-10-19 实查口径;BIND 版本与支持周期取自 isc.org 官网版本表。PowerDNS、Knot DNS、NSD 的站内专栏将在后续批次上线,本文暂不提供站内互链。)
7.3 如何选
- 需要「权威 + 递归」一体、内外网视图、DNSSEC 签名验证全链路、或团队已有 BIND 运维存量——选 BIND 9,它仍是功能覆盖面与资料厚度的标杆(站内递归侧对照可参考 《Unbound 1.26 介绍与选型指南》)。
- 追求极致权威性能、区量巨大且 DNSSEC 自动化优先——评估 Knot DNS 或 NSD(纯权威定位,递归交给 Unbound)。
- 权威数据在数据库里、需要 REST/Lua 深度编程接入——评估 PowerDNS。
- 只做小网络 DNS+DHCP 网关——dnsmasq 足够(站内实践见 《Ubuntu 22.04 安装 dnsmasq 指南》、《dnsmasq 配置参数详解》)。
- 纯递归出口、重视 DNSSEC 验证与隐私——Unbound(站内安装实践见 《Ubuntu 22.04 安装 Unbound 指南》)。
- K8s 服务发现或插件化转发——CoreDNS(站内见 《CoreDNS 1.14 介绍与选型指南》);需要 Web 台面与广告拦截全家桶——Technitium/Pi-hole/AdGuard Home 各有专篇。
八、参考链接
8.1 官方链接
| 资源 | 地址 |
|---|---|
| ISC BIND 9 产品页 | https://www.isc.org/bind/ |
| BIND 9 ARM(Stable 文档) | https://bind9.readthedocs.io/en/stable/ |
| ISC GitLab 仓库 | https://gitlab.isc.org/isc-projects/bind9 |
| GitHub 副本仓库 | https://github.com/isc-projects/bind9 |
| 版本下载(cur 目录) | https://downloads.isc.org/isc/bind9/cur/ |
| 9.20.29 发布说明 | https://downloads.isc.org/isc/bind9/9.20.29/RELEASE-NOTES-bind-9.20.29.html |
| ISC Ubuntu PPA | https://launchpad.net/~isc |
| 版本选择 KB | https://kb.isc.org/docs/aa-01540 |
| 支持策略 KB | https://kb.isc.org/docs/aa-00896 |
| BIND 9.18 EOL 公告 | https://www.isc.org/blogs/2026-06-10-bind9-18-eol/ |
8.2 本系列篇目
- 《BIND9 9.20.29 介绍与选型指南》(本文)
- 《Ubuntu 22.04 安装 BIND9 指南》:apt 安装、systemd 管理、最小正反向 zone 实操。
- 《BIND9 9.18.39 配置参数详解》:named.conf.options 与 zone 核心参数逐项实测。
- 《BIND9 9.18.39 常用命令详解》:rndc 命令族与 dig/named-checkconf 等工具逐命令实测。