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

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 ; Serial3600       ; Refresh600        ; Retry1209600    ; Expire3600       ; Default TTL)
    
  • Linux:

    example.com.    SOA    ns1.example.com. admin.example.com. (2022010101 ; Serial3600       ; Refresh600        ; Retry1209600    ; Expire3600       ; 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.mzph.cn/news/641159.shtml

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

相关文章

【剑指offer】重建二叉树

👑专栏内容:力扣刷题⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、题目描述1、题目2、示例 二、题目分析1、递归2、栈 一、题目描述 1、题目 剑指offer:重建二叉树 给定节…

在CentOS 7中配置 RAID服务

实验过程 Xnode1克隆虚拟机raid ps: 阿里云盘Xnode1获取 xnode1 https://www.alipan.com/s/HgLXfoeBWG2 提取码: eb70 编辑虚拟机 添加2硬盘 CRT连接(root密码:000000) 创建raid 0 [rootdemo ~]# lsblk 安装mdadm [rootdemo…

go语言(十四)----反射

变量的结构 2 举个例子 package mainimport "fmt"type Reader interface {ReadBook() }type Writer interface {WriteBook() }//具体类型 type Book struct {}func (this *Book) ReadBook() {fmt.Println("Read a Book")}func (this *Book) WriteBook() {…

项目工时统计成本核算管理

技术架构: Java 1.8 MySQL 8 Vue 项目基于前后端分离架构,服务端主要技术:SpringBoot 前端主要是Vue。 项目介绍: 轻量级项目工时统计系统,是目前企业进行项工时管理统计的推荐选择。 通过项目工时管理系统,可通过…

Github2024-01-23 开源项目日报 Top9

根据Github Trendings的统计,今日(2024-01-23统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3Go项目2TypeScript项目2Dart项目1Jupyter Notebook项目1 gpt4free 语言模型集合改进计划 创建周期…

vConsole 与 Vue中未定义变量而引发的Maximum call stack size exceeded异常问题

一、问题描述 前段时间有个前端小伙伴反馈在打包发布正式环境后调用VantUI的<van-popup>组件显示时&#xff0c;显示空白&#xff0c;并且在控制台看到一个Maximum call stacksize exceeded&#xff08;超出最大调用堆栈大小&#xff09;,而本地开发环境正常&#xff1a…

工业相机+镜头选型及靶面、焦距计算等相关详解

工业相机镜头选型及靶面、焦距计算等相关详解 着重讲述相机的各个参数及使用意义总结相机镜头选型主要参数的推理计算 0. 工业相机相关概念简介 相机与镜头一览 工业相机与镜头实物图如下图所示&#xff1a; 常见的相机有两种供电方式&#xff1a;一种是电源线供电&#xff0…

接口自动化测试框架开发(pytest+allure+aiohttp+ 用例自动生成)

近期准备优先做接口测试的覆盖&#xff0c;为此需要开发一个测试框架&#xff0c;经过思考&#xff0c;这次依然想做点儿不一样的东西。 接口测试是比较讲究效率的&#xff0c;测试人员会希望很快能得到结果反馈&#xff0c;然而接口的数量一般都很多&#xff0c;而且会越来越…

设置Linux用户的最大进程数和最大打开文件描述符数

【命令】 cat <<EOF>> /etc/security/limits.conf root - nproc 512000 * - nproc 512000 root - nofile 512000 * - nofile 512000 EOF 【解读】 这个命令是在执行一个Shell脚本&#xff0c;通过sh -c来传递一个字符串作为命令参数。这个字符串包含了对/e…

如何制作自己的实景中国视频地图?

让每一个人都有自己的地图&#xff01; 我们在《水经微图Web版1.5.0发布》一文中&#xff0c;提到了水经微图&#xff08;简称“微图”&#xff09;Web版新增了视频气泡的功能。 现在&#xff0c;我们为你分享一下如何基于此功能&#xff0c;制作一个属于自己的实景中国视频地…

PG14.2异构迁移_数据目录拷贝方式

本文源库和目标库都是采用二进制tar包进行的安装&#xff0c;非rpm和源码编译方式安装。 采用的办法是编译安装数据库软件 拷贝数据目录的方式 迁移要求 由于Centos即将停止维护&#xff0c;客户强烈要求操作系统更改成Ubuntu18.04&#xff0c;需将Centos的PG14迁移至Ubuntu…

leetcode2171 拿出最少数目的魔法豆

题目 给定一个 正整数 数组 beans &#xff0c;其中每个整数表示一个袋子里装的魔法豆的数目。 请你从每个袋子中 拿出 一些豆子&#xff08;也可以 不拿出&#xff09;&#xff0c;使得剩下的 非空 袋子中&#xff08;即 至少还有一颗 魔法豆的袋子&#xff09;魔法豆的数目…

yolov5 opencv dnn部署 github代码

yolov5 opencv dnn部署 github代码 源码地址实现推理源码中作者的yolov5s.onnx推理条件python部署(因为python比较简单就直接介绍了)c部署 参考链接 源码地址 yolov5官网还提供的dnn、tensorrt推理链接本人使用的opencv c github代码,代码作者非本人&#xff0c;也是上面作者推…

防御第一次作业-ensp的华为防火墙USG6000V1(1)

目录 1.用ensp搭建防火墙 2.添加管理员 3.组网 接口 安全区域 1.用ensp搭建防火墙 1.只能用6000那个防火墙 2.初始用户名密码&#xff1a;admin/ADMIN123 3.开启所有服务 4.与电脑联通&#xff1a;添加个云&#xff0c;然后增加1个udp并绑定创建的环回网卡 4.5.让云可…

数据结构与算法教程,数据结构C语言版教程!(第五部分、数组和广义表详解)五

第五部分、数组和广义表详解 数组和广义表&#xff0c;都用于存储逻辑关系为“一对一”的数据。 数组存储结构&#xff0c;99% 的编程语言都包含的存储结构&#xff0c;用于存储不可再分的单一数据&#xff1b;而广义表不同&#xff0c;它还可以存储子广义表。 本章重点从矩阵…

代码随想录算法训练DAY27|回溯3

算法训练DAY27|回溯3 39. 组合总和 力扣题目链接 给定一个无重复元素的数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明&#xff1a; 所有数字&#xff08;包括 …

二、arcgis 点shp数据处理

在工作中&#xff0c;很多时候客户会提供点坐标&#xff0c;那么要想把点坐标生成shp文件&#xff0c;有两种方法&#xff08;坐标系CGCS2000&#xff09;&#xff1a; 1.当只有个位数的点坐标时&#xff0c;可以直接在arcgisMap中添加&#xff0c;具体步骤如下&#xff1a; …

【人工智能大脑】仿生学与人工智能交汇:基于MP神经网络的精准农业实践

MP神经网络&#xff0c;即McCulloch-Pitts模型&#xff08;MCP Model&#xff09;&#xff0c;是神经网络的早期形式之一&#xff0c;由Warren McCulloch和Walter Pitts在1943年提出。这个模型为现代人工神经网络的发展奠定了理论基础&#xff0c;并首次尝试模拟了生物神经元的…

最长子字符串的长度(二) - 华为OD统一考试

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 给你一个字符串 s&#xff0c;字符串s首尾相连成一个环形 &#xff0c;请你在环中找出’l’、‘o’、‘x’ 字符都恰好出现了偶数次最长子字符串的长度。 输入描…

​《WebKit 技术内幕》学习之九(3): JavaScript引擎

3 JavaScriptCore引擎 3.1 原理 JavaScriptCore引擎是WebKit中的默认JavaScript引擎&#xff0c;也是苹果在开源WebKit项目之后&#xff0c;开源的另外一个重要的项目。同其他很多引擎一样&#xff0c;在刚开始的时候它的主要部分是一个基于抽象语法树的解释器&#xff0c;这…