运维必啃 DNS 宝典:拆解域名解析底层,手把手搭 BIND 企业服务 域名解析系统DNS是互联网核心底层基础设施负责域名与IP地址双向映射。若无DNS全网访问只能依靠晦涩难记的数字IP网络交互效率会大幅降低。本文完整覆盖DNS演进历史、层级架构、查询机制、全量资源记录、跨平台排错工具最终落地 CentOS 7 环境下 BIND 权威DNS主服务器完整生产级实操。文章目录一、DNS 服务基础介绍1. DNS 的诞生演进早期 HOSTS.txt 静态文件时代2. 域名系统整体构成3. DNS 层级命名体系核心专业术语完整域名层级结构标准格式二、DNS 两种核心查询机制1. 递归查询2. 迭代查询三、 标准互联网完整解析流程递归迭代组合99.9%线上场景四、DNS 资源记录 RRResource Record全解1. 资源记录通用字段模板2. 主流资源记录分类详解1A 记录IPv4正向解析2AAAA 记录IPv6正向解析3CNAME 别名记录4PTR 反向解析记录5NS 域名服务器记录6SOA 起始授权记录7MX 邮件交换记录8TXT 文本记录9SRV 服务定位记录3. 区域完整资源记录清单汇总五、全平台 DNS 排错与查询工具实操1. Windows 平台工具1ipconfig DNS缓存管理2nslookup 域名查询Windows/Linux 跨平台通用2. Linux 平台专业工具1host 轻量查询工具2dig 行业标准最强 DNS 排查工具3whois 域名注册信息查询六、BIND 权威 DNS 服务器企业级部署实战1. 权威 DNS 核心架构说明2. 实验环境节点规划节点基础环境配置3. BIND 软件安装与核心文件说明安装服务端与配套工具BIND 核心配置文件路径定义地址匹配列表4. /etc/named.conf 核心配置项详解1ACL 访问控制列表2listen-on 监听地址配置3访问权限控制三大核心指令4Zone 区域定义配置5. 区域解析库文件创建与规范1创建区域文件并修正权限2区域文件书写规范6. 部署收尾校验流程1运行 BIND2客户端测试七、总结一、DNS 服务基础介绍1. DNS 的诞生演进用户在浏览器输入域名访问网站时域名会被转换为IP地址客户端最终基于IP完成TCP/IP通信实现该映射的标准化协议即为DNSDomain Name System域名解析系统。网络中每台设备拥有唯一IP地址但人类无法海量记忆数字地址DNS应运而生将IP封装为可读字符域名。早期 HOSTS.txt 静态文件时代互联网前身 ARPAnet 初期依靠全局静态文件HOSTS.txt维护主机名与IP对应关系由 NIC网络信息中心统一维护用户修改主机名后通过邮件同步至NICNIC定期分发更新文件设备数量稀少时可稳定运行TCP/IP普及后网络规模爆发静态架构暴露致命缺陷名称冲突无法全局实时校验主机名唯一性重名频发数据不一致终端本地文件更新滞后全网解析数据割裂分布式架构DNS就此诞生彻底解决大规模网络域名解析痛点。业务流程说明Web客户端发起域名解析请求将www.huawei.com解析为目标IP1.2.3.4客户端携带解析后的IP发起HTTP请求与Web服务端建立通信。2. 域名系统整体构成DNS 采用分布式分层存储架构两大核心组件域名Domain面向用户的字符化主机标识浏览器输入的网站URL主体即为域名DNS解析服务器DNS Server分布式存储域名-IP映射数据库接收客户端解析请求并返回应答核心特性单台DNS服务器仅存储局部域名记录依靠层级联动完成全网解析。交互规则说明蓝色空心圆DNS Query客户端查询请求默认基于UDP 53端口传输红色空心圆DNS Reply服务器解析应答返回域名绑定的IP地址。3. DNS 层级命名体系核心专业术语Domain域同类资源记录的集合代表DNS命名空间完整子树示例xiaomi.comTLD顶级域 Top-Level Domain由 IANA互联网号码分配机构统一管理、授权委派分为两大类gTLD 通用顶级域按业务场景划分.com、.net、.edu、.org、.govccTLD 国家代码顶级域遵循ISO 3166-1国家编码标准.cn(中国)、.us(美国)、.uk(英国)、.ru(俄罗斯)IANA 官方根域数据库可查询全部合规顶级域https://www.iana.org/domains/root/db完整域名层级结构标准格式标准层级主机名.二级域名.顶级域.根域根域标识为.日常域名书写默认省略FQDN完全限定域名末尾必须携带根域点。www.huawei.com层级拆解根域.全网顶层根服务器集群顶级域.com商业通用顶级域次顶级域huawei企业自有业务域主机名www对外Web业务主机标识。二、DNS 两种核心查询机制DNS为分布式分层体系本地DNS无法存储全网域名记录无匹配记录时分为递归查询、迭代查询两种模式由DNS请求头部RD标志位控制RD1递归查询客户端默认模式RD0迭代查询1. 递归查询交互链路终端客户端 ↔ 本地DNS服务器运营商DNS/8.8.8.8/自建缓存DNS逻辑定义客户端仅发送1次请求全权委托本地DNS完成全链路查询服务器必须返回最终IP或报错不可转交客户端自行查询。通俗概括一问到底全程代办。2. 迭代查询交互链路本地DNS服务器 ↔ 根服务器/顶级域服务器/权威服务器逻辑定义本地DNS查询下级服务器无匹配记录时仅返回下一层级服务器地址由本地DNS逐层循环发起查询。通俗概括层层问路自主遍历。三、 标准互联网完整解析流程递归迭代组合99.9%线上场景以域名www.xiaomi.com为例完整五步解析链路步骤发起方接收方查询类型核心执行动作1客户端本地DNS递归查询客户端请求获取www.xiaomi.com最终IP等待完整结果2本地DNS根DNS服务器迭代查询根服务器无该域名记录返回.com顶级域服务器地址3本地DNS.com顶级域DNS迭代查询顶级域无记录返回xiaomi.com权威DNS服务器地址4本地DNSxiaomi.com权威DNS迭代查询权威服务器存储原始域名记录返回目标IPv4地址5本地DNS客户端结果响应将IP返回客户端同时缓存本条解析记录至本地四、DNS 资源记录 RRResource Record全解资源记录是DNS服务器存储域名属性的核心数据单元每条记录对应域名一类业务属性所有记录共用统一通用模板。1. 资源记录通用字段模板字段名字段释义owner-name记录归属域名TTL生存时间单位秒控制本地DNS缓存时长class网络类别全网通用INInternettype记录类型A/AAAA/CNAME/PTR/NS/MX等data记录对应存储数据IP、别名、服务器地址等2. 主流资源记录分类详解1A 记录IPv4正向解析作用主机域名映射至IPv4地址server.csh.cloud.86400IN A172.25.254.2542AAAA 记录IPv6正向解析作用主机域名映射至IPv6地址又称4A记录a.root-servers.net.604800IN AAAA2001:503:ba3e::2:303CNAME 别名记录作用将域名指向另一规范主域名多用于CDN、业务环境切换规则CNAME最终必须溯源至A/AAAA记录禁止多层嵌套易产生解析循环、性能损耗限制NS、MX记录不能绑定CNAME域名。www-dev.csh.cloud.30IN CNAME lab.csh.cloud. server.csh.cloud.30IN CNAME www.csh.cloud.# www-dev 为业务别名lab.csh.cloud 为真实规范域名4PTR 反向解析记录PTR或pointer资源记录将IPv4或IPv6地址映射到主机名。它们用于反向DNS解析。PTR记录以一种类似于主机名的特殊格式对IP地址进行编码。对于IPv4地址该地址被颠倒以最具体的部分开始然后视为in-addr.arpa域的子域中的主机。对于IPv6地址该地址在半字节边界每个十六进制数字上划分为子域并设置为ip6.arpa域的子域。4.0.41.198.in-addr.arpa.785IN PTR a.root-servers.net.0.3.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.3.a.b.3.0.5.0.1.0.0.2.ip6.arpa.86400IN PTR a.root-servers.net.5NS 域名服务器记录NS或名称服务器资源记录将域名映射到对其DNS区域具有权威性的DNS名称服务器。 该区域的每个公共权威名称服务器都必须具有NS记录。作用声明当前域的权威解析服务器域名注册时必须配置至少2条NS记录。【区域名】 TTL IN NS 【权威服务器FQDN.】 csh.cloud.86400IN NS dns.csh.cloud. 区域zone名字 该区域由哪台 DNS 服务器负责权威解答168.192.ip-addr.arpa.86400IN NS dns.csh.cloud.9.0.e.1.4.8.4.6.2.e.d.f.ip6.arpa.86400IN NS dns.csh.cloud.说明其中两个NS记录用于192.168.0.0/16网络和fde2:6484:1e09::/48网络的反向查找。classroom.csh.cloud上的区域可能包含NS记录以将对192.168.254.0/24和fde2:6484:1e09::1:: /64的反向查找委托给另一个名称服务器。NS记录映射的名称必须有A或4A记录。6SOA 起始授权记录SOA资源记录也叫做起始授权机构记录提供有关DNS区域如何运行的信息。 每个区域必须有一个SOA记录。指定了一个序列号指定其他权威性名称服务器用来确定何时从主要名称服务器传输区域资源记录的各种超时时间。csh.cloud.86400IN SOA dns.csh.cloud. root.csh.cloud.2015071700360030060480060记录值说明参数示例值含义MNAMEdns.csh.cloud.区域主服务器记录原始维护节点RNAMEroot.csh.cloud.运维负责人邮箱.替代rootcsh.cloudSERIAL2015071700区域版本号修改记录后必须自增主从同步判断依据REFRESH3600从服务器主动同步主服务器数据周期秒RETRY300同步失败后的重试间隔秒EXPIRE604800主服务器失联后从服务器停止对外应答的等待时长MINIMUM60域名不存在NXDOMAIN结果缓存时长7MX 邮件交换记录MX资源记录将域名映射到接受该域的电子邮件的邮件交换mail exchange。邮件服务器故障时提供负载平衡和冗余的邮件服务器帮助路由电子邮件。该记录类型的数据是用于确定在多个MX记录之间选择的优先级首选最低以及用于该名称的邮件交换的主机名。csh.cloud.86400IN MX20dns.csh.cloud.#20是优先级csh.cloud.86400IN MX10mail.csh.cloud. csh.cloud.86400IN MX100mailbackup.csh.cloud.8TXT 文本记录TXT 资源记录将名称映射到编码为可打印ASCII字符的任意文本。 它们通常用于提供用于各种电子邮件身份验证方案例如SPF DKIM和DMARC的数据以验证域所有权例如用于Google和Facebook以及用于其他目的。lwn.net.27272IN TXTvspf1 a:mail.lwn.net -all9SRV 服务定位记录SRV 资源记录可帮助客户端找到域中支持特定服务的主机。示例表明存在一个可以使用TCP传输协议_tcp与LDAP连接的LDAP服务器_ldap该主机属于域csh.cloud。 LDAP服务器是server.csh.cloud正在侦听端口389优先级为0权重为100 如果客户端接收到多个SRV记录则控制选择哪个服务器。_ldap._tcp.csh.cloud.86400IN SRV0100389server0.csh.cloud. tcp 协议 LDAP 服务端口389服务主机 server0.csh.cloud3. 区域完整资源记录清单汇总一个主机无论是客户端还是服务器都具有以下 DNS 资源记录一个或多个A或AAAA记录用于将其IP地址反向映射到名称的PTR记录一个或多个CNAME记录可选 DNS zone 还具有以下资源记录唯一的 SOA 记录每个权威名称服务器的 NS 记录一个或多个MX记录可选用于在域中查找服务的一个或多个SRV记录可选五、全平台 DNS 排错与查询工具实操1. Windows 平台工具1ipconfig DNS缓存管理# 查看本机DNS缓存记录ipconfig /displaydns|findstr huawei# 清空本地DNS解析缓存强制重新查询服务器ipconfig /flushdns2nslookup 域名查询Windows/Linux 跨平台通用交互式模式nslookup# 指定公共DNS服务器server8.8.8.8www.qq.comsetqMX# 切换查询MX邮件记录非交互式模式# 默认本地DNS查询nslookupwww.360.cn# 指定114公共DNS解析nslookupwww.qq.com114.114.114.1142. Linux 平台专业工具1host 轻量查询工具# 查询域名NS权威服务器host-tNS huawei.com# 查询A记录IPhostwww.qq.com# 查询MX邮件服务器host-tMX qq.com2dig 行业标准最强 DNS 排查工具# 完整输出A记录解析过程dig-tA www.qq.com# 精简仅输出IP日常排查首选digshort www.qq.com# 仅保留应答段过滤冗余信息dignocmd noall answer www.qq.com3whois 域名注册信息查询# CentOS 安装工具yuminstall-ywhois# 查询域名注册商、到期时间、DNS服务器、备案信息whois qq.com六、BIND 权威 DNS 服务器企业级部署实战1. 权威 DNS 核心架构说明权威名称服务器存储 DNS 资源记录并为其管理的区域提供权威答案。Linux中的Berkeley Internet Name DomainBIND软件可以实现权威的名称服务器。 BIND允许我们将权威服务器配置为区域的主要服务器或辅助服务器。区域中只有一台主服务器但可具有多台辅助服务器。 辅助服务器通过请求区域传输定期从主服务器下载区域信息的最新版本。 它们执行区域传输的频率以及如何知道其数据是否过时由区域的SOA资源记录控制。名称服务器可以是某些区域的主要服务器同时也可以其他区域的辅助服务器。当前BIND服务器角色为master和slave以后会变更为primary和secondary例如 BIND 9.16 ESV版本。注册新的DNS域时必须提供该域的所有公共权威名称服务器的名称和IP地址。我们的注册服务商将该信息放在父域的区域文件中如NS A和AAAA记录以便DNS解析器可以找到我们的名称服务器。为了帮助确保可靠性我们应该至少有两个公共DNS服务器并且它们应位于不同的站点以避免由于网络故障而造成的中断。**并非所有权威服务器都必须是公共的。 **例如使用primary服务器来管理区域文件并将区域信息发布到权威的secondary服务器。primary服务器是私有的而secondary服务器是面向公众的从而为外部客户端提供权威性的答案保护我们的primary服务器免受攻击。架构示例1外部客户端查找example.com查找过程 客户的仅缓存名称服务器首先查询其中一个根名称服务器。 它定向到负责.com域的名称服务器池。 这些服务器之一使用example.com域的NS记录进行响应因此仅缓存名称服务器会查询其中一个面向公众的辅助名称服务器。架构示例2内部客户端查找example.com更好的方法是提供内部slave权威服务器。 查询本地域的记录时消除了外部查询而且更加安全。2. 实验环境节点规划基于 CentOS 7 操作系统两台服务器模拟完整 DNS 环境主机名IP 地址角色定位dns-server10.1.8.10/24BIND 权威主 DNS 服务器dns-client10.1.8.11/24DNS 测试客户端节点基础环境配置dns-server 主机配置# 修改主机名hostnamectl set-hostname dns-server# 静态IP配置nmcli connection modify ens33 ipv4.method manual\ipv4.addresses10.1.8.10/24 ipv4.gateway10.1.8.2\ipv4.dns10.1.8.2 autoconnectyes# 重启网卡生效nmcli connection up ens33dns-client 主机配置# 修改主机名hostnamectl set-hostname dns-client# 静态IP配置nmcli connection modify ens33 ipv4.method manual\ipv4.addresses10.1.8.11/24 ipv4.gateway10.1.8.2\ipv4.dns10.1.8.10 autoconnectyes# 重启网卡生效nmcli connection up ens333. BIND 软件安装与核心文件说明安装服务端与配套工具通过安装bind软件包来安装BIND。 名称服务器本身作为named服务运行。 bind包将HTML和PDF格式的BIND文档在安装在/usr/share/doc/bind/目录。yuminstall-ybindbind-utils软件包拆分bindnamed 主服务程序DNS 服务核心bind-utilsbind 工具软件包用来测试、查询、排查 DNS包含 nslookup 、 dig 、 host等命令。dig → 最强大的 DNS 查询nslookup → Windows/Linux 通用查询host → 简单域名解析bind软件包默认将服务配置为基本的递归缓存名称服务器。 它被配置为localhost、相关域和地址的primary服务器以减轻根名称服务器的负担。 此默认配置还限制了对本地主机上程序的访问。 它侦听IPv4和IPv6环回接口的端口53 UDP/TCP 127.0.0.1和:: 1上的连接。BIND 核心配置文件路径named主要配置文件是/etc/named.conf。 该文件控制BIND的基本操作由root用户named组拥有具有八进制权限0640并且具有named_conf_t SELinux类型。配置文件还指定了每个区域的配置文件位置这些文件通常保存在/var/named中。/etc/named.conf服务全局主配置文件监听、权限、ACL、递归开关/var/named/区域解析库文件存储目录/var/log/messagesnamed 运行日志排错核心日志源默认安装后 BIND 为缓存递归服务器仅监听本地回环 127.0.0.1需修改配置开放局域网访问。配置DNS服务器需要执行以下步骤配置地址匹配列表。配置named侦听的IP地址。配置客户端的访问控制。配置zone。编写区域文件。定义地址匹配列表在/etc/named.conf文件的开头可以使用acl指令定义地址匹配列表。 acl指令不是用于控制客户端对服务器的访问而是使用它们来定义IP地址和网络列表。把一组IP 地址 / 网段定义成一个名字给 IP 段起别名方便 DNS 权限控制它们提供别名可以与访问控制指令和其他配置选项一起使用并使更新配置文件更加容易。后面在named.conf里可以直接用这个名字控制谁能查询DNS谁能递归查询谁能同步区域数据条目可以是完整的IP地址或网络用尾点10.1.8.或CIDR表示法192.168.0/24或2001:db8::/32表示也可以使用先前定义的地址匹配列表的名称。请考虑以下ACL定义# vim /etc/named.conf# 定义一个叫 trusted-nets 的组 包含两个网段 192.168.10.0/24 和 192.168.20.0/24acl trusted-nets{192.168.10.0/24;192.168.20.0/24;};acl classroom{10.1.8.0/24;};在其值中使用classroom的任何指令都将与10.1.8.0/24网络中的主机匹配。acl语句定义的地址集可以被多个指令引用。acl定义访问控制列表trusted-nets你自己起的名字可信网段{ } 里面放允许的网段 192.168.10.0/24第一个可信网段 192.168.20.0/24第二个可信网段4. /etc/named.conf 核心配置项详解1ACL 访问控制列表作用批量定义 IP / 网段别名统一管控查询、递归、区域同步权限简化配置维护。内置全局预设 ACLACL 名称匹配范围业务场景none拒绝所有 IP全局封禁策略any匹配全部 IP公网开放解析场景localhost本机所有网卡 IP仅服务器本地使用localnets本机所有直连网段局域网信任主机案列你的服务器IP 10 .1 .8 .0/24localhost → 匹配127.0.0.1、::1、10.1.8.10localnets → 匹配127.0.0.0/8、::1/128、10.1.8.0/242listen-on 监听地址配置我们可以在/etc/named.conf文件options块中指定许多全局设置。 listen-on和listen-on-v6指令指定了命名监听的接口和端口。listen-on选项采用以分号分隔的IPv4地址列表。listen-on-v6使用IPv6地址。示例将BIND配置为侦听10.1.8.10 IPv4地址和默认的IPv4回送地址。vim/etc/named.conf options{# 监听本机回环 内网业务IPlisten-on port53{127.0.0.1;10.1.8.10;};# 监听所有本机IP# listen-on port 53 { any; };listen-on-v6 port53{::1;};};listen-on是 “监听哪些本机 IP”127.0.0.1 只允许本机内部访问 DNS本机自己用10.1.8.10 允许局域网 / 外部机器访问这台服务器的DNS谁能访问本机访问 127.0.0.1:53 → 能收到本机 / 其他机器访问 10.1.8.10:53 → 能收到访问本机其他 IP如 192.168.x.x → 收不到如果你想让 DNS 监听所有地址把配置改成 listen-on port 53 { any; };3访问权限控制三大核心指令allow-query控制所有查询。 默认情况下allow-query设置为localhost对于公开权威服务器必须定义 allow-query { any; }; 允许互联网托管者从他们那里获取信息。allow-recursion控制递归查询。权威服务器不应允许递归查询 防止服务器被用于DNS放大分布式拒绝服务攻击并更好地保护其免受缓存中毒攻击。allow-transfer控制允许执行区域传输AXFR的 IP仅放行从服务器 IP防止攻击者爬取全量域名记录DNS 主从架构中主DNS负责写解析记录从DNS需要从主服务器下载全部解析记录安全配置示例内网权威服务器options{recursion no;# 关闭递归纯权威解析allow-query{any;};allow-transfer{10.1.8.0/24;};# 仅内网从服务器同步数据};4Zone 区域定义配置示例以下named.conf块将服务器配置为承载csh.cloud及其相应的反向查找区域8.1.10.in- addr.arpa的主要区域文件。 它使用从ACL标识csh.cloud服务器中检索到的区域文件充当csh.cloud域的辅助服务器。vim/etc/named.conf......# 最后添加如下内容zonecsh.cloudIN{typemaster;filecsh.cloud.zone;};zone8.1.10.in-addr.arpaIN{typemaster;file10.1.8.zone;};配置说明type指定服务器角色。file指定相对路径名。 相对路径由 options 块中的 directory 指令设置。5. 区域解析库文件创建与规范1创建区域文件并修正权限辅助区域文件应保存在/var/named/slaves中。辅助服务器启动时会将其缓存的区域版本与主服务器上的当前版本进行比较如果区域文件版本是最新的则使用该区域文件 如果区域文件版本不是最新的或文件不存在则named执行区域传输并将结果缓存在该文件中。BIND 应该能够读取这些区域文件但不能写入它们。 这些文件应归root用户和named组所有以便守护程序在某种程度上受到损害时不能更改它们。# 新建正向、反向区域文件touch/var/named/csh.cloud.zone /var/named/10.1.8.zone# 权限640属主root、属组namedchmod640/var/named/*.zonechownroot:named /var/named/*.zone# 如果系统开启了selinux功能执行下面命令设置文件标签# SELinux安全标签配置chcon-tnamed_zone_t /var/named/*.zone2区域文件书写规范BIND区域文件是一个文本文件每行包含一个指令或资源记录。如果资源记录的数据中包含括号则它可以跨越多行。在同一物理行上的分号;右侧的所有内容均被注释掉。区域文件可以以$TTL指令开头该指令为任何未列出的资源记录设置默认的TTL。 这使我们可以一次为许多资源记录调整TTL。 无需编辑整个文件。 如果TTL是数字则以秒为单位。$TTL3600在数字后面可以跟单个字母指定其他时间单位M表示分钟1M为60H小时1H是3600D天1D为86400W数周1W是604800每个区域文件仅包含一个SOA授权开始资源记录。$TTL1H csh.cloud. IN SOA dns.csh.cloud. root.csh.cloud.(2026080501;序列号修改记录必须13600;刷新周期1小时300;重试间隔5分钟604800;过期时长7天60;NXDOMAIN缓存60秒);NS权威服务器记录 IN NS dns.csh.cloud.;A正向解析记录 dns IN A10.1.8.10 www IN A10.1.8.10testIN A10.1.8.11;CNAME别名记录 blog IN CNAME www.csh.cloud.定义区域的名称在此示例中为example.com后跟 IN SOA 标识记录的类别和类型互联网SOA记录。此区域的主要名称服务器 primary.example.com 的名称。该区域负责方的联系电子邮件地址。地址中的第一个点 .被视为 root.example.com. 代表 rootexample.com. 。代表文件修订的序列号。 每次文件更改时必须手动增加序列号值。辅助服务器应多久查询一次主服务器以查看是否需要刷新区域。如果辅助务器刷新失败则应尝试尝试重新连接的频率。在放弃之前辅助服务器应尝试重新连接到无响应的主要服务器的时间。 发生这种情况时辅助服务器将假定该区域不再存在并停止回答该区域的查询。其他名称服务器缓存来自该区域的NXDOMAIN记录的时间。添加记录正向记录将名称映射到IP地址和其他记录。该区域文件必须具有SOA记录。每个公用名称服务器的NS记录。该区域的其他A AAAA CNAME MX SRV和TXT记录。6. 部署收尾校验流程在重新加载或重新启动named之前应该验证/etc/named.conf文件和区域文件的语法。named-checkconf验证 /etc/named.conf。named-checkconf# 如果配置文件不在默认位置使用一下命令命令验证named-checkconf /media/backups/named.confnamed-checkzonezone zone-file通过zone-file验证zone。named-checkzone csh.cloud /var/named/csh.cloud.zone zone csh.cloud/IN: loaded serial0OK启动服务器时应监视系统日志中是否有错误。 单个错误也可能会导致整个区域无法加载但是无法加载区域不会阻止后台驻留程序启动。因此除非我们在启动过程中监视系统日志否则很难弄清楚哪里错了。例如我们可以查看与named.service单位文件有关的systemd的日志输出journalctl-f_SYSTEMD_UNITnamed.service注意区域行每个区域代表服务器加载的权威区域。 如果无法加载区域请注意显示的错误消息。确认区域正确加载后请验证区域内容是否正确。使用 host -l DOMAIN或 dig -t AXFR DOMAIN命令启动区域传输生成所有区域记录的列表。 请记住这必须在服务器的 allow-transfer指令中列出的主机上完成。1运行 BIND# 启用并启动服务systemctlenablenamed--nowsystemctl status named# 设置防火墙firewall-cmd --add-servicedns firewall-cmd --add-servicedns--permanent2客户端测试# 配置客户端 dnsnmcli connection modify ens33 ipv4.dns10.1.8.10 nmcli connection up ens33# ping 工具测试pingdns.csh.cloud PING dns.csh.cloud(10.1.8.10)56(84)bytes of data.64bytes from dns.csh.cloud(10.1.8.10):icmp_seq1ttl64time1.26mspingstudent.csh.cloud PING client.csh.cloud(10.1.8.11)56(84)bytes of data.64bytes from client.csh.cloud(10.1.8.11):icmp_seq1ttl64time0.092ms# 其他工具hoststudent.csh.cloud student.csh.cloud is analiasforclient.csh.cloud. client.csh.cloud has address10.1.8.11host10.1.8.1010.8.1.10.in-addr.arpa domain name pointer server.csh.cloud.10.8.1.10.in-addr.arpa domain name pointer dns.csh.cloud. getent hosts student.csh.cloud10.1.8.11 client.csh.cloud student.csh.cloud# dig工具测试yuminstall-ybind-utils# 查询相关记录10.1.8.10指定向10.1.8.10服务器查询记录# 查询NS记录dig10.1.8.10 csh.cloud NS# 查询MX记录dig10.1.8.10 csh.cloud MX# 查询A记录dig10.1.8.10 student.csh.cloud# 查询PTR记录dig10.1.8.10-x10.1.8.200七、总结本文完整讲解 DNS 从理论到落地全流程从 HOSTS 静态文件缺陷切入介绍分层 DNS 架构与解析逻辑区分递归、迭代查询详解 A、AAAA、CNAME、MX 等资源记录用法整理 Windows、Linux 双平台 DNS 排查命令以 CentOS7 搭配 BIND 给出标准化部署流程配套内外网 DNS 优化方案兼顾可用性与安全企业运维里 DNS 是业务访问关键入口权威服务器需管控递归权限、限制区域传输以防范攻击内网私有 DNS 可减少解析延迟日常故障优先用 dig 排查链路借助 TTL、SOA 序列号处理缓存同步异常。