Linux DNS 协议概述

1. DNS 概述

互联网中,一台计算机与其他计算机通信时,通过 IP 地址唯一的标志自己。此时的 IP 地址就类似于我们日常生活中的电话号码。但是,这种纯数字的标识是比较难记忆的,而且数量也比较庞大。例如,每个 IPv4 地址是一个32位长的二进制数字,或者采用点分十进制展示成192.168.1.1这种格式,有接近43亿个的 IPv4 地址。DNS 的作用就是将人类可读的名称转换为机器识别的 IP 地址,供计算机相互连接。DNS(Domain Name System)的工作原理和电话簿相似,都是管理名称和数字之间的映射关系。就像我们日常打电话,一般使用人名查找,很少直接输入电话号码一样。当我们上网打开某个网页、视频时,也很少直接使用 IP 地址,而是在浏览器里输入的 URL 地址,例如:https://www.huawei.com,这其实使用的就是计算机的名字,一般称为域名。

1.1 域名的构成

最初设备的域名由字符序列组成、所有设备的域名组成一个未分级的域名结构。未分级的域名结构存在命名冲突、管理维护复杂的缺点。因此,TCP/IP 把 DNS 的域名设计成了分级的树状结构。每个申请加入 Internet 的国家都要向 NIC 注册一个顶级域名,顶级域采用组织模式和地理模式的划分模式,如 cn 代表中国、us 代表美国等。常见的顶级域名如下表所示。NIC 将顶级域的管理权分派给由其指定的管理机构,由这些管理机构再对被授权管理的域继续进行划分,从而形成了二级域。负责划分二级域的管理机构可以授权其下属的管理结构,由它们继续划分域。由此下去,便形成了层次型的Internet域名体系结构。
顶级Internet域名
含义
com
商业组织
edu
教育机构
gov
政府机构
mil
军事部门
net
主要网络支持中心
int
国际组织
org
其他组织
国家代码
国家(按照地理模式划分)
从语法上讲,每一个域名都是有标号序列组成,而各标号之间用点(小数点)隔开。以 www.huawei.com 域名为例,从右到左依次是:
  • com:顶级域名。代表商业组织。
  • huawei:二级域名,归属于某个公司自己的域名。
  • www:三级域名,表明某个公司提供的是什么服务,www 代表普通网页。

1.1.1 域名的层级

域名的层级关系类似⼀个树状结构,具体如下所示:

1.2 DNS 服务器、DNS 客户端和 DNS 中继

网络中与 DNS 相关的设备角色包括 DNS 服务器、DNS 客户端和 DNS 中继。

1.2.1 DNS 服务器

DNS 服务器是将域名指向对应 IP 地址的服务器。DNS 服务器中保存了一张域名和与之相对应的 IP 地址的表,以解析消息的域名。由于互联网连通的是全球资源,单一的域名服务器不足以支撑全部的地址转换操作,因此全球有多套域名服务器相互配合使用。
域名是分层结构,域名 DNS 服务器也是对应的层级结构。通过根域名服务器,依次请求顶级域名服务器和权威域名服务器,最终获取对应 IP 地址,并将该结果保存在本地域名服务器,以待下次 DNS 请求使用。当用户再次对同一域名发起访问时,可以直接从本地域名服务器获得结果,无需再次发起全球递归查询。
分类
作用
根 DNS 服务器
根 DNS 服务器是最高层次的域名服务器,它知道所有顶级服务器的域名和 IP 地址,当本地域名服务器无法对域名进行解析时,首先对根域名服务器发起请求。
顶级域名服务器
顶级域名服务器负责管理该服务器下的所有二级域名,当收到 DNS 查询请求时,就会给权威域名服务器相应的回答。
权威域名服务器
负责某一个区域的域名服务器。当一个顶级域名服务器还不能给出最后查询回答时,就会告知下一步应当请求的权威域名服务器。
本地域名服务器
当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。每一个互联网服务提供者ISP都可以拥有一个本地域名服务器。当本地域名服务器无法给出应答时,就会请求最高级的根域名服务器。

1.2.2 DNS 客户端

DNS 客户端的作用是接收用户程序(User Program)的 DNS 请求,并对其作出回应。作为 DNS 客户端的设备上一般具备以下能力:
  • 启动 DNS 解析
    • 要使用 DNS 客户端功能,需要在设备上打开 DNS 解析的开关。
  • 指定服务器的 IP 地址
    • 要进行 DNS 域名解析,需要在设备上指定 DNS 服务器的 IP 地址。这样才能把查询请求发动到正确的 DNS 服务器上进行解析。
  • 指定 DNS 域后缀搜索列表
    • DNS 客户端所访问的一些服务器或主机的域名后缀往往都是相同的。用户可以预先设置一些域名后缀,在域名解析的时候,用户只需要输入域名的部分字段,系统会自动将输入域名加上不同的后缀进行解析。例如,用户想查询域名“huawei.com”,那么可以在后缀列表中配置 com,然后输入“huawei”,系统会自动将输入域名与后缀连接成“huawei.com”进行查询。

1.2.3 DNS 中继

当 DNS 服务器的 IP 地址发生变化时,用户网络中每个 DNS 客户端上的配置都需要改变,这样工作量极大并且容易出错。此时,可以通过部署 DNS 中继解决该问题。DNS 客户端上配置 DNS 中继的 IP 地址,DNS 服务器的 IP 地址在 DNS 中继上配置。之后,DNS 客户端会将 DNS 请求报文直接发送给 DNS 中继,由 DNS 中继将收到的 DNS 请求报文转发至 DNS 服务器。由此,当 DNS 服务器的IP地址发生变化时,仅需改变 DNS 中继上的配置即可,简化了网络管理。
DNS 中继的工作原理如下图所示:
DNS中继的工作原理:
  • DNS 客户端将 DNS 请求报文发送给 DNS 中继,即请求报文的目的地址为 DNS 中继的 IP 地址。
  • DNS 中继收到请求报文后,将报文转发给 DNS 服务器,通过 DNS 服务器进行域名解析。

1.3 DNS 域名解析过程

  • 户端⾸先会发出⼀个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。
  • 本地域名服务器收到客户端的请求后,如果缓存⾥的表格能找到 www.server.com,则它直接返回 IP地址。如果没有,本地 DNS 会去问它的根域名服务器:“⽼⼤, 能告诉我 www.server.com 的 IP 地址吗?”根域名服务器是最⾼层次的,它不直接⽤于域名解析,但能指明⼀条道路。
  • 根 DNS 收到来⾃本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”
  • 本地 DNS 收到顶级域名服务器的地址后,发起请求问“⽼⼆, 你能告诉我 www.server.com 的 IP 地址吗?”
  • 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。
  • 本地 DNS 于是转向问权威 DNS 服务器:“⽼三,www.server.com 对应的 IP 是啥呀?”,server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
  • 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
  • 本地 DNS 再将 IP 地址返回客户端,客户端和⽬标建⽴连接。
上述过程具体如下图所示:

2. FRQ


在典型的网络配置中,Linux 客户端设备的 DNS 地址通常设置为网关地址,这是一种常见的网络设计。以下是一些原因和原理:
1. 网关充当DNS代理
  • 工作原理: 网关设备(如路由器)通常运行一个DNS代理服务(如dnsmasq)。当客户端将DNS请求发送到网关时,网关会转发这些请求到上游的真实DNS服务器,然后将结果返回给客户端。
  • 优点:
    • 减少客户端需要直接管理的配置。
    • 可以集中处理和优化DNS请求(例如缓存查询结果,提高响应速度)。
    • 提供灵活性,网关可以根据实际需要更改上游DNS服务器。
2. 简化网络配置
  • 使用网关作为DNS地址,避免了直接在客户端设备上配置复杂的DNS设置。只需将网关的地址(通常为默认路由地址)提供给客户端即可。
  • 通过DHCP服务器分配DNS设置时,分发网关地址作为DNS地址也更方便。
3. 提高管理和控制能力
  • 网关作为DNS代理可以启用额外功能,例如:
    • 内容过滤
    • 广告屏蔽
    • 域名重定向
  • 管理员可以在网关上集中设置这些策略,而无需逐一配置每个客户端设备。
4. 适应动态网络环境
  • 如果网络中的上游DNS服务器地址发生变化,只需在网关中修改配置,而不需要重新配置所有客户端。
5. 网络隔离和安全性
  • 网关地址作为中间层,可以隐藏实际的上游DNS服务器信息,增加一定程度的安全性。
  • 有助于限制未经授权的客户端直接访问外部DNS服务器。
6. 常见工具和协议支持
  • DHCP:DHCP服务器通常配置网关地址为DNS服务器地址,这是一种默认行为。
  • dnsmasq、systemd-resolved:这些常见的服务和工具都可以在网关上轻松实现DNS代理功能。
如果需要具体分析您的网络环境,可以检查客户端设备的DNS配置和网关的DNS代理服务是否运行正常。例如,可以通过以下命令查看Linux设备的DNS设置:
cat /etc/resolv.conf

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

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

相关文章

cursor的composer功能

1、对project概括 这个项目是关于什么? what is this project about? 网友表示:「带有 Cursor Agent 的 Cursor 0.43.3 太疯狂了。」

C++中类和对象的细节原理

文章目录 一、C中的构造函数二、C中的析构函数三、两者的配合与注意事项四、C中的静态成员变量五、C中的静态成员函数六、C中普通成员函数和静态成员函数的区别七、C中的const成员变量八、C中的const 成员函数九、C中构造函数的初始化列表十、C中的浅拷贝操作十一、C中的深拷贝…

vue CSS 自定义宽高 翻页 剥离 效果

新增需求,客户需要类似PPT的剥离效果用于WEB页面翻页,查找资料后,参考下方的掘金博主的文章,并将HTML修改成vue的页面进行使用。其中宽度、高度改成了变量,样式style中的属性与宽高的关系整理成了公式进行动态计算。 …

拿到小米 Offer,却迷茫了。。

大家好,我是程序员鱼皮,12 月了,很多小伙伴也拿到了秋招的 Offer(没拿到也不要灰心),但即使拿到 Offer,可能还会有一些其他的顾虑。今天分享我们编程导航一位鱼友的提问,给大家作为学…

transformer学习笔记-自注意力机制(2)

经过上一篇transformer学习笔记-自注意力机制(1)原理学习,这一篇对其中的几个关键知识点代码演示: 1、整体qkv注意力计算 先来个最简单未经变换的QKV处理: import torch Q torch.tensor([[3.0, 3.0,0.0],[0.5, 4…

Leecode刷题C++之形成目标字符串需要的最少字符串数①

执行结果:通过 执行用时和内存消耗如下&#xff1a; 代码如下&#xff1a; class Solution { public:int minValidStrings(vector<string>& words, string target) {auto prefix_function [](const string& word, const string& target) -> vector<…

CompletableFuture异步业务 默认ForkJoinPool 导致类加载器加载类失败

目录 1、Bug案发现场 2、捉虫过程过程 3、解决方案与代码 4、成果展现与总结 ​编辑 5、参考文章 1、Bug案发现场 最近参与帮助以前同事实际业务开发中业务&#xff0c;在一个业务场景之中&#xff1b;使用H5页面通过二维码收集小微企业/个体工商户贷款业务需求。其中在获…

mybatis-plus超详细讲解

mybatis-plus &#xff08;简化代码神器&#xff09; 地址&#xff1a;https://mp.baomidou.com/ 目录 mybatis-plus 简介 特性 支持数据库 参与贡献 快速指南 1、创建数据库 mybatis_plus 2、导入相关的依赖 3、创建对应的文件夹 4、编写配置文件 5、编写代码 …

Houdini abc 导入 maya uv无法识别

参考&#xff1a;Houdini导出abc 至maya UV 无法识别_houdini导出abc没有uv-CSDN博客 从maya导入到houdini的uv默认是vertex层级的&#xff0c;而在maya中&#xff0c;uv是在point层级的&#xff1b;因此在houdini中导出abc时应将uv转为点层级&#xff0c;使用vertexsplit节点&…

2025erp系统开源免费进销存系统搭建教程/功能介绍/上线即可运营软件平台源码

系统介绍 基于ThinkPHP与LayUI构建的全方位进销存解决方案 本系统集成了采购、销售、零售、多仓库管理、财务管理等核心功能模块&#xff0c;旨在为企业提供一站式进销存管理体验。借助详尽的报表分析和灵活的设置选项&#xff0c;企业可实现精细化管理&#xff0c;提升运营效…

半导体数据分析(二):徒手玩转STDF格式文件 -- 码农切入半导体系列

一、概述 在上一篇文章中&#xff0c;我们一起学习了STDF格式的文件&#xff0c;知道了这是半导体测试数据的标准格式文件。也解释了为什么码农掌握了STDF文件之后&#xff0c;好比掌握了切入半导体行业的金钥匙。 从今天开始&#xff0c;我们一起来一步步地学习如何解构、熟…

OCR:文字识别

使用场景: 远程身份认证 自动识别录入用户身份/企业资质信息&#xff0c;应用于金融、政务、保险、电商、直播等场景&#xff0c;对用户、商家、主播进行实名身份认证&#xff0c;有效降低用户输入成本&#xff0c;控制业务风险 文档电子化 识别提取各类办公文档、合同文件、企…

深入C语言文件操作:从库函数到系统调用

引言 文件操作是编程中不可或缺的一部分&#xff0c;尤其在C语言中&#xff0c;文件操作不仅是处理数据的基本手段&#xff0c;也是连接程序与外部世界的重要桥梁。C语言提供了丰富的库函数来处理文件&#xff0c;如 fopen、fclose、fread、fwrite 等。然而&#xff0c;这些库…

linux上qt打包(二)

sudo apt install git 新建一个文件夹 名为xiazai&#xff0c; chmod -R 777 xiazai cd xiazai 并进入这个文件夹&#xff0c;然后clone git clone https://github.com/probonopd/linuxdeployqt.git 此处可能要fanQiang才能下 cd linuxdeployqt文件夹 下载平台需要的…

Windos中解决redis-server.exe闪退问题

一、闪退原因 &#xff08;一&#xff09;数据状态异常 数据不一致 在 Redis 运行过程中&#xff0c;如果发生意外情况&#xff0c;如突然断电、系统崩溃或者不正确的操作&#xff0c;可能会导致数据在内存中的存储状态不一致。例如&#xff0c;Redis 使用多种数据结构&#x…

【数据分享】2013-2023年我国省市县三级的逐年CO数据(免费获取\excel\shp格式)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2023年的省市县三级的逐年PM2.5数据、2000-2023年的省市县三级的逐年PM10数据、2013-2023年的省市县三级的逐年SO2数据、2000-2023年省市县三级的逐年O3数据和2008-2023年我国省市县三级的逐…

华为WLAN基础配置(AC6005模拟配置)

AC6005基础配置 本次实验模拟华为AC6005的基本配置 Tip display interface GigabitEthernet 0/0/0 查看ap接口mac 前提条件&#xff1a;Vlan10为业务网段&#xff0c;vlan100为管理网段&#xff0c;5700作为dhcp。 5700配置如下 <Huawei>sy [Huawei]sys 5700 //设…

shell编程2 永久环境变量和字符串显位

声明 学习视频来自B站UP主 泷羽sec 常见变量 echo $HOME &#xff08;家目录 root用户&#xff09; /root cd /root windows的环境变量可以去设置里去新建 为什么输入ls dir的命令的时候就会输出相应的内容呢 因为这些命令都有相应的变量 which ls 通过这个命令查看ls命令脚本…

WebRTC服务质量(05)- 重传机制(02) NACK判断丢包

WebRTC服务质量&#xff08;01&#xff09;- Qos概述 WebRTC服务质量&#xff08;02&#xff09;- RTP协议 WebRTC服务质量&#xff08;03&#xff09;- RTCP协议 WebRTC服务质量&#xff08;04&#xff09;- 重传机制&#xff08;01) RTX NACK概述 WebRTC服务质量&#xff08;…

AI工具如何深刻改变我们的工作与生活

在当今这个科技日新月异的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经从科幻小说中的概念变成了我们日常生活中不可或缺的一部分。从智能家居到自动驾驶汽车&#xff0c;从医疗诊断到金融服务&#xff0c;AI正以惊人的速度重塑着我们的世界。 一、工作方式的革新…