云计算【第一阶段(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台 |
挪威NORDUnet | 1台 |
日本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
字段 | 值 | 描述 |
---|---|---|
TTL | 1D | 有效解析记录的生存周期,1天 |
SOA | benet.com. admin.benet.com. ( | 起始授权记录,指定了区域的技术联系人和管理信息 |
0 | 更新序列号 | |
1D | 刷新时间,1天 | |
1H | 重试延时,1小时 | |
1W | 失效时间,1周 | |
3H) | 无效解析记录的生存周期,3小时 | |
NS | benet.com | 指定当前区域的DNS服务器名称 |
A | 192.168.80.10 | 记录主机(通常指区域名对应的IP)的IP地址, |
MX | 10 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) | www | ftp是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
相关文章:

云计算【第一阶段(28)】DNS域名解析服务
一、DNS解析的定义与作用 1.1、DNS解析的定义 DNS解析(Domain Name System Resolution)是互联网服务中的一个核心环节,它负责将用户容易记住的域名转换成网络设备能够识别和使用的IP地址。一般来讲域名比 IP 地址更加的有含义、也更容易记住…...

pygame 音乐粒子特效
代码 import pygame import numpy as np import pymunk from pymunk import Vec2d import random import librosa import pydub# 初始化pygame pygame.init()# 创建屏幕 screen pygame.display.set_mode((1920*2-10, 1080*2-10)) clock pygame.time.Clock()# 加载音乐文件 a…...

Leetcode 295.数据流的中位数
295.数据流的中位数 问题描述 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: Media…...

A59 STM32_HAL库函数 之 TIM扩展驱动 -- A -- 所有函数的介绍及使用
A59 STM32_HAL库函数 之 TIM扩展驱动 -- A -- 所有函数的介绍及使用 1 该驱动函数预览1.1 HAL_TIMEx_HallSensor_Init1.2 HAL_TIMEx_HallSensor_DeInit1.3 HAL_TIMEx_HallSensor_MspInit1.4 HAL_TIMEx_HallSensor_MspDeInit1.5 HAL_TIMEx_HallSensor_Start1.6 HAL_TIMEx_HallSe…...

【Unity】UGUI的基本介绍
Unity的UGUI(Unity User Interface)是Unity引擎内自带的UI系统,官方称之为UnityUI,是目前Unity商业游戏开发中使用最广泛的UI系统开发解决方案。以下是关于Unity的UGUI的详细介绍: 一、UGUI的特点 灵活性:…...

MySQL 9.0新特性:向量存储
MySQL 9.0 正式版已经发布,其中一个亮点就是向量(VECTOR)数据类型的支持,本文给大家详细介绍一下这个新功能。 向量类型 MySQL 9.0 增加了一个新的向量数据类型:VECTOR。它是一种可以存储 N 个数据项的数据结构&…...

ruoyi实用性改造--(四)选择数据源及非标准使用数据库
一、实用型数据直接访问/** 使用Druid中 application-druid.yml 中定义的副数据源Connection con=null; //手工调用Druid的配置访问Connection con2=null;try {//DruidDataSource ds = SpringUtils.getBean("masterDataSource");DruidDataSource ds = Spring…...

HMI 的 UI 风格创造奇迹
HMI 的 UI 风格创造奇迹...

如何安全隐藏IP地址,防止网络攻击?
当您想在互联网上保持隐私或匿名时,您应该做的第一件事就是隐藏您的 IP 地址。您的 IP 地址很容易被追踪到您,并被用来了解您的位置。下面的文章将教您如何隐藏自己,不让任何试图跟踪您的活动的人发现。 什么是 IP 地址? 首先&am…...

Windows10/11家庭版开启Hyper-V虚拟机功能详解
Hyper-V是微软的一款虚拟机软件,可以使我们在一台Windows PC上,在虚拟环境下同时运行多个互相之间完全隔离的操作系统,这就实现了在Windows环境下运行Linux以及其他OS的可能性。和第三方虚拟机软件,如VMware等相比,Hyp…...

202487读书笔记|《我有个拥抱,你要不要》——生活从来如此,你的态度赋予它意义
202487读书笔记|《我有个拥抱,你要不要》——生活从来如此,你的态度赋予它意义 《我有个拥抱,你要不要》作者一天到晚气fufu,挺有愛的小漫画,适合用来看图说话锻炼小语言,我看的很快乐也写得很痛快…...

使用tcpdump抓取本本机的所有icmp包
1、抓取本机所有icmp包 tcpdump -i any icmp -vv 图中上半部分,是源主机tmp179无法ping通目标主机192.168.10.79(因为把该主机关机了)的状态,注意看,其中有unreachable 图中下半部分,是源主机tmp179可以p…...

Nginx:负载均衡小专题
运维专题 Nginx:负载均衡小专题 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/…...

新增多种图表类型,新增插件管理模块,DataEase开源数据可视化分析工具v2.8.0发布
2024年7月8日,人人可用的开源数据可视化分析工具DataEase正式发布v2.8.0版本。 这一版本的功能变动包括:图表方面,新增组合图、热力地图、符号地图、K线图等图表类型,并对已有的仪表盘、明细表、指标卡、富文本等图表类型进行了功…...

android perfetto使用技巧梳理
1 抓取方法 根据不同的配置参数,会显示不同的功能。 比如有的trace文件就无法显示线程状态信息,有的无法显示锁依赖信息等等,要看你的参数,我这个是很全的,基本够了,如果还想添加,可以命令行看…...

bond网络配置文件中zone
在bond网络配置文件中,zone是一个参数,用于指定bond设备所属的防火墙安全区域。它可以设置为一个字符串值,通常是一个自定义的区域名称。 防火墙安全区域是一种网络隔离和安全策略的概念,它可以将网络划分为不同的区域࿰…...

spring事务详解
事务管理方式 在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式。 编程式事务管理: 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,sp…...

LIMS系统的核心功能有哪些
LIMS实验室管理系统,是一种利用信息化技术管理和优化实验室工作流程的系统。其核心功能主要包括以下几个方面: 一、样品管理 样品登记与追踪:LIMS系统能够对实验室内的所有样品进行统一管理,包括样品的接收、登记、分类、追踪和管…...

jenkins在使用pipeline时,为何没有方块形视图
项目场景: 安装完Jenkins时后,通过pipeline创建的项目任务。 问题描述 在立即构建后,没有显示每个阶段的视图。 原因分析: 原因是,刚安装的Jenkins,这个视图不是Jenkins自带的功能,而必须安装…...

Desktop docker 部署 WordPress
Desktop Docker 部署 WordPress 之前都是在Linux里面玩的,今天看到别人在windwos下安装docker,一时兴起装了一个试试,效果一般,很吃硬盘空间和内存。 首先在docker官方下载桌面版,安装下一步一直到完成。 安装完docke…...

简单的找到自己需要的flutter ui 模板
简单的找到自己需要的flutter ui 模板 网站 https://flutterawesome.com/ 简介 我原本以为会很难用 实际上不错 很简单 打开后界面类似于,右上角可以搜索 点击view github 相当简单 很oks...

SpringBoot实现多数据源切换
1. 概述 仓库地址:https://gitee.com/aopmin/multi-datasource-demo 随着项目规模的扩大和业务需求的复杂化,单一数据源已经不能满足实际开发中的需求。在许多情况下,我们需要同时操作多个数据库,或者需要将不同类型的数据存储在不…...

VUE + 小程序 关于前端循环上传附件页面卡死的问题
最开始我使用for循环,后端能正常保存,但是前端页面卡死了,开始代码是这么写的 wx.showLoading({title: 文件上传中...,mask: true // 是否显示透明蒙层,防止触摸穿透,默认:false});const {fileList} that.…...

【基础算法总结】分治—归并
分治—归并 1.排序数组2.交易逆序对的总数3.计算右侧小于当前元素的个数4.翻转对 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.排序数组 …...

基于Java+SpringMvc+Vue技术的实验室管理系统设计与实现(6000字以上论文参考)
博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…...

19_谷歌GoogLeNet(InceptionV1)深度学习图像分类算法
1.1 简介 GoogLeNet(有时也称为GoogleNet或Inception Net)是一种深度学习架构,由Google的研究团队在2014年提出,主要设计者为Christian Szegedy等人。这个模型是在当年的ImageNet大规模视觉识别挑战赛(ILSVRC…...

clickhouse高可用可拓展部署
clickhouse高可用&可拓展部署 1.部署架构 1.1高可用架构 1.2硬件资源 部署服务 节点名称 节点ip 核数 内存 磁盘 zookeeper zk-01 / 4c 8G 100G zk-02 / 4c 8G 100G zk-03 / 4c 8G 100G clikehouse ck-01 / 32c 128G 2T ck-02 / 32c 128G 2T ck-03 / 32c 128G 2T ck-04 /…...

QT中QDomDocument读写XML文件
一、XML文件 <?xml version"1.0" encoding"UTF-8"?> <Begin><Type name"zhangsan"><sex>boy</sex><school>Chengdu</school><age>18</age><special>handsome</special>&l…...

sql盲注
文章目录 布尔盲注时间盲注 布尔盲注 介绍:在网页只给你两种回显的时候是用,类似于布尔类型的数据,1表示正确,0表示错误。 特点:思路简单,步骤繁琐且麻烦。 核心函数: length()函数substr()函…...

星网安全产品线成立 引领卫星互联网解决方案创新
2024年6月12日,盛邦安全(688651)成立星网安全产品线,这是公司宣布全面进入以场景化安全、网络空间地图和卫星互联网安全三大核心能力驱动的战略2.0时代业务落地的重要举措。 卫星互联网技术的快速发展,正将其塑造为全球…...