网络协议与攻击模拟-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 :附加段中的附加记录数

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL 5.7.17 安装版 的配置文件

解压版解压后都有 my.ini配置文件,安装版要查找这个配置文件可以查看 MYSQL Workbench --> 左侧 INSTANCE --> Options File ,然后可以看到底部 Configuration File所处的位置,即为my.ini的路径。

Jupyter notebook添加与删除kernel

目录 1 添加虚拟环境的kernel 2 删除jupyter notebook已有的kernal 3 切换内核与查看当前内核 4 添加C语言的kernel 5 添加python2的kernel 6 添加java语言的kernel 6.1 sudo apt install default-jre 6.2 下载并安装 ijava 6.3 sudo apt install openjdk-11…

TortoiseGit 入门指南05:推送和拉取

本节所讲内容均涉及到 远端版本库。 版本库 的概念在《TortoiseGit 入门指南02:创建和克隆仓库》中提到过,它是工作目录下面的一个名为 .git 的隐藏目录,我们每一次提交、每一个分支都会保存在版本库中。这个版本库就在我们电脑上的某个文件…

鸽了百万用户四年的赛博皮卡终于要来啦

作者 | Amy 编辑 | 德新 本月15号,特斯拉官方宣布,第一辆 赛博皮卡已在特斯拉得州工厂下线。 而就在本月初,马斯克还发推预热了一波,「开着赛博皮卡在奥斯汀(特斯拉得州工厂所在地)溜了一圈&#xff01…

THREE.JS镜头随鼠标晃动效果

为了让动画更灵活并且简单 借助gsap让其具有更多可能,在未来更容易扩充其他动效 gsap Dom跟随鼠标移动 gsap.quickTo() 首先要监听鼠标移动,并且将移动的值转换到 -1 和 1 之间 方便处理 private mousemove(e: MouseEvent) {const x (e.clientX / inner…

华为配置LLDP基本功能

华为配置LLDP基本功能 1.什么是lldp协议 定义 LLDP(Link Layer Discovery Protocol)是IEEE 802.1ab中定义的链路层发现协议。LLDP是一种标准的二层发现方式,可以将本端设备的管理地址、设备标识、接口标识等信息组织起来,并发布给自己的邻居设备,邻居设备收到这些信息后将…

SSH远程直连Docker容器

文章目录 1. 下载docker镜像2. 安装ssh服务3. 本地局域网测试4. 安装cpolar5. 配置公网访问地址6. SSH公网远程连接测试7.固定连接公网地址8. SSH固定地址连接测试8. SSH固定地址连接测试 转载自cpolar极点云文章:SSH远程直连Docker容器 在某些特殊需求下,我们想ssh…

45、Spring Boot自动配置原理

Spring Boot自动配置原理 lmport Configuration Spring spi 自动配置类由各个starter提供,使用Configuration Bean定义配置类,放到META-INF/spring.factories下使用Spring spi扫描META-INF/spring.factories下的配置类使用lmport导入自动配置类

[游戏开发][Unity] TPS射击游戏相机实现

技术难点:由于是第三人称射击游戏,角色和相机之间有夹角,所以枪口点和准星是有误差的,下面是和平精英手游截图,我用AK射击zhuzi using System.Collections; using System.Collections.Generic; using UnityEngine;publ…

❤️创意网页:如何创建一个漂亮的3D正六边形

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…

上手vue2的学习笔记5之在vue2项目中调用elment-ui

前言 上手vue2的学习笔记4之搭建vue环境 参考链接:vue2.0项目引入element-ui 一、安装elment-ui 进入搭建的vue项目中 cd vue_bing_test 安装 element npm i element-ui二、引入elment-ui elment官方教程 将main.js改成如下内容: import Vue fro…

我们正在开发一套组件库,欢迎你的加入~

项目地址 github地址 可以先点进来康康~ 技术栈 目前我们整体采用的是vue3typescriptless作为整体的开发的选择 需要说的是,我们并没有采用很多组件库采用的TSX的写法,而是选择了SFC的写法,这是因为我们觉得对于大部分的vue开发者来说&am…

MySQL八股学习记录4事务的实现from小林coding

MySQL八股学习记录4事务的实现from小林coding 事务的概念与特性并行事务引发的问题脏读不可重复读幻读 MySQL的应对策略InnoDB引擎可重复读详解ReadView在MVCC中的工作方式两种隔离级别通过MVCC实现幻读被完全解决了吗 事务的概念与特性 概念:一个操作要么执行成功,要么回滚到…

ORACLE实时SQL监控视图

引言 实时的SQL监控(Real Time SQL Monitoring)是Oracle 11g的一个新特性,它是一项强大的工具,用于监视和分析正在执行的SQL语句的性能和执行计划。该功能允许我们实时地跟踪SQL查询的执行过程,以及了解其资源消耗、等…

Java的五种数据类型解析

Java的五种数据类型解析 不知道大家对java的简单数据类型是否了解,下面针对Java的五种类型简单数据类型表示数字和字符,进行详细的讲解和分析。 一、简单数据类型初始化 在Java语言中,简单数据类型作为类的成员变量声明时自动初始化为默认值…

Ext JS中定义和使用类Ext JS风格的html 按钮

Ext JS 的按钮样式如下: 按钮的背景色默认为应用的主色调或是灰色系, 也可以通过样式设置按钮的背景色, 详细可以参考: Ext JS 如何设置工具栏按钮和一般按钮保持统一样式 但是, 在实际开发的场景中有可能某些按钮是不能通过Ext JS的Button 类进行创建的, 但是页面效果…

如何快速入门「组织结构图」?

组织结构图,对于公司老板和HR可谓是家常便饭,公司发展好,组织结构要升级和调整,人员“正常”流动,都需要用到它。组织结构图可以让人快速的了解公司的行政结构和权利体系,也是让新员工或客户快速了解公司相…

JAVA+Selenium最简单的处理登录弹窗的方式

在做自动化测试遇到需要处理登录弹窗情况,例如我的用户名为admin, 密码为admin, 那么想要登录http://10.10.168.1, 只需要使用以下链接访问即可立即登录, 并免除弹窗: http://账号:密码网址

composer的劈坑

现在是php8盛行的天下,安装php8我就不多说了,宝塔、小出面板一大堆,一键安装。真心说方便。(好吧,不打广告了),以下是针对 linux 系统 1、安装composer 安装composer之前,需要要先在…

Unity VR 开发教程 OpenXR+XR Interaction Toolkit(八)手指触控 Poke Interaction

文章目录 📕教程说明📕XR Poke Interactor📕与 UI 进行触控交互⭐添加 Tracked Device Graphic Raycaster 和 XR UI Input Module 让 UI 可被交互 📕与物体进行交互⭐XR Simple Interactable⭐XR Poke Filter 往期回顾&#xff1a…