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




总结

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


推荐阅读
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文详细介绍了如何在Azure DevOps Services和Azure DevOps Server中调整时区设置,以及这些设置对不同功能的影响。 ... [详细]
  • 解决PHP项目在服务器无法抓取远程网页内容的问题
    本文探讨了在使用PHP进行后端开发时,遇到的一个常见问题:即在本地环境中能够正常通过CURL获取远程网页内容,但在服务器上却无法实现。我们将分析可能的原因并提供解决方案。 ... [详细]
  • 本文详细记录了 MIT 6.824 课程中 MapReduce 实验的开发过程,包括环境搭建、实验步骤和具体实现方法。 ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 本文整理了关于Sia去中心化存储平台的重要网址和资源,旨在为研究者和用户提供全面的信息支持。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
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社区 版权所有