热门标签 | 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消息) ,消息格式相同




总结

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


推荐阅读
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 知识图谱表示概念:知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Obj ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 容器管理与容器监控influxDB
    容器管理与容器监控-influxDB什么是influxDBinfluxDB安装(1)下载镜像(2)创建容器(3 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • 实例详解ISA防火墙策略元素
    我们在前面的工作中已经实现了ISA2006的代理服务器功能,接下来我们要实现ISA的访问控制功能。很多公司都有控制员工访问外网的需求,例如有的公司不允许 ... [详细]
  • Java开发实战讲解!字节跳动三场技术面+HR面
    二、回顾整理阿里面试题基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。自我介绍JVM如何加载一个类的过程,双亲委派模型中有 ... [详细]
  • 引言随着企业安全意识的增强以及现代化管理水平的提高,对设备的远程监控在工业控制系统中得到了越来越广泛的应用。近年来,Web技术广泛普及,把 ... [详细]
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社区 版权所有