一、DNS基础概念

域名服务协议(Domain Name Service),属于应用层协议,需要借助通信子网完成通信,采用c/s架构,端口号为53/udp和53/tcp

1. 诞生背景

DNS协议不是在网络诞生最初就有的,据说全球最早接入网络的计算机只有四台,使用IP地址就可以完成主机间的通信,但是随着时间的推移接入网络的主机越来越多,并且人类最容易记住的连续数字不超过6个的,但是IP地址长度却可能到12位,所以最初的解决方案就是在本地引入一个文件(hosts文件),这个文件里面记录了每一个需要通信的IP地址和主机名称的对应关系,可以将这个文件理解为数据库。最初这个文件是由IANA负责维护的,使用时去指定网站下载最新版的hosts文件覆盖本地即可,接着结合系统中的两个库调用getipbyhostname()和gethostnamebyip()就可以完成名称解析了。在互联网主机还不太多的时候,这个方案确实解决了很大的问题,但是这种方式时效性太差,并且那个时候服务器性能也不行,读一个hosts文件就可能占据大量内存。虽然hosts文件不太适用于新时代了,但是这个机制也没有被抛弃。接着IANA为了解决hosts文件时效性及文件大小问题,直接启用一台主机做名称解析,本地想通过名称访问某个主机时,先通过库调用getipbyhostname()和gethostnamebyip()查询本地的hosts文件,查不到时则去向DNS服务器请求

2. 域名层次划分

为了便于管理,把域名层次设计为倒置的树状结构。最顶层的为根域,接着在根域下按照社会中的组织类型划分了顶级域(一级域名Top Level Domain),根域下有多少个顶级域是由IANA组织按需增减,任何组织或个人要想使用域名都应该像顶级域申请注册,顶级域一般有三类,组织域、国家域、反向域

  • 组织域
.com
.net
.edu
.mil
.gov
.net
.org
.int
  • 国家或地区域
.cn
.iq
.hk
.tw

3. DNS查询类型

假设用户访问www.busyops.com,用户只会向DNS服务器发送请求,由DNS服务器逐层解析。首先向根服务器请求,根会把.com服务器的地址告诉DNS服务器,接着DNS服务器向.com服务器请求busyops的地址,.com服务器会把busyops的地址告诉DNS服务器,然后DNS服务器会向busyops请求www的地址,busyops服务器返回www的地址,最后DNS服务器把www的地址返回给用户,用户拿着返回的地址开始通信

  • 递归查询:用户向DNS服务器发送请求的这一段就是一次递归查询,只发送一次请求就得到最终结果
  • 迭代查询:DNS服务器去查询地址的这一段就是一次迭代查询,经多次查找才得到了最终结果

4. DNS服务器类型

  • 主DNS服务器:主要负责某个域的名称解析的服务器
  • 辅助DNS服务器:主DNS服务器的备机,解析条目是从其他的DNS服务器同步而来
  • 缓存名称服务器:不负责任何一个域的解析,仅仅是给内部客户端主机递归查询的DNS服务器

5. FQND

FQDN叫做完全合格域名(Full Qualified Domain Name),完全合格域名示例www.busyops.com.,注意最后名的点是不可以省略的

6. DNS解析类型

  • 正向解析:把域名成IP地址
  • 反向解析:把IP地址解析成域名,DNS刚刚诞生的时候是不支持反向解析的。在邮件服务领域,反向解析非常关键,是用于实现验证对方服务器是不是垃圾邮件服务器的重要手段

正向解析与反向解析是两个不同的名称空间,各需要一个解析库来完成名称解析,可以将解析条目放置在两个不同的服务器中

7. 一次完整的DNS解析过程

  • 第一步:用户先查询自身主机的hosts文件,这个文件可以通过本地强行将某个域名定向至某个IP,如果有则返回结果,没有则查询本地的DNS缓存,都没有结果的话,则进行下一步
  • 第二步:将查询请求提交给用户定义的第一DNS服务器,这个服务器首先会查询服务器自身的本地缓存,如果没有则进行迭代查询

8. 解析结果类型

  • 肯定回答:返回请求查询结果
  • 否定回答:请求某个域名不存在
  • 权威答案:负责该域的域名服务器返回的答案
  • 非权威答案:使用缓存查询的DNS解析结果,可能存在失效的可能性,这种叫非权威答案

二、Bind应用

Bekerley Internat Name Domain,现由ISC负责维护,官方站点为(www.isc.org),DNS协议的实现

1. 区域传送

主服务器向从服务器传送数据的类型

  • 全量传送:从服务器其没有任何数据,主服务器将全部解析库内容同步至从服务器
  • 增量传送:主服务器只向从服务器传送解析库变化的内容

2. 资源记录(Resource Record)

在DNS解析库中的每一个条目都被称为一个资源记录,简称为RR。资源记录需要标明本条记录是正向解析、反向解析、DNS服务器等

(1)资源记录类型

  • SOA(Start Of Authority):起始授权记录,一个区域解析库有且只能存在一条SOA记录,而且必须为第一条。用来标识当前的区域的名称及DNS主机IP地址
  • A记录(internet Address):将FQND转换为IPV4地址
  • AAAA:将FQND转换为IPV6地址
  • PTR记录(PoinTeR):将IP地址转换为FQDN
  • NS(Name Server):用于标识当前区域的DNS服务器
  • CNAME(Canonical Name):汉语翻译为规范名称,但是我们一般把者中记录称为别名记录
  • MX(Mail eXchanger):邮件交换器,用来标明当前域内邮件服务器的

(2)资源记录定义格式

通用语法格式:name [ttl] IN rr_type value

  • name:名称
  • ttl:此项可省略,用来标识本条记录可被客户端的缓存时长,ttl可以从全局继承
  • IN:表示internet之意,此项为语法格式需要的关键字
  • rr_type:资源记录类型
  • value:定义资源记录的值
  • 小tips1:@符号可以引用当前区域的名字,在用到区域名称的时候可以直接使用@,在邮箱记录中不可用
  • 小tips2:相邻的两个资源记录的name相同时,那么下方的记录可以省略name段
  • 小tips3:同一个名称可以通过多个不同的条目定义多个值,起到轮询的意义
  • 小tips4:同一个值可以对应多个不同的名字,使用多个不同的值指向同一个名字定义,通常为一台主机扮演多个角色

① SOA记录

name:当前区域的名称,例如busyops.com.
TTL:可省的,此处定义为86400秒钟
value:value的值有以下几种
(1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名称
(2)当前区域管理员的邮箱地址,但地址中不能使用@符号,用.号替代
(3)主从服务器协调属性的定义以及否定答案统一的TTL,使用一对小括号包含
------------------------------------------------------------
SOA记录示例:一个区域内有且只能有一条SOA记录,分号在其中表示注释
busyops.com. 86400 IN SOA ns.busyops.com. nsadmin.busyops.com. (
2022021901 ;序列号
2H ;刷新间隔
10M ;重试间隔
7D ;过期时间
1D ;否定答案的TTL值
)
------------------------------------------------------------
序列号:解析库的版本号,当主服务器解析库内容变化时,其序列号递增
刷新时间间隔:从服务器向主服务器请求同步解析库的时间间隔
重试时间间隔:从服务器向主服务器请求同步解析库内容失败时,再次尝试同步的时间间隔,其间隔时间要小于刷新时间,不然就没有意义了
过期时长:从服务器始终联系不到主服务器时,在指定时间内放弃从服务器角色,停止提供服务
通知机制:当主服务器更新区域时,会通知从服务器更新数据,避免时效性差的问题

② NS记录

一个区域可以有多条NS记录,任何一个NS记录后续都应该有一个对应的A记录

name:当前区域的名称
value:当前区域的DNS的名字,例如ns.busyops.com.
------------------------------------------------------------------
NS记录示例:
busyops.com. IN NS ns1.busyops.com.
busyops.com. IN NS ns2.busyops.com.
busyops.com. IN NS ns3.busyops.com.
IN NS ns4.busyops.com.
IN NS ns5.busyops.com.
-----------------------------------------------------------------

③ MX记录

一个区域可以有多条MX记录,任何一个MX记录后续都应该有一个A记录

name:当前区域的名称
value:当前区域的某邮件服务器的主机名,通常为smtp服务器,主机名之前有个0-99的数字表优先级,数字越小优先级越高
-----------------------------------------------------------------
MX记录示例:
busyops.com. IN MX 0 MX1.buyops.com.
busyops.com. IN MX 50 MX2.buyops.com.
IN MX 99 MX3.buyops.com.
-----------------------------------------------------------------

④ A记录

A记录有时也可使用泛域名解析,名称位置使用*号

name:某主机的FQDN,例如www.busyops.com.
value:主机名对应的IP的
-----------------------------------------------------------------
A记录示例:
www.busyops.com. IN A 59.110.216.16
www.busyops.com. IN A 1.1.1.1
busyops.com. IN A 59.110.216.16
ns1.busyops.com. IN A 59.110.216.16
ns2.busyops.com. IN A 59.110.216.16
mx1.busyops.com. IN A 59.110.216.16
mx2.busyops.com. IN A 59.110.216.16
*.busyops.com. IN A 59.110.216.16
-----------------------------------------------------------------

⑤ AAAA记录

name:FQDN
value:IPv6地址

⑥ PTR记录

name:某主机的IP地址,需要反过来写并且加上特定后缀in-addr.arpa,网络地址和后缀可以省略
value:FQDN
-----------------------------------------------------------------
PTR记录示例:
16.216.110.59.in-addr.arpa. IN PTR www.busyops.com.
16.216.110.59.in-addr.arpa. IN PTR ns1.busyops.com.
16.216 IN PTR mx1.busyops.com.
------------------------------------------------------------------

⑦ CNAME记录

name:别名的FQDN
value:正式的FQDN
-----------------------------------------------------------------
web1.busyops.com. IN CNAME www.busyops.com.
web3.busyops.com. IN CNAME wwww.busyops.com.
web2.busyops.com. IN CNAME busyops.com.
------------------------------------------------------------------

3. 粘合记录(glue record)

子域授权:如果某个服务器想成为某个域的名称服务器,都需要在其上级名称服务器的解析库中进行授权
粘合记录:实现在上级服务器中完成对下级服务器的授权的记录,就叫做粘合记录,比如我自己想搭建busyops.com域名的名称服务器,就需要在.com的名称服务器中加入粘合记录

粘合记录示例:需要在.com的服务器中完成子域授权
busyops.com. IN NS ns1.busyops.com.
busyops.com. IN NS ns2.busyops.com.
ns1.busyops.com. IN A 59.110.216.16
ns2.busyops.com. IN A 59.110.216.16

4. Bind的安装包

程序包名称为bind、进程名称为named

  • bind.x86_64:主包
  • bind-chroot.x86_64:实现让named进程运行于沙箱中,新切换的根为/var/named/chroot/
  • bind-devel.x86_64:开发工具包
  • bind-dyndb-ldap.x86_64:实现将解析库放置在ldap中
  • bind-sdb.x86_64:实现在解析库放置在数据库中
  • bind-libs.x86_64:被bind包和bind-utils包依赖的库文件包
  • bind-utils.x86_64:DNS客户端解析工具包

5. Bind的配置文件

  • 服务脚本:Centos 6:/etc/rc.d/init.d/named,Centos 7 /usr/lib/systemd/system/named.service
  • /etc/sysconfig/named:服务脚本的配置文件
  • /etc/named.conf:主配置文件
  • /etc/named.rfc1912.zones:辅助区域配置文件
  • /etc/rndc.conf:rndc的配置文件
  • /etc/rndc.key:远程控制秘钥文件,认证使用
  • /var/named/ZONE_NAME.zone:解析库文件,可以存在多个区域的解析库文件,以便为多个区域解析
  • /var/named/named.ca:根区域文件,rpm安装的话,默认会提供
  • /var/named/named.localhost 、/var/named/named.loopback,回环地址域文件
  • /var/log/named.log:日志文件

6. 配置文件的格式及关键字意义

  • acl配置段,用于定义访问控制列表,只有定义完之后才可以调用,所以一般放在配置文件最前端,默认没有此项,需自行添加
acl ace_name {
IP_ADDR;
NETWORD/PRE;
}

定义控制列表可使用IP地址,也可以使用网络地址加掩码的方式。另外,bind中有四个内置的acl选项

none:全部主机都不可以
any:任意主机都可以
local:仅本机
localnet:仅本机所在的网络
  • 全局配置段:option{}
directory:定义区域解析库文件目录
dnssec-enable:启用对DNS每一个解析报文都要校验,初学者可以关闭
dnssec-validation:是否做有效性校验
dnssec-lookaside
recursion:是否允许帮其它主机做递归查询
allow-query {}:允许帮哪些主机做DNS解析,结合acl使用,加在全局配置中表示全局生效,区域中表示区域生效
allow-transfer {}:允许向哪些主机做区域传送,加在全局配置中表示全局生效,区域中表示区域生效
allow-recursion {}:允许哪些主机向本级发起递归查询
allow-update {}:是否允许动态更新区域数据文件中的内容,DDNS用到
  • 日志配置段:logging{}
  • 区域配置段:zone{},由本机负责解析的区域或转发的区域

7. 配置主DNS服务器解析正向区域

(1)定义要解析的区域

  • 编辑vim /etc/named.rfc1912.zones,在其中定义区域,这个文件是主配置文件的辅助配置文件
zone "busyops.com" IN {
type master;
file "busyops.com.zone";
};
---------------------------------------------
type:取值范围有四个
master:表示这个是这个区域的主DNS服务器
slave:从服务器
hint:根服务器
forward:转发服务器
file:定义区域文件位置,如果写相对路径,默认为/var/named目录下

(2)建立区域解析文件

编辑区域文件/var/named/busyops.com.zone,规范的做法还要把这个文件属主改为root,属组改为named,权限位640

$TTL 5H
@ IN SOA @ admin.busyops.com. (
2022022001
1H
10M
3D
1D
)

IN NS ns1.busyops.com.
IN NS ns2.busyops.com.
IN MX 10 mx1.busyops.com.
IN MX 20 mx2.busyops.com.

IN A 59.110.216.16
ns1.busyops.com. IN A 59.110.216.16
ns2.busyops.com. IN A 59.110.216.16
mx1.busyops.com. IN A 59.110.216.16
mx2.busyops.com. IN A 59.110.216.16
www.busyops.com. IN A 59.110.216.16
www.busyops.com. IN A 192.168.1.251
web.busyops.com. IN CNAME www.busyops.com.
*.busyops.com. IN A 59.110.216.16
[root@node1 ~]# ll /var/named/busyops.com.zone
-rw-r-----. 1 root named 505 Feb 20 01:10 /var/named/busyops.com.zone

(3)重读配置文件和区域数据文件

  • 第一步:使用命令:named-checkconf检查配置文件语法
  • 第二步:使用命令:named-checkzone busyops /var/named/busyops.com.zone检查区域文件语法
  • 第三步:使用命令:rndc reload重读配置文件和区域文件

8. 配置主DNS服务器解析反向区域

(1)定义需要反向解析的区域

  • 编辑vim /etc/named.rfc1912.zones,在其中定义区域,这个文件是主配置文件的辅助配置文件
zone "216.110.59.in-addr.arpa" IN {
type master;
file "216.110.59.zone";
};

(2)配置区域数据文件

  • 编辑区域文件/var/named/216.110.59.zone,规范的做法还要把这个文件属主改为root,属组改为named,权限位640
$TTL 5H
@ IN SOA @ admin.busyops.com. (
2022022001
1H
10M
3D
1D
)

IN NS ns1.busyops.com.
IN NS ns2.busyops.com.

16.216.110.59.in-addr.arpa. IN PTR www.busyops.com.
IN PTR ns1.busyops.com.
IN PTR ns2.busyops.com.
IN PTR mx1.busyops.com.
IN PTR mx2.busyops.com.
[root@node1 named]# ll /var/named/216.110.59.zone 
-rw-r-----. 1 root named 291 Feb 20 01:56 /var/named/216.110.59.zone

(3)重读配置文件和区域数据文件

  • 第一步:使用命令:named-checkconf检查配置文件语法
  • 第二步:使用命令:named-checkzone 216.110.59.in-addr.arpa /var/named/216.110.59.zone检查区域文件语法
  • 第三步:使用命令:rndc reload重读配置文件和区域文件

9. 配置从DNS服务器

在配置从服务器时,记得把每台节点的时间也同步一下。同时还要注意如果使用不同版本的bind,从服务器版本应该高于主服务器版本

(1)定义从服务器,检查配置文件语法,完成重载

从服务器的配置文件/etc/named.rfc1912.zones中指明type为slave,定义文件同步至/var/named/slaves目录中,使用masters指明主的IP地址即可

zone "busyops.com" IN {
type slave;
file "slaves/busyops.com.zone";
masters { 192.168.1.200; };
};
  • 使用命令:named-checkconf检查配置文件语法
  • 使用命令:rndc reload重读配置文件和区域文件,在主配置完成后,从再执行这步

(2)配置主DNS服务器

需要在主DNS服务器中完成从服务器的授权,授权的方式就是为从服务器添加一条NS记录,并在后面添加A记录,这里使用ns3来指定从服务器

$TTL 5H
@ IN SOA @ admin.busyops.com. (
2022022001
1H
10M
3D
1D
)

IN NS ns1.busyops.com.
IN NS ns2.busyops.com.
IN NS ns3.busyops.com.
IN MX 10 mx1.busyops.com.
IN MX 20 mx2.busyops.com.
IN A 59.110.216.16
ns1.busyops.com. IN A 59.110.216.16
ns2.busyops.com. IN A 59.110.216.16
ns3.busyops.com. IN A 192.168.1.250
mx1.busyops.com. IN A 59.110.216.16
mx2.busyops.com. IN A 59.110.216.16
www.busyops.com. IN A 59.110.216.16
www.busyops.com. IN A 192.168.1.251
web.busyops.com. IN CNAME www.busyops.com.
*.busyops.com. IN A 59.110.216.16

(3)主和从都重新加载配置文件

  • 检查配置文件语法:named-checkconf
  • 重载配置文件:rndc reload
  • 接着就可以在从服务器上看到同步过来的区域文件
  • 如果主服务器更新资源记录,一定要把序列号更新且重新加载配置文件

10. 子域授权(正向解析)

  • 在父域配置文件中定义子域授权记录,需要对要授权的子域添加NS及A记录,如最后两行。接着重读配置文件
$TTL 5H
@ IN SOA @ admin.busyops.com. (
2022022001
1H
10M
3D
1D
)

IN NS ns1.busyops.com.
IN MX 10 mx1.busyops.com.
IN MX 20 mx2.busyops.com.
ns1.busyops.com. IN A 192.168.1.200
mx1.busyops.com. IN A 192.168.1.101
mx2.busyops.com. IN A 192.168.1.102
www.busyops.com. IN A 192.168.1.103

ops.busyops.com. IN NS ns1.ops.busyops.com.
ns1.ops.busyops.com. IN A 192.168.1.23
  • 在子域DNS服务器上添加关于子域的定义
主配文件:/etc/named.rfc1912.zones
zone "ops.busyops.com" IN {
type master;
file "ops.busyops.com.zone";
};
------------------------------------

区域文件:/var/named/ops.busyops.com.zone
$TTL 5H
@ IN SOA @ mx.ops.busyops.com. (
2022022001
3H
10M
1D
2H
)
IN NS ns1.ops.busyops.com.
ns1.ops.busyops.com. IN A 192.168.1.23
www.ops.busyops.com. IN A 192.168.1.25

在子域授权及定义转发域时,因为忽略了两项主配文件配置信息,所以排了好久的错,如果你也遇到在父域中不能查询子域的域名或在子域中不能转发父域负责的域名,可尝试修改下面两项。我把allow-qrery注释掉,把recursion调成yes,就通了

//      allow-query     { localhost; };:在配置文件加双斜线表示注释
recursion yes; :是否允许其它人过来递归

11. 定义转发域

在定义转发中,被转发的服务器一定要可以给当前服务器做递归查询才可以将其设置为转发服务器

(1)区域转发

仅转发对某特定区域的解析请求,在配置文件/etc/named.rfc1912.zones中定义即可

zone "busyops.com" IN {
type forward;
forward first;
forwarders { 192.168.1.200; };
};
---------------------------------------------
forward:选项有两个first和only。
first:如果被转发方不响应,那么就自行去迭代
only:如果被转发方不响应,那么也什么都不做,只等待

(2)全局转发

只要没有在本地通过zone定义的区域,全部发给转发器。需要在配置文件/etc/named.conf,找到option{}配置段,在其中加入两个选项

forward first|only;
forwarders { 192.168.1.200; 192.168.1.201; };

生效方式为先查找自己定义的zone,然后在把不知道的域发送给转发器

12. bind的view

bind的view主要实现智能DNS的,比如公司内部有一个www,那么公司内部的人访问就没必要访问它的外网地址了。同样的,如果一个台主机接入联通及电信的网络,那么就可以将电信的请求解析到电信的IP上,联通的解析到联通的IP上,这种可以根据客户端来源智能的返回解析答案,就叫bind view

  • 配置示例
view neibu {
match-clients { 192.168.1.0/8; };
zone "busyops.com" IN {
type master;
file "busyops/neibu.zone";
};
};

view dianxin {
match-clients { acl_dianxin; };
zone "busyops.com" IN {
type master;
file "busyops/dianxin.zone";
};
};

view liantong {
match-clients { acl_liantong; };
zone "busyops.com" IN {
type master;
file "busyops/liantong.zone";
};
};

view为关键字,后面跟view的名称,段内使用match-clients去匹配客户端地址,配置段中定义zone分别指向不同的区域文件。如果客户端IP过多,也可以先定义一个acl然后用match-clients引用。如果想知道哪些是联通的IP、哪些是电信的IP,可以到亚太IANA分配商查询。

13. bind相关命令

(1)dig命令

主要用于测试dns系统,用此命令查询时hosts文件不会生效
命令格式:dig [-t RR_type] name [@SERVER] [query options]

option
+[no]trace:指明跟踪或不跟踪解析工程
+[no]recure:指明递归或不递归解析
-t:指明资源记录类型
name:需要查询的值
@SERVER:指明通过哪个服务区查询,一旦指明那么本机设置的DNS就没有意义了
query options:查询选项
-x IP_ADDRESS:反向解析,不要使用-t PTR,应使用-X加IP地址的形式
-t axfr ZONE_NAME @Server_IP:模拟全量传送,表示测试去某个IP同步某个域

命令的返回内容

返回内容共七段

第一段:全局属性
----------------------------------------------------------------------
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.8 <<>> -t A busyops.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29184
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 23
----------------------------------------------------------------------
Got answer:已经获得答案
flags:标致位,如果出现aa则表示为权威答案

第二段:选项段
----------------------------------------------------------------------
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
----------------------------------------------------------------------

第三段:问题段,显示你要查询的问题
----------------------------------------------------------------------
;; QUESTION SECTION:
;busyops.com. IN A
----------------------------------------------------------------------

第四段:答案段,显示答案
----------------------------------------------------------------------
;; ANSWER SECTION:
busyops.com. 123 IN A 59.110.216.16
----------------------------------------------------------------------

第五段:权威段,显示负责解析的服务器
----------------------------------------------------------------------
;; AUTHORITY SECTION:
busyops.com. 172321 IN NS dns30.hichina.com.
busyops.com. 172321 IN NS dns29.hichina.com.
----------------------------------------------------------------------

第六段:附加段,此段将权威段的内容解析为IP地址
----------------------------------------------------------------------
;; ADDITIONAL SECTION:
dns29.hichina.com. 172321 IN A 140.205.81.29
dns29.hichina.com. 172321 IN A 39.96.153.39
dns29.hichina.com. 172321 IN A 47.118.199.199
dns29.hichina.com. 172321 IN A 106.11.141.119
dns29.hichina.com. 172321 IN A 106.11.211.59
dns29.hichina.com. 172321 IN A 106.11.211.69
dns29.hichina.com. 172321 IN A 120.76.107.39
dns29.hichina.com. 172321 IN A 139.224.142.109
dns29.hichina.com. 172321 IN A 140.205.41.19
dns29.hichina.com. 172321 IN A 140.205.81.19
dns30.hichina.com. 172321 IN A 47.118.199.197
dns30.hichina.com. 172321 IN A 106.11.141.120
dns30.hichina.com. 172321 IN A 106.11.211.60
dns30.hichina.com. 172321 IN A 106.11.211.70
dns30.hichina.com. 172321 IN A 120.76.107.37
dns30.hichina.com. 172321 IN A 139.224.142.107
dns30.hichina.com. 172321 IN A 140.205.41.20
dns30.hichina.com. 172321 IN A 140.205.81.20
dns30.hichina.com. 172321 IN A 140.205.81.30
dns30.hichina.com. 172321 IN A 39.96.153.37
dns29.hichina.com. 172321 IN AAAA 2400:3200:2000:46::1
dns30.hichina.com. 172321 IN AAAA 2400:3200:2000:49::1
----------------------------------------------------------------------

第七段:
----------------------------------------------------------------------
;; Query time: 0 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Sat Feb 19 23:48:16 CST 2022
;; MSG SIZE rcvd: 480
----------------------------------------------------------------------
Query time: 查询执行时长
SERVER:哪个服务器帮你迭代的

(2)host命令

命令格式:host [-t RR_TYPE] name Server_ip

-t:指明需要查询的资源记录类型
name:需要查询的值
Servier_ip:指明经那个DNS服务器查询

(3)nslookup命令

nslookup有两个使用模式
命令格式:nslookup [-option] [name] [server]

交互式模式中的命令意义
nslookup>
server DNS_IP:指定DNS服务器地址
set q=RR_TYPE:指定查询资源记录类型
name:要查询的名称

(4)rndc命令

可以通过rndc命令,远程连接一个rndc服务端。能够实现远程管理服务器,包括清理缓存、重新装载区域配置文件、查看当前的解析状态等等。默认只能通过本机的127.0.0.1链接,使用953/tcp端口,不过本部分至讲述如何本地控制
命令格式:rndc command

command:
reload:重载区域配置文件和区域文件
reload zone:只重载区域文件
refresh zone:立即上线一个zone
retransfer zone:立即传送一个zone而不管序列号是否增加,可以指定传送某个区域
notify zone:重新对某个区域发送通知,让从服务器更新
reconfig:重载主配置文件
qrerylog:开启或关闭查询日志,不用结合其他子命令,执行一下就开启,在执行一下就关闭
stop:关闭dns服务
trace #:开debug功能,运行一次就增加一次debug级别,或指定级别
flush:刷新dns缓存

(5)配置文件检查命令:

  • named-checkconf:检查配置文件语法的程序,直接运行命令即可
  • named-checkzone:检查区域配置文件的程序,格式为named-cheakzone ZONE_NAME ZONE_FILE