第六章 DNS域名解析服务器概述产生原因IP 地址:是互联网上计算机唯一的逻辑地址通过 IP 地址实现不同计算机之间的相互通信每台联网计算机都需要通过 IP 地址来互相联系和分别但由于 IP 地址是由一串容易混淆的数字串构成人们很难记忆所有计算机的 IP 地址这样对于我们日常工作生活访问不同网站是很困难的。基于这种背景人们在 IP 地址的基础上又发展出了一种更易识别的符号化标识这种标识由人们自行选择的字母和数字构成相比 IP 地址更易被识别和记忆逐渐代替 IP 地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名域名虽然更易被用户所接受和使用但计算机只能识别纯数字构成的 IP 地址不能直接读取域名。因此要想达到访问效果就需要将域名翻译成 IP 地址。而 DNS 域名解析承担的就是这种翻译效果作用DNSDomain Name System是互联网上的一项服务用于将域名和IP地址进行相互映射使人更方便的访问互联网正向解析域名-IP反向解析IP-域名连接方式DNS使用53端口监听网络、查看方法DNS默认以UDP这个较快速的数据传输协议来查询但没有查询到完整的信息时就会再次以TCP协议重新查询则启动DNS时会同时启动TCP以及UDP的port53因特网的域名结构拓扑由于因特网的用户数量较多则因特网命名时采用层次树状结构的命名方法域名(domain name)任何一个连接在因特网上的主机或路由器都有一个唯一的层次结构的名称域domain)是名字空间中一个可被管理的划分结构注意域名只是逻辑概念并不代表计算机所在的物理地点分类国家顶级域名采用ISO3166的规定如cn代表中国us代表美国uk代表英国等等。国家域名又常记为CCTLD(country code top-level domainscc表示国家代码contry-code)用顶级域名最常见的通用顶级域名有7个com (公司企业)net (网络服务机构)org (非营利组织)int (国际组织)gov (美国的政府部门)mil (美国的军事部门)edu(教育机构)基础结构域名(infrastructure domain)这种顶级域名只有一个即arpa用于反向域名解析因此称为反向域名域名服务器类型划分组织架构根域名服务器最高层次的域名服务器所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。本地域名服务器要对因特网上任何一个域名进行解析只要自己无法解析就首先求助根域名服务器。则根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了那么整个DNS系统就无法工作。所以根域名服务器并不直接把待查询的域名直接解析出IP地址而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。在与现有IPv4根服务器体系架构充分兼容基础上由我国下一代互联网国家工程中心领衔发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6互联网协议第六版根服务器架设事实上形成了13台原有根加25台IPv6根的新格局为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4台由1台主根服务器和3台辅根服务器组成打破了中国过去没有根服务器的困境顶级域名服务器负责管理在该顶级域名服务器注册的二级域名权威域名服务器负责一个“区”的域名服务器本地域名服务器本地域名服务器不属于域名服务器的层次结构当主机发出DNS查询时这个查询报文就发送给本地域名服务器为了提高域名服务器的可靠性DNS域名服务器都把数据复制到几个域名服务器来保存如 主服务器在特定区域内具有唯一性负责维护该区域内的域名与 IP 地址之间的对应关系 真正干活的从服务器从主服务器中获得域名与 IP 地址的对应关系并进行维护以防主服务器宕机等情 况打下手的缓存服务器通过向其他域名解析服务器查询获得域名与 IP 地址的对应关系并将经常查询 的域名信息保存到服务器本地以此来提高重复查询时的效率一般部署在企业内网的网关 位置用于加速用户的域名查询请求DNS域名解析过程分类递归解析DNS 服务器在收到用户发起的请求时必须向用户返回一个准确的查询结果。如果 DNS 服务器本地没有存储与之对应的信息则该服务器需要询问其他服务器并将返回的查询结果提交给用户迭代解析反复DNS 服务器在收到用户发起的请求时并不直接回复查询结果而是告诉另一台 DNS 服务器的地址用户再向这台 DNS 服务器提交请求依次反复直到返回查询结果解析图过程分析第一步在浏览器中输入www . google .com 域名本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的 IP 地址如果缓存中有这个解析过程就结束。浏览器缓存域名也是有限制的不仅浏览器缓存大小有限制而且缓存的时间也有限制通常情况下为几分钟到几小时不等域名被缓存的时间限制可以通过 TTL 属性来设置。这个缓存时间太长和太短都不太好如果时间太长一旦域名被解析到的 IP 有变化会导致被客户端缓存的域名无法解析到变化后的 IP 地址以致该域名不能正常解析这段时间内有一部分用户无法访问网站。如果设置时间太短会导致用户每次访问网站都要重新解析一次域名第二步如果浏览器缓存中没有数据浏览器会查找操作系统缓存中是否有这个域名对应的 DNS 解析结果。其实操作系统也有一个[域名解析]的过程在 Linux 中可以通过 / etc/hosts 文件来设置而在 windows 中可以通过配置 C:\Windows\System32\drivers\etc\hosts 文件来设置用户可以将任何域名解析到任何能够访问的 IP 地址。例如我们在测试时可以将一个域名解析到一台测试服务器上这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地 DNS 解析的规程所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的 IP 地址上导致这些域名被劫持第三步前两步是在本地电脑上完成的若无法解析时就要用到我们网络配置中的 DNS 服务器地址 了。操作系统会把这个域名发送给这个本地 DNS 服务器。每个完整的内网通常都会配置本地 DNS 服务器例如用户是在学校或工作单位接入互联网那么用户的本地 DNS 服务器肯定在学校或工作单位里面。它们一般都会缓存域名解析结果当然缓存时间是受到域名的失效时间控制的。大约 80% 的域名解析到这里就结束了后续的 DNS 迭代和递归也是由本地 DNS 服务器负责第四步如果本地 DNS 服务器仍然没有命中就直接到根 DNS 服务器请求解析第五步根 DNS 服务器返回给本地 DNS 域名服务器一个顶级 DNS 服务器地址它是国际顶级域名服务器如. com、.cn、.org 等全球只有 13 台左右第六步本地 DNS 服务器再向上一步获得的顶级 DNS 服务器发送解析请求第七步接受请求的顶级 DNS 服务器查找并返回此域名对应的 Name Server 域名服务器的地址这个 Name Server 服务器就是我要访问的网站域名提供商的服务器其实该域名的解析任务就是由域名提供商的服务器来完成。 比如我要访问 www.baidu.com而这个域名是从 A 公司注册获得的那么 A 公司上的服务器就会有 www.baidu.com 的相关信息第八步返回该域名对应的 IP 和 TTL 值本地 DNS 服务器会缓存这个域名和 IP 的对应关系缓存时间由 TTL 值控制第九步Name Server 服务器收到查询请求后再其数据库中进行查询找到映射关系后将其IP地址返回给本地DNS服务器第十步本地DNS服务器把解析的结果返回给本地电脑本地电脑根据 TTL 值缓存在本地系统缓存中域名解析过程结束在实际的 DNS 解析过程中可能还不止这 10 步如 Name Server 可能有很多级或者有一个 GTM 来负载均衡控制这都有可能会影响域名解析过程注意从客户端到本地DNS服务器是属于递归查询而DNS服务器之间使用的交互查询就是迭代查询114.114.114.114是国内移动、电信和联通通用的DNS手机和电脑端都可以使用干净无广告解析成功率相对来说更高国内用户使用的比较多而且速度相对快、稳定是国内用户上网常用的DNS223.5.5.5和223.6.6.6是阿里提供的免费域名解析服务器地址8.8.8.8是GOOGLE公司提供的DNS该地址是全球通用的相对来说更适合国外以及访问国外网站的用户使用搭建DNS域名解析服务器概述BINDBerkeley Internet Name Domain 伯克利因特网域名解析服务是一种全球使用最广泛的、最高效的、最安全的域名解析服务程序安装软件[rootmaster ~]# yum install bind -ybind服务中三个关键文件/etc/named.conf : 主配置文件共59行去除注释和空行之和有效行数仅30行左右用于设置bind服务程序的运行/etc/named.rfc1912.zones 区域配置文件zone用于保存域名和IP地址对应关系文件的所在位置类似于图书目录当需要修改域名与IP映射关系时需要在此文件中查找相关文件位置/var/named 目录数据配置文件目录该目录存储保存域名和IP地址映射关系的数据文件主配置文件分析主配置文件共4部分组成options{}logging{}zone{}include常用参数options { # 全局参数设置 listen-on port 53 { 127.0.0.1; }; # 重要监听允许访问的IP与端口可以使用IP地址、网址、所有主机any listen-on-v6 port 53 { ::1; }; # 重要监听允许访问的ipv6与端口 directory /var/named; # DNS数据目录位置默认即可 dump-file /var/named/data/cache_dump.db; # 默认缓存文件位置默认即可 statistics-file /var/named/data/named_stats.txt; # DNS状态文件保存文件默认即可 memstatistics-file /var/named/data/named_mem_stats.txt; # 内存状态文件保存文件默认即可 secroots-file /var/named/data/named.secroots; # 安全根服务器保存位置默认即可 recursing-file /var/named/data/named.recursing; # 递归查询文件保存位置默认即可 allow-query { localhost; }; # 重要表示允许哪些客户进行访问可以书写IP地址、网址、所有主机any recursion yes; # 重要允许递归查询若删除则为迭代查询 dnssec-validation yes; # 开启加密默认即可 managed-keys-directory /var/named/dynamic; # 指定目录中文件保存位置用于管理密钥DNSSEC pid-file /run/named/named.pid # pid文件保存路径默认即可 session-keyfile /run/named/session.key; # 会话密钥存储路径自动生成默认即可 include /etc/crypto-policies/back-ends/bind.config; # 把/etc/crypto-policies/back-ends/bind.config这个系统加密策略配置文件导入并合并到当前BIND DNS配置中 }; logging { # 指定日志记录的分类及其存储路径 channel default_debug { # 设置日志输出方式 file data/named.run; # 产生日志信息文件的位置 severity dynamic; # 日志级别 }; }; zone . IN { # zone 表示区域.表示根此处设置DNS根服务器的相关内容 type hint; # 表示服务器的类型为根 file named.ca; # 用于保存dns根服务器信息的文件存储路径/var/named/named.ca一共有13台ipv4和13台ipv6根服务器信息 }; include /etc/named.rfc1912.zones; # 表示当前DNS服务器的区域配置文件位置 include /etc/named.root.key; # 密钥存储文件位置一般需要修改三部分listen-on port 53 { 127.0.0.1; }; 即监听ip及端口allow-query { localhost; }; 允许那些客户端访问recursion yes; 是否开启递归查询区域配置文件作用/etc/named.rfc1912.zones文件为bind服务程序的区域配置文件用来保存域名与IP地址映射关系文件的位置是一系列功能模板的集合区域配置文件示例分析正向解析zone localhost.localdomain IN { # 正向解析域名 type master; # 服务类型master表示主服务器slave表示从服务器hint根服务器 file named.localhost; # 域名与IP地址规则文件存储位置 allow-update { none; }; # 允许哪些客户端动态更新本机域名解析 }; # allow-update允许更新解析库内容一般关闭 # allow-query允许查询主机白名单 # allow-tranfter允许同步的主机白名单常用 # allow-recursion允许递归的主机反向解析zone 1.0.0.127.in-addr.arpa IN { # 表示127.0.0.1的反向解析配置IP地址需要倒置书写只需书写网段即可 type master; file named.loopback; # 反向解析的规则文件保存位置 allow-update { none; }; };正向解析资源文件概述查看$TTL 1D # 设置生存周期时间为1天$表示宏定义 IN SOA rname.invalid. ( # : 表示zone域现在表示域名如baidu.com # IN SOA : 授权信息开始 # rname.invalid. : 域名管理员的邮箱不能使用使用点代替邮件分隔符 0 ; serial # 序列号10位以内的整数 1D ; refresh # 更新频率为1天 1H ; retry # 失败重试时间为1小时 1W ; expire # 失效时间为1周 3H ) ; minimum # 缓存时间为3小时 IN NS ns.域名 ns IN A 域名解析服务器IP地址 www IN A 域名解析服务器IP地址 bbs IN A 域名解析服务器IP地址 mail IN A 域名解析服务器IP地址 # A表示IPV4地址AAAA表示IPV6地址域名解析记录分析A记录A 代表 Address用来指定域名对应的 IP 地址如将 item.taobao.com 指定到 115.238.23.xxx将 switch.taobao.com 指定到 121.14.24.xxxMX记录Mail Exchange就是可以将某个域名下的邮件服务器指向自己的 Mail Server如 taobao.com 域名的 A 记录 IP 地址是 115.238.25.xxx如果将 MX 记录设置为 115.238.25.xxx即 xxxtaobao.com 的邮件路由DNS 会将邮件发送到 115.238.25.xxx 所在的服务器而正常通过 Web 请求的话仍然解析到 A 记录的 IP 地址CNAME 记录Canonical Name即别名解析。所谓别名解析就是可以为一个域名设置一个或者多个别名如将 aaa.com 解析到 bbb.net、将 ccc.com 也解析到 bbb.net其中 bbb.net 分别是 aaa.com 和 ccc.com 的别名NS记录为某个域名指定 DNS 解析服务器也就M是这个域名由指定的 IP 地址的 DNS 服务器取解析TXT 记录为某个主机名或域名设置说明如可以为 ddd.net 设置 TXT 记录为 这是 XXX 的博客 这样的说明反向解析资源文件实验1正向解析服务端IP客户端IP网址192.168.48.130192.168.48.131www.openlab.com准备工作# 服务端及客户端都关闭安全软件 [rootmaster ~]# setenforce 0 [rootmaster ~]# systemctl stop firewalld # 服务端安装bind软件 [rootmaster ~]# yum install nfs-utils -yDNS配置第一步服务端操作编辑bind主配置文件[rootmaster ~]# vim /etc/named.conf # 需改2行 listen-on port 53 { any; }; allow-query { any; };第二步服务端操作编辑区域配置文件可以选择一个模版修改局部推荐也可以全部清空重启写入数据[rootmaster named]# vim /etc/named.rfc1912.zones zone openlab.com IN { # 双引号中输入表示管理那个区域 type master; file openlab.com.zone; # 双引号中输入表示数据配置文件的名称注意不写路径 allow-update { none; }; };第三步服务端操作编辑数据配置文件使用拷贝命令将模版文件(/var/named/named.localhost)复制一份在修改局部注意拷贝时需要加-a参数即拷贝内容及文件属性保证文件内容一致、权限等信息不变[rootmaster ~]# cd /var/named # 切换到数据配置文件存储路径 [rootmaster named]# ls data dynamic named.ca named.empty named.localhost named.loopback slaves [rootmaster named]# cp -a named.localhost openlab.com.zone # -a 完整拷贝 [rootmaster named]# vim openlab.com.zone # 完整格式修改如下 $TTL 1D openlab.com. IN SOA ns.openlab.com. admin.openlab.com.( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum openlab.com. IN NS ns.openlab.com. ns.openlab.com. IN A 192.186.182.147 www.openlab.com. IN A 192.168.182.147 bbs.openlab.com. IN A 192.168.182.147 ftp.openlab.com. IN A 192.186.182.147 www1.openlab.com. IN CNAME www.openlab.com.第四步服务端重启服务[rootmaster named]# systemctl restart named测试定义客户端将客户端的dns修改为服务端的IP地址# 编辑客户端网卡配置文件 [rootmaster ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 DNS1192.168.182.147 # dns改为服务器端的IP地址 [rootmaster ~]# nmcli c reload [rootmaster ~]# nmcli c up ens32 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/4 # 定位客户端测试 [rootmaster ~]# nslookup www.openlab.com Server: 192.168.182.147 Address: 192.168.182.147#53 Name: www.openlab.com Address: 192.168.182.147 [rootmaster ~]# nslookup # 进入交互模式 bbs.openlab.com Server: 192.168.182.147 Address: 192.168.182.147#53 Name: bbs.openlab.com Address: 192.168.182.147 # ctrld 退出 [rootmaster ~]# dig www.openlab.com ; DiG 9.16.23 www.openlab.com ;; global options: cmd ;; Got answer: ;; -HEADER- opcode: QUERY, status: NOERROR, id: 55926 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: d2633399e373c4070100000069ec5810abb62becd7a5c124 (good) ;; QUESTION SECTION: ;www.openlab.com. IN A ;; ANSWER SECTION: www.openlab.com. 86400 IN A 192.168.182.147 ;; Query time: 0 msec ;; SERVER: 192.168.182.147#53(192.168.182.147) ;; WHEN: Sun May 17 12:00:34 CST 2026 ;; MSG SIZE rcvd: 88 [rootmaster ~]# nslookup www1.openlab.com Server: 192.168.182.147 Address: 192.168.182.147#53 www1.openlab.com canonical name www.openlab.com. Name: www.openlab.com Address: 192.168.182.147注意第三步数据配置文件可以进行精简SOA起始授权记录openlab.com. IN SOA ns.openlab.com. admin.openlab.com. (表示openlab.com.这个域名指定dns服务器为ns.openlab.com.这台主机以及其它附加信息ns记录openlab.com. IN NS ns.openlab.com. 声明openlab.com.这个域名的dns服务器为ns.openlab.com.主机以上区别NS记录仅仅只是声明该域内哪台主机是dns服务器用来提供名称解析服务NS记录不会区分哪台dns服务器是master哪台dns服务器是slave。而SOA记录则用于指定哪个NS记录对应的主机是master dns服务器也就是从多个dns服务器中挑选一台任命其为该域内的master dns服务器其他的都是slave都需要从master上获取域相关数据A记录表示那台主机解析为什么IP地址CNAME记录别名www1.openlab.com.主机解析为www.openlab.com.主机在查找对应IP精简原则:可以使用替代域名如替代openlab.com.可以使用空格或tab重复继承上一行第一列的值可以省略域名会自动补全如www为www.openlab.com.配置文件可以省略如下[rootmaster ~]# vim openlab.com.zone $TTL 1D IN SOA ns.openlab.com. admin.openlab.com.( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.openlab.com. ns IN A 192.168.182.147 www IN A 192.168.182.147 ftp IN A 192.168.182.147 bbs IN A 192.168.182.147 www1 IN CNAME www实验2反向解析基于上例的正向解析服务端IP客户端IP网址192.168.48.130192.168.48.131www.openlab.com准备工作# 服务端及客户端都关闭安全软件 [rootmaster ~]# setenforce 0 [rootmaster ~]# systemctl stop firewalld # 服务端安装bind软件 [rootmaster ~]# yum install bind -y # 服务端配置静态IP [rootmaster ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses 1912.168.182.147/24 ipv4.gateway 192.168.182.1 ipv4.dns 114.114.114.114 [rootmaster ~]# nmcli c reload [rootmaster ~]# nmcli c up ens32 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/2 # 客户端设置静态IP [rootmaster ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses 192.168.182.148/24 ipv4.gateway 192.168.182.1 ipv4.dns 192.168.182.147 # 注意此处dns改为服务端的IP地址后续就不用再单独修改 [rootmaster ~]# nmcli c reload [rootmaster ~]# nmcli c up ens32 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/2第一步服务端操作编辑主配置文件[rootmaster ~]# vim /etc/named.conf # 修改2行 listen-on port 53 { any; }; # any为允许所有主机 allow-query { 192.168.182.148; }; # 此处也可以写为IP地址第二步服务端操作编辑区域配置文件添加反向解析记录注意区域名称中IP地址反向书写只需书写网段号[rootmaster named]# vim /etc/named.rfc1912.zones zone 182.168.192.in-addr.arpa IN { type master; file 192.168.182.arpa; allow-update { none; }; };第三步服务端操作编辑数据配置文件复制一份反向解析模/var/named/named.loopback,复制时需要加-a 参数在修改局部即可[rootmaster ~]# cd /var/named [rootmaster named]# ls data dynamic named.ca named.empty named.localhost named.loopback slaves [rootmaster named]# cp -a named.loopback 192.168.182.arpa [rootmaster named]# vim 192.168.182.arpa $TTL 1D IN SOA ns.openlab.com jenny.qq.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS ns.openlab.com. ns.openlab.com. IN A 192.168.182.147 147 IN PTR ns.openlab.com. 147 IN PTR www.openlab.com. 147 IN PTR ftp.openlab.com.第四步重启服务[rootmaster named]# systemctl restart named部署DNS从服务器实验3主从DNS服务器完全区域传送将一个区域文件复制到多个服务器上的过程叫做区域传送将主服务器上的所有信息复制到辅助服务器上来实现完全区域传送即复制整个区域文件服务器说明设备IP系统主服务器192.168.48.130Euler从服务器192.168.48.131Euler第一步两个服务器恢复快照预处理、安装软件、设置网卡信息[rootmaster ~]# setenforce 0 # 两个服务器都处理 [rootmaster ~]# systemctl stop firewalld[rootmaster ~]# yum install bind -y # 两个服务器都安装# 主服务器IP信息 [rootmaster ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses 192.168.182.147/24 ipv4.gateway 192.168.182.2 ipv4.dns 192.168.182.147 # dns改为自己使本机具备测试功能 [rootmaster ~]# nmcli c reload [rootmaster ~]# nmcli c up ens32# 从服务器IP信息 [rootmaster ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses 192.168.182.148/24 ipv4.gateway 192.168.182.2 ipv4.dns 192.168.182.148 [rootmaster ~]# nmcli c reload [rootmaster ~]# nmcli c up ens32 连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/2第二步主服务端操作编辑主配置文件设置监听IP# 主服务器端操作 [rootmaster ~]# vim /etc/named.conf listen-on port 53 { 192.168.182.147; }; # {}中改为any也可写为本机IP allow-query { any; }; # {}中改为any也可写为服务端第三步主服务端操作打开区域配置文件添加如下内容重点为允许从服务器的同步请求即修改为 allow-transfer {允许同步区域信息的主机IP;};参数[rootmaster ~]# vim /etc/named.rfc1912.zones # 修改为以下内容 zone openlab.com IN { type master; file openlab.com.zone; allow-transfer { 192.168.182.148; }; }; zone 182.168.192.arpa IN { type master; file 192.168.182.arpa; allow-transfer { 192.168.182.148; }; };第二步主服务端操作设置正反向解析数据配置文件内容如下# 正向解析 [rootmaster ~]# cd /var/named [rootmaster named]# ls [rootmaster named]# cp -a named.localhost openlab.com.zone [rootmaster named]# vim openlab.com.zone $TTL 1D IN SOA ns.openlab.com. admin.openlab.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.openlab.com. NS slave.openlab.com. ns IN A 192.168.182.147 www IN A 192.168.182.147 bbs IN A 192.168.182.147 slave IN A 192.168.182.148 ftp IN CHAME www# 反向解析 [rootmaster named]# cd /var/named [rootmaster named]# ls [rootmaster named]# cp -a named.loopback 192.168.182.arpa [rootmaster named]# vim /var/named/192.168.182.arpa # 配置内容如下 $TTL 1D IN SOA ns.openlab.com admin.openlab.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.openlab.com. NS slave.openlab.com. 147 IN PTR ns.openlab.com. 147 IN PTR www.openlab.com. 147 IN PTR bbs.openlab.com. 147 IN PTR ftp.openlab.com. 148 IN PTR slave.openlab.com.第三步主服务端操作重启服务[rootmaster named]# systemctl restart named第四步从服务端操作修改主配置文件[rootmaster ~]# vim /etc/named.conf listen-on port 53 { 192.168.182.148; }; allow-query { any; };第五步从服务端操作修改区域配置文件填写主服务器的 IP 地址与要抓取的区域信息注意此时的服务类型应该是 slave从[rootmaster ~]# vim /etc/named.rfc1912.zones # 清空后添加以下内容 zone openlab.com IN { type slave; masters { 192.168.182.147; }; file slaves/openlab.com.zone; }; zone 182.168.192.in-addr.arpa IN { type slave; masters { 192.168.182.147; }; file slaves/192.168.182.arpa; };第六步从服务端操作重启服务注意当从服务器的 DNS 服务程序在重启后就自动从主服务器上同步了数据配置文件且该文件默认会放置在区域配置文件中所定义的目录位置中[rootmaster ~]# cd /var/named/slaves [rootmaster slaves]# ls # 启动服务前查看解析配置文件为空 [rootmaster slaves]# systemctl start named [rootmaster slaves]# ls # 启动服务后自动拉取第七步从服务端操作确认从服务端的网卡DNS地址修改为自己的IP192.168.48.131使从服务器自身也能提供的 DNS 域名解析服务在进行测试[rootmaster ~]# nslookup www.openlab.com [rootmaster ~]# nslookup 192.168.182.147 [rootmaster ~]# dig 192.168.182.147 www.openlab.com增量区域传送功能仅复制区域里变化的文件第一步主服务端操作修改数据配置文件[rootserver ~]# vim /var/named/openlab.com.zone $TTL 1D IN SOA ns.openlab.com. admin.openlab.com. ( 1 ; serial # 修改需要加1 3 ; refresh # 修改 1H ; retry 1W ; expire 3H ) ; minimum NS ns.openlab.com. MX 8 mail.openlab.com. # 添加 NS slave.openlab.com. ns IN A 192.168.182.147 www IN A 192.168.182.147 bbs IN A 192.168.182.147 mail IN A 192.168.182.147 # 添加 ftp IN CNAME www slave IN A 192.168.182.148 www1 IN CNAME www # 添加 # 注意1serial 处的序号数字必须加1否则从服务器端不更新第二步主服务端操作重启服务[rootmaster ~]# systemctl restart named第三步从服务端操作重启服务[rootmaster slaves]# systemctl restart named第四步从服务端操作测试[rootmaster ~]# nslookup mail.openlab.com [rootmaster ~]# nslookup www1.openlab.com注意序号需要比原序号大更新频率可以改小一点这样比较快看到实验结果需要写一条关于从服务器的NS和A记录不然新增的数据有时能更新有时无法更新