热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

域名解析系统DNS

文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名


文章目录

  • 前言
  • 一、域名系统概述
  • 二、因特网的域名结构
  • 三、域名服务器
    • 1.根域名服务器
    • 2.顶级域名服务器(TLD, top-level domain)
    • 3.权威(Authoritative)域名服务器
    • 4.本地域名解析服务器
  • 四、域名解析过程
    • 1.递归查询
    • 2.迭代查询
  • 五、DNS记录和消息格式
    • 1.DNS记录
    • 2.DNS协议与消息
  • 总结




前言

在这里插入图片描述



提示:以下是本篇文章正文内容


一、域名系统概述


域名系统DNS(domain name system)是因特网使用的命名系统,用来把便于人们使用的机器的名字转换为IP地址,域名系统其实就是名字系统

用户与因特网上某台主机通信时,必须知道对方的IP,IP地址是由32位的二进制数字组成的,人们很难记忆,但在应用层为了便于用户记忆各种网络应用,连接在互联网的主机不仅有IP地址,还要便于记忆的主机名字,域名系统DNS能够把互联网上的主机名字转换为IP地址

DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口
从概念上可将DNS分为3部分:层次域名空间、域名服务器和解析器

Internet上主机/路由器的识别问题:
IP地址 <—>域名: www.hit.edu.cn (域名和IP地址之间映射 通过DNS)

域名解析系统DNS特点:

(1)多层命名服务器构成的分布式数据库

(2)应用层协议:完成名字的解析
Internet核心功能,用应用层协议实现,网络边界复杂

DNS服务:


(1)域名向IP地址的翻译
(2)主机别名
(3)邮件服务器别名
(4)负载均衡: Web服务器


分布式层次式数据库:如图
在这里插入图片描述
若客户端想要查询www.amazon.com的IP:

(1)客户端查询根服务器,找到com域名解析服务器

(2)客户端查询com域名解析服务器,找到amazon.com域名解析服务器

(3)客户端查询amazon.com域名解析服务器,获得www.amazon.com的IP地址


二、因特网的域名结构

因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。

任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name), “域”(domain)是名字空间中一个可被管理的划分,从语法上讲,每一个域名都是有标号(label)序列组成,而各标号之间用点(小数点)隔开

如图:
在这里插入图片描述
在域名系统中,每个域分别由不同的组织进行管理。每个组织都可以将它的域再分成一定数目的子域,并将这些子域委托给其他组织去管理

域名树:
在这里插入图片描述
注意:
1.标号中的英文不区分大小写。
2.标号中除连字符(-) 外不能使用其他的标点符号。
3.每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符。
4.级别最低的域名写在最左边,级别最高的顶级域名写在最右边

顶级域名(Top Level Domain, TLD)分为三大类:

(1)国家顶级域名(nTLD),国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国,.uk”表示英国

(2)通用顶级域名(gTLD), 常见的有“.com” (公司)、“.net" (网络服务机构)、“.org”(非营利性组织)和“.gov" (国家或政府部门)等

(3)基础结构域名, 这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称反向域名。反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应,反向域名格式如:X.X.X.in-addr.arpa。很多网络服务提供商要求访问的IP地址具有反向域名解析的结果,否则不提供服务。

国家顶级域名下注册的二级域名均由该国家自行确定,我国把二级域名有分为类别域名和行政区域名


三、域名服务器

因特网的域名系统是一个联机分布式的数据库系统,并采用客户/服务器模型

域名到IP地址的解析是由运行在域名服务器上的程序完成的,一个服务器所负责管辖的(或有权限的)范围称为区,各单位根据具体情况来划分自己管辖范围的区,但在一个区中的所有结点必须是能够连通的,每个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射

每个域名服务器不但能够进行一些域名到IP地址的解析,而且还必须具有连向其他域名服务器的信息。当自己不能进行域名到IP地址的转换时,能够知道到什么地方去找其他域名服务器

DNS使用了大量的域名服务器,它们以层次方式组织,没有一台域名服务器具有因特网上所有主机的映射,因为该映射分布在所有的DNS上,主要有4种类型的域名服务器,如图,如图


1.根域名服务器

根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址

全球有13个根域名服务器
在这里插入图片描述

注意:
1.本地域名解析服务器无法解析域名时,先访问根域名服务器

2.根域名服务器用来管辖顶级域(如.com), 通常它并不直接把待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询


2.顶级域名服务器(TLD, top-level domain)

负责管理在该顶级域名服务器注册的所有二级域名,com, org, net,edu等顶级域名和国家顶级域名,例如cn, uk, fr等

Network Solutions维护com顶级域名服务器,Educause维护edu顶级域名服务器

收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)


3.权威(Authoritative)域名服务器

组织的域名解析服务器,提供组织内部服务器的解析服务:组织负责维护,组织负责维护

每台主机都必须在权威域名服务器处登记, 为了更加可靠地工作,一台主机最好至少有两个权威域名服务器。实际上,许多域名服务器都同时充当本地域名服务器和权威域名服务器, 权威域名服务器总能将其管辖的主机名转换为该主机的IP地址


4.本地域名解析服务器

本地域名解析服务器不严格属于层级体系,每个ISP有一个本地域名服务器,默认域名解析服务器,当主机进行DNS查询时,查询被发送到本地域名服务器,作为代理(proxy),将查询转发给(层级式)域名解析服务器系统

在Windows中配置本地连接时,就需要填写DNS地址,这个地址就是本地DNS (域名服务器)的地址


四、域名解析过程

域名解析是指把域名映射成为IP地址或把IP地址映射成域名的过程, 前者称为正向解析,后者称为反向解析

当客户端需要域名解析时,通过本机的DNS客户端构造一个DNS请求报文,以UDP数据报方式发往本地域名服务器

域名解析有两种方式:递归查询迭代查询


1.递归查询

将域名解析的任务交给所联系的服务器

若Cis.poly.edu的主机想获得gaia.cs.umass.edu的IP地址
在这里插入图片描述
1–8一次查询并返回给主机,

如果本地主机所询问的本地域名服务器不知道被查询域名的IP 地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询

本地域名服务器只需向根域名服务器查询一次,后面的几次查询都是递归地在其他几个域名服务器之间进行的


2.迭代查询

被查询服务器返回域名解析服务器的名字,就好像 “我不认识这个域名,但是你可以问题这服务器”
在这里插入图片描述
中间过程相当于被查询的服务器去查询IP,然后返回给主机

当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪个顶级域名服务器进行查询”,然后让本地域名服务器向这个顶级域名服务器进行后续的查询,直到查找到IP


五、DNS记录和消息格式


1.DNS记录

DNS 数据库由 DNS 服务器使用的一个或多个区域文件组成,每个区域都保存着一组结构化资源记录,以下记录由 DNS 服务器服务支持,所有资源记录都有一个定义的格式,使用相同的顶级字段
资源记录(RR, resource records)RR format: (name, value, type, ttl)

(1)Type=A
A记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少, 它是域名和IP地址的对应关系


Name: 主机域名
Value: IP地址


(2)Type=NS
NS记录和SOA记录是任何一个DNS区域都不可或缺的两条记录,NS记录也叫名称服务器记录,用于说明这个区域有哪些DNS服务器负责解析,SOA记录说明负责解析的DNS服务器中哪一个是主服务器


Name: 域(edu.cn)
Value: 该域权威域名解析服务器的主机域名


(3)Type=SOA
NS记录说明了有多台服务器在进行解析,但哪一个才是主服务器呢,NS并没有说明,这个就要看SOA记录了,SOA名叫起始授权机构记录,SOA记录说明了在众多NS记录里那一台才是主要的服务器

(4)Type=CNAME
又叫别名记录


Name: 某一真实域名的别名
•www.ibm.com – servereast.backup2.ibm.com
Value: 真实域名


(5)Type=MX
全称是邮件交换记录,在使用邮件服务器的时候,MX记录是无可或缺的


Value是与name相对应的邮件服务器


(6)Type=SRV
SRV记录是服务器资源记录的缩写, 作用是说明一个服务器能够提供什么样的服务

(7)Type=PTR
PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名


2.DNS协议与消息

DNS协议则是用来将域名转换为IP地址,
在这里插入图片描述

(1)消息头部
Identification: 16位查询编号,回复使用相同的编号
flags


• 查询或回复
• 期望递归
• 递归可用
• 权威回


(2)查询(query)和回复(reply消息) ,消息格式相同




总结

提示:这里对文章进行总结:


推荐阅读
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文介绍了如何使用n3-charts绘制以日期为x轴的数据,并提供了相应的代码示例。通过设置x轴的类型为日期,可以实现对日期数据的正确显示和处理。同时,还介绍了如何设置y轴的类型和其他相关参数。通过本文的学习,读者可以掌握使用n3-charts绘制日期数据的方法。 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 引号快捷键_首选项和设置——自定义快捷键
    3.3自定义快捷键(CustomizingHotkeys)ChemDraw快捷键由一个XML文件定义,我们可以根据自己的需要, ... [详细]
author-avatar
手机用户2502939421
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有