您现在的位置是:亿华云 > 应用开发

Linux DNS 服务器之 BIND 安装配置(详细版)

亿华云2025-10-03 18:14:14【应用开发】2人已围观

简介DNS服务器在互联网生态系统中发挥着关键作用,而Linux系统是承载高负荷DNS部署的首选平台;不同类型的DNS服务器担负着不同职责。bind 是Linux 系统中用于实现域名解析的服务软件,全称为

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 -y1.

Debian/Ubuntu:

复制apt install bind9 bind9utils -y1. 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";1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.

(2) 区域声明文件:/etc/named.rfc1912.zones

复制// 正向区域声明 zone "example.com" IN { type master; file "named.example.com"; allow-update { none}; }; // 反向区域声明(10.10.10.0/24 网段) zone "10.10.10.in-addr.arpa" IN { type master; file "named.example.arpa"; allow-update { none}; };1.2.3.4.5.6.7.8.9.10.11.12.13.

(3) 正向解析配置文件示例:

复制$TTL 1D $ORIGIN example.com. @ IN SOA dns1.example.com. admin.example.com. ( 2025070501 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1.example.com. @ A 10.10.10.22 dns1 A 10.10.10.22 www A 10.10.10.25 ftp CNAME www1.2.3.4.5.6.7.8.9.10.11.12.13.

(4) 反向解析配置文件示例:

复制$TTL 1D @ IN SOA dns1.example.com admin.example.com. ( 2025070701 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1.example.com. 22 PTR dns1.example.com. 25 PTR www.example.com. 25 PTR ftp.example.com.1.2.3.4.5.6.7.8.9.10.11.

(5) 参数说明

$TTL(Time to Live):DNS缓存生存时间。$ORIGIN:指定了未带终止点(无点结尾)的域名解析基准,所有未明确指定完整域名(FQDN)的记录都会附加该基准点SOA(Start of Authority):起始授权机构,包含区域管理信息(序列号、刷新时间等)。serial:系列号,香港云服务器随着区域每次更新而递增refresh:刷新频率(1D表示1天刷新一次),指 slave 多久会主动检查 serial 的值,以便更新 zone file。retry:重连时间间隔,指 slave 若是连接 master 失败,多久之后会再次尝试,1H表示1个小时后重连。expire:指 slave 若是一直连接 master 失败,多久之后会放弃,1W表示1星期后放弃连接masterminimum:清除缓存最小时间间隔。

资源记录类型:

记录类型

含义

NS

指定域名的权威 DNS 服务器

A

IPv4 地址记录(域名 → IP)

AAAA

IPv6 地址记录(域名 → IP)

CNAME

别名记录

MX

邮件交换记录(优先级 + 邮件服务器)

PTR

反向解析记录(IP → 域名)

TXT

对域名进行标识和说明,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等

四、相关命令

(1) 启动dns服务

复制systemctl start named1.

(2) 检查主配置文件(named.conf)语法

复制named-checkconf1.

(3) 检查正、反向解析配置文件

复制named-checkzone example.com /var/named/named.example.com named-checkzone 10.10.10.in-addr.arpa /var/named/named.example.arpa1.2.

(4) 重新加载配置文件(不重启服务)

复制rndc reload1.

(5) 强制刷新缓存

复制rndc flush1.

(6) 客户端使用nc工具扫描dns服务器端口

复制nc -uvz -4 10.10.10.22 531.

(7) 客户端使用socat工具测试

复制echo "test" | socat -v - udp4-connect:10.10.10.22:531.

五、结果验证

正向解析:

反向解析:

可在DNS服务器上抓包:

复制tcpdump -i ens32 -nn udp port 531.

抓包结果如图所示:

参考资料:

[1] BIND 9 Administrator Reference Manual: https://bind9.readthedocs.io/en/latest/[2] BIND 9 Configuration Reference: https://ftp.isc.org/isc/bind/9.9.4/doc/arm/Bv9ARM.ch06.html

很赞哦!(76469)