应用层--DNS

2023-11-04

2.4 DNS(域名系统)

由来:
计算机的标识方式有 IP地址 和 主机名 两种。
其中主机名因易于记忆而被人们普遍接受,但主机名几乎不提供计算机在因特网中位置的信息。
而路由器更喜欢定长的,有层次结构的IP地址。
为了折中这两种需求,需要一种能将主机名转换为IP地址的目录服务,也就是域名系统DNS(Domain Name System)的主要任务。

特点:

  • 分层的、基于域的命名机制
  • 若干分布式的数据库完成名字到IP地址的转换
  • 运行在UDP上端口为53的应用服务
  • 核心的Internet功能,但以应用层协议实现
    • 在网络边缘(端系统,主机的应用层)处理复杂性

功能:

在这里插入图片描述

2.4.1 域名

  • 定义:
    域名 (Domain Name)是因特网的一项核心服务,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,它采用分级结构。

域名由两种不同的字符集组成:ASCII和Unicode。ASCII字符集包括128个字符,如数字、字母和符号。Unicode字符集包括几乎所有国家和地区的文字、符号和符号。

在ASCII字符集中,每一级域名长度不超过63个字符。而在Unicode字符集中,虽然域名长度没有明确的限制,但仍然需要遵守域名系统规范(DNS)的限制。根据DNS规范,每一级域名长度不能超过253个字符。

需要注意的是,虽然每一级域名长度有限制,但整个域名的长度是没有限制的

域名可以用来在数据传输时标识计算机的电子方位,有时也指地理位置

例如:我们常用的门户网站,如搜狐、新浪等,它们都是用大写字母来作域名的。

  • 特点
    • 1.一个层面命名设备可能会有很多重名,但通过结合主机名和所在的域,可以唯一地标识互联网上的每一台主机
    • 2.DNS采用层次树状结构命名方法

在这里插入图片描述

  • 解析问题

单点故障:如果只有一个DNS服务器,一旦其损坏将影响巨大
通信容量:一个DNS服务器处理所有DNS查询,工作量过大
维护问题:一台DNS服务器需要为所有因特网主机保留记录,使得中央数据库庞大,并且还要因添加新的主机而更新。
远距离的集中式数据库:因为一台DNS服务器无法”邻近“所有用户,传播时将经过低速和拥塞链路导致严重时延。

在这里插入图片描述

域名的层级分类

下图中 "叶" 只是一个通用代指,并不是说所有域名都归于一个主机或设备。“根”同理(DNS根服务器共有13个)
从树根到树叶,上层域有一个指向其子域服务器的指针。

一系列划分域
一系列划分域
一系列划分域
一系列划分域
一系列划分域
顶级域1
顶级域2
顶级域3
顶级域...
二级域1
二级域2
二级域3
二级域...
二级域...
二级域...
三级域...
...

在这里插入图片描述

顶级域分为两类:

  • 通用的(Generic)
  • 国家的(Countries)

下面几张图有重复,看看就行。
在这里插入图片描述在这里插入图片描述

下图出现的反向域名 arpa 作用是将IP地址逆向解析为域名
在这里插入图片描述
以下拓展摘自百度AI:

arpa是逆向域名系统(逆向DNS)的缩写,用于将IP地址解析为域名。
在互联网上,IP地址是唯一标识计算机或设备的地址,而域名则是为了方便人们记忆和访问这些地址而使用的字符串。逆向域名系统的作用就是通过IP地址反向解析出对应的域名。
arpa域名字符集与一般的域名字符集不同,它只包含数字和字母,不包含国家、地区或符号等特殊字符。
arpa域名通常用于以下几种情况:

反向域名解析:通过IP地址反向解析出对应的域名,用于网络管理和安全监控等。
DNS黑名单:将恶意软件或网络攻击者的IP地址加入到arpa域名的黑名单中,以限制其访问网络资源。
邮件服务器:arpa域名用于邮件服务器,以便于接收和发送电子邮件。
临时域名:当一个域名被删除或过期时,其IP地址可能仍然需要被访问,此时可以使用arpa域名作为临时替代品。

需要注意的是,arpa域名的使用需要遵守特定的规范和标准,例如逆向DNS解析协议(DNS Reverse Resolution Protocol)等。

域名的构成

  • 命名设备的域名
    主机名.第N级域名.(…).第二级域名.顶级域名
    从树叶开始,每过一个层级用句点分隔开

  • 命名一个域的域名(对某个域做标识)
    树枝开始到顶级域。
    如:ustc.edu.cn (中国科技大学域名)

注:(少数采用)设备也可以直接挂在顶级域名或二级域名之下,不必非要顺着所有域层级来命名。

如:

  • mit.edu
  • xxx.gov

域名管理

.cn:中国的一个顶级域名
.jp:日本的一个顶级域名

在这里插入图片描述

2.4.2 域名服务器

在这里插入图片描述

DNS:根名字服务器

互联网共有13个根服务器 (分布在:欧洲,北美(大部分),日本),不同国家域名划分不一定一样

权威服务器

  • 前置
    为了解决域名的维护(域名到IP地址转换)和解析问题,划分出区域(zone)的概念:
    在这里插入图片描述下图中每个圈就是一个区域。
    在这里插入图片描述

  • 定义
    在这里插入图片描述是否是某个域的权威DNS服务器看是否维护中这个区域的域名到IP地址对应关系
    权威服务器 :清楚本区域内部域名与IP对应关系

TLD服务器

在这里插入图片描述

本地名字服务器(Local Name Server)

地址使用手工配置或动态配置
在这里插入图片描述

名字服务器(Name Server)

在这里插入图片描述

2.4.3 DNS工作机理方面

1. DNS缓存

为了改善时延性能并减少在互联网上传输的DNS报文数量,DNS广泛采用了缓存技术。

  • 原理
    在一个请求链中,DNS服务器收到一个DNS应答(如包含某个主机名到IP地址的映射)时,它能将映射缓存在本地存储器中

由于主机和主机名与IP地址间的映射不是永久的DNS服务器在一段时间后(通常设置为两天),将丢弃缓存信息。

  • 产生的影响
    本地服务器也能缓存 TLD 服务器的 IP 地址,因而允许本地DNS绕过查询链中根DNS服务器。事实上,由于缓存的存在,除了少数DNS查询以外,根服务器被绕过了。

2. 资源记录

共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(Resource Record,RR):提供主机名到IP的映射。
资源记录是一个包含了下列字段的四元组:
(Name,Vaule,Type,TTL),具体见下图:
在这里插入图片描述

资源记录可以类比于数据库的记录方法
  • TTL(生存时间 time to live):是指某个记录的生存时间,决定了某个资源记录删除的时间
    • 1.TTL为无限大:指权威值
    • 2.TTL为有限值: 指缓冲值

下面给出的例子,忽略掉TTL字段。Name和Vaule的值取决于Type:

(结构图)
在这里插入图片描述
(原书)
在这里插入图片描述

  • 资源记录的一个例子:
    在这里插入图片描述

3. DNS工作过程:

在这里插入图片描述

在这里插入图片描述

查询

如果本地服务器有缓存,则直接返回缓存信息(主机与IP映射)。如果没有缓存,需要查询具体映射。
查询方法有以下两种:

  • 递归查询
  • 迭代查询

递归查询

简单来说就是主机任意找一个根服务器,由于通常上一级知道下一级信息,然后从根服务器开始一级一级往下查找,直到最终查到结果
在这里插入图片描述

迭代查询

上一级不会明确下一级的信息,但会有一个指定方向,相当于"踢皮球"。
在这里插入图片描述

4. DNS协议与报文

DNS报文有查询报文和回答报文两种,它们的格式都是相同的。结构如下图:

idenfication即id号
在这里插入图片描述

(原书参考)
在这里插入图片描述在这里插入图片描述

5. 维护问题:新增域

在这里插入图片描述

2.4.4 DNS安全问题

在这里插入图片描述

总的来说,DNS比较健壮

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用层--DNS 的相关文章

  • Kali Linux 安全渗透核心总结,444页核心知识点

    就像IT人离不开Linux系统一样 网安人也离不开Kali Linux 作为攻击性防御和渗透测试的代名词 越来越多的人开始学习Kali 如果你也对kali感兴趣 又想深入了解这方面内容 不妨收藏一下这份Kali Linux安全渗透教程 共4
  • 一个网工(网络工程师)七年的职业血泪史....

    前言 一个工作了七年的老网工 上家公司待了五年 现在这家公司也快三年了 分享一些我自己学习网络安全路上的一些经历 也算是帮大家少走些弯路 一 如何学习网络安全 1 不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全 一般
  • 网络基础面试题(二)

    11 什么是网桥 防火墙的端口防护是指什么 网桥是一种网络设备 用于连接两个或多个局域网 LAN 并转发数据包 它能够根据MAC地址来识别和转发数据 提高网络的传输效率和安全性 防火墙的端口防护是指对防火墙上的各个端口进行保护和限制 只允许
  • 【一份老网工珍藏多年的网络配置笔记,很重要!】

    01 交换机 路由器的几种配置模式及模式转换 1 用户模式 登录到交换机 路由器 时会自动进入用户模式 提示符为 switchname gt 在该模式下只能够查看相关信息 对 IOS的运行不产生任何影响 2 特权模式 用户模式下 键入 en
  • 虚拟主机操作系统 Windows、Linux

    操作系统将直接影响服务器的性能 安全性和可用性 因此确保选择合适的操作系统对于成功运行您的网站或应用程序至关重要 以下是一些考虑因素 可帮助您选择适合您需求的虚拟主机操作系统 1 熟悉度和技术支持 如何选择操作系统应该考虑您的经验水平和熟悉
  • 浅谈能耗系统在马来西亚连锁餐饮业的应用

    1 背景信息 Background 针对连锁餐饮业能耗高且能源管理不合理的问题 利用计算机网络技术 通讯技术 计量控制技术等信息化技术 实现能源资源分类分项计量和能源资源运行监管功能 清晰描述各分店总的用能现状 实时监测各供电回路的电压 电
  • DreadHunger恐惧饥荒海上狼人杀服务器搭建架设教程windows系统

    DreadHunger 恐惧饥荒海上狼人杀服务器搭建架设教程windows系统 大家好我是艾西 在11月底我有发文 DreadHunger 恐惧饥荒海上狼人杀官方停服的消息 当时在官方的公告模版中公布了在2024年一月一日会将服务端公开让喜
  • Linux中如何查看开启了哪些端口?

    在Linux中 端口是设备与外界通讯交流的出口 常用于指TCP IP协议中的端口 其按照端口号可以分为三类 分别是 公认端口 注册端口 动态端口 那么Linux中如何查看开启了哪些端口 以下是常用命令介绍 1 使用netstat命令 net
  • Linux 软件安装以及管理

    本篇主要记录常用的软件安装和管理方式 主要是 yum rpm dnf apt pip 大致都是一样的 主要是部分软件提供了解决依赖的功能 内容不包括源码安装 源码安装情况相对比较复杂 后续有时间再补充 约定 案例所用模板软件均为 pytho
  • 自定义编写zabbix_agent脚本

    vi usr lib systemd system zabbix agent servicce Unit Description Zabbix Agent After syslog target After network target S
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • socket网络编程几大模型?看看CHAT是如何回复的?

    CHAT回复 网络编程中常见的有以下几种模型 1 阻塞I O模型 Blocking I O 传统的同步I O模型 一次只处理一个请求 2 非阻塞I O模型 Non blocking I O 应用程序轮询调用socket相关函数检查请求 不需
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 网络安全基础知识面试题库

    1 基于路由器的攻击手段 1 1 源IP地址欺骗式攻击 入侵者从外部传输一个伪装成来自内部主机的数据包 数据包的IP是 内网的合法IP 对策 丢弃所有来自路由器外端口 却使用内部源地址的数据包 1 2 源路由攻击 入侵者让数据包循着一个不可
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学

随机推荐

  • Picgo使用Gitee平台搭建图床照片无法显示

    1 问题 使用Hexo框架搭建个人博客 发现博客中图片无法显示 2 问题分析 查看图床 发现相册中图片无法显示 查阅多方网站 发现Gitee与Picgo配合使用时 图片文件不能大于1M 这主要因为Gitee查阅超过1M的文件需要登录的权限
  • PCL中的区域生长分割(region growing segmentation)

    在本博文中 我主要介绍如何在pcl RegionGrowing类中调用区域增长算法 首先注意一点 这里是region growing segmentation 不是color based region growing segmentatio
  • sql server 数据库连接方式分析、详解

    先画一张概况图 OLEDB方式连接 Sql身份验证模式 Provider SQLOLEDB data source server name initial catalog databasename uid username pwd pass
  • 大厂面试题含答案(一)

    10家大厂面试题精选 2020 年阿里精选面试题及答案 1 使用 mysql 索引都有哪些原则 索引什么数据结构 B tree 和 B tree 什么区别 2 Mysql 有哪些存储引擎 请详细列举其区别 3 设计高并发系统数据库层面该如何
  • toFixed方法的小坑你知道吗?

    toFixed方法的小坑你知道吗 都知道toFixed 方法是可以四舍五入指定的小数位数的方法 但是他也是有坑的 其四舍五入的规则与数学中的规则不同 使用的是银行家舍入规则 其实就是一种四舍六入五取偶的规则 大概意思就是是 当小数点保留两位
  • 遇到“BUG: soft lockup - CPU#0 stuck for 22s”的解决思路

    之前开发的抓包模块上线后有客户反馈有丢包问题 这两天在定位这个丢包问题 抓包模块由我和另一名 队友 负责 我负责底层抓包开发 他负责接收处理 在测试丢包问题的时候 他遇到一个板子连不上的情况 问我咋回事 刚好看到了log打印一行 27468
  • Qt之进程通信-共享内存(含源码+注释)

    文章目录 一 内存共享示例图 读取文本 读取图片 二 界面操作共享内存示例图 文本读取示例图 图片读取示例图 弹窗示例图 二 个人理解与一些心得 三 源码 简易内存共享Demo 创建者 接收者 界面共享内存Demo 创建者 读取者 总结 相
  • 聊聊让开发头疼的一句话需求那些事

    一 引子 昨天接到一个朋友的电话 想委托我找人帮忙开发个产品 要求是要基于智能音箱使用的象微信聊天的聊天系统 二 需求分析 乍一听 站在产品的角度提这样的需求很合理 但仔细想想其实还有很多问题需要考虑 2 1 功能分析 聊天需要通信 首先需
  • 在线小说阅读网站开源项目地址整合

    项目开源地址 1 https github com ShanaMaid oho reader 小说数据接口地址 1 http api zhuishushenqi com book 50865988d7a545903b000009 留言评论样
  • Vue3【1.v-if 和 v-show 、2.动态组件、 3.网页的渲染 、4.v-for】

    文章目录 1 v if 和 v show 2 动态组件 3 网页的渲染 4 v for 4 1 v for 与对象 4 2 在 v for 里使用范围值 4 3 v for 与 v if 4 4 通过 key 管理状态 4 5 组件上使用
  • Android APP OpenGL ES应用(01)GLSurfaceView 2D/3D绘图基础

    1 Android 3D图形基础简介 1 1 OpenGL ES简介 OpenGL本身是开放图形库的一种标准 定义了一个跨语言 跨平台的编程规范 主要用于3D图形编程 OpenGLES是OpenGL的裁剪版本 主要是针对嵌入式设备 移动设备
  • layui 传递前端请求_基于Layui的页面传参及获取参数

    预计实现效果 通过点击编辑按钮 能够把该行数据显示在表格中 table html页面所属表格截取一行 edit html页面 实现代码 table html关键代码 传递参数 监听更新 编辑 操作 table on tool current
  • zookeeper集群扩容/下线节点实践

    环境 zookeeper版本 3 4 6 jdk版本 1 7 0 80 10 111 1 29 zk1 10 111 1 44 zk2 10 111 1 45 zk3 10 111 1 46 zk4 10 111 1 47 zk5 一 zo
  • python输出带有颜色的内容

    20200816 主要参考了文章 1 不使用第三方库 我当时的需求只需要将字体变色 比如输出 Error 其中Error为红色 def error print output print 033 31mError 033 0m output
  • strstr(str1,str2)函数使用 出现问题解析

    定义 strstr str1 str2 函数用于判断字符串str2是否是str1的子串 如果是 则该函数返回str2在str1中首次出现的地址 否则 返回NULL 定义说的有点羞涩难懂 举个例子就知道了 比如 char str2 cdef
  • 学习率与batch-size大小的关系

    近日训练的电脑从一个显卡升级到了4张显卡 这就意味着能够更快的训练速度 但是实际中 并不是这样的 多卡意味着可以使用大点的batch size 这样子会导致每个epoch收敛的更慢了 虽然说速度变快了 但是更新次数变少了 所以收敛的更慢了
  • Java正则表达式Pattern和Matcher

    Java字符串支持使用正则表达式进行替换和分隔操作 字符串提供的正则表达式操作是有限的 比如打印正则表达式匹配到的每一个字符串就无法通过字符串提供的方法来实现 Java使用Pattern和Matcher两个类来支持正则表达式功能 字符串提供
  • java:错误: 找不到符号

    我写了这样一个代码 class Demo public static void main String args int arr 3 5 1 7 2 3 5 6 6 1 8 2 int sum 0 for int x 0 x
  • Llama 2|Meta开源语言模型

    此次 Meta 发布的 Llama 2 模型系列包含 70 亿 130 亿和 700 亿三种参数变体 此外还训练了 340 亿参数变体 但并没有发布 只在技术报告中提到了 据介绍 相比于 Llama 1 Llama 2 的训练数据多了 40
  • 应用层--DNS

    目录 2 4 DNS 域名系统 2 4 1 域名 域名的层级分类 域名的构成 域名管理 2 4 2 域名服务器 DNS 根名字服务器 权威服务器 TLD服务器 本地名字服务器 Local Name Server 名字服务器 Name Ser