探索全球DNS体系 | 从根服务器到本地解析

news2024/11/25 1:07:43

DNS 发展

DNS(Domain Name System)的起源可以追溯到互联网早期。

  1. 早期的挑战:

    • 早期互联网主要通过IP地址进行通信,用户需要记住复杂的数字串来访问网站。
  2. 需求的催生:

  • 随着互联网的扩大,更简单、易记的命名系统的需求逐渐增大。
  1. 创建DNS的动机:

    • Paul Mockapetris和Jon Postel于1983年共同设计了DNS,旨在提供一种分布式的、层级的域名解析系统,以解决通过域名而非IP地址访问网络资源的问题。
  2. DNS的关键设计元素:

    • 分层结构: DNS采用了分层的域名结构,包括顶级域名(TLD)、次级域名、主机名等,使得域名管理更为灵活。
    • 分布式数据库: DNS的数据存储采用了分布式数据库的方式,由各级域名服务器负责管理特定域的解析信息。

DNS的发展历程:

  • 1980年: DNS被正式引入互联网,成为解决命名和地址解析问题的标准。
  • 1990年: 随着互联网的快速增长,DNS逐渐成为互联网基础设施的重要组成部分。
  • 2000年以后: DNS不断演进,引入了各种改进和扩展,例如DNSSEC(DNS Security Extensions)、IPv6支持等。

DNSSEC 引入:

  • DNSSEC是为了提高DNS的安全性而引入的,使用数字签名来确保域名解析的数据完整性和认证性。

DNS over HTTPS (DoH) 和 DNS over TLS (DoT):

  • 这两种协议通过加密通信方式提高DNS请求和响应的隐私和安全性。
    在这里插入图片描述

根 DNS 服务器

  • 根 DNS 服务器负责处理顶级域(TLD)DNS 服务器的查询,例如 .com、.org、.net 等。
  • 当本地 DNS 服务器收到一个域名查询时,首先向根 DNS 服务器发送查询请求。
  • 根 DNS 服务器不直接提供完整的域名解析,而是指示本地 DNS 服务器继续向适当的 TLD DNS 服务器发出查询。

根 DNS 服务器分布

  • 世界上的根 DNS 服务器共有13个,分别用字母 A 到 M 表示。
  • 这些根 DNS 服务器由不同的组织和机构管理,分布在全球不同的地理位置。
  • 每个根 DNS 服务器都有多个实际的 IP 地址,提供冗余和负载均衡。
  • 根 DNS 服务器分布在世界各地,包括北美、欧洲、亚洲等地区。
  • 这种分布有助于提高 DNS 查询的效率和可用性,并减少对特定地理区域的依赖性。
  • DNS 结构是动态演进的,ICANN 和相关组织定期评估和调整根 DNS 的配置。根据评估新的根 DNS 服务器会添加到系统中,以应对互联网的扩展和增长。

中国 DNS 体系

我国的 DNS 体系中,本地 DNS 服务器会向全球的根 DNS 服务器发送查询请求,并由根 DNS 服务器引导本地 DNS 服务器到相应的顶级域(TLD)DNS 服务器,从而完成域名解析。

我国在国内维护自己的顶级域(TLD)DNS 服务器,例如 .cn 域的 DNS 服务器。这些服务器负责管理国内顶级域的域名解析服务。与根 DNS 服务器不同,这些服务器是针对特定顶级域而不是全球性的。

DNS 的作用

  1. 域名解析: 提供域名到 IP 地址的解析服务,允许用户通过好记的域名访问网络资源而无需记住复杂的 IP 地址。

  2. 层次化结构: 将互联网上的域名划分为层次化的结构,每一级域名(如.com、.org)都由不同的注册机构管理,实现了分布式管理和维护。

  3. 负载均衡: 允许一个域名映射到多个 IP 地址,从而实现负载均衡。当一个域名对应多个服务器时,DNS 可以轮流分配请求,分散流量。

  4. 电子邮件交换: 管理电子邮件系统中的邮件路由,通过 MX 记录指定邮件服务器,确保邮件能够正确地路由到目标邮件服务器。

  5. 提供别名(CNAME): 允许一个域名指向另一个域名,提供了域名的别名机制。

DNS 的工作原理

  1. 域名查询: 当用户在浏览器中输入一个域名时,操作系统将首先检查本地 DNS 缓存,如果没有找到对应的 IP 地址,将发起 DNS 查询。

  2. 本地 DNS 解析: 操作系统将查询发送到本地 DNS 服务器,由互联网服务提供商(ISP)或其他网络服务提供商提供。本地 DNS 服务器具有缓存功能,如果有记录则直接返回 IP 地址,否则将向更高层次的 DNS 服务器发起查询。

  3. 缓存: 为了提高查询效率,DNS 服务器会在查询过程中进行缓存。本地 DNS 服务器和中间 DNS 服务器都会在配置时间内保存查询结果,以便下次查询时能够直接返回。

  4. TTL(Time to Live): DNS 记录中包含 TTL,指定该记录在缓存中的存活时间。一旦过期,DNS 服务器将重新查询获取最新的 IP 地址。

总结,DNS 通过分布式数据库、域名层次结构以及查询实现域名到 IP 地址的解析服务。这种分布式的设计保证了 DNS 的高可用性和扩展性。

DNS 查询方式

在 DNS 中,迭代查询是一种查询过程,其中请求者(本地 DNS 服务器)向其他 DNS 服务器发出查询,并要求返回最终结果,而不是通过递归查询的方式由服务器一级一级地向上查询。这种查询方式减轻了根 DNS 服务器的负担,提高了查询效率。

DNS 查询包含两种主要类型:

  1. 递归查询(Recursive Query): 递归查询是请求服务器提供完整的查询结果。当一个 DNS 服务器收到递归查询时,将负责迭代地查询其他 DNS 服务器,直到找到最终的查询结果,然后将结果返回给请求者。

  2. 迭代查询(Iterative Query): 迭代查询是请求服务器提供最好的信息,并允许请求者继续查询其他 DNS 服务器以获取更多信息。当一个 DNS 服务器收到迭代查询时,会返回自己所知道的最佳信息,如果无法提供完整的结果,将指示请求者继续向其他 DNS 服务器查询。

在 DNS 查询过程中,递归查询和迭代查询结合使用。本地 DNS 服务器(请求者)发起一个递归查询,然后向根 DNS 服务器发出迭代查询。根 DNS 服务器返回指向顶级域名服务器(TLD)的迭代查询结果,然后本地 DNS 服务器继续向 TLD 服务器发出迭代查询。这个过程一直持续,直到找到最终的查询结果。

迭代查询在 DNS 查询过程中也是一种常见的机制,通过允许 DNS 服务器返回部分信息,然后继续向其他服务器查询,提高 DNS 查询的效率。

Windows/Linux DNS 记录配置差别

Windows DNS和Linux DNS的记录(域名解析记录)在语法和配置上有些差异。
常见的DNS记录类型,在Windows和Linux环境中的差别:

  1. A记录(IPv4地址记录):
  • Windows:

    example.com.    IN    A    192.168.1.1
    
  • Linux:

    example.com.    A    192.168.1.1
    
  1. AAAA记录(IPv6地址记录):
  • Windows:

    example.com.    IN    AAAA    2001:db8::1
    
  • Linux:

    example.com.    AAAA    2001:db8::1
    
  1. CNAME记录(别名记录):
  • Windows:

    www.example.com.    IN    CNAME    example.com.
    
  • Linux:

    www.example.com.    CNAME    example.com.
    
  1. MX记录(邮件交换记录):
  • Windows:

    example.com.    IN    MX    10    mail.example.com.
    
  • Linux:

    example.com.    MX    10    mail.example.com.
    
  1. PTR记录(反向解析记录):
  • Windows:

    1.1.168.192.in-addr.arpa.    IN    PTR    example.com.
    
  • Linux:

    1.1.168.192.in-addr.arpa.    PTR    example.com.
    
  1. NS记录(域名服务器记录):
  • Windows:

    example.com.    IN    NS    ns1.example.com.
    
  • Linux:

    example.com.    NS    ns1.example.com.
    
  1. SOA记录(起始授权机构记录):
  • Windows:

    example.com.    IN    SOA    ns1.example.com. admin.example.com. (
                            2022010101 ; Serial
                            3600       ; Refresh
                            600        ; Retry
                            1209600    ; Expire
                            3600       ; Default TTL
                          )
    
  • Linux:

    example.com.    SOA    ns1.example.com. admin.example.com. (
                            2022010101 ; Serial
                            3600       ; Refresh
                            600        ; Retry
                            1209600    ; Expire
                            3600       ; Default TTL
                          )
    

windows dns 特有记录

在 Windows DNS 中,与 Active Directory(AD)相关的特有 DNS 记录主要是 SRV 记录。这些记录用于服务发现和域控制器的定位。
SRV 记录:

  1. 域控制器发现记录:

    • _ldap._tcp.dc._msdcs.example.com.
    • _kerberos._tcp.dc._msdcs.example.com.
    • _gc._tcp.dc._msdcs.example.com.
  2. 其他与域控制器相关的记录:

    • _ldap._tcp.pdc._msdcs.example.com.
    • _ldap._tcp.gc._msdcs.example.com.
    • _ldap._tcp.rras._msdcs.example.com.

记录用于指示 LDAP 服务、Kerberos 认证服务、全局编录服务、主域控制器(PDC)、全局编录服务器(GC)和远程访问服务器(RRAS)的位置。

Windows DNS 在配置 AD 时会自动创建这些记录,来支持域环境运作和服务发现。


~喜欢的话,请收藏 | 关注(✪ω✪)~
~万一有趣的事还在后头呢,Fight!!(o^-^)~''☆ミ☆ミ~……

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

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

相关文章

pytest+allure 生成中文报告

背景 已安装pytestallure,生成的报告是英文 allure生成中文报告 参考:allure report 报告中文化及其它优化 方法1:直接在报告中切换中文 方法2:依赖系统中文语言 创建一个setting.js 文件在index.html 同级目录 // 尝试从 l…

java基于安卓开发的流浪动物救助移动应用的设计与实现-计算机毕业设计源码12783

摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,流浪动物救助系统被用户普遍使用,为方便用户能…

前端面试题-(BFC,前端尺寸单位,网站页面常见的优化手段)

前端面试题-BFC,前端尺寸单位,网站页面常见的优化手段 BFC前端尺寸单位网站页面常见的优化手段 BFC BFC(block formartting context)块格式化上下文。是通过独立渲染的区域,它拥有自己的渲染规则,可以决定…

51单片机LCD1602调试工具

参考视频:江协科技51单片机 LCD1602头文件代码 #ifndef __LCD1602_H__ #define __LCD1602_H__//用户调用函数: void LCD_Init(); void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char); void LCD_ShowString(unsigned char Line,un…

纷享销客盛邀渠道生态伙伴共赴杭州,凝心聚力共谋未来

2024年1月19日,“凝心聚力 勇立潮头——2024纷享销客首场生态伙伴发展共建会”在杭州绿谷举办。此次会议汇聚了各方60余位伙伴到场,共同探讨行业的未来发展趋势,激发创新力和合作潜力。 会上,纷享销客创始人兼CEO罗旭详尽地介绍了…

Qt Designer教程

文章目录 创建一个 ui 文件选择控件Qt Designer基本控件介绍1、Layouts1.1、Layouts 布局1.2、参数配置 2、Spacers2.1、 Spacers 弹簧介绍2.2、 参数设置 3、Buttons 按键3.1、 Buttons 按键分类 4、Item Views(Model-Based) 项目视图(基于模型)4.1、 B…

鸿蒙 HarmonyOS ArkTS 弹窗、带点击回调

// xxx.ets@Entry@Componentstruct Page {@State color: Color = Color.Blue;build() {Column({ space: 20 }) {Button(弹窗).width(180).height(80).backgroundColor(this.color).onClick(()=>{AlertDialog.show({title: 弹窗标题,message: 弹窗内容,autoCancel: true,alig…

状态空间模型(SSM)是近来一种备受关注的 Transformer 替代技术

状态空间模型(SSM)是近来一种备受关注的 Transformer 替代技术,其优势是能在长上下文任务上实现线性时间的推理、并行化训练和强大的性能。而基于选择性 SSM 和硬件感知型设计的 Mamba 更是表现出色,成为了基于注意力的 Transform…

ElasticSearch的集群管理命令

ElasticSearch版本 {"name" : "data-slave1","cluster_name" : "data-es","cluster_uuid" : "xxxxxxxxxx-eMwxw","version" : {"number" : "7.2.1","build_flavor" : &…

重拾计网-第四弹 计算机网络性能指标

ps:本文章的图片内容来源都是来自于湖科大教书匠的视频,声明:仅供自己复习,里面加上了自己的理解 这里附上视频链接地址:1.5 计算机网络的性能指标(1)_哔哩哔哩_bilibili ​​​ 目录 &#x…

Windows ssh登录eNSP交换机

目录 1. Cloud IO配置1.1 创建UDP端口1.2 创建本地连接1.3 端口映射设置 2. 交换机配置2.1 配置vlanif2.2 配置vty2.3 配置ssh用户2.4 配置aaa2.5 使用Xshell工具登录2.6 用户和密码2.7 登录成功 3. 使用cmd 登录报错提示3.1 手动指定加密算法,提示密码长度无效3.2 …

通过MobaXterm实现串口通信与SSH通信

MobaXterm实现串口通信与SSH MobaXterm简介 MobaXterm是一款终端工具,不仅免费,而且高效,相比于收费的SecureCRT和免费的PuTTy,MobaXterm可谓博采众长。在师兄的建议下,选择这款工具作为终端调试工具。 界面如下图所示…

机器人DH建模

D-H 根据表达式判断所建立的DH模型是标准型(Standard DH)还是改进型(Modified DH) 第三四行的首元素为0的是标准型,参考博客 标准DH参数坐标系建立在传动轴上,而修正DH参数坐标系建立在驱动轴上。修正D…

啊哈c语言——逻辑挑战14(一个萝卜一个坑)

这里有一个有趣的问题:从键盘输入5个0~9的数,然后输出0~9 中那些没有出现过的数。例如,输入2 5 2 1 8时,输出0 3 4 6 7 9。 想一想,有没有什么好办法? 我们这里借助一个数组就可以解…

【数据结构】 链栈的基本操作 (C语言版)

目录 一、链栈 1、链栈的定义: 2、链栈的优缺点: 二、链栈的基本操作算法(C语言) 1、宏定义 2、创建结构体 3、链栈的初始化 4、链栈的进栈 5、链栈的出栈 6、获取栈顶元素 7、栈的遍历输出 8、链栈的判空 9、求链…

车辆 | 平行泊车路径规划碰撞约束及可行驶区域公式推导

注:本文推导参考网上论文并加上了一些自己的理解,侵权删。 一、碰撞约束: 需要先计算D 点(D 点为第一段圆弧路径的终点)位置,再根据 D 点计算C 点范围区域。 其中:Lp为车位长度,最…

【论文阅读】Automated Runtime-Aware Scheduling for Multi-Tenant DNN Inference on GPU

该论文发布在 ICCAD’21 会议。该会议是EDA领域的顶级会议。 基本信息 AuthorHardwareProblemPerspectiveAlgorithm/StrategyImprovment/AchievementFuxun YuGPUResource under-utilization ContentionSW SchedulingOperator-level schedulingML-based scheduling auto-searc…

联想M7268、7208打印机加粉清零方法

联想小新M7268激光一体机基本参数 产品类型 黑白激光多功能商用一体机 涵盖功能 打印/复印/扫描 最大处理幅面 A4 耗材类型 鼓粉分离 耗材容量 硒鼓LD2268:10000页,墨粉LT2268:1000页 双面功能 手…

Spring复习-问题回答

1.什么是 spring,你对 spring 的理解? Spring是一个轻量级,非侵入式的(不使用框架特定的类,感受不到框架)IOC和AOP一站式的java后端开发框架,简化企业开发。 2.spring 的优缺点 优点: Spr…

C++11新特性:拓展的friend语法

在C中,friend关键字用于声明一个函数或类是另一个类的友元(friend)。被声明为友元的函数或类可以访问包含它的类的私有成员。 使用friend关键字应当谨慎,因为它破坏了封装性,增加了类之间的耦合性。友元关系应该仅在确…