DNS域名解析服务

1.概述

1.1.产生原因

        IP 地址:是互联网上计算机唯一的逻辑地址,通过IP 地址实现不同计算机之间的相互通信,每台联网计算机都需要通过I 地址来互相联系和分别,但由于P 地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的 P 地址,这样对于我们日常工作生活访问不同网站是很困难的。
        基于这种背景,人们在IP 地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP 地址更易被识别和记忆,逐渐代替P 地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名

        域名虽然更易被用户所接受和使用,但计算机只能识别纯数字构成的IP 地址,不能直接读取域名。因此要想达到访问效果,就需要将域名翻译成IP 地址。而 DNS 域名解析承担的就是这种翻译效果

1.2.作用:

        DNS(Domain Name System)是互联网上的一项服务,用于将域名和IP地址进行相互映射使人更方便的访问互联网

        正向解析:域名->IP

        反向解析:IP->域名

1.3.连接方式

DNS使用53端口监听网络

查看方法:

        DNS默认以UDP这个较快速的数据传输协议来查询,但没有查询到完整的信息时,就会再次以TCP协议重新查询则启动DNS时,会同时启动TCP以及UDP的port53

[root@server ~]# cat /etc/services  # 存放已经安装的服务的端口号

复习:以学习到的端口号

        htp:21/20

        ssh:22

        远程登陆协议:23

        DNS:53

        http:80

        https:443

        ntp:123

1.4因特网的域名结构

1.4.1.拓扑:

        由于因特网的用户数量较多,则因特网命名时采用层次树状结构的命名方法

        域名(domain name): 任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的.名称

        域 (domain): 是名字空间中一个可被管理的划分结构

        注意:域名只是逻辑概念,并不代表计算机所在的物理地点

1.4.2.分类

        国家顶级域名: 采用IS03166的规定,如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为CCTLD(country code top-evel domains,cc表示国家代码contry-code)通用顶级域名:最常见的通用顶级域名有7个
         com(公司企业)
         net(网络服务机构)
         org(非营利组织)
         int(国际组织)
         gov(美国的政府部门)
         mil(美国的军事部门)

        基础结构域名(infrastructure domain): 这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名

1.4.3.域名服务器类型划分

组织架构:

        根域名服务器: 最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。本地域名服务器要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。则根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。所以根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服纸器进行查询。

        (用于管理所有的域名解析服务  ,但不直接负责域名解析。存储所有的域名解析记录,但不直接进行域名解析)

        在与现有IPv4根服务器体系架构充分兼容基础上,由我国下一代互联网国家工程中心领衔发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台Pv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4台,由1台主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。

        顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名
        权限域名服务器:负责一个””的域名服务器(如下图的:openlab.com

        本地域名服务器: 本地域名服务器不属于域名服务器的层次结构,当主机发出DNS查询时,这个查询报文就发送给本地域名服务器
        为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,如:

                主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP 地址之间的对应关系(真正干活的)

                从服务器: 从主服务器中获得域名与P 地址的对应关系并进行维护,以防主服务器宕机等情况(打下手的)

                缓存服务器: 通过向其他域名解析服务器查询获得域名与IP 地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率,一般部署在企业内网的网关位置,用于加速用户的域名查询请求

2. DNS域名解析过程

2.1.分类:

        递归解析:DNS 服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS 服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户
        迭代解析(反复):DNS 服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS 服务器的地址,用户再向这台 DNS 服务器提交请求,依次反复,直到返回查询结果

2.2.解析图:

2.2.1.图:

2.2.2.过程分析

        第一步:在浏览器中输入www.google.com 域名,本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的IP 地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过 TTL 属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP 有变化,会导致被客户端缓存的域名无法解析到变化后的P 地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名

        第二步:如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的 DNS解析结果。其实操作系统也有一个[域名解析]的过程,在 Linux 中可以通过 /etc/hosts 文件来设置,而在windows 中可以通过配置 C:WindowslSystem32\driversletclhosts 文件来设置,用户可以将任何域名解析到任何能够访问的IP 地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地 DNS 解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP 地址上,导致这些域名被劫持

        第三步:前两步是在本地电脑上完成的,若无法解析时,就要用到我们网络配置中的“DNS 服务器地址”了。操作系统会把这个域名发送给这个本地 DNS 服务器。每个完整的内网通常都会配置本地 DNS 服务器,例如用户是在学校或工作单位接入互联网,那么用户的本地 DNS 服务器肯定在学校或工作单位里面。它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约 80% 的域名解析到这里就结束了,后续的 DNS 迭代和递归也是由本地 DNS服务器负责

        第四步:如果本地 DNS 服务器仍然没有命中,就直接到根 DNS 服务器请求解析

        第五步:根 DNS 服务器返回给本地 DNS 域名服务器一个顶级 DNS 服务器地址,它是国际顶级域名服务器,如.com、.cn、.org 等,全球只有 13 台左右

        第六步:本地 DNS服务器再向上一步获得的顶级DNS 服务器发送解析请求

        第七步: 接受请求的顶级 DNS 服务器查找并返回此域名对应的 Name Server 域名服务器的地址,这个 Name Server 服务器就是我要访问的网站域名提供商的服务器,其实该域名的解析任务就是由域名提供商的服务器来完成。比如我要访问 www.baidu.com,而这个域名是从A公司注册获得的,那么A公司上的服务器就会有 www.baidu.com 的相关信息

        第八步:返回该域名对应的IP 和 TTL 值,本地 DNS 服务器会缓存这个域名和IP 的对应关系缓存时间由 TTL 值控制
        第九步: Name Server 服务器收到查询请求后再其数据库中进行查询,找到映射关系后将其IP地址返回给本地DNS服务器

        第十步: 本地DNS服务器把解析的结果返回给本地电脑,本地电脑根据 TTL 值缓存在本地系统缓存中,域名解析过程结束在实际的 DNS 解析过程中,可能还不止这 10 步,如 Name Server 可能有很多级,或者有一个 GTM 来负载均衡控制,这都有可能会影响域名解析过程

注意:

            从客户端到本地DNS服务器是属于递归查询

            DNS服务器之间使用的交互查询就是迭代查

        114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。

        223.5.5.5和223.6.6.6是阿里提供的免费域名解析服务器地址

        8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用

3. 搭建DNS域名解析服务器

3.1.概述

        伯克利因特网域名解析服务是一种全球使用最BIND: Berkeley Internet Name Domain广泛的、最高效的、最安全的域名解析服务程序

3.2.安装软件

[root@server ~]# yum   install  bind -y

3.3.bind服务中三个关键文件

        /etc/named.conf:主配置文件,共59行,去除注释和空行之和有效行数仅30行左右,用于设置bind服务程序的运行 (负责全局性配置,服务是否启动,具体的监听端口号
        /etc/named.rfc1912.zones : 区域配置文件 (zone) ,用于保存域名和IP地址对应关系文件的所在位置,类似于图书目录,当需要修改域名与IP映射关系时需要在此文件中查找相关文件位置(存储具体解析记录文件的位置
        /var/named 目录: 数据配置文件目录,该目录存储保存域名和IP地址映射关系的数据文件

[root@server ~]# vim /var/named/named.localhost      # 域名解析具体记录的数据库文件

3.4主配置文件分析

主配置文件共4部分组成

        options{}

        logging{}

        zonef{}

        include
常用参数:

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

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

相关文章

python 实验7

姓名:轨迹 学号:6666 专业年级:2021级软件工程 班级: 66 实验的准备阶段 (指导教师填写) 课程名称 Python开发与应用 实验名称 文件异常应用 实验目的 (1)掌握基本文件读写的方式; …

【仿真动画】ABB IRB 8700 机器人搬运(ruckig在线轨迹生成)动画欣赏

场景 动画 一、IRB 8700简介 二、动画脚本重点分析 2.1 sim.moveToPose 通过在两个 poses 之间执行插值,使用 Ruckig 在线轨迹生成器生成对象运动数据。该函数可以通过处理 4 个运动变量(x、y、z 和两个姿势之间的角度)或单个运动变量&#…

linux 网络 cat /proc/net/dev 查看测试网络丢包情况

可以通过 cat /proc/net/dev 查看测试网络丢包情况,drop关键字,查看所有网卡的丢包情况 还可以看其他数据, /proc/net/下面有如下文件

计算机毕业设计选题推荐-体育赛事微信小程序/安卓APP-项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Linux C 进程间通信

进程间通信 概述进程间通信方式管道概述管道函数无名管道 pipe有名管道 makefifo删除有名管道 rmove 有名管道实现 双人无序聊天 例子 信号信号概述信号处理过程信号函数传送信号给指定的进程 kill注册信号 signal查询或设置信号处理方式 sigaction设置信号传送闹钟 alarm 有名…

web缓存-----squid代理服务

squid相关知识 1 squid的概念 Squid服务器缓存频繁要求网页、媒体文件和其它加速回答时间并减少带宽堵塞的内容。 Squid代理服务器(Squid proxy server)一般和原始文件一起安装在单独服务器而不是网络服务器上。Squid通过追踪网络中的对象运用起作用。…

【C语言 | 指针】指针和数关系——剪不断,理还乱

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

算法学习打卡day45|动态规划:股票问题总结

Leetcode股票问题总结篇 动态规划的股票问题一共六道题,买卖股票最佳时机和买卖股票手续费都是一个类型的问题,维护好买入和卖出两个状态即可,方法一摸一样。而冷冻期也差不多就是状态多了点,买入、保持卖出、当日卖出、以及冷冻期…

Android10 手势导航

种类 Android10 默认的系统导航有三种: 1.两个按钮的 2.三个按钮的 3.手势 它们分别对应三个包名 frameworks/base/packages/overlays/NavigationBarMode2ButtonOverlay frameworks/base/packages/overlays/NavigationBarMode3ButtonOverlay frameworks/base/packa…

基于安卓android微信小程序的快递取件及上门服务系统

项目介绍 本文从管理员、用户的功能要求出发,快递取件及上门服务中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、快递下单管理、预约管理、管理员管理、系统管理、订单管理,用户客户端;首页、快递下单、预约管理…

笔记51:循环神经网络入门

本地笔记地址:D:\work_file\DeepLearning_Learning\03_个人笔记\3.循环神经网络\循环神经网络 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a

VS2017新建.hpp文件

目录 1、新建h文件的方法:2、新建对用的cpp文件:3、在main.cpp中调用 1、新建h文件的方法: 2、新建对用的cpp文件: 3、在main.cpp中调用 参见大佬博客

【flink实战】动态表:关系查询处理流的思路:连续查询、状态维护;表转换为流需要编码编码

文章目录 一. 使用关系查询处理流的讨论二. 动态表 & 连续查询(Continuous Query)三. 在流上定义表1. 连续查询2. 查询限制2.1. 维护状态2.2. 计算更新 四. 表到流的转换1. Append-only 流2. Retract 流3. Upsert 流 本文主要讨论了: 讨论通过关系查询处理无界流…

天津专升本新版报名系统网上报名、填志愿、缴费、审核等操作步骤

天津高职升本网上报名、填报志愿新版专升本报名系统 ▏报名入口:www.zhaokao.net▏注意:一定要在截止时间内完成报名、填报志愿、缴费、审核、下载《报名信息表》等4步骤▏可报考院校及专业请参考招生院校发布的通知(招生简章、报考须知&…

YOLOv7独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度

💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv7独家原创改进:独家首发最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度。 💡对自己数据集改进有效…

EMNLP 2023 | 用于开放域多跳推理的大语言模型的自我提示思想链

©PaperWeekly 原创 作者 | 王金元 单位 | 上海交通大学 研究方向 | 大模型微调及应用 论文标题: Self-prompted Chain-of-Thought on Large Language Models for Open-domain Multi-hop Reasoning 模型&代码地址: https://github.com/noewangj…

Android 框架

MVC: MVP MVVM Model 数据以及业务数据 View 视图 Control 控制器 simple code MVP OnFinishInflate ViewGroup 加载完成 MVC 优化 Struts MVC- MVP MVC-单次调用逻辑把 MVP / 把C拆分出来 MVVM 2017Google推出ViewModel DataBind MVVM是一种框架规则,双向绑定 Model…

LeetCode(16)接雨水【数组/字符串】【困难】

目录 1.题目2.答案3.提交结果截图 链接: 42. 接雨水 1.题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&…

技巧篇:Mac 环境PyCharm 配置 python Anaconda

Mac 中 PyCharm 配置 python Anaconda环境 在 python 开发中我们最常用的IDE就是PyCharm,有关PyCharm的优点这里就不在赘述。在项目开发中我们经常用到许多第三方库,用的最多的命令就是pip install 第三方库名 进行安装。现在你可以使用一个工具来帮你解…

仿京东拼多多商品分类页-(RecyclerView悬浮头部实现、xml绘制ItemDecoration)

文章目录 前言效果图思路方式一:通过xml布局来实现方式二:通过ItemDecoration方式来实现 实现步骤1、数据项格式2、左侧列表适配器3、右侧列表适配器4、头部及悬浮头部绘制4.1头部偏移高度为要绘制xml布局的高度--getItemOffsets()4.2 绘制固定头部--onD…