计算机网络——12DNS

DNS

DNS的必要性

  • IP地址标识主机、路由器
  • 但IP地址不好记忆,不便于人类用使用(没有意义)
  • 人类一般倾向于使用一些有意义的字符串来标识Internet上的设备
  • 存在着“字符串”——IP地址的转换的必要性
  • 人类用户提供要访问机器的“字符串”名称
  • 由DNS负责转换为二进制的网络地址

DNS系统需要解决的问题

  • 问题1:如何命名设备
    • 用有意义的字符串:好记,便于人类用使用
    • 解决一个平面命名的重名问题:层次化命名
  • 问题2:如何完成名字到IP地址的转换
    • 分布式的数据库维护和响应名字查询
  • 问题3:如何维护:增加或者删除一个域,需要在域名系统中做哪些工作

DNS的历史

  • APRANET的名字解析解决方案
    • 主机名:没有层次的一个字符串(一个平面)
    • 存在着一个(集中)维护站:维护者一张主机名-IP地址的映射文件:Hosts.txt
    • 每台主机定时从维护站取文件
  • APRAnet解决方案的问题
    • 当网络中主机数量很大时
      • 没有层次的主机名称很难分配
      • 文件的管理、发布、查找都很麻烦

DNS总体思路和目标

  • DNS的主要思路
    • 分层的、基于域的命名机制
    • 若干分布式的数据库完成名字到IP地址的转换
    • 运行在UDP之上端口号为53的应用服务
    • 核心的Internet功能,但以应用层协议实现
      • 在网络边缘处理复杂性
  • DNS主要目的
    • 实现主机名-IP地址的转换
    • 其他目的
      • 主机别名规范名字的转换
      • 邮件服务器别名到邮件服务器的正规名字的转换
      • 负载均衡

问题1:DNS命名空间

DNS域名结构

  • 一个层面命名设备会有很多重名
  • DNS采用层次树状结构的命名方法
  • Internet根被划为几百个顶级域
    • 通用的:
      • .com; .edu ; .gov ; .int ; .mil ; .net ; .org .firm ; .hsop ; .web ; .arts ; .rec ;
    • 国家的:
      • .cn ; .us ; .nl ; .jp
  • 每个(子)域下面可划分为若干子域
  • 树叶是主机

DNS名字空间

在这里插入图片描述

域名:

  • 从本域往上,直到树根
  • 中间使用“.”间隔不同的级别
  • 域的域名:可以用于表示一个域
  • 主机的域名:一个域上的一个主机

域名的管理:

  • 一个域管理其下的子域
  • 创建一个新的域,必须征得它所属域的同意

域与物理网络无关

  • 域遵从组织界限,而不是物理网络
    • 一个域的主机可以不在一个网络
    • 一个网络的主机不一定在一个域
  • 域的划分是逻辑的,而不是物理的

问题2:解析问题-名字服务器

一个名字服务器的问题:

  • 可靠性问题:单点故障
  • 拓展性问题:通信容量
  • 维护问题:远距离的集中式数据库

区域:

  • 区域的划分由区域管理者自己决定
  • 将DNS名字空间划分为互不相交的区域,每个区域都是树的一部分
  • 名字服务器:
    • 每个区域都有一个名字服务器,维护着它所管辖区域的权威信息
    • 名字服务器允许被放置在区域之外,以保障可靠性

名字空间换分为若干区域:Zone

在这里插入图片描述

权威DNS服务器:组织机构的DNS服务器,提供组织机构服务器(如Web和mail)可访问的主机和IP之间的映射

组织机构可以选择实现自己维护或由某个服务器提供商来维护

TLD服务器

  • 顶级域(TLD)服务器:负责顶级域名和所有国家级的顶级域名
    • Network solutions 公司维护com TLD服务器
    • Educause 公司维护edu TLD服务器

区域名字服务器维护资源记录

资源记录

  • 作用:维护域名-IP地址(其他)的映射关系
  • 位置:Name Server的分布式数据库中

RR格式

  • Domain_name:域名
  • Ttl: time to live:生存时间,就是某个资源记录插入到表当中,生存时间是多少;根据Ttl是否无穷大,记录划分为权威记录和缓冲记录
  • Class类别:对于Internet,值为IN
  • Value:可以是数字,域名或ASCII串
  • Type类别:资源记录的类型

DNS记录

DNS保存资源记录(RR)的分布式数据库

RR 格式:(domain_name, ttl, type,class,Value)

Type类型Name的含义Value的含义举例
A主机ip地址
CNAME别名规范名字www.ibm.com的规范名字为servereast.backup2.ibm.com
NS域名(如foo.com)该域名的权威服务器的名字NAME仅仅具体到了域名,还没有到主机
MX邮件name对应的邮件服务器的名字

TTL:生存时间,决定了资源记录应当从缓存中删除的时间

例子:
在这里插入图片描述

DNS

DNS大致工作过程

  • 应用调用解析器
  • 解析器作为客户向Name Server发出查询报文(封装在UDP段中)
  • Name Server返回响应报文

在这里插入图片描述

本地名字服务器

  • 并不严格属于层次机构
  • 每个ISP(居民的ISP、公司、大学)都有一个本地DNS服务器
    • 也称为“默认名字服务器”
  • 当一个主机发起一个DNS查询时,查询被送到其本地DNS服务器
    • 起着代理的作用,将查询结果转发到层次结构中

名字服务器

名字解析过程

  • 目标名字在Local Name Server中
    • 情况1:查询的名字在该区域内部
    • 情况2:缓存

当本地名字服务器不能解析名字时,联系根名字服务器顺着根-TLD一直找到权威名字服务器

在这里插入图片描述

递归查询

递归查询

  • 名字解析负担都放在当前联络的名字服务器上
  • 问题:根服务器的负担太重
  • 解决:迭代查询

在这里插入图片描述

迭代查询

  • 主机cis.poly.edu 想知道主机 gaia.cs.umass.edu 的IP地址
  • 根(及各级域名)服务器返回的不是查询结果,而 是下一个NS的地址
  • 最后由权威名字服务器给出解析结果
  • 当前联络的服务器给出可以联系的服务器的名字
  • “我不知道这个名字,但可以向这个服务器请求”

在这里插入图片描述

DNS协议、报文

DNS协议:查询和响应报文的报文格式相同
在这里插入图片描述

提高性能:缓存

  • 一旦名字服务器学到了一个映射,就将该映射缓存起来
  • 根服务器通常都在本地服务器中缓存着
    • 使得根服务器不用经常被访问
  • 目的:提高效率
  • 可能存在的问题:如果情况变化,缓存结果和权威资源记录不一致
  • 解决方案:TTL(默认两天)

问题3:维护问题:新增一个域

  • 在上级域的名字服务器中增加两条记录,指向这个新增的子域的域名和域名服务器的地址
    (Type = NS、 Type = A 相当于指针)
  • 在新增子域的名字服务器上运行名字服务器,负责本域的名字解析:名字->IP地址
    • 例子:在com域中建立一个“Network Utopia”
  • 到注册登记机构注册域名networkutopia.com
    • 需要向该机构提供权威DNS服务器(基本的、和辅助的)的名字和IP地址
    • 登记机构在com TLD服务器中插入两条RR记录:
      • (networkutopia.com,dns1.networkutopia.com,NS )
      • (dns1.networkutopia.com,212.212.212.1,A)
  • 在networkutopia.com的权威服务器中确保有
    • 用于Web服务器的www.networkuptopia.com的类型为A的记录
    • 用于邮件服务器mail.networkutopia.com的类型为MX的记录

这里以添加为例,删改查是一样的

攻击DNS

DDoS 攻击

  • 对根服务器进行流量轰炸攻击:发送大量ping
    • 没有成功
    • 原因1:根目录服务器配置 了流量过滤器,防火墙
    • 原因2:Local DNS 服务器 缓存了TLD服务器的IP地址, 因此无需查询根服务器
  • 向TLD服务器流量轰炸攻击 :发送大量查询
    • 可能更危险
    • 效果一般,大部分DNS缓存了TLD

重定向攻击

  • 中间人攻击
    • 截获查询,伪造回答,从而攻击某个(DNS回答指定的IP)站点
  • DNS中毒
    • 发送伪造的应答给DNS服务器,希望它能够缓存这个虚假的结果
  • 技术上较困难:分布式截获和伪造

利用DNS基础设施进行DDoS

  • 伪造某个IP进行查询, 攻击这个目标IP
  • 查询放大,响应报文比查询报文大
  • 效果有限

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

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

相关文章

Linux学习(三)shell编程

1.echo指令 用于将后面的字体内容回显到控制台,将后面的字体用单引号或双引号引起来都会忽略引号 2.expr数学运算 3.第一个shell脚本 一般shell脚本以.sh为后缀,通过sh命令来执行shell脚本。 4.shell脚本的命令行参数 $1 $2 $3 $4 $5 $6 $7 $8 $9 $0 &…

C语言学习day14:数组定义和使用

定义变量: 数据类型 变量 值 数组定义: 数据类型 数组名[元素个数]{值1,值2,值3} 代码: int main() {//定义变量//数据类型 变量 值//数组定义//数据类型 数组名[元素个数]{值1,值2,值3}//数组下标 数组名[小标]//数组下标是…

相机图像质量研究(16)常见问题总结:光学结构对成像的影响--IRCUT

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

Unity基础 -- 更新中(2.15)

Unity基础 文章目录 Unity基础3D数学 -- 基础一些方法插值运算三角函数坐标系 3D数学 -- 向量理解常用函数线性插值 3D数学 -- 四元数看向四元数计算 延迟函数协同程序 3D数学 – 基础 一些方法 float value01 Mathf.PI; // Π int value03 Mathf.Abs(-2); // 绝对值 int v…

MySQL安装及环境配置

目录 下载安装检验安装是否成功配置环境变量 下载 MySQL下载链接 安装 点击安装包进行安装 选择Server only,点击Next 点击Execute 点击Next 提示我们需要进行一些配置,点击Next 输入管理员密码,点击Next 点击Execute,安装配…

【类与对象(1)】类的引入、访问及封装、定义、作用域、实例化、类大小的计算、this指针

1.类的引入 C兼容了C语言结构体的用法,但是同时又升级成了类。结构体中只能定义变量,类中不仅可以定义变量,还可以定义函数。 例如,数据结构中实现栈,结构体stack中只定义了变量,要实现的函数在结构体外定…

FastAI 之书(面向程序员的 FastAI)(一)

原文:www.bookstack.cn/read/th-fastai-book 译者:飞龙 协议:CC BY-NC-SA 4.0 序言 原文:www.bookstack.cn/read/th-fastai-book/README.md 译者:飞龙 协议:CC BY-NC-SA 4.0 在很短的时间内,深度…

建筑工程如何找答案? #职场发展#笔记#职场发展

这些软件以其强大的搜索引擎和智能化的算法,为广大大学生提供了便捷、高效的解题方式。下面,让我们一起来了解几款备受大学生欢迎的搜题软件吧! 1.易解题 这是一个网站 是我在百度搜题,经常会出现的一个网站,它里面…

K8S集群实践之十:虚拟机部署阶段性总结

目录 1. 说明: 2. 安装准备 2.1 每个节点设置双网卡,一卡做网桥(外部访问),一卡做NAT(集群内网访问) 2.2 准备一个可用的代理服务器 3. 由于虚拟机崩溃(停电,宿主机…

Gemini 1.5 Pro揭秘:Google DeepMind新一代AI模型如何突破千万级别词汇限制?

Gemini 1.5 Pro 发布! 这款模型凭借其超长的上下文处理能力脱颖而出,支持10M tokens。 它的多模态特性意味着,无论面对多么庞大复杂的内容,Gemini 1.5 Pro都能游刃有余地应对。 在AI的世界里,上下文的理解如同记忆的…

如何创建和填写 PDF 表单,简化您的文档工作流

阅读本文,了解如何在开源办公套件 ONLYOFFICE 中创建和填写 PDF 表单。 ONLYOFFICE表单发展小史 ONLYOFFICE 表单首个版本发布于2022年1月18日,是 ONLYOFFICE 版本 7.0 更新的一部分。 您可以使用 ONLYOFFICE 表单,创建各种类型的模板文档&a…

DS Wannabe之5-AM Project: DS 30day int prep day18

Q1. What is Levenshtein Algorithm? Levenshtein算法,也称为编辑距离算法,是一种量化两个字符串之间差异的方法。它通过计算将一个字符串转换成另一个字符串所需的最少单字符编辑操作次数来实现。这些编辑操作包括插入、删除和替换字符。Levenshtein距…

备战蓝桥杯---图论之最短路Bellman-Ford算法及优化

目录 上次我们讲到复杂度为(nm)logm(m为边,n为点)的迪杰斯特拉算法,其中有一个明显的不足就是它无法解决包含负权边的图。 于是我们引进Bellman-Ford算法。 核心:枚举所有的点,能松弛就松弛,直…

使用radial-gradient完成弧形凹陷的绘制

1、效果如下图 我在微信小程序中制作的 2、代码如下 <style>.header {position: relative;width: 200px;height: 200px;overflow: hidden;}.header .circle {--circleValue: 500px;position: absolute;bottom: 0;left: 50%;width: 100%;height: var(--circleValue);trans…

2024牛客寒假算法基础集训营2-c Tokitsukaze and Min-Max XOR

来源 题目 Tokitsukaze 有一个长度为 n 的序列 a1,a2,…,an和一个整数 k。 她想知道有多少种序列 b1,b2,…,bm满足&#xff1a; 其中 ⊕\oplus⊕ 为按位异或&#xff0c;具体参见 百度百科&#xff1a;异或 答案可能很大&#xff0c;请输出  mod1e97 后的结果。 输入描述…

【开源】SpringBoot框架开发食品生产管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3 食品管理模块2.4 生产销售订单管理模块2.5 系统管理模块2.6 其他管理模块 三、系统展示四、核心代码4.1 查询食品4.2 查询加工厂4.3 新增生产订单4.4 新增销售订单4.5 查询客户 五、…

基于微信小程序的智能社区服务小程序,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

【STM32】OLED显示实验

目录 一、硬件介绍 1. STM32F03C8T6 2. OLED屏 二、STM32CubeMX配置 1. 实际接线 2. IIC配置 3. 其他配置 四、字模生成 1. 打开PCtoLCD2002.exe软件。选择字符模式。 2. 以16x16汉字取模为例&#xff0c;即字宽字高都为16. 3. 输入取模汉字。 4. 点击生成自模。 …

毕业设计vue+php幼儿园网站系统yl567

幼儿园网站系统。采用vscode集成IDE对幼儿园网站系统统进行开发,整合系统的各个模块。 拟开发的幼儿园网站系统通过测试,确保在最大负载的情况下稳定运转,各个模块工作正常,具有较高的可用性。系统整体界面简洁美观,用户使用简单,满足用户需要。在因特网发展迅猛的当今社会,幼儿…

最短路径与关键路径

目录 文章目录 前言 一.最短路径 1.基本概念 1.1什么是源点&#xff1f; 1.2什么是最短路径 2.作用 3.迪杰斯特拉算法 4. 弗洛伊德算法 4.1过程演示 二.拓扑排序 1.基本概念 1.1什么是有向无环图 1.2什么是活动 1.3什么是AOV网 1.4什么是拓扑序列 1.5什么是拓扑…