当前位置: 首页 > news >正文

【计算机网络】DNS原理介绍

文章目录

  • DNS提供的服务
  • DNS的工作机理
    • DNS查询过程
    • DNS缓存
  • DNS记录和报文
    • DNS记录
    • DNS报文
    • 针对DNS服务的攻击

DNS提供的服务

DNS,即域名系统(Domain Name System)
提供的服务

  1. 一种实现从主机名到IP地址转换的目录服务,为Internet上的用户应用程序以及其他软件而非用户提供的功能
  2. 存储主机别名,实现主机别名到规范主机名以及主机的IP地址之间的转换
  3. 存储邮件服务器别名,实现邮件服务器别名到邮件服务器的规范主机名和IP地址
  4. 实现负载平衡,DNS存储一个规范主机名到一个IP地址集合的映射

DNS是什么
一个由分层的DNS服务器(DNS server)实现的分布式数据库
一个使得主机能查询分布式数据库的应用层协议
DNS运行在UDP之上,使用主机的53端口
主机名和IP地址的引入
使用主机名(hostname)或IP地址(IP address)来标识因特网中众多的主机
hostname: 便于记忆,用户使用
IP address: 定长的的、有着层次结构,路由器使用
IP地址
由4个字节组成,每个字节都被句点分隔开
有着严格的层次结构,从左到右扫描时能得到主机在Internet中的位置信息
为什么说DNS协议是应用层协议

  1. 使用客户-服务器模式运行在通信的端系统之间
  2. DNS报文是通过端到端运输协议实现端系统之间的传输的
    举个例子
    用户在浏览器上请求URL www. someschool. edu/index. html,获得www. someschool. edu的IP地址的过程展示
    image.png

术语介绍
规范主机名(canonical hostname)、主机别名(host aliasing)、邮件服务器别名(mail server aliasing)、负载平衡(load distribution)
host aliasing相较于canonical hostname方便了用户的记忆,mail server aliasing也是同样的道理
负载平衡的实现
繁忙的站点会被冗余地分布在多台服务器上,每台服务器都会有不同的IP地址。于是一个站点会对应到一个IP地址集合,这个IP地址集合存储在DNS数据库中,在用户访问站点时,DNS客户端发出DNS请求,对应的整个IP地址集合进行响应,而在回答中DNS会循环集合中的IP地址次序。而客户只向IP地址排在最前面的服务器发送请求。从而实现了服务器的负载分配平衡

DNS的工作机理

使用带有层级结构的分布式的数据库存储主机名到IP地址的映射
集中式设计DNS的问题
DNS的集中式设计:在因特网上只使用一个DNS服务器,该服务器包含所有的映射。客户直接将所有查询直接发往单一的DNS服务器,同时该DNS服务器直接对所有的查询客户做出响应。

  1. 单点故障(a single point of failure):该DNS服务器的崩溃将带来整个Internet的瘫痪
  2. 通信容量(traffic volume):该DNS服务器的负载很重
  3. 远距离的集中式数据库(distant centralized database):距离远的网络将有巨大的时延
  4. 维护(maintenance):一个服务器需要为所有的Internet主机保留记录

DNS服务器的层次结构
image.png

没有一台DNS服务器拥有Internet上所有主机的映射

3种类型的DNS服务器:根DNS服务器、顶级域(Top-Level Domain, TLD) DNS服务器和权威DNS服务器。

  1. 根DNS服务器:提供TLD服务器的IP地址
  2. 顶级域服务器:TLD服务器提供了权威DNS服务器的IP地址。分为通用顶级域服务器和国家的顶级域服务器
  3. 权威DNS服务器:存储主机名与IP地址之间的映射记录

本地DNS服务器
local DNS server
每个ISP有一台本地DNS服务器(默认名字服务器)
主机与DNS服务器关系:当主机与某个ISP连接时,该ISP提供一台主机的IP地址(ISP给该主机分配地址),该主机具有一台或多台其本地DNS服务器的IP地址(客户端-服务器架构)
作用:本地DNS服务器可以视作一个代理,当host发起DNS请求某一域名对应IP地址时,该DNS请求将首先被发往本地DNS服务器,本地DNS服务器再将其转发到DNS服务器层次结构中

DNS查询过程

递归查询(recursive query):所有查询都以自己的名义来请求,在查询的传递过程中,本地DNS服务器、根DNS服务器、顶级域服务器、权威DNS服务器都是在做同样的事情,即查询指定域名对应的IP地址
迭代查询(iterative query):在查询过程中,每一级的服务器都在做自己所能做的,即缩小查询的范围,根DNS服务器返回查询域名对应的顶级域IP,顶级域服务器返回查询结果对应的权威域IP
举个例子
image.png
需求:主机cse. nyu. edu 想知道主机 gaia. cs. umass. edu的IP地址——共需要发送4份查询报文,4份回答报文

  1. 主机cse. nyu. edu向它的本地DNS服务器dns. nyu. edu发送一个包含被转换主机名的DNS查询报文
  2. 本地DNS服务器将该报文转发到根DNS服务器。根DNS服务器注意到其edu前缀并向本地DNS服务器返回负责edu的TLD的IP地址列表
  3. 本地DNS服务器则向这些TLD服务器之一发送查询报文。该TLD服务器注意到umass. edu前缀,并用权威DNS服务器的IP地址进行响应
  4. 本地DNS服务器直接向dns. umass. edu重发查询报文,dns. umass. edu用gaia. cs. umass. edu的IP地址进行响应
    从cse.nyu.edu到dns.nyu.edu为递归查询,后续的三个查询均为迭代查询

展示一个查询链中所有查询均为递归查询的例子
image.png

DNS缓存

DNS caching
目的:改善时延性能、减少Internet中的DNS报文数量
原理:当某DNS服务器接收到一个DNS回答时,该映射将被此DNS服务器缓存
作用:当对某主机名的查询在本地DNS服务器中已经缓存了对应的主机名/IP地址对时,则该本地DNS服务器能直接提供要求的IP地址,而不必进行任何查询。此外,本地DNS服务器也能缓存TLD服务器的IP地址,使得在大多数查询中根DNS服务器都被绕过了

DNS记录和报文

DNS记录

资源记录
Resource Record, RR
主机名到IP地址映射的存储形式
一条RR是一个四元组,形式化为(Name, Value, Type, TTL)
其中TTL是该RR的生存时间,即其多久之后会被删除
RR有四种类型,Type决定了Name和Value的值,进而决定该种RR记录的功能

  1. 若Type=A,则Name为hostname,Value为对应的IP address,即标准的hostname到IP address的映射
  2. 若Type=NS,则Name为一个域,Value为知道如何获得该域中主机IP地址的权威DNS服务器的hostname(这里的域并不局限于最小的权威域,可以是顶级域,子顶级域等等,在迭代查询的过程中,如根DNS服务器、TLD服务器返回的均一条NS RR+一条A RR)
  3. 若Type=CNAME,则Name为aliasing,Value为该主机的规范主机名
  4. 若Type=MX,则Name为邮件服务器的aliasing,Value为该邮件服务器的规范主机名。通过使用MX记录,一个公司的邮件服务器和其他服务器(如它的Web服务器)可以使用相同的别名

DNS报文

image.png
DNS中仅有查询和回答两种报文,且两种报文格式相同
手动发送DNS查询报文:在终端使用nslookup程序
在DNS数据库中插入记录
在注册登记机构(registrar)注册域名,如networkutopia. com,注册者需要提供基本和辅助权威DNS服务器的名字和IP地址。registrar则会把一条NS RR和一条A RR输入TLD com服务器中,将一条对应web服务的A RR和一条对应邮件服务的MX RR输入注册者的权威DNS服务器中

针对DNS服务的攻击

分布式拒绝服务(DDoS)
带宽洪泛攻击,攻击root DNS服务器,攻击TLD服务器

实现Web用户重定向到攻击者的Web站点
中间人攻击,攻击者截获来自主机的请求并返回伪造的回答
DNS毒害攻击,,攻击者向一台DNS服务器发送伪造的回答,诱使服务器在它的缓存中接收伪造的记录

相关文章:

【计算机网络】DNS原理介绍

文章目录 DNS提供的服务DNS的工作机理DNS查询过程DNS缓存 DNS记录和报文DNS记录DNS报文针对DNS服务的攻击 DNS提供的服务 DNS,即域名系统(Domain Name System) 提供的服务 一种实现从主机名到IP地址转换的目录服务,为Internet上的用户应用程序以及其他…...

Docker的基础命令

目录 一、镜像操作 1、搜索镜像 2、下载镜像 3、查看镜像 3.1 查看下载到本地的所有镜像 3.2 查看单个镜像的详细信息 4、为镜像添加新的标签 5、镜像导出和导入到本地 5.1 镜像导出到本地 5.2 导入镜像 6、删除镜像 7、批量删除镜像 8、上传镜像 8.1 官网注册登录…...

提取项目依赖包的licenses

skywalking-eyes工具可以快速提取出licenses...

Vue项目自动转换px为rem-高保真还原设计图

前端开发中还原设计图的重要性毋庸置疑,目前来说应用最多的应该也还是使用rem。然而很多人依然还是处于刀耕火种的时代,要么自己去计算rem值,要么依靠编辑器安装插件转换。 而本文的目标就是通过一系列的配置后,在开发中可以直接使…...

rman备份到远程服务器

rman备份到远程服务器磁盘 原因 业务数据量较大,数据库服务器上无足够地空间存放rman备份,磁盘扩容申请不批。无奈采取nfs远程备份 环境信息 ip操作系统备份目录远程备份服务器192.168.3.130Centos7.9rmanbak数据库服务器192.168.3.132:1521Centos7.…...

数据结构与算法

目录 数据结构与算法 为什么要学习数据结构和算法? 常见的数据结构 常用算法 插入排序 一、概念及其介绍 二、适用说明 三、过程图示 希尔排序 一、概念及其介绍 二、适用说明 三、过程图示 归并排序 一、概念及其介绍 二、适用说明 三、过程图示 …...

【Web3】DAO相关的基础知识

这里写目录标题 DAO 的基础概念为什么需要 DAO?DAO 的种类 DAO 的运作方式知名 DAO 的介绍Bankless DAOSeeDAO DAO 的生态全景图分类治理框架DAO 的工具 DAO 众筹平台介绍 - JuiceBoxDAO 投票治理介绍 - SnapshotDAO 贡献 & 激励 - POAPDAO 信息管理 - NotionDA…...

一文教你学会ArcGIS Pro地图设计与制图系列全流程(3)

ArcGIS Pro做的成果图及系列文章目录: 系列文章全集: 《一文教你学会ArcGIS Pro地图设计与制图系列全流程(1)》《一文教你学会ArcGIS Pro地图设计与制图系列全流程(2)》《一文教你学会ArcGIS Pro地图设计与…...

用于大规模 MIMO 检测的近似消息传递 (AMP)(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

复杂SQL解析

文章目录 背景表SQL关键字分析具体Sql注意点补充:select的字段,也可以带有计算逻辑 背景表 1、sale_log as result: 主表,大部分字段都是取自这个表 2、sale_num as sale:需要从这个表获取真实销量sale_num字段 3、schedule as…...

js中哪些地方会用到window?

前言 Window 对象是JavaScript中的顶层对象,它代表了浏览器中打开的窗口或者标签页。浏览器中打开的每一个窗口/标签页都会有一个对应的 Window 对象。在浏览器中,全局作用域的 this 就是指向 Window 对象。 正文 在 JavaScript 中,window 对…...

KITTI raw_data数据集百度云下载

1. 百度云链接 链接:https://pan.baidu.com/s/1YNzfDoJomKOZhlVUr2eEOA?pwdtfh3 提取码:tfh3 –来自百度网盘超级会员V6的分享 2. 资料来源 https://www.cvlibs.net/datasets/kitti/raw_data.php 命令行执行./raw_data_downloader.sh #!/bin/bashfiles(2011_…...

(3) OpenCV图像处理kNN近邻算法

目录 一、介绍 1、类通过Matplotlib显示 2、Matplotlib显示效果 二、通过KNN近邻对新成员进行分类例程...

手撸RPC【gw-rpc】

文章目录 基于 Netty 的简易版 RPC需求分析简易RPC框架的整体实现协议模块 📖自定义协议 🆕序列化方式 🔢 服务工厂 🏭服务调用方 ❓前置知识——动态代理🕳️Proxy类InvocationHandler 接口 RPC服务代理类内嵌Netty客…...

【Linux】:Kafka组件介绍

目录 环境简介 一、消息 二、主题 三、分区 四、副本 五、生产者 六、消费者 七、消费者组 八、offsets【偏移量】 环境简介 Linux内核:Centos7 Kafka版本:3.5.1 执行命令的目录位置:Kafka安装目录的bin目录下:/usr/loca…...

Redis〔篇〕

redis怎么做到双写一致性呢? 这个是要分情况的 业务要是对一致性要求不是很高的话可以使用延时双删,要强一致的话需要双写一致性。 Redis数据持久化? redis是有两种数据持久化方式的,一种RDB一种AOF rdb是redis数据快照&#x…...

龙芯2K1000核心板在智能座舱行业产品方案-迅为电子

迅为2K1000核心板是一款高性能的处理器,适用于智能座舱行业。它具备多核CPU、高级图像处理和丰富的接口选项,可用于开发先进的智能座舱解决方案,提高乘坐体验、安全性和便捷性。以下是2K1000处理器在智能座舱行业中的产品方案。 高清晰度显…...

2023/9/20 -- C++/QT

时钟: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #include <QDateTime> #include <QLabel> #include <QTimer> #include <QDebug>QT_BEGIN_NAMESPACE namespac…...

WordPress主题DUX v8.2源码下载

新增产品分类左侧多级分类折叠显示 新增网站默认字体对 MiSans 和 HarmonyOS Sans 的支持 新增顶部左上角显示登录注册的模块开关&#xff0c;且支持原生登录方式 新增手机端导航菜单的关闭按钮 新增文章内容中标题二的强化展示 新增全站禁止复制、右键和选择的操作 新增文章内…...

c++图像的边缘检测

图像的边缘检测 cv::Canny 是 OpenCV 中用于进行边缘检测的函数&#xff0c;特别是用于检测图像中的边缘。Canny 边缘检测是一种广泛使用的技术&#xff0c;它能够识别图像中的边缘&#xff0c;这些边缘通常表示对象之间的边界或图像中的显著特征 void cv::Canny(const cv::M…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...