计算机网络协议分析 第11课 DNS补全

本文详细解读了Nslookup命令的使用,介绍了DNS报文结构,包括查询与响应的区别、参数解读、问题区、回答区、域名压缩以及管理机构和附加信息区。深入探讨了DNS工作原理,涉及域名注册、动态更新、DNS安全与缓存污染问题。
摘要由CSDN通过智能技术生成

第10章域名系统DNS

10.3 Nslookup命令

Nslookup [- option] [hostname] [server]
向某个DNS服务器发送DNS查询报文
跟浏览器访问网站区别,nslookup命令可以用server一项改变目标服务器,若这项不填,默认是本地服务器。

例如:

  • nslookup www.baidu.com(向百度的DNS服务器发送报文)
  • nslookup(查看本地DNS服务器)
  • nslookup -qt=ns www.baidu.com
  • nslookup -qt=ptr 210.34.80.1
  • nslookup -qt=mx www.baidu.com(查询其他资源类型资源记录)

10.4 DNS报文

  • 使用UDP:
    • 使用A类型查询某个域名时
    • DNS响应报文长度小于512字节时
  • 使用TCP:
    • DNS查询报文长度大于512字节时
    • 主/辅域名服务器之间进行区域传输

DNS报文结构

DNS查询报文
DNS响应报文
DNS首部

  • 问:用于匹配查询报文和响应报文的字段是?
    • 答:标识字段可以唯一地标识一个DNS报文并匹配请求和响应
  • 问:查询报文中“回答数”字段的值是?
    • 答:查询只有首部、问题区,其他部分都为0,于是这里的回答数为0
  • 问:响应报文中“回答数”=“问题数”吗?
    • 答:不对,这个问题类似于1个域名可以对应多个IP
  • 问:响应报文中“问题区”=查询报文中“问题区”吗?
    • 答:对,这里的内容一对的查询响应报文是完全相同的
  • 问:如何区分是查询报文还是响应报文?
    • 答:可以有多种方式,比如查看回答数等字段是否有值,参数、标识字段的值也可以看出

参数

参数字段

  • 0操作位(QR):查询为0,响应为1
  • 1-4查询类型(Option):标准查询为0,反向查询为1,还有很多空间暂时还没使用
  • 5授权(AA仅应答):0响应由授权服务器返回,1响应由非授权服务器返回(例如DNS缓存服务器)
  • 6截断(TC仅应答):超过512字节时有用,当为1时,于是让源主机从UDP报文改为重新发一个TCP报文
  • 7需要递归(RD):当为1时表示客户希望得到递归回答,不需要一层层服务器查询过去,直接拿到结果
  • 8递归结果(RA仅应答):当为1时表示DNS服务器支持递归
  • 9-11未使用,全0
  • 12-15查询结果(Rcode):表示响应中的差错状态

参数错误的情况

问题区

问题区
查询域名Name:长度+字符串
例如:3www5baidu3com0
例子
:这个问题区的长度?
:20字节

回答区

回答区

  • 生存时间TTL:资源记录信息在缓存中的有效秒数
  • 长度Data Length:指“资源数据区”的长度
  • 资源数据区Data:对查询的回答

回答区例子
问1:回答数是多少?
答:3个

问2:是否存在重复数据?
答:是,最后一行以及下面没显示的数据于第2个回答重复了

域名压缩

域名压缩

  • 回答区的域名是问题区中域名的重复
  • 重复部分用偏移指针(2字节)表示
  • 如果回答区前2位是
    • 11(压缩):接下来14位为偏移指针,指向域名的存放位置(指重复部分从何开始)
    • 00(无压缩):接下来6位为域名计数值(域名第1部分字符长度)

管理机构区和附加信息区

  • 管理机构区:包含一个或多个权限域名服务器信息
  • 附加信息区:提供附加信息,如:管理机构中域名服务器对应的IP地址

10.5 有关DNS的讨论

  1. 域名注册
    域名注册需提交域名和IP地址,且每年缴费(例如腾讯云,阿里云)
  2. DDNS:动态更新DNS服务器上域名和IP地址的对应关系
  3. DNS缓存污染
    • 攻击方可假冒任何一个应答方:递归服务器——根服务器——com.顶级服务器——baidu.com.的权限服务器,给请求方发送一个伪造的响应(含伪造的IP地址)
    • DNS缓存中错误的记录将随着攻击者设定的TTL进行存活
    • 客户端无法正常访问网站,或客户端请求重定向到伪造的网站
  4. DNSsec(DNS安全扩展):采用基于公钥的数字签名,由数据所有者对DNS资源记录进行签名
    • 每一个DNS区均包含一个公钥私钥对
    • DNS区所有者使用该驱虎的私钥对区域内的DNS数据进行签名
    • 该区域的公钥在区域内公开发布
    • 既能验证数据来源,也可以确保数据完整性

上一课:第10课 DHCPv6
下一课:第12课 TCP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值