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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 互联网应用 -- WEEK.6 -> 正文阅读

[系统运维]互联网应用 -- WEEK.6

复习

上周学习了关于TELNET协议的内容,这是一种利用终端进行远程登录主机的协议。而telnet是基于这种协议的具体应用,我们需要学会telnet发送数据包的方式,包括指令和数据,以及他这种协商的方式。

Brief introduction to DNS

DNS就是用来ip地址和域名互相转化

我们之前学过的 gethostbyname 和 gethostbyaddr 本质就是利用DNS服务器进行查询

这是一个应用层的服务

域名(也就是通过ascii string组成的)一般被主机上的应用所用,这种也易于人读

但是网络只认识二进制地址,也就是ip,所以要互相转化

tip一下,还有mac地址和ip地址转化,这个一般存储在本地路由的APB表中

对于DNS的历史

最初的域名和IP的对应关系保存在一个叫做hosts.txt的文件中,每当有一个新的计算机想接入网络,或者某个计算机IP变更都需要来修改这个文件,其他计算机也需要更新才能上网。

随着ip数量不断变多,这样显然是不可行的,所以诞生了DNS

而DNS的数据是存储在分布式的数据库中,全世界都可以访问,至于为什么是分布式的待会说

但其实hosts.txt依然存在,计算机也会优先查询这个文件再使用DNS,我们使用cat可以看到

Elements of the DNS

Domain namespace

其实也就是域名的层次性结构,这样就可以达到唯一性
1. 每一个域名(本文只讨论英文域名)都是一个标号序列(labels),用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成
2. 标号序列总长度不能超过255个字符,它由点号分割成一个个的标号(label)
3. 每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名。
4. 级别最低的域名写在左边,级别最高的域名写在右边。
域名服务主要是基于UDP实现的,服务器的端口号为53。

?eg :我们熟悉的,www.baidu.com
1. com: 一级域名. 表示这是一个企业域名。同级的还有 “net”(网络提供商), “org”(?非盈利组织) 等。
2. baidu: 二级域名,指公司名。
3. www: 只是一种习惯用法。

域名系统是一个树状的结构,他们被存储在分布式的数据库中,我们可以理解为一个地理上的区域对应他本地的域名,而本地又从属某个城市,某个国家,一层一层的分布存储。

顶级域名被简称为TLD(top level domain)

有几个顶级域名需要记一下,分为三种:国家,通用,和反向域名(arpa,用于ip获得域名,后面会提)

resource records

还记得上周的TLV吗,最后被填充在DHCP报文中的option字段

rr同样是一种编码形式,会在后面看到被填充到DNS报文中,我们先简单了解一下rr的格式及内容

反正我们需要知道一个域名对应多种资源:ipv4地址,ipv6,邮箱地址等等等等

具体看看例子

?

Name Service

我们刚刚提过,这个树状的结构,通过一个分布式的数据库来存储数据

域名服务器,就是运行这些数据库的服务器,也就是数据的仓库,域名是分层的,所以域名服务器也有好几种类型,参照下面的比喻理解一下,然后就可以理解DNS查询的过程

我们把DNS服务比喻成我去图书馆查一条信息(比如就是一个单词),同时要代入CS结构,我是client,图书馆就是server

Name resolvers:DNS解析器,解析器可以理解为特定图书馆的图书管理员,它会询问你的要求,然后传递给服务器。DNS本身也是一个服务器,它通过接受client使用的web浏览器发出的查询,发出其他请求,来实现client的dns查询。所以它相当于DNS的client

Root name server:根域名服务器可以理解为图书馆的索引或者导航,告诉你不同类型的书架在哪里,这是ip查询的第一步

TLD name server:顶级域名服务器,可以看作一个特殊的书架,这个书架上是一种类型的书,这是ip查询的下一步

Primary server / Authoritative server:权威服务器,可以看作这就是书架上你要找的那本书,里面就有你需要的信息。权威服务器是IP解析的最后一步,如果成功查询,就会返回给发出初始请求的Name resolver

Secondary server:维护权威服务器数据库的副本,可能就是为了数据安全吧

Caching server:如果一些ip经常查询,就会被缓存下来。但这种查询的结果不是权威的

简单梳理一下DNS查询过程:

1.首先搜索浏览器自身的DNS缓存,如果存在,则域名解析到此完成。
2.如果浏览器自身的缓存里面没有找到对应的条目,那么会尝试读取操作系统的hosts文件看是否存在对应的映射关系,如果存在,则域名解析到此完成。
3.如果本地hosts文件不存在映射关系,则查找本地DNS服务器(ISP服务器,或者自己手动设置的DNS服务器),如果存在,域名到此解析完成。
4.如果本地DNS服务器还没找到的话,它就会向根服务器发出请求,进行递归查询。

后面提了一句话:TLD服务器通常缓存在本地名称服务器中,所以根服务器很少用到

DNS Services

这里主要理解一下递归查询和迭代查询的区别

递归可以看到,local服务器会一直等到结果出来才给你回应

迭代则是踢皮球一样,告你接下来去找谁

?

当然,DNS也可以反向查询,也就是用资源来查域名,有两种方式:

Inverse query vs. Pointer query

区别就是 Inverse利用的是跟标准查询一样的域,可能需要搜索整个服务集

pointer用的是 IN-ADDR.ARPA domain

DNS Protocols

我们主要看一下DNS的报文结构,后面需要跟前面提到的RR关联一下,这里需要理解到,域名对应很多资源,且一次查询也可以同时查好几个(问好几个问题,所以这里面有answer count等等)

?

?

?

DNS tools

一个是 nslookup 正向查询

一个是 dig 反向查询(pointer)

最后给了一些例子

我们看一下这个,要查询的是BRL.MIL,但是如果发送给了C.ISI.EDU,得到的响应如下

首先他们是不对应的,所以没有answer

但是他给出了权威服务器的记录,可以看到有一个包含EDU的,也就是和我们问的问题相关的权威服务器

在addtition区域将权威服务器的信息给了出来?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:41:37  更:2022-04-27 11:44:38 
 
开发: 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 19:52:49-

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