DNS域名解析协议(深信服X计划)

文章目录

    • 一、DNS协议背景
    • 二、DNS协议概述
    • 三、DNS工作原理
    • 四、DNS常用的记录及作用


一、DNS协议背景

在Internet网中连接着数量众多的主机,要让这些主机进行通信,需要有一套名字标识体系,让主机之间能够彼此找到对方,我们可以用多种方式进行主机标识,如使用主机名标识一台主机,当然,我们更多是用IP地址来标识计算机,主机在互联网上靠IP地址进行位置标识。

在这里插入图片描述

在internet的前身ARPAnet的年代,整个网络中只有几百台主机,所有主机信息以及主机名与地址的映射记录都存放在一个名为HOSTS.TXT的文件中。HOSTS.TXT从一台名为SRI-NIC的主机上分发到整个网络,这台主机由斯坦福研究院的网络信息中心负责维护。ARPAnet的管理员们通过电子邮件的方式将变更信息通知NIC,同时定期FTP到SRI-NIC.上,获得最新的HOSTS.TXT文件。

在这里插入图片描述
例如:在IE里面输入http://www.sangfor.com.cn或者1 13.105.88.225都能访问深信服官网。

在20世纪70年代束,整个ARPAnet只有200台主机。但是到了80年代,ARPAnet 上主机数量飞速增长,到80年代末期主机总数增加到10万台,这种人工更新的方式显然不再适用了。频繁更新HOSTS.TXT造成了网络流量和处理器负载增加,并且名字冲突和数据一致性维护越来越困难。为了解决这一问题,网络管理者们希望找到一种合理的方法来解决主机信息的维护问题,既能分散管理,又能及时进行全网更新和同步,并且采用层次化的名字空间,保证主机名的全网唯一性。1984年, 南加州大学信息科学所的Paul Mockapnris发布了描述DNS (英文全称为Domain Name System,中文意思是域名系统)的RFC 882和RFC 883,就是最初的DNS规范,DNS系统诞生了。

在这里插入图片描述


二、DNS协议概述

DNS (Domain Name System,域名系统)是互联网上是一种层次结构的基于域的命名方式和实现这种命名方式的分布式数据库,其中记录了各种主机域名与IP地址的对应关系,能够使用户更加方便的访问网站。用户可以直接输入域名登录网站,DNS会将域名解析成IP地址,然后用户根据这个IP地址找到相应的网站,从而访问到域名对应的网站,通过主机名获取到主机名对应IP地址的过程叫作域名解析。

DNS协议建立在UDP协议之上,在某些情况下可以切换到TCP,使用端口号53,是一种客户/服务器服务模式。

在这里插入图片描述

域:①域是一个逻辑上的概念,在初始划分互联网的时候,Internet组织将世界上的计算机划分为了若干个大类,如com、gov、 org、 net、 edu、 cn、 us等。②每一个大类我们称之为一个域。③在每个大类里面划分出比较小一点的,成为子域,域是可以嵌套的,大域包含小域,小域可以包含更小的域。

域名:在每个域里面都有很多主机,每个主机都有一个主机名,我们在这个主机名后面冠上主机所在域的名称成为该主机在Internet网络上的域名。

域名结构:域名是一个树状层次结构,联机分布式数据库系统,最高的根域名服务器维护最高级别域名服务器记录,后者维护下一级域名服务器的记录。

在这里插入图片描述

域名服务器:负责名字到地址的解析。
域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
根据域名结果可以把域名服务器划分为以下四种类型:
(1)根域名服务器;(2)顶级域名服务器;(3)权威域名服务器;(4)本地域名服务器。

在这里插入图片描述

每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为zone (区域)。

如果根据DNS服务器管理的区域地址数据的来源不同,DNS系统可以分为不同的类型。在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下:
①主域名服务器:维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。
②从域名服务器:与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询的结果都一样的。关键区别在于,从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。 构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
③缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。


三、DNS工作原理

DNS的工作模式:DNS查询以各种不同的方式进行解析,客户机可通过使用从以前查询获得的缓存信息就地应答查询,DNS服务器也可使用其自身的资源记录信息缓存来应答查询。但更多是使用下列两种方式:
①递归解析:DNS服务器收到一个域名解析请求时,如果所要检索的资源记录不在本地,DNS服务器将和自己的上一层服务器交互,获得最终的答案,并将其返回给客户。
②迭代解析:DNS服务器收到解析请求,首先在本地的数据库中查找是否有相应的资源记录,如果没有,则向客户提供另外一个DNS服务器的地址,客户负责把解析请求发送给新的DNS服务器地址。

DNS域名解析的过程图示:

在这里插入图片描述

在这里插入图片描述

工作原理示例:
1.当在浏览器中输入URL时,浏览器会先检查自己的缓存是否有域名IP的映射关
系,有则直接使用IP进行通信;
2.如浏览器没有缓存,则操作系统检查本地Hosts文件是否有域名IP的映射关系,
有则使用IP进行通信;
3.如果hosts没有这个域名的映射,则查找本地DNS解析器缓存是否有映射关系,有
则直接返回完成域名解析;
4.如果还未找到映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,也就是常称的本地DNS服务器,如果服务器已缓存了映射关系,则使用这个IP地址映射返回完成域名解析,此时解析不具有权威性;
5.如果本地DNS服务器缓存已经失效,进行递归查询。

在这里插入图片描述


四、DNS常用的记录及作用

DNS记录类型
域名和IP之间的对应关系,称为“记录”(record) 。根据记录使用的目的不同,又分为不同的类型,常见的DNS记录类型如下:
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录;
A:地址记录(Address) , 返回域名指向的IP地址。
NS:域名服务器记录(Name Server),返回保存 下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。
MX:邮件记录(Mail eXchange),返回接收电子邮件的服务器地址。
CNAME:规范名称记录(CanonicalName),返回另一个域名,即当前查询的域名是另一个域名的跳转。
PTR:逆向查询记录(Pointer Record), 只用于从IP地址查询域名。

资源记录定义的格式:

在这里插入图片描述
记录一条域名信息映射关系,称之为资源记录(RR) 。当我们查询域名www.sangfor.com的时候,查询结果得到的资源记录结构体中有如下数据:
①TTL,生存周期,是递归服务器会在缓存中保存该资源记录的时长,即客户端的到解析结果的缓存时长,可从全局继承。
②网络/协议类型,它的代表的标识是IN,IN就是internet,目 前DNS系统主要支持的协议是IN。
③type, 就是资源记录类型,一般的网站都是都是A记录(IPv4的主机地址) 。
④rdata是 资源记录数据,就是域名关联的信息数据。

1、SOA记录
name:当前区域的名字,例如"sangfor.com.";
value:有多部分组成
①当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
②录前区域管理员的邮箱地址;但地址中不能使用@符号,一 般用.替换,例如admin.sangfor.com;
③主从服务协调属性的定义以及否定的答案的统一的TTL
例如:sangfor.com. 86400 IN SOA ns.sangfor.com. nsadmin.sangfor.com. (2020032201;序列号2H;刷新时间10M;重试时间1W;过期时间1D;否定答案的TTL值)

2、NS记录
name:当前区域的名字
value:当前区域的某DNS服务器的名字,例如ns.sangfor.com.
注意:一个区域可以有多个NS记录。
例如:
sangfor.com. IN NS ns1.sangfor.com.
sangfor.com. IN NS ns2 .sangfor.com.
注意:①相邻的两个资源记录的name相同时,后续的可省略。②对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录。

3、MX记录
name:当前区域的名字
value:当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高。
例如:
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
注意:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录。

4、CNAME记录
name:别名的FQDN
value:正工名字的FQDN
例如:web.sangfor .com. IN CNAME www.sangfor .com

5、PTR记录
name:IP,有特定格式,把IP地址反过来写,1.2.3.4, 要写作4.3.2.1; 而有特定后缀: in-addr.arpa., 所以完整写法为: 4.3.2.1.in-addra.arpa.
value:FQDN
例如:4.3.2. 1.in-addr.arpa. IN PTR www.sangfor .com
简写成:4 IN PTR www.sangfor.com.
注意:网络地址及后缀可省略;主机地址依然需要反着写。

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

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

相关文章

【总结】C语言实用算法系列之知识点梳理_附学生管理系统各模块代码

1、内存四区特点 a)全局区变量空间缺省每个字节为00,栈空间缺省是cc,堆缺省是cd b)堆、全局区(静态区)、字符串常量区,与栈区空间的位置距离很大,栈区访问速度可能最快; 2、C语言与C++编译器的区别: a)所有的.c文件在VC或者VS编译器中按C编译器编译; b)所有的.cp…

基于51单片机的温度检测监测报警系统设计

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记 发生关键词:单片…

【1】C++语法与数据结构之C语言学生管理系统转C++学生管理系统

从本文开始,后续将陆续发布C++语法与数据结构的相关内容,同样还是以学生管理系统来融汇贯通所有知识点。 接上篇博客【终极完美高效】C语言实用算法系列之学生管理系统_单向链表外排序_堆内数组存储链表节点指针_函数指针数组C++中定义CStudent类 文件名:Student.h typede…

rest 验证demo_如何实现REST资源的输入验证

rest 验证demo如何实现REST资源的输入验证 我正在使用的SaaS平台具有一个RESTful接口,该接口可以接受XML有效负载。 实施REST资源 对于像我们这样的Java商店,使用JAX-B从XML Schema生成JavaBean类是有意义的。 在像Jersey的JAX-RS环境中,使…

校园点餐系统:点餐、食堂管理、商户管理和菜品管理(Java和MySQL)

微信公众号:创享日记 发送关键词:校园点餐系统 获取报告数据库设计说明项目源码源文件工程文件 1 实验环境 操作系统:Windows 10,主要开发工具:PowerDesign,MySQL,Eclipse 2 实验过程 2.1 系统…

病情预测:指示病情程度、预测病情指标(深度学习和Python)

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记 发送关键词:病情…

QueryDSL中包含通配符的字符串的精确匹配

在我们最近的一个项目中,我们的客户要求一个搜索字段,该字段可以搜索名字,姓氏和电子邮件地址,唯一的通配符是星号“ *”,表示部分匹配。 听起来很简单,但它使我们陷入了混乱。 在我们的项目中,…

邮件系统(基于SMTP协议和POP3协议-C语言实现)

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记 发送关键词:邮件…

arp、ethernet、icmp、udp、ip协议的C语言实现(计算机网络协议栈实验)

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记 发送关键词:协议…

jpa获取session_JPA 2 | 获取联接以及我们是否应该使用它们

jpa获取session介绍 最近,我一直在与JPA 2中的FETCH JOINS一起使用,以期从数据库中急切地获取数据,并且我学到了很多关于为什么在日常操作中应避免使用Fetch Joins的知识。 今天的博客文章谈论了我在Fetch上的经历和学习(主要基于…

CPU设计(单周期和流水线)

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记 发送关键词:cpu …

使用AWS Lambdas扩展技术堆栈

面对现实吧。 调试性能问题很困难,但更难解决。 假设您发现了令人反感的代码,这些代码正在拖慢您的应用的运行速度。 最终会有一段时间,您发现该代码减速是同步的或线性执行的。 解决这些有问题的代码段的最有效方法之一是将最重的工作负载委…

前馈-反馈控制系统设计(过程控制课程设计matlab/simulink)

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记 发送关键词:前馈…

感应电机直接转矩控制系统的设计与仿真(运动控制matlab/simulink)

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记 发送关键词:直接…

【2】C++语法与数据结构之MFC_CList学生管理系统_链表内排序_函数指针

MFC中CList类库的遍历 #include <iostream> #include "List.h" using namespace std; void main() {CList list;list.AddHead(33);list.AddHead(88);list.AddHead(99);POSITION pos list.GetHeadPosition();cout << "正向&#xff1a;" <…

neo4j cypher_neo4j / cypher:悬挂查询参数

neo4j cypher一直以来&#xff0c;我一直在使用neo4j的密码查询语言&#xff0c; 迈克尔一直在告诉我在查询中使用参数&#xff0c;但是查询的性能始终可以接受&#xff0c;因此我没有必要。 但是&#xff0c;最近我正在研究一个数据集&#xff0c;并使用类似于以下的代码创建了…

双容水箱液位模糊PID控制系统设计与仿真(Matlab/Simulink)

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 微信公众号&#xff1a;创享日记 发送&#xff1a;双容模糊 获…

基于单片机步进电机控制器设计(正转反转指示灯挡位)

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 微信公众号&#xff1a;创享日记 发送&#xff1a;单片机步进…

【3】C++语法与数据结构之MFC_CList学生管理系统_链表外排序_函数指针

注意&#xff1a;此时排序规则函数定义为全局函数 C中定义CStudent类 文件名&#xff1a;Student.h #pragma once #include <afxtempl.h> typedef struct SUser {int nNumb;char sName[20];float fMath; }DATA;typedef bool(*BY_FUNC)(DATA& q,DATA& m);class…

Java中Long到Int的精确转换

JDK 8附带所有令人眼前一亮的 东西 &#xff08; lambda表达式 &#xff0c; 流 &#xff0c; Optional &#xff0c;新的Date / Time API等&#xff09;来分散我的注意力 &#xff0c;我并没有过多注意添加方法Math.toIntExact&#xff08;&#xff09; 。 但是&#xff0c;这…