DNS

4.1 查看和配置本机的DNS系统

4.1.1 查看本机DNS服务器 cat /etc/resolv.conf

4.1.2 修改DNS服务器 vim /etc/resolv.conf 按i进入编辑模式,添加完DNS后按ESC输入:wq 保存并退出

4.2 DNS信息测量

4.2.1 dig www.xju.edu.cn


前面先讲了dig的版本以及查询的目标,然后说了查询的目标数例如上述命令只查询了一个网站,所以query就为1,有一个answer,所以answer=1.
QUESTION SECTION 这个显示的是你查询了什么,这边显示的是你在查询www.xju.edu.cn的A记录。也是仅仅只有一条查询。
ANSWER SECTION 这个块显示的是查询结果,共一条记录
最后一部分显示的是查询时间与DNS服务器。

4.2.2 dig aaaa www.xju.edu.cn

AAAA:该记录是将域名解析到一个指定的IPV6的IP上

4.2.3 dig cname www.sohu.com

CNAME记录:通常称别名解析。可以将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理,与A记录不同的是,CNAME别名记录设置的可以是一个域名的描述而不一定是IP地址

4.2.4 dig www.xju.edu.cn @8.8.8.8

当我们使用 dig 域名 进行 DNS 寻址时,其默认向我们的本地 DNS 服务器寻址。如果我们想向特定的 DNS 服务器寻址,我们可以用@+ip地址:

4.2.5 dig mx xju.edu.cn

MX记录 :MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 user@mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上。

4.2.6 dig ns xju.edu.cn @8.8.8.8

NS记录 :NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。 您注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的,DNS服务器NS记录地址一般以以下的形式出现: ns1.domain.com、ns2.domain.com等。 简单的说,NS记录是指定由哪个DNS服务器解析你的域名。

4.2.7 dig www.xju.edu.cn +trace

dig命令加上trace之后:
需要从根开始去迭代查询,每次去查询NS的迭代工作就由本机完成,而不是递归服务器完成了
dig 加上trace之后其实是想知道完整的域名迭代查询过程。而由于本机拿不到递归服务器的迭代查询报文,所以通过自己去迭代查找的过程。每次查询NS的A还要通过本地DNS完成

4.2.8 dig edu.cn +dnssec @8.8.8.8

DNSSEC用于保护域名系统(DNS)提供的某些类型的信息。使用DNSSEC可以验证DNS数据和DNS完整性防止被恶意攻击,提高安全性。

4.2.9 dig edu.cn +dnssec @114.114.114.114

RRSIG (Resource Record Signature)资源记录签名,该记录用于存放我们当前域名每一条记录的 DNSSEC 签名

4.3 DNS协议分析

4.3.1 在Xshell输入抓包命令,在网页终端输入dig www.bing.com @114.114.114.114

4.3.2 使用dns过滤抓包结果并分析

1.请求过程

可以发现DNS为应用层协议,下层传输层采用UDP,再下层网络层是IP协议,然后是数据链路层的以太网帧.
需要关注的是应用层的实现也即DNS协议本身.
在此之前,可以从下层获得一些必要信息:
UDP(User Datagram Protocol)报文中:DNS的目的端口(Dst Port)是53
IPv4(Internet Protocol Version 4)报文中目的IP是114.114.114.114
由于IP报文在网络层进行路由选择,他会依次送给路由器而不是直接送给DNS服务器,这一点也十分容易理解,
第一个包是请求包,不可能直接包含DNS服务器地址.


具体分析:
第一个是Transaction ID为标识字段,2字节,用于辨别DNS应答报文是哪个请求报文的响应.
第二个是Flags标志字段,2字节,每一位的含义不同。
QR: 查询/响应,1为响应,0为查询
Opcode: 查询或响应类型,这里0表示标准,1表示反向,2表示服务器状态请求
AA: 授权回答,在响应报文中有效,待会儿再看
TC: 截断,1表示超过512字节并已被截断,0表示没有发生截断
RD: 是否希望得到递归回答
RA: 响应报文中为1表示得到递归响应
zero: 全0保留字段
rcode: 返回码,在响应报文中,各取值的含义:
0 - 无差错
1 - 格式错误
2 - 域名服务器出现错误
3 - 域参照问题
4 - 查询类型不支持
5 - 被禁止
6 ~ 15 保留
紧接着标志位的是
Quetions(问题数),2字节,通常为1
Answer RRs(资源记录数),Authority RRs(授权资源记录数),Additional RRs(额外资源记录数)通常为0
字段Queries为查询或者响应的正文部分,分为Name Type Class
Name(查询名称):这里是ping后的参数,不定长度以0结束
Type(查询类型):2字节,这里是主机A记录.其各个取值的含义如下:

Class(类):2字节,IN表示Internet数据,通常为1

2.答复过程



响应包多出了一个Answers字段,同时Flags字段每一位都有定义.

Answers有5条资源记录,5个不同的IP地址,说明域名 www.bing.com 对应有5个IP地址,分别是:
www.bing.com
a-0001.a-afdentry.net.trafficmanager.net
cn-bing-com.cn.a-0001.a-msedge.net
202.89.233.101
202.89.233.100

Flags中Answer RRs 为5 说明对应的Answers字段中将会出现5项解析结果.

Answers字段可以看成一个List,集合中每项为一个资源记录,除了上面提到过的Name,Type,Class之外,还有Time to Live,Data length,Addr.
Time to Live(生存时间TTL):表示该资源记录的生命周期,从取出记录到抹掉记录缓存的时间,以秒为单位.这里是0x00 00 00 fd 合计253s.
Data length(资源数据长度):以字节为单位,这里的4表示IP地址的长度为4字节.也就是下面Addr字段的长度.
Addr(资源数据): 返回的IP地址,就是我们想要的结果.

4.4 总结

4.4.1 DNS

DNS:(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。使用端口号53。
DNS服务器:用于对域名进行解析的域名解析服务器。
DNS代理:用于代理域名服务器,对客户端的查询请求进行响应(一般是本地查找,查找不到再向代理的服务器转发客户端的查询请求)。
DNS常见的一些类型
类型 数值 描述
A 1 域名的IPv4地址
AAAA 34 域名的IPv6地址
CNAME 5 域名的别名,可以理解为域名的重定向,主要方便IP地址的变更
NS 2 指定哪个域名服务器可以解析该域名的子域名
SOA 6 授权机构记录,记录ns中哪个是主服务器。
PTR 12 根据IP反向查找域名
HINFO 13 主机信息
MX 15 mtp邮箱域名的IP地址。给client端指明某个域名的邮件服务器地址
AXFR 252 对区域转换的请求
ANY 255 对所有记录的请求

4.4.2 dig命令

Dig简介:
Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。Dig可以让你有效地查询DNS,最常用的查询是A记录,TXT(文本注释),MX记录,NS记录,或者任意综合查询。

4.4.3 dnssec

域名系统安全扩展(英语:Domain Name System Security Extensions,缩写为DNSSEC)是Internet工程任务组 (IETF)的对确保由域名系统 (DNS)中提供的关于互联网协议 (IP)网络使用特定类型的信息规格套件。它是对DNS提供给DNS客户端(解析器)的DNS数据来源进行认证,并验证不存在性和校验数据完整性验证,但不提供或机密性和可用性。
DNSSEC 新增的资源记录,这里所指的资源记录类似于我们现有的 A记录、CNAME记录以及TXT记录。新增三种资源记录类型:RRSIG (Resource Record Signature)、DNSKEY (DNS Public Key)、DS (Delegation Signer)详细内容如下:RRSIG (Resource Record Signature)资源记录签名,DNSKEY (DNS Public Key)该记录用于存放我们用于检查 DNSSEC 签名的公钥,DS (Delegation Signer)该记录用于存放 DNSSEC 公钥的散列值

posted @   lwx_R  阅读(180)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示