网络协议与攻击模拟-17-DNS协议-报文格式

二、DNS 查询

在这里插入图片描述
客户机想要访问www.baidu.com,根据自己的 TCP / IP 参数,向自己的首选 DNS 服务器发送 DNS 请求

首选 DNS 收到客户机的请求后,会去查询自己的区域文件,找不到www.baidu.com的 IP 地址信息(将请求转发到根域服务器,需要配置根提示);直接可以找到www.baidu.com的 IP 地址信息(直接响应给客户机)

根域服务器收到请求后,由于根域服务器只维护顶级域服务器信息,会响应顶级域服务器 IP ( com ),首选 DNS 根据根域服务器响应的信息,将请求转发到 com 顶级域

com 顶级域服务器收到请求,由于 com 定级域服务器只维护二级域信息,会二级域服务器 IP (baidu.com),首选 DNS 根据顶级域相应的信息,将请求转发到baidu.com二级域

baidu.com二级域收到请求,baidu.com DNS 服务器里面维护的是baidu.com区域的所有主机信息,包含了www.baidu.com的信息,直接将www.baidu.com的 IP 地址响应给首选 DNS

首选 DNS 再响应给客户机

1、查询方式

递归查询

当客户机请求自己的首选 DNS 服务器,首选 DNS 服务器上有域名记录信息,直接响应给客户机(根据上图所示,第1步和第8步就是递归查询)

迭代查询

首选 DNS 服务器没有域名记录信息,通过一步一步去请求根域服务器、顶级域服务器、二级域服务器,最终找到对应的域名记录信息

在这里插入图片描述

2、查询内容

正向:通过域名查 IP
反向:通过 IP 查域名

三、使用 Windows 部署 DNS 服务器

1、使用 Linux ( bind 服务)

2、 DNS 服务器分类

主要名称服务器:存放区域(二级区域)中相关的设置,存放的区域文件的正本数据

辅助名称服务器:存放的副本数据,是从主要名称服务器复制过来的,不能修改

主控名称服务器:提供数据复制(可以简单的理解成是 DNS 服务器中的某一个角色)

缓存( cache - only )域名服务器:里面没有区域文件,需要配置转发器

在这里插入图片描述

3、 DNS 记录

A :主机记录,域名和 IP 地址的映射

CNAME :别名记录

SOA :权威名称服务器

NS :名称服务器

MX :邮件交换记录,一般有邮件服务器时使用

SRV :正在提供特定服务的服务器

PTR :反向指针记录

4、区域传送

将主要名称服务器的区域文件传送到辅助名称服务器上

区域传送使用的 TCP 的协议

四、分析 DNS 流量

1、 DNS 报文字段

ID 字段

flags :标志

第1位:标识消息类型(0是请求,1是响应)
第2~5位: opcode 查询种类
第6位:标识是否是一个权威应答
第7位:一个 UDP 报文为512字节,指示是否截断超过的部分
第8位:是否请求递归
第9位:允许递归标识
第10~12位:保留位
第13-16位:应答码(0没有错误,1格式错误,2服务器错误,3名字错误,4服务器不支持,5拒绝,6~15保留)

Questions :请求段的问题记录数

Answer RRs :回答段中的应答记录数
Authority RRs :授权段中的授权记录数
Additional RRs :附加段中的附加记录数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/37891.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】TransCAM: Transformer Attention-based CAM Refinement for WSSS

分享一篇阅读的用于弱监督分割的论文 论文标题: TransCAM: Transformer Attention-based CAM Refinement for Weakly Supervised Semantic Segmentation 作者信息: 代码地址: https://github.com/liruiwen/TransCAM Abstract 大多数现有…

mybatis双重foreach实现遍历map中的两个list数组

文章目录 实现背景:前端传值的格式Debug断点调试java如何解析json对象第一步 JSONArray.fromObject()第二步 遍历jsonArray第三步 mybatis双重foreach foreach标签说明最终效果 实现背景: 前端传值时可能会有多个字段传递过来,需要后台将这多…

SpringBoot快速实践 --Ⅰ

文章目录 启动一个SpringBoot项目如何替换内嵌容器玩转SpringBoot配置全局异常处理过滤器拦截器使用Lombok简洁代码使用IDEA HTTP Client进行接口调试 启动一个SpringBoot项目 如果你觉得使用官网来创建太慢了,那你直接把以前项目的依赖粘过来就行了: …

《银行法律法规》三、银行管理——2、公司治理、 内部控制与合规管理

第二章 公司治理、 内部控制与合规管理 第一节 公司治理 考点1 银行公司治理概述★★ 商业银行公司治理是指股东大会、 董事会、 监事会、 高级管理层、 股东及其他利益相关者之间的相互关系, 包括组织架构、 职责边界、 履职要求等治理制衡机制, 以…

【原生HTML+SpringBoot】电子病历编辑器源码

一、简介 本系统主要面向医院医生、护士,提供对住院病人的电子病历书写、保存、修改、打印等功能。本系统基于云端SaaS服务方式,通过浏览器方式访问和使用系统功能,提供电子病历在线制作、管理和使用的一体化电子病历解决方案&#x…

【hadoop】部署hadoop的本地模式

hadoop的本地模式 本地模式的特点部署本地模式测试本地模式是否部署完成 本地模式的特点 没有HDFS、也没有Yarn只能测试MapReduce程序,作为一个普通的Java程序处理的数据是本地Linux的文件一般用于开发和测试 部署本地模式 进入该路径 /root/training/hadoop-2.7…

Ceres Solver简介及使用

Ceres Solver是一个开源的C库,用于建模和解决大型、复杂的优化问题。它是一个成熟、功能丰富且高性能的库,自2010年以来一直在Google生产中使用。最新发布版本为2.1.0,license为BSD,它支持在Windows、Linux、Mac、Android、iOS上编译,源码地址…

TortoiseGit的安装和使用

1、TortoiseGit的下载安装 安装说明:因为TortoiseGit 只是一个程序壳,必须依赖一个 Git Core,所以安装前请确定已完成git安装和配置。 TortoiseGit下载地址 https://download.tortoisegit.org/tgit/ ,最新稳定版本2.11.0.0。 点进去下载程序包和语言包(非必须),安装时…

在 3ds Max 中使用Mental Ray渲染 wip 图像

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 本教程面向初学者,每个步骤都详细概述和显示。如果您是 3D Studio MAX 的新手,您可能想先尝试我们的其他一些教程。 使用默认的 3D Studio MAX 渲染器创建粘土渲染 步骤 1 在 3D S…

实战:Springboot集成Sentinel实现流量控制、熔断降级、负载保护

文章目录 前言知识积累流量控制负载保护熔断降级官方文档 实战演练部署sentinel-dashboard直接jar包部署docker-compose编排 springboot集成sentinel基础架构搭建sentinel控制台sentinel验证 延伸:系统自适应限流系统规则原理配置页面 写在最后 前言 前面的文章我们…

Flutter:架构概览

概览 Flutter本质上是一个跨平台的UI工具集,允许在各自操作系统上复用同样的代码。 尽可能提供原生体验的高性能和复用代码。 开发中,Flutter应用在一个VM上运行,使得可在保留状态且无需重新编译情况下,进行热加载。 发行时&…

chrome插件reading-time开发

本插件开发文档翻译于Google官方文档Chrome Extensions Tutorial: Reading time - Chrome Developers 一、reading-time reading-time项目的功能是 将预期的阅读时间添加到任何Chrome extension 和 Chrome Web Store documentation 页面里面 通过这个项目,我们可以…

网络套接字编程(三)(HTTP)

gitee仓库:https://gitee.com/WangZihao64/linux/tree/master/CalTcp 一、重谈协议 协议是一种“约定”,这种约定是双方都知道的。有了一致的约定,双方才能够正常地进行通信。协议在网络的第一篇博客中也提到过,协议是双方进行通…

图像增广:强化深度学习的视觉表现力

目录 摘要: 1. 图像增广简介 2. 图像增广的原理 3. 常见的图像增广技术 4. 如何在实际项目中应用图像增广 5.实际应用 摘要: 当今,深度学习已经在计算机视觉领域取得了令人瞩目的成就。图像增广作为一种数据处理技术,让我们…

一.CreateFileMapping实现的共享内存及用法

共享内存概念 1.在32位的Windows系统中,每一个进程都有权访问他自己的4GB(2324294967296)平面地址空间,没有段,没有选择符,没有near和far指针,没有near和far函数调用,也没有内存模式…

修改npm路径

npm config ls如果是第一次使用NPM安装包的话,在配置中只会看到prefix的选项,就是NPM默认的全局安装目录。但是如果有多次使用NPM安装包的话,就会看到cache和prefix两个路径。 新建两个文件夹node_global_modules和node_cache npm config s…

【CesiumJS入门】(7)绘制多段线(动态实时画线)

前言 鼠标左键添加点、右键完成绘制,单击右侧弹窗关闭按钮清空绘制。参考沙盒示例:Drawing on Terrain 直接上代码了 /** Date: 2023-07-12 18:47:18* LastEditors: ReBeX 420659880qq.com* LastEditTime: 2023-07-16 16:26:19* FilePath: \cesium-tyro-blog\s…

Verdi之波形展示nWave

6.nWave 6.1 添加波形文件 1.打开nWave界面,具体操作如下: 2.正式添加波形,使用快捷键G或者点击以下图标,选择需要的信号。 也可以在 n Trace中选中信号后,鼠标中键拖拽,或者ctrlw进行添加; 6…

R和python中dataframe读取方式总结

首先我有一个如图所示的文件 如果在python中读取 import pandas as pd df pd.read_csv("./6group_count.csv",index_col0) df而在R中读取的方式如下 df read.csv("./6group_count.csv",row.names 1)

MySQL---索引

目录 一、索引的分类 二、索引的底层原理是什么? 2.1、Innodb和MyIsAM两种引擎搜索数据时候的区别: 2.2、为什么MySQL(MyIsAM、Innodb)索引选择B树而不是B树呢? 2.3、Innodb的主键索引和二级索引(辅助…