DNS入门
引言
常见的计网协议通过IP地址来识别分布式应用的主机,然而IPV4(特别是IPV6)的地址太繁琐难以使用和记忆,因此提出了使用主机名称来识别,实质是:主机名称通过称为名称解析的过程转换为IP地址。其中最常见的名称解析是采用一个分布式数据库系统——域名系统DNS,为了实现可拓展性,DNS名称是分层的。
DNS的命名语法
一个域名包含一系列的由点分开的标签,名称代表名称层级中的一个位置,句点是层次结构分隔符,并且按照名称中自右至左的顺序沿树下降。例如域名:lib.csu.edu.cn,而它的完全限定域名为lib.csu.edu.cn.root,我们在搜索域名的时候经常省略.root.DNS名称空间的层次结构允许不同的管理机构管理名称空间的不同部分。
分级查询
1.从"根域名服务器"查到"顶级域名服务器"的NS记录和A记录(IP地址)
2.从"顶级域名服务器"查到"次级域名服务器"的NS记录和A记录(IP地址)
3.从"次级域名服务器"查出"主机名"的IP地址
仔细看上面的过程,你可能发现了,没有提到DNS服务器怎么知道"根域名服务器"的IP地址。回答是"根域名服务器"的NS记录和IP地址一般是不会变化的,所以内置在DNS服务器里面。
域名分级
上述的lib.csu.edu.cn.root,其中.root称为根域名,.cn成为顶级域名(TLD),.edu是.cn的子域名,.csu是edu的子域名,lib是.csu的子域名
记录类型
A :IPv4地址记录
NS :NS记录指向该级域名的域名服务器。这些服务器知道下一级域名的各种记录,常用于CDN和负载均衡
CNAME:将一个名称映射到另一个名称
PTR : 逆向查询记录,只用于从IP地址查询域名
AAAA :IPv6地址记录
解析过程如下

首先获取了根域名内置的域名服务器域名和IP列表,然后依次向这些域名服务器查询.com域名的记录

从上述结果可知:.cn域名NS记录在根域名的f.root-servers.net域名服务器中查询完成,在上述结果中似乎没有NS记录的IP地址,那么怎么完成.edu域名的记录查询呢?实际上NS记录的域名信息对应的IP地址在根域名的DNS响应中的额外信息段提供。

从.cn域名的b.dns.cn域名服务器中查询出.edu的NS记录

从.edu的ns2.cernet.net域名服务器中找到.csu的NS记录,最后从,csu的CSU-7.CSU.EDU.CN域名服务器得到最终的IP地址
DNS入门的更多相关文章
- DNS入门(转)
转自:阮一峰的网络日志 作者: 阮一峰 DNS 是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作.我的目标是,读 ...
- 豆知识( DNS; HTTP入门;网络协议)
DNS入门知识 DNS服务器 通过DNS服务器,才能知道某个域名的IP地址到底是什么. Linux系统里面,DNS服务器的IP地址保存在/etc/resolv.conf文件 使用工具软件dig可以查询 ...
- DNS 协议
DNS 入门 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS 使用 T ...
- DNS 基础
DNS Domain Name System:域名系统,主要用来将域名解析为IP.DNS以及相关系统存在,主要有两个原因: 可以让人容易记住名字,而不是记住IP: 它允许服务器改变IP,但是采用同样的 ...
- golang实现dns域名解析(一)
本文将详细讲解如何用go语言一步一步实现dns域名解析的过程,并简单介绍点dns有关的知识,直接开始正题吧. 首先我们要了解dns解析的过程,没有了解的请看这里DNS入门(转)很详细.扫盲结束后,我们 ...
- Pyhton开源框架(加强版)
info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- k8s入门系列之扩展组件(一)DNS安装篇
DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...
- 最全面的 DNS 原理入门
DNS 是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作.我的目标是,读完此文后,你就能完全理解DNS. 一.D ...
随机推荐
- CSS中水平居中的方法
居中是我们在css中经常遇到的问题,一般有水平居中.垂直居中.垂直水平居中这3种情况,那么今天首先就来对学习到的水平居中的方法做个总结笔记. css水平居中 text-align:center 它的效 ...
- cloudera-manager所有服务提示时钟偏差问题解决办法
今天新部署Cloudera Manager Hadoop(CDH)集群 发现祖国江山一片红,所有服务都报时钟偏差 1.查看各服务器,时钟是否正确 发现并无问题 2.查看CDH主机配置----主机时钟偏 ...
- python的运维交流学习笔记
#!/usr/bin/env | #!/usr/bin/python#coding:gbk #python 运维练习 #需求: #1.利用python实现自动监控服务器性能 #2.并将监控到的数据进行 ...
- 【JavaScript_DOM 淘宝购物车】
让我们一起看一下淘宝的购物车是怎么做的吧,刚刚入门的我可能很多地方的用法都不够优化,不过个人感觉先把逻辑清晰之后再做的话其实也并不难哦, 以下是我做的页面代码: HTML代码: <!DOCTYP ...
- deeplearning.ai 神经网络和深度学习 week4 深层神经网络 听课笔记
1. 计算深度神经网络的时候,尽量向量化数据,不要用for循环.唯一用for循环的地方是依次在每一层做计算. 2. 最常用的检查代码是否有错的方法是检查算法中矩阵的维度. 正向传播: 对于单个样本,第 ...
- 【干货分享】dos命令大全
一般来说dos命令都是在dos程序中进行的,如果电脑中安装有dos程序可以从开机选项中选择进入,在windows 系统中我们还可以从开始运行中输入cmd命令进入操作系统中的dos命令,如下图: 严格的 ...
- isupper()函数
isupper()函数可以用来判断字符c是否为大写英文字母! 原型:extern int isupper(int c); 头文件:ctype.h 功能:判断字符c是否为大写英文字母 说明:当参数c为大 ...
- Java 大数类BigInteger和BigDecimal的基本函数
在Java中有两个类BigInteger和BigDecimal分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数).主要用于高精度计算中.这两个类使得java中的大数,高精度运 ...
- c语言基础学习09_复合类型
=============================================================================涉及到的知识点有:一.结构体1.定义结构体st ...
- c++(链表逆转)
链表逆转是面试环境中经常遇到的一道题目,也是我们在实际开发中可能会遇到的开发需求.和线性逆转不一样,单向链表的节点需要一个一个进行处理.为了显示两者之间的区别,我们分别对线性内存和链表进行逆转: (1 ...