进阶DNS了解

目录

一、nslookup和dig. 2

1.dig命令简介(部分)... 2

2.nslookup命令简介(部分)... 2

3.解析记录类型(部分)... 3

4.nslookup使用debug模式... 7

5.TTL的变化... 8

6.dig和nslookup的相似点与区别点... 8

7.模拟递归迭代过程(www.zdns.cn)... 9

二、Bind软件... 12

1.编译安装... 12

2.权威区配置和验证... 13

3.遇到的部分问题... 16

三、rndc工具... 16

1.rndc简介... 16

2.环境展示... 17

3.软件配置... 17

4.rndc之reload. 19

5.rndc之reconfig. 19

6.reload和reconfig的区别... 20

四、日志相关... 21

1.bind日志简介... 21

2.login语句参数... 21

3.配置以及实现... 22

五、tcpdump软件... 22

1.软件简介及部分参数... 22

2.抓包实例... 23

六、配置转发... 23

1.参数... 23

2.实现... 24

一、nslookup和dig

1.dig命令简介(部分)

dig:@<服务器IP地址>

         -b <IP地址>    :主机有多个IP的时候指定使用某个IP

         -f <文件名>     :指定dig以批处理方式,指定的文件中保存着需要批处理的DNS任务信息

-p                       :指定域名服务器的端口号

         -t <类型>         :指定类型

         -x <IP>              :PTR查询

         -4                       :指定IPV4 的服务器

         -6                       :指定IPV6 的服务器

部分扩展:

+short      显示简洁的回答部分

+answer  显示回答部分

+trace      跟踪dig的查询路径

+noall      代表清除所有显示的选项

+multiline获得冗长的多行模式人性化注释的DNS的SOA记录

2.nslookup命令简介(部分)

nslookup 查询域名 [服务器地址]

         -option             :将一个或者多个nslookup子命令作为命令行选项,格式为 -子命令1  -子命令2  -子命令3

         Server               :指定将还服务器作为DNS名称服务器使用,如果省略了此选项,将使用默认的DNS名称服务器

         Hostname        :如果未指定其他服务器,就使用当前默认的DNS服务器查阅Hostname的信息

-qt                     :指定查询类型

部分扩展:

set [no]d2        开启高级调试模式,会输出很多其内部工作的信息,包括很多函数调用信息

set debug         打开调试模式,查询过程中会显示完整的相应包以及其中的交互包

set timeout=X,set ti=X     将初始超时间隔设位置X秒,初始值是5秒

server NAME   交互模式下将默认服务器设置为NAME

3.解析记录类型(部分)

(1).SOA

解析获得目标服务器的SOA记录,其中返回了回答的算11个字段,第一个字段是所查询的域名,第二个是TTL,第三个是class类型(默认即为IN),第四个是type类型,第五个是权威区primary服务器,第六个是管理员的邮箱,第七个是版本号(用于主辅同步),第八个是刷新的时间间隔,第九个是如果刷新失败,重试的时间,第十个是如果无法更新,辅服务器还能继续提供服务的时间,第十一个是域名的默认生存时间。

在nslookup的查询中,除了这个软件会自动的查询所指定服务器的PTR记录等,返回的记录值是和dig一样的。

(2).NS

返回所查询的域名的服务器主机名。

(3).A

返回所查询的域名对应的A记录。

(4).AAAA

返回所查询的域名对应的A记录。

(5).CNAME

返回所查询的域名的CNAME记录,如返回的结果中所示,返回了五个字段,第一个是所查询的域名,第二个是TTL,第三个是class类型,第四个是type类型,第五个是所对应的CNAME值。

(6).PTR

反向查询,即通过IP地址,查询到其所对应的域名,返回的是dns.google.

(7).MX

查询邮箱记录,即对邮箱服务器所创建的记录,如返回的图所示,共返回了4条邮箱记录,地中倒数第二个字段的含义是此条邮箱记录的优先值。

(8).TXT(spf)

一般是为某个主机名或域名设置的说明,而将spf记录写在其中,SPF记录的作用是为了防范垃圾邮件而提出来的一种DNS记录类型,SPF是一种TXT类型的记录。SPF记录的本质,就是向收件人宣告:本域名的邮件从清单上所列IP发出的都是合法邮件而非冒充的垃圾邮件。设置好SPF是正确设置邮件发送的域名记录和STMP的非常重要的步骤。

(9).SRV

SRV是服务器的资源记录,记录的是哪台计算机提供了怎样的服务的一个简单信息,如图所示:返回的记录值中有四个字段,第一个代表的是优先级,第二个是权重,第三个是端口,第四个是提供此服务的主机

4.nslookup使用debug模式

进入nslookup的交互模式,开启debug模式,并且将默认服务器设置为114.114.114.114

举例:

会显示完整的响应包以及其中的交互包等和其中的一些详细信息。

5.TTL的变化

TTL(Time-To-Live),就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器(权威域名服务器)发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器(各地的缓存服务器,也叫递归域名服务器)中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。就如图中所示,第一次查询www.zdns.cn时返回的TTL值时70s,在后续的查询其值时随时间而减小的,直到时间结束,也就开始了下一个循环。(三个TTL的排序应该是:每条资源记录的TTL>$TTL 值>SOA下的TTL值)

6.dig和nslookup的相似点与区别点

我们电脑上一般是配置两个DNS服务器的IP,在电脑上使用这两个软件的时候,都是默认使用主DNS服务器IP,但若是主的失效,nslookup默认是不会自动切换的,而dig会自动切换,但若是主的不存在,都会自动使用备的。

7.模拟递归迭代过程(www.zdns.cn)

(1).dig模拟递归迭代过程

(2).nslookup模拟递归迭代过程

二、Bind软件

1.编译安装

(1).首先去网站上下载了对应的源码安装包,我选择的版本是9.14.4

(2).为了便于管理,我在/usr/local下新建了一个文件夹bind,让后将安装包挪了进去,再新创建了一个bind9目录用于编译和安装的目录

(3).配置需要很多依赖包,如gcc等,所以安装了开发工具包来完善Linux的编译环境,然后安装了安装包所需的软件

(4).开始配置,其中—prefix是指定编译和安装的目录

(5).开始编译和安装

(6).配置软件的环境变量

bind.sh其中的内容:

(7).完成环境变量的配置

2.权威区配置和验证

(1).bind的配置文件

这里指定了区域文件的路径为/var/named下

(2).正向区域

其中还有很多的配置选项,例如允许递归查询:allow-recursion         { any; };

(3).反向区域

(4).检测配置文件

没有内容即无错误

(5).验证

以root用户启动服务:named –u root

3.遇到的部分问题

(1).安装包配置时的问题,提示缺少关于python的什么东西,然后我使用了 –without python

(2).安装时遇到了提示缺少了关于openssl的内容,于是安装了相关的openssl-delvel

(3).配置反向区域的时候,在SOA记录中,我以为primary域名是和正向的一样的,报错之后改了过来。

(4).一开始时配置了反向区域中的NS记录并不需要的A记录,报错后依然可以服务。

三、rndc工具

1.rndc简介

rndc是BIND安装包提供的一种控制域名服务运行的工具,它可以运行在其他计算机上,通过网络与DNS服务器进行连接,然后根据管理员的指令对named进程进行远程控制,此时,管理员不需要DNS服务器的根用户权限。使用rndc可以在不停止DNS服务器工作的情况进行数据的更新,使修改后的配置文件生效。在实际情况下,DNS服务器是非常繁忙的,任何短时间的停顿都会给用户的使用带来影响。因此,使用rndc工具可以使DNS服务器更好地为用户提供服务。

rndc:

         -b source-address   :使用source-address作为连接服务器的源地址,允许多个实例设置IPv6和IPv4地址

         -c config-file              :使用config-file作为缺省的配置文件/etc/rndc.conf的代替

         -k key-file                  :使用key-file作为缺省的密钥文件/etc/rndc.key的代替,如果config-file不存在,/etc/rndc.key中的而密钥将用于认证发向服务器的命令

         -s server                    :server是与rndc的配置文件中的server语句匹配的服务器名字或者地址,如果命令行没有提供服务器,会使用rndc配置文件中的option语句中的default-server子句中所命名的主机

         -p port                       :发送命令到TCP端口port,以取代缺省的控制端口953

         -V                               :打开冗余日志

         -y key_id                   :使用配置文件中的密钥key_id。key_id必须被named所知道,带有同样的算法和秘密字符串,以便成功通过控制消息的验证,如果没有指定,rndc将首先在所使用的服务器的server语句中查找key子句,或者如果没有为主机提供server语句,就查找options语句中的default-key子句

         rndc  –h                  :查看帮助

         rndc  status            :显示bind服务器的工作状态

         rndc  reload           :重新加载配置文件和区域文件

         rndc   reload  zone_name   :重新加载指定区域

         rndc  reconfig         :重读配置文件并加载新增的区域

         rndc  querylog       :关闭或开启查询日志

         rndc  dumpdb        :将高速缓存存储到存储文件(named_dump.db)(需要设置cache文档输入目录,在named.conf里面的dump-file “/…”)

         rndc  freeze            :暂停更新所有动态zone

         rndc  free  zone [class [view]]    :暂停更新一个动态zone

         rndc  flush [view]  :刷新服务器的所有高速缓存

         rndc  flushname name                   :为某一视图书信服务器的高速缓存

         rndc  stats              :将服务器统计信息写入统计文件中

         rndc  stop               :将暂挂更新保存到主文件并停止服务器

         rndc  halt                :停止服务器,但不保存暂挂更新

         rndc  trace [level[0,1,2,3…]]          :打开debug,debug有级别概念,每执行一次,提升一次级别(0表示关闭)

         rndc  notrace         :将调试级别设置为0

         rndc  addzone  zone [class [view]] { zone-options }   :增加一个zone

         rndc  delzone  zone [class [view]]                                 :删除一个zone

         rndc  tsig-list          :询问当前有效的TSIG列表

         rndc  validation  newstate [view]:开启或关闭dnssec

2.环境展示

我是两台虚拟机,一台是172.16.1.10,也就是主DNS服务器

第二台是172.16.1.20,是拥有rndc命令的客户端。

3.软件配置

(1).生成密钥配置文件

(2).向服务器的named.conf配置文件中追加内容(内容就是keys.txt中的内容)

(3).在172.16.1.20中的配置是更换rndc的默认配置(/etc/rndc)文件为我们的内容

(4).关闭防火墙,在服务器上开启服务(named –u root)后在172.16.1.20主机上面查看状态,如下图所示即为成功

4.rndc之reload

我在服务器上的test.com.zone区域文件中加了一条

另一种相同的情况下:即这种情况,我在一个区域文件中加一条记录,这个时候使用reconfig时没有作用的

5.rndc之reconfig

我在服务启动的情况下在配置文件中增加如下:

在管理端试了两种这种情况(先reload再reconfig):

(先reconfig再reload)

6.reload和reconfig的区别

rndc reconfig将加载添加的任何新区域,并删除不再定义的任何区域,但它不会检测到已经加载的区域所做的任何更改。如果要更改区域文件(SOA记录中增加序列号)然后,将需要使用rndc reload,但是在具有许多区域或多个大区域的服务器上,可以通过只对每个区域重新加载使用rndc reload <zone name>更新的区域来最小化对查询响应的影响,如果使用多个视图,则需要通过将类和视图名称指定为rndc的参数(<view name>中的rndc reload <zone name>)来告诉rndc要在哪个视图中重新加载,所有的区域重新加载不是一个最佳的选择。即:修改了named.conf rndc reconfig 更新。修改了区文件用 rndc reload 区名更新,比如我们在named.conf里面新增加了一个叫test.com 的区,这时候就用rndc reconfig来让更改生效。后来我们又需要在test.com里面增加一个www.test.coma记录,这次我们没有修改named.conf,只修改了区文件,所以用rndc reload test.com来更新这个区。

四、日志相关

1.bind日志简介

bind中通过配置logging来记录日志信息,以便可以对服务器进行分析以及问题的跟踪。logging语句为域名服务器设定了一个多样性的logging选项。它的channel短语对应于输出方式、格式选项和分类级别,它的名称可以与category短语一起定义多样的日志信息。只用一个logging语句就可以用来定义多个channel和category。

2.login语句参数

(1).channel

目的子句:null即丢弃,这样的话其他通道选项也就没了意义;file即指定输入到一个磁盘文件中;syslog是把通道指向系统日志;stderr目的子句是将通道输出到服务器的标准错误流

versions   :即日志的存储版本号选项,如3,即可以自动存储保留3个老版本的日志(默认:version unlimited是不限制)

size           :设定单个日志文件的大小,如果没有version设置等,达到大小后将停止输入

severity   :不到严重级别的信息不会被通道选择

print-time        :记录时间日期

print-category :记录信息的分类

print-severity  :记录信息的严重级别

(2).category

default     :默认分类,没有分类的日志都使用这个分类的配置

general    :没有分类的日志都记录在此分类中

security   :允许/拒绝的请求

config       :配置文件分析和请求

resolver   :DNS解析,被DNS缓存服务器进行递归查询

client        :客户端请求进程

3.配置以及实现

在named.conf中添加日志相关的配置

五、tcpdump软件

1.软件简介及部分参数

tcpdump全称:dump the traffic on a network(转储网络上的流量),根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供去掉无用的信息的作用。

tcpdump:

         -c     :<数据包数目>收到指定的数据包数目后,就停止倾倒操作

         -d     :把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出

         -dd   :把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出

         -ddd :把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出

         -e     :在每列倾倒资料上显示连接层级的文件头

         -f      :用数字显示网际网络地址

         -F     :<表达文件>指定内含表达方式的文件

         -i      :<网络界面>使用指定的网络界面送出数据包

         -I      :使用标准输出的缓冲区

         -n     :不把主机的网络地址转换成名字

         -N    :不列出域名

         -q     :快速输出,仅列出少数的传输协议信息

         -r      :<数据包文件>从指定的文件读取数据包数据

         -s      :<数据包大小>设置每个数据包的大小

         -t      :在每列倾倒资料上不显示时间戳

         -tt    :在每列倾倒资料上显示 未经格式化的时间戳

         -v      :详细显示指令执行过程

         -vv    :更详细显示指令的执行过程

         -w    :<数据包文件>把数据包数据写入指定的文件

2.抓包实例

因为环境的问题,所以抓的包并不完整,这里的递归服务器是192.168.10.131,我在客户端192.168.10.130使用dig @192.168.10.131 www.lyg.com来进行试验,包的路径就是server在进行了迭代后知道了com的ns,然后查询lyg.com,得到后再向结果发送www.lyg.com的请求,查到后并返回给客户端结果。

六、配置转发

1.参数

forward   :这个选项只有当forwarders列表中有内容的时候才有意义,当值是first时,默认情况下服务器先查询设置的forwarders,如果没有收到回答,服务器会自己寻找答案;如果值时only,服务器就只会把请求转发到其他的服务器

forwarders       :设定转发使用的IP地址

2.实现

要求:配置www.zdns.cn的forward(转发)给114.114.114.114

在服务的配置文件中加了一条转发记录,最后测试结果表示实现。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值