IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 计算机网络-DNS -> 正文阅读

[系统运维]计算机网络-DNS

什么是DNS

域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。
为什么不直接用域名,而要用IP
IP长度是固定的,而域名的长度是不固定的,对于计算机来说处理IP会更加方便简单,而对于人来说,使用域名比使用IP更加方便简单。

简单的工作原理

  1. 在浏览器中输入www.baidu.com。
  2. 浏览器从上述URL中抽取出主机名www.baidu.com,并将这台主机名传给DNS应用的客户端,每个计算机都有DNS客户端,用来与DNS服务器通讯。
  3. DNS客户向DNS服务器发送一个包含主机名的请求。
  4. DNS客户最终会收到一份回答报文,其中含有对应于该主机名的P地址。
  5. 一旦浏览器接收到来自DNS的该IP地址,它就能够向位于该IP地址服务器进程发起一个TCP连接。

DNS负载分配

可以通过DNS实现负载分配,一个域名可以映射多个IP地址,这些服务器均运行在不同的端系统上,DNS数据库中存储着这些IP地址集合。当客户对映射到某地址集合的名字发出一个 DNS请求时,该服务器用IP地址的整个集合进行响应,但在每个回答中循环这些地址次序。

DNS工作机理

理论上来讲,一整个互联网只要有一台DNS服务器就足够了,但是现今的互联网太庞大了,这种单点的机制有着以下的问题:

  1. 单点故障:DNS服务器挂了,这个互联网都奔溃。
  2. 通讯困难:请求量过于庞大。
  3. 距离问题:单点服务器无论部署在哪,都不合适,总有地方离得过远。
  4. 维护代价高:所有的映射关系都保存在单点,不好维护。
    因此,DNS采用了分布式的设计方案,形成了一个分布式的数据库系统。

层次

在这里插入图片描述

  1. 根DNS服务器:在因特网上有13个根DNS服务器(标号为A到M),它们中的大部分位于北美洲。这13个根DNS服务器并不是只是13台单机,而是13个集群,是一个冗余服务器的网络。
    这些根服务器负责维护顶级域名如 com、org、net、edu和gov,以及所有国家的顶级域名如cn、fr、ca和jp,根服务器根据域名可以找到对应的顶级DNS服务器。
  2. 顶级DNS服务器:这些服务器负责顶级域名如 com、org、net、edu和gov,以及所有国家的顶级域名如uk、fr、ca和jp。通过这些顶级域服务器可以查到对应的权威DNS服务器。
  3. 权威DNS服务器:在因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机的名字映射为IP地址。一个组织机构的权威DNS服务器收藏了这些DNS记录。一个组织机构能够选择实现它自己的权威DNS服务器以保存这些记录;另一种方法是,该组织能够支付费用,让这些记录存储在某个服务提供商的一个权威DNS服务器中。多数大学和大公司实现和维护它们自己基本和辅助(备份)的权威DNS服务器。
    还有另一类重要的DNS,称为本地DNS服务器((local DNS server),一个本地DNS服务器严格说来并不属于该服务器的层次结构,但它对DNS层次结构是重要的。
    每个ISP(如一个大学、一个系、一个公司或一个居民区的ISP)都有一台本地DNS服务器。当主机与某个ISP连接时,该ISP提供一台主机的IP地址,该主机具有一台或多台其本地DNS服务器的IP地址。
    主机的本地DNS服务器通常“邻近”本主机,对某机构ISP而言,本地DNS服务器可能就与主机在同一个局域网中;对于某居民区ISP来说,本地DNS服务器通常与主机相隔不超过几台路由器。
    当主机发出DNS请求时,该请求被发往本地DNS服务器,它起着代理的作用,并将该请求转发到DNS服务器层次结构中。

详细的例子

在这里插入图片描述
假如我们在浏览器中输入www.baidu.com。

  1. 我们主机向本地DNS服务器发送DNS请求。
  2. 本地DNS服务器向根DNS服务器发送请求。
  3. 根DNS服务器返回com对应的顶级DNS服务器。
  4. 本地DNS服务器向顶级DNS服务器发送请求。
  5. 顶级DNS服务器根据二级域名baidu返回baidu.com对应的权威DNS服务器。
  6. 本地DNS服务器向权威DNS服务器发送请求。
  7. 权威DNS服务器返回IP地址给本地DNS服务器。
  8. 本地DNS服务器返回IP地址给我们的计算机。

DNS缓存

实际上,为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS 广泛使用了缓存技术。DNS缓存的原理非常简单,在一个请求链中,当某DNS服务器接收一个DNS回答时,它能将该回答中的信息缓存在本地存储器中,下次有同样的域名请求,就可以直接从缓存中得到结果。

迭代查询和递归查询

  1. 递归查询:我们计算机到本地DNS服务器的查询就是递归查询,计算机直接把请求委托给本地DNS服务器,有本地DNS服务器去请求其他的DNS服务器。
  2. 迭代查询:本地DNS服务器到根DNS服务器、顶级DNS服务器、权威DNS服务器的查询就是迭代查询,根DNS服务器获得结构之后并不会帮本地DNS服务器去请求顶级DNS服务器,而是把结果给本地DNS服务器,由本地DNS自己去请求顶级DNS服务器,同样的顶级DNS服务器的结果也是如此。
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 09:45:32  更:2021-08-28 09:45:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:35:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码