云计算【第一阶段(28)】DNS域名解析服务

一、DNS解析的定义与作用

1.1、DNS解析的定义

DNS解析(Domain Name System Resolution)是互联网服务中的一个核心环节,它负责将用户容易记住的域名转换成网络设备能够识别和使用的IP地址。一般来讲域名比 IP 地址更加的有含义、也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP 识别对方主机,那么就需要 DNS 域名解析服务了。

定义: DNS解析是指当用户或应用程序通过浏览器、电子邮件客户端等访问某个域名时,系统会通过DNS协议查询对应的IP地址的过程。这个过程涉及从本地缓存、递归DNS服务器到权威DNS服务器等一系列查询操作,最终获取到域名映射的实际IP地址。

  • 正向解析:根据主机名(域名)查找对应的 IP 地址。
  • 反向解析:根据 IP 地址查找对应的主机名(域名)。

正向解析:FQDN--------IP(一对多)------ 一般使用正向解析
反向解析:IP------------FQDN

【域名的反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证】

具体来说:DNS 域名解析服务(Domain Name Svstem)是用于解析域名与 P 地址对应关系的服务,功能上可以实现正向解析与反向解析。

简单的说:DNS就是用于将易记的域名和难记的IP地址相互转化

1.2、DNS解析的作用

易于记忆与访问: 用户可以通过有意义且易记的域名(如www.example.com)来访问网站,而不是直接使用复杂的IP地址(如192.0.2.1)。

分布式管理: DNS系统是一个分布式的数据库,允许全球各地的网络管理员独立管理和维护各自域名下的资源记录,包括子域名、邮件服务器和其他网络服务的指向。

负载均衡和冗余备份: 通过DNS解析,可以实现对同一域名提供多个IP地址(例如轮询负载均衡或多A记录),以达到负载均衡的目的,并在主服务器不可用时快速切换到备用服务器,保证服务连续性。

地理位置优化: 智能DNS解析可以根据用户的地理位置提供最近或最优的服务器IP地址,从而减少延迟,提高用户体验。

安全性和稳定性增强: DNSSEC等技术可以为DNS解析增加安全性,防止中间人攻击和域名劫持等问题,确保数据传输的安全可靠。

总之,DNS解析是网络通信中至关重要的第一步,它使得互联网的使用者能够通过简洁易记的域名来准确高效地定位和访问网络资源。

比如,我们在访问百度时,一般会直接输入www.baidu.com,其实访问它的网址,也可以打开百度,我们在ping  www,baidu,com 时,会得到来自一个IP地址的回复包,访问这个IP地址就等于访问百度

1.3、全球13台DNS根服务器分布

全世界只有13台(这13台根域名服务器名字分别为“A”至“M”),1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。

组织名称DNS根服务器数量
美国VeriSign公司2台
网络管理组织IANA(Internet Assigned Number Authority)1台
欧洲网络管理组织RIPE-NCC(Resource IP Europeens Network Coordination Centre)1台
美国PSINet公司1台
美国ISI(Information Sciences Institute)1台
美国ISC(Internet Software Consortium)1台
美国马里兰大学(University of Maryland)1台
美国太空总署(NASA)1台
美国国防部1台
美国陆军研究所1台
挪威NORDUnet1台
日本WIDE(Widely Integrated Distributed Environments)研究计划1台

除了这13个根服务器系统外,全球还有超过1000台所谓的“根服务器镜像”或“缓存服务器”,它们并不直接参与根区数据的更新,但存储了根区数据的副本,这些解析系统都从母服务器的复制,用于加速本地DNS查询。

在中国,包括北京在内的多个城市也部署了这样的根服务器镜像,以提高国内用户的DNS解析速度。

第一代互联网协议,IPV4地址资源逐渐枯竭。美国在IPv4时代占据了核心资源,拥有绝对的垄断地位。IPv6的推广将促进全球互联网的平等发展和多样化,减少单一国家的垄断。

1.4、DNS使用的协议及端口号

DNS的默认端口为53。 DNS端口分为TCP和UDP。DNS协议属于应用层协议,一般是运行在UDP协议之上。

1.5、DNS服务器类型

(1)主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。


(2)从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
注:

(3)缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

(4)转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

1.6、DNS服务器

  • 114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。
  • 8.8.8.8是GOOGLE公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用
  • 223.5.5.5 和 223.6.6.6:阿里云DNS
  • IPV6 2400:3200::1  和 2400:3200:baba::1
  • 江苏省南京市(中国电信)    首选DNS为:218.2.135.1   备用DNS为:61.147.37.1

1.7、查询方式

1.7.1、递归查询(Recursive Query)

  • 特点:当客户端发起DNS查询时,它向一个DNS服务器(通常是本地DNS服务器)发送请求,并期望直接得到最终的查询结果。如果本地DNS服务器没有缓存相应的记录,它会代替客户端向其他DNS服务器发起查询,直到找到答案或确定无法找到为止。整个过程对客户端是透明的。
  • 应用场景:递归查询对于客户端来说是最简单的,因为它不需要关心查询的具体过程,只需要等待结果即可。这通常用于客户端直接发起的DNS查询。
  • 优点:简化了客户端的操作,提高了查询的效率和用户体验。
  • 缺点:增加了本地DNS服务器的负担,因为它需要处理额外的查询请求。

1.7.2、迭代查询(Iterative Query)

  • 特点:当客户端发起DNS查询时,如果本地DNS服务器没有缓存相应的记录,它会只返回一个或多个可能包含所需信息的DNS服务器的地址,而不是直接返回查询结果。客户端随后会向这些服务器发起新的查询,这个过程可能重复多次,直到找到答案或确定无法找到为止。
  • 应用场景迭代查询通常用于DNS服务器之间的查询,特别是在处理复杂的DNS查询或当本地DNS服务器希望减少自身负担时。
  • 优点:减轻了本地DNS服务器的负担,因为它只需要提供查询的下一步指引,而不是直接处理整个查询过程。
  • 缺点:对于客户端来说,迭代查询可能更加复杂和耗时,因为它需要处理多个查询响应,并可能需要进行多次网络请求。

总结

  • 客户端-本地DNS服务器:这部分通常使用递归查询,因为客户端希望直接得到最终结果,而不必关心查询的具体过程。
  • 本地DNS服务器-外网:当本地DNS服务器需要向其他DNS服务器查询信息时,它可能会使用迭代查询来减少自身的负担并优化查询过程。但请注意,这并不是绝对的,具体取决于DNS服务器的配置和策略。

简单的说递归就是负责查到底,而迭代是给地址去让你重新自己查。

二、域名

2.1、域名体系结构

DNS 服务协议采用类似目录树的层次结构记录域名与IP 地址的映射对应关系,形成一个分布式的数据库系统: DNS 结构模型

顶级域名(TOP Level Domain)大体分为三类:

  • 1.国家顶级域名(nTLD)。国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国,.uk”表示英国,.iq (伊拉克).ir(伊朗) .jp(日本)
  • 2.通用顶级域名(gTLD)。 常见的有“.com” (公司)、“.net" (网络服务机构)、“.org”(非营利性组织)和“.gov" (国家或政府部门)等。
  • 3.新通用顶级域名(New Generic Top-level Domain,简写New gTLD)也叫新顶级域名、新顶域等。新顶级域名后缀是在传统域名后缀资源日趋枯竭的情况下开放注册的,首批新顶级域由ICANN于2012年批准并集中于2014开始面向全球开放注册。例如“.xin/.top/.xyz/.vip”等。

国家顶级域名下注册的二级域名由国家自己决定。

域名:通常由一个完全合格域名(FQDN)标识。FQDN 全称 Fully Qualified Domain Name ,
它能准确表示出其相对于 DNS 域树根的位置, 也就是节点到DNS 树根的完整表述方式,从节点到树根采用反向书写,
并将每个节点用“.”分隔,对于DNS 域google来说,其完全正式域名(FQDN)为google.com。
例如,google 为 com 域的子域,其表示方法为 google.com,而 www 为 google 域中的子域, 可以使用www.google.com. 表示。
 

全域名:同时带有主机名和域名的名称 www 或者 xx.baidu.com
FQDN = Hostname + DomainName
如:www.baidu.com.
注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www.abc.com=www.abc.com.
域名结构:
http://www.sina.com.cn./
http://主机名.子域.二级域.顶级域 根域/

三、DNS域名解析过程

正向解析查询过程:
①先查本机的缓存记录
②查询hosts文件
③查询dns域名服务器,交给dns域名服务器处理
以上过程成为递归查询:我要一个答案你直接会给我结果
④这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
⑤求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
⑥求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
⑦求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
⑧本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端

windows系统查询dns缓存命令:ipconfig /displaydns
windows系统清理dns缓存命令:ipconfig /flushdns

linux清dns缓存需要安装nscd软件,启动、执行nscd -i hosts

四、Bind服务器端程序实验

bind-9.9.4-37.el7.x86_64.rpm    //提供了域名服务的主要程序及相关文件。
bind-utils-9.9.4-37.el7.x86_64.rpm  // 提供了对 DNS 服务器的测试工具程序,如 nslookup 等
bind-libs-9.9.4-37.el7.x86_64.rpm   //提供了 bind、bind-utils 需要使用的库函数。
bind-chroot-9.9.4-37.el7.x86_64.rpm  // 为 BIND 服务提供一个伪装的根目录(将/var/named/chroot/文件夹 作为 BIND 服务的根目录),以提高安全性。 

默认已安装 bind-utils 和 bind-libs,因此只需要安装 bind 和 bind-chroot 即可

yum install bind -y

检查rpm -qc bind

先备份

cp /etc/named.conf{,_bak}

修改主要配置文件

vim /etc/named.conf

 注意要有;

 

全球十三个根域

vim  /var/named/named.ca

修改区域配置文件,添加正向区域配置 

vim /etc/named.rfc1912.zones

配置正向区域数据文件

保留源文件的权限和属主的属性复制

先复制一份模板

cd /var/named

cp -p named.localhost  benet.com.zone

vim /var/named/benet.com.zone

字段描述
TTL1D有效解析记录的生存周期,1天
SOAbenet.com. admin.benet.com. (起始授权记录,指定了区域的技术联系人和管理信息
0更新序列号
1D刷新时间,1天
1H重试延时,1小时
1W失效时间,1周
3H)无效解析记录的生存周期,3小时
NSbenet.com指定当前区域的DNS服务器名称
A192.168.80.10记录主机(通常指区域名对应的IP)的IP地址,
MX10 mail.benet.com邮件交换记录,指定邮件服务器的优先级和名称,10为优先级
A (www)192.168.80.10记录www.benet.com的正向解析IP地址
A (mail)192.168.80.11记录mail.benet.com的正向解析IP地址,注意这里MX的说明可能是重复的
CNAME (ftp)wwwftp是www的别名
A (*)192.168.80.100泛域名解析,任意主机名都解析到192.168.80.100

#“@”这里是一个变量,当前DNS区域名
#SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。
# "benet.com. "此为完全合格域名(FQDN) ,后面有个“."不能漏掉
#“admin.benet.com.”表示管理员邮箱,这里的“@”符号已有其他含义,所以用“.”代替
#IN 表示internet


 注意一些事项

检查错误

named-checkconf -z /etc/named.conf

启动服务
systemctl start named

查看

systemctl status named

关闭防火墙和增强
systemctl stop firewalld
setenforce 0

在客户端的域名解析配置文件中添加DNS服务器地址

vim /etc/resolv.conf

 vim /etc/sysconfig/network-scripts/ifcfg-ens33

systemctl  restart network

host  www.benet.com

反向解析

vim /etc/named.rfc1912.zones 

 cd /var/named

cp -p benet.com.zone  benet.com.zone.local

vim benet.com.zone.local v

systemctl restart named

最后host  192.168.88.79

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

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

相关文章

鸿蒙小练习

bean对象 export class BannerImage{id:numberurl:stringtargetUrl:stringproductId:numberconstructor(id: number, url: string, targetUrl: string, productId: number) {this.id idthis.url urlthis.targetUrl targetUrlthis.productId productId} }export class d…

乐鑫ESPC3 ESP8685 WiFi蓝牙模块透传程序设置教程,抛开繁琐AT指令,简单Web页面配置,即可实现透传

完整文档请下载规格书 TTL-WiFi 透传产品 使用手册 一. 产品概述 二. 接口定义 三. 软件透传WEB配置使用说明 3.1 STATUS配置界面 3.2 MODULE配置界面 n Serial(串口配置) n WiFi(WiFi配置) n Networks(网络…

mybatis mapper.xml 比较运算符(大于|小于|等于)的写法: 转义和<![CDATA[]]>

文章目录 引言I 使用xml 原生转义的方式进行转义II 使用 <![CDATA[ 内容 ]]>引言 应用场景:查询时间范围 背景:在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突 <![CDATA[]]> 比 转义符 来的繁琐 <![CDATA[]]> 表示xml解析器忽略…

怎样优化 PostgreSQL 中对日期时间范围的模糊查询?

文章目录 一、问题分析&#xff08;一&#xff09;索引未有效利用&#xff08;二&#xff09;日期时间格式不统一&#xff08;三&#xff09;复杂的查询条件 二、优化策略&#xff08;一&#xff09;使用合适的索引&#xff08;二&#xff09;规范日期时间格式&#xff08;三&a…

Hadoop简明教程

文章目录 关于HadoopHadoop拓扑结构Namenode 和 Datanode 基本管理启动Hadoop启动YARN验证Hadoop服务停止Hadoop停止HDFS Hadoop集群搭建步骤准备阶段Java环境配置Hadoop安装与配置HDFS格式化与启动服务测试集群安装额外组件监控与维护&#xff1a; 使用Docker搭建集群使用Hado…

Chain-of-Verification Reduces Hallucination in Lagrge Language Models阅读笔记

来来来&#xff0c;继续读文章了&#xff0c;今天这个是meta的研究员们做的一个关于如何减少LLM得出幻觉信息的工作&#xff0c;23年底发表。文章链接&#xff1a;https://arxiv.org/abs/2309.11495 首先&#xff0c;这个工作所面向的LLM的问答任务&#xff0c;是list-based q…

Nginx理论篇与相关网络协议

Nginx是什么&#xff1f; Nginx是一款由C语言编写的高性能、轻量级的web服务器&#xff0c;一个线程能处理多个请求&#xff0c;支持万级并发。 优势&#xff1a;I/O多路复用。 I/O是什么&#xff1f; I指的是输入&#xff08;Input&#xff09;,O是指输出&#xff08;Outp…

java中 使用数组实现需求小案例

Date: 2024.04.08 18:32:57 author: lijianzhan 需求实现&#xff1a; 设计一个java类&#xff0c;java方法&#xff0c;根据用户手动输入的绩点&#xff0c;从而获取到绩点最高的成绩。 实现业务逻辑的代码块 import java.util.Scanner;public class PointDemo {/*** 需求&…

python-24-零基础自学python while循环+交互+数据的存储

学习内容&#xff1a;《python编程&#xff1a;从入门到实践》第二版 知识点&#xff1a; 文件处理 with open&#xff08;&#xff09;while 练习内容&#xff1a;10章练习题10-3、10-4、10-5 练习10-3&#xff1a;访客 编写一个程序&#xff0c;提示用户输入名字。用户做…

SpringBoot实战:轻松实现XSS攻击防御(注解和过滤器)

文章目录 引言一、XSS攻击概述1.1 XSS攻击的定义1.2 XSS攻击的类型1.3 XSS攻击的攻击原理及示例 二、Spring Boot中的XSS防御手段2.1 使用注解进行XSS防御2.1.1 引入相关依赖2.1.2 使用XSS注解进行参数校验2.1.3 实现自定义注解处理器2.1.4 使用注解 2.2 使用过滤器进行XSS防御…

《算法笔记》总结No.5——递归

一.分而治之 将原问题划分为若干个规模较小而结构与原问题相同或相似的子问题&#xff0c;然后分别解决这些子问题&#xff0c;最后合并子问题的解&#xff0c;即可得到原问题的解&#xff0c;步骤抽象如下&#xff1a; 分解&#xff1a;将原问题分解为若干子问题解决&#x…

[氮化镓]Kevin J. Chen组新作—肖特基p-GaN HEMTs正栅ESD机理研究

这篇文章是发表在《IEEE Electron Device Letters》上的一篇关于Schottky型p-GaN栅极高电子迁移率晶体管&#xff08;HEMTs&#xff09;的正向栅极静电放电&#xff08;ESD&#xff09;机理研究的论文。文章由Jiahui Sun等人撰写&#xff0c;使用了基于碳化硅&#xff08;SiC&a…

Java--多态

1.多态为同一方法根据发送对象的不同而采用多种不同的行为方式 2.一个对象的实际类型是确定的&#xff0c;但可以指向对象的引用的类型有很多 3.多态存在的条件 1.有继承关系 2.子类重写父类方法 3.父类引用指向子类对象 4.多态是方法的多态&#xff0c;属性没有多态 5.由于…

全网最适合入门的面向对象编程教程:11 类和对象的Python实现-子类调用父类方法-模拟串口传感器和主机

全网最适合入门的面向对象编程教程&#xff1a;11 类和对象的 Python 实现-子类调用父类方法-模拟串口传感器和主机 摘要&#xff1a; 本节课&#xff0c;我们主要讲解了在 Python 类的继承中子类如何进行初始化、调用父类的属性和方法&#xff0c;同时讲解了模拟串口传感器和…

Python | Leetcode Python题解之第223题矩形面积

题目&#xff1a; 题解&#xff1a; class Solution:def computeArea(self, ax1: int, ay1: int, ax2: int, ay2: int, bx1: int, by1: int, bx2: int, by2: int) -> int:area1 (ax2 - ax1) * (ay2 - ay1)area2 (bx2 - bx1) * (by2 - by1)overlapWidth min(ax2, bx2) - …

电动卡丁车语音芯片方案选型:让驾驶体验更智能、更安全

在追求速度与激情的电动卡丁车领域&#xff0c;每一次升级都意味着更加极致的驾驶体验。而今天&#xff0c;我们要介绍的&#xff0c;正是一款能够显著提升电动卡丁车智能化与安全性的语音芯片方案——为您的爱车增添一份独特的魅力与安全保障。 智能化升级&#xff0c;从“听…

【js面试题】js的数据结构

面试题&#xff1a;说说你了解的js数据结构 JavaScript中的数据结构是编程的基础&#xff0c;它们帮助我们以高效的方式存储和操作数据。 下面将详细介绍 这些数据结构的来源、概念和应用场景。 数组 Array 来源&#xff1a; 数组是一种线性数据结构&#xff0c;起源于计算…

卷积神经网络可视化的探索

文章目录 训练LeNet模型下载FashionMNIST数据训练保存模型 卷积神经网络可视化加载模型一个测试图像不同层对图像处理的可视化第一个卷积层的处理第二个卷积层的处理 卷积神经网络是利用图像空间结构的一种深度学习网络架构&#xff0c;图像在经过卷积层、激活层、池化层、全连…

PyJWT,一个基于JSON的轻量级安全通信方式的python库

目录 什么是JWT&#xff1f; JWT的构成 PyJWT库简介 安装PyJWT 生成JWT 验证JWT 使用PyJWT的高级功能 自定义Claims 错误处理 结语 什么是JWT&#xff1f; 在介绍PyJWT这个Python库之前&#xff0c;我们首先需要了解什么是JWT。JWT&#xff0c;全称JSON Web Token&am…

Java根据经纬度获取两点之间的距离

Java根据经纬度获取两点之间的距离&#xff0c;最近在实现类似于钉钉打卡签到的需求&#xff0c;因为对精度要求不是很高&#xff0c;所以可以通过一个球面距离的公式来求两点距离&#xff0c;这里将地球当成一个球体&#xff0c;实际上地球是一个不规则的球体&#xff0c;所以…