DNS(Domain Name System,域名系统),是一种用于将域名解析为IP的服务器系统,当你上网时输入一个网址,它之所以能够找到该网址指向的服务器地址,都是靠域名系统来进行解析的。

先来讲讲域名。以华工官网为例 www.scut.edu.cn,一个域名,其实是从最右端开始逐层向下的,也就是说.cn是最高级的域名,往下才是.edu,然后到.scut,最后www是华工网站服务器的主机名,通过这样一层一层就能找到你需要访问的服务器地址。

当我们输入一个网址时,DNS帮我们找到这个网址对应的服务器的过程是怎样的呢?

1、首先要知道,我们每一部连上Internet的电脑都需要配置当前网络的DNS服务器地址,例如你开通校园网时,学校会给你分配IP,以及告诉你几个DNS(默认、备用)的地址让你填好,这个就是直接为你服务的DNS。但是,单靠这个DNS是无法直接解析域名的,在它之上还有更高级的DNS,这些DNS协同运作最终为你找到你需要的域名所在的服务器,下面来讲讲具体过程。

2、你输入一个网址www.scnu.edu.cn(华南师范大学官网),这时直接为你服务的华工DNS首先会将请求报告给DNS系统的最高等级服务器“. ”,没错,就是一个小数点,这个最高等级DNS服务器称为root。

华工DNS: 欸~我想找www.scnu.edu.cn这个网站啊,怎么去啊? root
DNS:你去找cn.的DNS吧,它的IP是XXX.XXX.XXX.XXX,他负责管这部分的域名。

3、得到这个响应之后,华工DNS会将请求报告给.cn的DNS。

华工DNS: 欸~我想找www.scnu.edu.cn这个网站啊,root让我来找你,你知不知道怎么去啊? .cn
DNS:你去找edu.cn.的DNS吧,它的IP是XXX.XXX.XXX.XXX,他负责管这部分的域名。

4、然后,华工DNS会再次给.edu.cn的DNS提交请求。

华工DNS: 欸~我想找www.scnu.edu.cn这个网站啊,.cn让我来找你,你知不知道怎么去啊? .cn
DNS:哦~我知道,这是华师的域名,你去找他们家的DNS
scnu.edu.cn.吧,它的IP是XXX.XXX.XXX.XXX,你去他家问就知道了。

5、最后,华工DNS向华师的DNS 提供请求,终于能够找到这个网址对应的IP了。

华工DNS: 欸~我想找www.scnu.edu.cn这个网站啊,听说是你家的吧,你知不知道怎么去啊? .cn
DNS:哦~这是我们家www服务器的域名啊,我知道,IP就是XXX.XXX.XXX.XXX,你去吧。

整个域名解析过程就是如此,可能你会觉得,这样不是很繁琐吗,为什么不直接找到华师的DNS呢?
这是不可能的,因为单一的DNS不可能记住所有域名对应的IP,这样会使整个服务器变得很臃肿,也就变得不可靠。采用这种分层的方法,就可以实现分层管理,从而达到效率提高的目的。

这个过程其实我们是可以很直观的看到的,就是通过dig命令。

dig +trace www.scnu.edu.com

从dig +trace我们可以很清晰的看到一个域名解析的过程:

第一部分的左边的“.”就是之前提到的root DNS服务器,后面的received。。。。192.168.40.2就是直接为本机服务的DNS(由于我是在虚拟机上运行的所以这是一个本地IP),说明这些root服务器的信息是由直接为本机服务的DNS提供的。

第二部分是由192.112.36.4(即root DNS的IP地址)回馈的消息,cn.就是cn.服务器,后面的e.dns.cn就是这些cn DNS的域名,也就是root告诉我们要到cn去找。

到了最后一部分,由202.116.32.8(华师DNS的IP地址)告诉我们,这个www.scnu.edu.cn网站的IP地址是121.8.171.13,到此一次域名解析就结束了。

其实dig命令更简单的用法是

dig www.baidu.cn

开头是一些统计信息,可以不用管,我们看一看后面的SECTION

QUESTION SECTION 这部分是提问,显示你要查询的域名
ANSWER SECTION 即答案,显示查询到的域名对应的IP
AUTHORITY SECTION 这部分显示的是直接提供这个域名解析的DNS服务器,不包括更高级DNS服务器
ADDITIONAL SECTION 这部分显示的是这些直接提供解析的服务器的IP地址
最后面的是一些统计信息,其中SERVER指的是直接为你服务的本地DNS服务器的IP。

除了这些内容之外,还有:
1、中间的5指的是ttl(time to live ,暂存时间),表示这次请求会在服务器上保存多久时间(单位:秒)。
2、IN是固定关键词
3、CNAME是别名,意思是这个域名还有另外一个名字,两者指向同一个IP。 A指的是Address,即IP地址。 NS指的是服务器主机名,在AUTHORITY SECTION里面的服务器主机名,都会在ADDITIONAL SECTION里给出该主机的IP地址。

在上面的dig命令我们可以看到,在解析一个域名的时候,往往会发现有多个DNS服务器提供解析服务,这是因为DNS服务器要求一般至少有两个,以防发生服务器宕机无法提供域名解析的情况。那么多个服务器,谁来响应这个DNS请求呢?这就要看服务器管理者怎么设置各个服务器的主从关系(Master-Slave)了,通过dig命令也可以查看DNS服务器的主从关系。

dig -t soa www.baidu.com

SOA是start of authority的简称,提供了DNS主服务器的相关信息,在soa之后我们可以看到7个参数,依次是:
1、DNS主服务器名
2、管理员的E-mail,这里是baidu.dns.master@baidu.com,由于@在数据库文件里有特殊作用,所以这里是用.代替的。
3、更新序号。表示数据库文件的新旧,一般是用时间来表示,这里1703230011表示的是2017年3月23日进行了一次更新,当天更新编号0011.
4、更新频率。 表示每5秒,slave服务器就要向master服务器索取更新信息。
5、失败重试时间,当某些原因导致Slave服务器无法向master服务器索取信息时,会隔5秒就重试一次。
6、失效时间。如果一直重试失败,当重试时间累积达到86400秒时,不再向主服务器索取信息。
7、缓存时间。默认的TTL缓存时间。

从dig命令理解DNS相关推荐

  1. DNS基础之通过dig命令理解DNS域名解析中的A记录,AAAA记录,CNAME记录,MX记录,NS记录

    前言 文中内容参考DNS 原理入门-阮一峰以及https://blog.csdn.net/a583929112/article/details/66499771内容. DNS简介 DNS(Domain ...

  2. 命令理解DNS解析原理

    通过执行下面的命令可以清晰地理解DNS解析原理 dig @8.8.8.8 www.baidu.com +trace 执行结果 ~ $ dig @8.8.8.8 www.baidu.com +trace ...

  3. dig命令-dns查询

    我相信使用nslookup的同学一定比使用dig的同学多,所以还是有必要花些时间给大家介绍一下dig的. dig,和nslookup作用有些类似,都是DNS查询工具. dig,其实是一个缩写,即Dom ...

  4. linux命令如何查看dns,详解Linux系统使用dig/nslookup命令查看dns解析的方法

    今天主要介绍一下怎么去使用dig/nslookup命令查看dns解析.下面,我们一起来看. 一.dig命令 Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具 ...

  5. 使用dig/nslookup命令查看dns解析详情

    dig - DNS lookup utility 当域名出现访问故障时,可以通过检查域名解析来判断是否是由错误的解析导致的问题. 1.域名解析无结果(不存在或被HOLD(未实名认证等)) 2.域名解析 ...

  6. Linux查看DNS地址以及端口,nslookup命令以及更强大的dig命令

    先说结论:DNS端口一般默认为53,默认采用UDP协议: 下面说查看方式: 一.使用nslookup命令查看 nslookup baidu.com 返回结果为: 可以看到,我的服务器DNS地址是100 ...

  7. 购买域名之后如何设置DNS,DNS解析原理与dig命令使用

    关于域名注册之后,DNS设置解析设置的一些问题 域名解析 域名注册完成后首先需要做域名解析,域名解析就是把域名指向网站所在服务器的IP,让人们通过注册的域名可以访问到网站.IP地址是网络上标识服务器的 ...

  8. dig挖出DNS的秘密

    本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc. === [初次见面] 我相信使用nslookup的同学一定比使用dig的同学多 ...

  9. Linux dig 命令详解(重要)

    转载:http://www.ahlinux.com/start/cmd/7749.html 之所以会关注到这个命令,是因为最近在研究MySQL的主从复制相关的技术,希望能实现当Slave落后Maste ...

  10. 全面理解DNS及HTTPDNS

    说明 移动场景下DNS解析开销是整个网络请求中不可忽略的一部分.在弱网环境下,基于UDP的LocalDNS解析非常容易出现解析超时的问题,并且即使解析成功会消耗数百毫秒乃至更甚,对我们整个业务请求而言 ...

最新文章

  1. 双非山东科技胜过吉大,湖南大学超哈工大,US News2022世界大学排行榜引热议...
  2. 你的接口能承受高并发吗?
  3. JavaScript基础09-day11【原型对象、toString()、垃圾回收、数组、数组字面量、数组方法】
  4. Bootstrap下拉菜单dropdown组件的使用
  5. 带有审计表的实体框架核心(EF Core)
  6. Ember.js 1.0 RC6 发布,JavaScript 框架
  7. 达拉草201771010105《面向对象程序设计(java)》第十七周学习总结
  8. 从数据库中导出数据库文档(新增了索引及表的描述信息)
  9. Java开发笔记(一百三十八)JavaFX的箱子
  10. 《JSP实用教程(第2版)/耿祥义》错误之非必要导入包
  11. mysql 创建函数报错_MySQL 创建函数时报错'ERROR 1336 (0A000): Dynamic SQL'
  12. 推荐系统之itemCF
  13. c++异常机制(转载)
  14. django之admin调整页面展示
  15. android开发发送短信,Android开发入门之发送短信
  16. .net 4.0 安装到IIS
  17. (自用)java博客作业3 Java抽象类
  18. latex(2)排版论文《自动化学报》
  19. JB开发之问题汇总 [jailbreak,越狱技术]
  20. 用友从“新”出发:“新”在哪里?

热门文章

  1. multisim模拟电路加法器_利用multisim仿真设计反相加法电路
  2. 开始学习使用ace admin
  3. java saas 开源框架_(转载)适合SaaS的几种架构比较
  4. 使用 Iperf 测试软路由性能
  5. 路由器的软件测试,路由器测试方法 - 软件测试网 _领测软件测试网站-中国软件测试技术第一门户...
  6. [概率统计]商务与经济统计知识点总结 Part 1
  7. 莫烦 Matplotlib
  8. 【Python学习实践教程】10个Python经典项目实战,练手必备
  9. 带你阅读linux内核源码:下载源码、编译内核并运行一个最小系统
  10. 现代控制理论(二)李雅普诺夫稳定性分析