DNS域名解析服务
1.概述
1.1.产生原因
IP 地址:是互联网上计算机唯一的逻辑地址,通过IP 地址实现不同计算机之间的相互通信,每台联网计算机都需要通过I 地址来互相联系和分别,但由于P 地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的 P 地址,这样对于我们日常工作生活访问不同网站是很困难的。
基于这种背景,人们在IP 地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP 地址更易被识别和记忆,逐渐代替P 地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名域名虽然更易被用户所接受和使用,但计算机只能识别纯数字构成的IP 地址,不能直接读取域名。因此要想达到访问效果,就需要将域名翻译成IP 地址。而 DNS 域名解析承担的就是这种翻译效果
1.2.作用:
DNS(Domain Name System)是互联网上的一项服务,用于将域名和IP地址进行相互映射使人更方便的访问互联网
正向解析:域名->IP
反向解析:IP->域名
1.3.连接方式
DNS使用53端口监听网络
查看方法:
DNS默认以UDP这个较快速的数据传输协议来查询,但没有查询到完整的信息时,就会再次以TCP协议重新查询则启动DNS时,会同时启动TCP以及UDP的port53
[root@server ~]# cat /etc/services # 存放已经安装的服务的端口号
复习:以学习到的端口号
htp:21/20
ssh:22
远程登陆协议:23
DNS:53
http:80
https:443
ntp:123
1.4因特网的域名结构
1.4.1.拓扑:
由于因特网的用户数量较多,则因特网命名时采用层次树状结构的命名方法
域名(domain name): 任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的.名称
域 (domain): 是名字空间中一个可被管理的划分结构
注意:域名只是逻辑概念,并不代表计算机所在的物理地点
1.4.2.分类
国家顶级域名: 采用IS03166的规定,如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为CCTLD(country code top-evel domains,cc表示国家代码contry-code)通用顶级域名:最常见的通用顶级域名有7个
com(公司企业)
net(网络服务机构)
org(非营利组织)
int(国际组织)
gov(美国的政府部门)
mil(美国的军事部门)
基础结构域名(infrastructure domain): 这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名
1.4.3.域名服务器类型划分
组织架构:
根域名服务器: 最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。本地域名服务器要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。则根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。所以根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服纸器进行查询。
(用于管理所有的域名解析服务 ,但不直接负责域名解析。存储所有的域名解析记录,但不直接进行域名解析)
在与现有IPv4根服务器体系架构充分兼容基础上,由我国下一代互联网国家工程中心领衔发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台Pv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4台,由1台主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。
顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名
权限域名服务器:负责一个”区”的域名服务器(如下图的:openlab.com)本地域名服务器: 本地域名服务器不属于域名服务器的层次结构,当主机发出DNS查询时,这个查询报文就发送给本地域名服务器
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,如:主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP 地址之间的对应关系(真正干活的)
从服务器: 从主服务器中获得域名与P 地址的对应关系并进行维护,以防主服务器宕机等情况(打下手的)
缓存服务器: 通过向其他域名解析服务器查询获得域名与IP 地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率,一般部署在企业内网的网关位置,用于加速用户的域名查询请求
2. DNS域名解析过程
2.1.分类:
递归解析:DNS 服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS 服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户
迭代解析(反复):DNS 服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS 服务器的地址,用户再向这台 DNS 服务器提交请求,依次反复,直到返回查询结果
2.2.解析图:
2.2.1.图:
2.2.2.过程分析
第一步:在浏览器中输入www.google.com 域名,本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的IP 地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过 TTL 属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP 有变化,会导致被客户端缓存的域名无法解析到变化后的P 地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名
第二步:如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的 DNS解析结果。其实操作系统也有一个[域名解析]的过程,在 Linux 中可以通过 /etc/hosts 文件来设置,而在windows 中可以通过配置 C:WindowslSystem32\driversletclhosts 文件来设置,用户可以将任何域名解析到任何能够访问的IP 地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地 DNS 解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP 地址上,导致这些域名被劫持
第三步:前两步是在本地电脑上完成的,若无法解析时,就要用到我们网络配置中的“DNS 服务器地址”了。操作系统会把这个域名发送给这个本地 DNS 服务器。每个完整的内网通常都会配置本地 DNS 服务器,例如用户是在学校或工作单位接入互联网,那么用户的本地 DNS 服务器肯定在学校或工作单位里面。它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约 80% 的域名解析到这里就结束了,后续的 DNS 迭代和递归也是由本地 DNS服务器负责
第四步:如果本地 DNS 服务器仍然没有命中,就直接到根 DNS 服务器请求解析
第五步:根 DNS 服务器返回给本地 DNS 域名服务器一个顶级 DNS 服务器地址,它是国际顶级域名服务器,如.com、.cn、.org 等,全球只有 13 台左右
第六步:本地 DNS服务器再向上一步获得的顶级DNS 服务器发送解析请求
第七步: 接受请求的顶级 DNS 服务器查找并返回此域名对应的 Name Server 域名服务器的地址,这个 Name Server 服务器就是我要访问的网站域名提供商的服务器,其实该域名的解析任务就是由域名提供商的服务器来完成。比如我要访问 www.baidu.com,而这个域名是从A公司注册获得的,那么A公司上的服务器就会有 www.baidu.com 的相关信息
第八步:返回该域名对应的IP 和 TTL 值,本地 DNS 服务器会缓存这个域名和IP 的对应关系缓存时间由 TTL 值控制
第九步: Name Server 服务器收到查询请求后再其数据库中进行查询,找到映射关系后将其IP地址返回给本地DNS服务器第十步: 本地DNS服务器把解析的结果返回给本地电脑,本地电脑根据 TTL 值缓存在本地系统缓存中,域名解析过程结束在实际的 DNS 解析过程中,可能还不止这 10 步,如 Name Server 可能有很多级,或者有一个 GTM 来负载均衡控制,这都有可能会影响域名解析过程
注意:
从客户端到本地DNS服务器是属于递归查询
DNS服务器之间使用的交互查询就是迭代查
114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。
223.5.5.5和223.6.6.6是阿里提供的免费域名解析服务器地址
8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用
3. 搭建DNS域名解析服务器
3.1.概述
伯克利因特网域名解析服务是一种全球使用最BIND: Berkeley Internet Name Domain广泛的、最高效的、最安全的域名解析服务程序
3.2.安装软件
[root@server ~]# yum install bind -y
3.3.bind服务中三个关键文件
/etc/named.conf:主配置文件,共59行,去除注释和空行之和有效行数仅30行左右,用于设置bind服务程序的运行 (负责全局性配置,服务是否启动,具体的监听端口号)
/etc/named.rfc1912.zones : 区域配置文件 (zone) ,用于保存域名和IP地址对应关系文件的所在位置,类似于图书目录,当需要修改域名与IP映射关系时需要在此文件中查找相关文件位置(存储具体解析记录文件的位置)
/var/named 目录: 数据配置文件目录,该目录存储保存域名和IP地址映射关系的数据文件[root@server ~]# vim /var/named/named.localhost # 域名解析具体记录的数据库文件
3.4主配置文件分析
主配置文件共4部分组成
options{}
logging{}
zonef{}
include
常用参数:
相关文章:

DNS域名解析服务
1.概述 1.1.产生原因 IP 地址:是互联网上计算机唯一的逻辑地址,通过IP 地址实现不同计算机之间的相互通信,每台联网计算机都需要通过I 地址来互相联系和分别,但由于P 地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的…...

【milkv】2、mpu6050驱动添加及测试
前言 本章介绍mpu6050的驱动添加以及测试。 其中驱动没有采用sdk提供的驱动,一方面需要配置irq,另一方面可以学习下如何通过ko方式添加驱动。 一、参考文章 驱动及测试文件编译流程: https://community.milkv.io/t/risc-v-milk-v-lsm6ds…...

SpringCloud Alibaba(中):服务熔断降级-Sentinel
Sentinel Sentinel是阿里巴巴开源的分布式系统流量防卫防护组件,主要对分布式系统中的流量进行控制、熔断降级等保护操作。Sentinel的目标是成为互联网级别分布式系统的流量防卫防护组件,它与系统的各个部分集成,保护着系统的入口和出口。 …...
模型的训练专题
训练目标在数学上指定了模型应该如何从训练数据中学习和获取能力。训练基础模型的当前现状涉及特定于模型的目标。我们设想,未来基础模型的训练目标将反映两个变化:从系统证据和评估中得出的原则性选择,以及跨数据源和模式提供丰富、可扩展和…...

深入解析 Azure 机器学习平台:架构与组成部分
Azure机器学习平台是Microsoft Azure提供的一种云上机器学习服务,为开发者和数据科学家提供了一个全面且易于使用的环境来创建、训练、部署和管理机器学习模型。本文将对Azure机器学习平台的基本架构和组成部分进行深入解析,帮助读者全面了解该平台的工作…...

使用百度语音识别技术实现文字转语音的Java应用
探讨如何使用百度语音识别技术将文字转换为语音的Java应用。百度语音识别技术是一种强大的语音识别服务,可以将输入的文字转换为自然流畅的语音输出。我们将使用Java编程语言来实现这个应用,并提供相应的源代码。 首先,我们需要准备一些前提…...
【C#学习】文件操作
文章目录 常见操作拷贝文件检测文件夹是否存在并创建判断文件是否存在删除文件夹下的所有文件保留文件夹获取指定目录下的所有文件名删除 常见操作 拷贝文件 System.IO.File.Copy(sourcePath, targetPath); 检测文件夹是否存在并创建 //if directory not exit,then establis…...

Chrome版本对应Selenium版本
1.获得浏览器版本号和驱动 浏览器版本: 119.0.6045.124 浏览器驱动版本: 119.0.6043.1 / 120.0.6051.0 访问 https://vikyd.github.io/download-chromium-history-version/ 2. 安装selenium pip install selenium4.1.1 -i http://pypi.mirrors.ustc.edu.cn/simple/ --trusted…...

Day29力扣打卡
打卡记录 美丽塔 II(前后缀分解 单调栈) 链接 大佬的题解 class Solution:def maximumSumOfHeights(self, a: List[int]) -> int:n len(a)suf [0] * (n 1)st [n] # 哨兵s 0for i in range(n - 1, -1, -1):x a[i]while len(st) > 1 and …...
java源码用到的设计模式
Java 中有许多常用的设计模式,它们是为了解决特定问题而被反复使用和验证的经验总结。以下是一些常见的 Java 设计模式: 创建型模式 工厂模式 (Factory Pattern): 提供一个创建对象的接口,但是由子类决定实例化哪个类。例如:java…...
high perfermance computer usage
简单记一下hpc的使用: hpc就是一些科研机构或者大学建立的服务器中心。我这大学的每一位学生,可以轻松使用hpc批量跑数据,也可以新建自己的server跑一些local data,后者每个学生账号最大是32核512G的运行内存,体验非常…...

51单片机+DS1302设计一个电子钟(LCD1602显示时间)
一、前言 电子钟是一种能够准确显示时间的设备,广泛应用于家庭、办公场所和公共场所,为人们提供了方便和准确的时间信息。本项目设计一个基于51单片机的电子钟,使用DS1302作为RTC时钟芯片,LCD1602作为显示屏,并通过串…...
vue项目中在scss代码中使用data中的变量
尽管在日常开发中,这类情况实际上很少出现。 VUE2: 在HTML中使用时,请确保将cssVars绑定在需要使用CSS变量的元素或该元素的上层元素上。 <template><div :style"cssVars"><div class"test"/></div><…...

uni-app报错“本应用使用HBuilderX x.x.x 或对应的cli版本编译,而手机端SDK版本是x.x.x不匹配的版本可能造成应用异常”
uniapp开发的一个跨平台软件,在安卓模拟器上启动的时候报警告: 官方给的解释:uni-app运行环境版本和编译器版本不一致的问题 - DCloud问答 解决办法有两个 方法一:添加忽略警告的配置 项目根目录下找到 manifest.json…...

[sd_scripts]之train
https://github.com/kohya-ss/sd-scripts/blob/main/docs/train_README-zh.mdhttps://github.com/kohya-ss/sd-scripts/blob/main/docs/train_README-zh.md 支持模型fine-tune,dreambooth,lora,textual inversion。 1.数据准备 在任意多个…...
samba 共享目录write permission deny问题修复 可读取内容但不可修改 删除 新增文件
关于 update/delete/write permission deny问题修复 0.首先在服务器端执行testparm -s ,测试 Samba 配置并显示结果。需确保服务器端参数 read only No ,共享目录有写入权限 一、若配置了允许匿名访问,使用匿名访问来操作smb需要做如下处理…...
UDP主要丢包原因及具体问题分析
一、主要丢包原因 1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入…...

647. 回文子串 516.最长回文子序列
647. 回文子串 题目: 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由相…...
点云从入门到精通技术详解100篇-双传感器模式的非结构化环境检测与识别
目录 前言 国内外研究现状 可通行区域检测的研究 障碍物检测的研究...
Nginx-反向代理
反向代理 1 语法 server {listen 82; server_name www.liyong.f.com;location ~* .*(css|js|html|images). {proxy_pass http://11.22.19.81:8088; } 上面的示例的意思是: 当访问:http://www.liyong.f.com:82/static/css/OneMap.b728e2e4.css 转发到 …...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...