Linux DNS 服务器之 BIND 安装配置(详细版)
时间:2026-09-13 23:02 来源:未知 人气:
DNS服务器在互联网生态系统中发挥着关键作用,而Linux系统是承载高负荷DNS部署的首选平台;不同类型的DNS服务器担负着不同职责。bind 是Linux 系统中用于实现域名解析的服务软件,全称为 Berkeley Internet Name Domain。
一、DNS工作流程
DNS工作流程:
- 客户端向本地DNS服务器发送请求查询www.example.com的主机地址
- 本地 DNS 服务器检查缓存 → 无记录,然后联系根服务器b.root-servers.net
- 根服务器返回.com TLD(Top Level Domain) 服务器地址d.gtld-servers.net
- 本地 DNS 服务器向.com TLD服务器询问:"example.com的权威服务器是谁?"
- .com TLD服务器返回example.com的NS记录
- 本地 DNS 服务器向example.com权威 DNS 服务器请求www主机的A记录
- 本地 DNS 服务器从example.com权威 DNS 服务器获取到www.example.com的A记录
- 本地 DNS 服务器将结果返回给客户端→A记录(12.34.56.78),同时写入缓存方便下次查询。
二、DNS主要类型
在DNS服务器中,BIND支持多种区域类型(zone type),其中最常见的四种是:hint、forward、master和slave。它们各自有不同的用途和特点
- hint:用于初始化DNS服务器的根区域(root zone)。它提供了根域名服务器的初始列表
- master/primary:区域权威主服务器,存储区域数据的原始副本
- slave/secondary:区域权威从服务器,从主服务器同步区域数据
- forword:将特定域名的所有查询请求转发到其他DNS服务器(通常是上游DNS服务器)
BIND所支持的所有类型如下图所示:
三、安装配置
1. 安装命令
CentOS/RedHat:
yum install bind bind-utils -y
Debian/Ubuntu:
apt install bind9 bind9utils -y
2. DNS服务配置
(1) 主配置文件:/etc/named.conf
options {
listen-on port 53 { 10.10.10.22; };
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 { any; };
masterfile-format text ;
forward first;
forwarders {
8.8.8.8;
223.5.5.5;
};
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
本文标签: