前言

英译汉的时候会掩盖很多本质,导致很多问题稀里糊涂,问的人不知道怎么说,回答的人也是答非所问。

DNS是Domain Name System缩写,不是Domain Name Server,或者Domain Name Software。有的时候还有个名词叫 Name Server,汉语就不翻译了,越翻译越混乱。下面2篇文章介绍了这两者区别。

What is the difference, if any, between DNS server and name server?

The Difference Between DNS and Name Servers

Are Domain Name Server and Name Server the same thing?

在学习dig和nslookup的时候遇到了DNS record types(域名系统记录类型),再次记录一下,后续再更新

DNS系统中,常见的资源记录类型有

    • 主机记录(A记录):RFC 1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
    • 别名记录(CNAME记录): RFC 1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。
    • IPv6主机记录(AAAA记录): RFC 3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。
    • 服务位置记录(SRV记录): RFC 2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等。
    • NAPTR记录:RFC 3403定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。

鸟哥私房菜

域名系统 (Domain Name System, DNS)一种因特网的通讯协议名称,提供这种服务的软件有很多,比如(Berkeley Internet Name Domain, BIND)。

FQDN

 类比

hostname相当于 “张三“,全国叫张三的几千万,怎么区分?

domain main相当于加上户籍地址,将张三进一步细化。

FQDN = hostname + domain  name,相当于四川省.成都市.成华区.建设北路2段4号张三

现实情况

在互联网上很多主机hostname都叫www,但是他们的domain name都不一样,例如 www.google.com.tw, www.seednet.net, www.hinet.net 等等,他们的domain name分别是.google.com.tw, .seednet.net, .hinet.net 等等。

学数据结构的时候,二叉树事递归定义的。DNS与二叉树类似,上一层的FQDN相当于下一层的domain name。

注:图片引自http://linux.vbird.org/linux_server/0350dns.php,只为说明DNS分层递归定义情况。如有问题请告知,及时删除。

注:小数点.不一定区分hostname与domain name

TLDs(Top Level Domains)

注:图片引自http://linux.vbird.org/linux_server/0350dns.php,只为说明DNS分层递归定义情况。如有问题请告知,及时删除。

 root DNS server用.表示

顶层域名 = 通用顶层域名 + 国家码顶层域名

通用顶层域名:包括.com  .org  .gov  .edu  .net  .mil  .jobs  .info  .asia等等

国家码顶层域名:包括.uk  .jp等等

https://www.slashroot.in/what-dns-zone-file-complete-tutorial-zone-file-and-its-contents

https://www.slashroot.in/how-dns-works

DNS分层查询

DNS是分层的,每一层DNS server认为他下边的client (这些client其实也都是DNS server)都是hostname,他只需要维护 hostname<—>IP address的映射即可。域名解析的过程 和 快递流程是一样的,其解析过程是从大范围到小范围,对应域名上是自右向左。快递首先回查ccTLDs,属于中国。然后查看属于哪个省,一看四川。再看属于哪个市,继而哪个区,那个街道,那个小区,哪号楼,那个房间。。。

上图中的DNS server在Linux里面指的是/etc/resolv.conf 里面配置的DNS server。一旦解析域名成功,DNS server会缓存一份,以防止其他主机有类似请求。缓存是有时效的,超过指定时间缓存作废,在执行一边DNS解析过程(即经过 . 在向下一层查询的过程)。

客户机只要只想互联网上任何一个DNS服务器就能解析全球的域名。

DNS理解的更多相关文章

  1. [C#]网络编程系列专题二:HTTP协议详解

    转自:http://www.cnblogs.com/zhili/archive/2012/08/18/2634475.html 我们在用Asp.net技术开发Web应用程序后,当用户在浏览器输入一个网 ...

  2. 转:【专题二】HTTP协议详解

    我们在用Asp.net技术开发Web应用程序后,当用户在浏览器输入一个网址时就是再向服务器发送一个HTTP请求,此时就使用了应用层的HTTP协议,在上一个专题我们简单介绍了网络协议的知识,主要是为了后 ...

  3. 专题二:HTTP协议详解

    我们在用Asp.net技术开发Web应用程序后,当用户在浏览器输入一个网址时就是再向服务器发送一个HTTP请求,此时就使用了应用层的HTTP协议,在上一个专题我们简单介绍了网络协议的知识,主要是为了后 ...

  4. dig理解DNS的解析过程 - 阿权的书房

    关于DNS的常识,可以阅读附录的一些参考资料.本文旨在尝试举例用dig命令理解这个过程,并非权威知识,仅供参考.测试域名为阿权的书房的域名 www.aslibra.com 和 www.163.com. ...

  5. 理解DNS

    理解DNS 写在前面: 目前,我们大部分的网络通信都是基于TCP/IP协议的,而TCP/IP又基于IP地址作为唯一标识进行通信,随着需要记忆的IP地址数量的增多,肯定会超出我们的记忆能力范围,但如果使 ...

  6. 理解OpenShift(2):网络之 DNS(域名服务)

    理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...

  7. 简单理解DNS解析流程(一)

    0x0 简单理解dns DNS服务器里存着一张表 表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一 浏览器访问某个域名,实际上是访问它的ip地址 所以浏览器需要知道域名对应的ip地址 如 ...

  8. 深入理解 DNS

    深入理解 DNS 简介 DNS(Domain Name System)域名系统,它是一个将域名和 IP 地址相互映射的一个分布式数据库,把容易记忆的主机名转换成主机 IP 地址. DNS使用 TCP ...

  9. 不为人知的网络编程(九):理论联系实际,全方位深入理解DNS

    本文原作者:selfboot,博客地址:selfboot.cn,Github地址:github.com/selfboot,感谢原作者的技术分享. 1.引言 对于 DNS(Domain Name Sys ...

随机推荐

  1. 【Leetcode_easy】717. 1-bit and 2-bit Characters

    problem 717. 1-bit and 2-bit Characters 题意:solution1: class Solution { public: bool isOneBitCharacte ...

  2. iOS-DatePicket

    组件_DatePicket /** 1.初始化 2.设置选择控件的格式 3.设置日期选择控件的地区 4.监听日期选择控件数值变化 **/ UIDatePicker *datePicker = [[UI ...

  3. Flarum 安装问题 编译安装 fileinfo.so

    大部分人上传 会遇到文件没有权限这一问题 ,这个好解决 下边是服务器 php.ini 扩展 fileinfo 由于php 版本是7.1.8 最新的 又是用的一键环境安装 所以 没有安装这个扩展 1.去 ...

  4. NET Web API和Web API Client Gen使Angular 2应用程序

    使用ASP.NET Web API和Web API Client Gen使Angular 2应用程序的开发更加高效 本文介绍“ 为ASP.NET Web API生成TypeScript客户端API ” ...

  5. 用ExtentReports美化你的测试报告

    前言 在实际的自动化测试工作中经常会用到一些报告生成工具大概分为两类,一类是测试框架自带的报告生成工具如:JUnit+Ant.TestNG:另一类就是专用报告工具如ReportNG等.这些报告要么在U ...

  6. [转帖]支撑双11每秒17.5万单事务 阿里巴巴对JVM都做了些什么?

    支撑双11每秒17.5万单事务 阿里巴巴对JVM都做了些什么? https://mp.weixin.qq.com/s?__biz=MzA3OTg5NjcyMg==&mid=2661671930 ...

  7. CentOS7.0 yum安装 docker

    一.安装docker 1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . root 用户登录操作! 通过  ...

  8. 1186: 零起点学算法93——改革春风吹满地(C)

    一.题目 http://acm.wust.edu.cn/problem.php?id=1186&soj=0 二.分析 多组输入,'0'结束: 顶点的个数在3至100之间: 一定顺序输入坐标: ...

  9. MongoDB journal 与 oplog,究竟谁先写入?--转载

    MongoDB journal 与 oplog,谁先写入?最近经常被人问到,本文主要科普一下 MongoDB 里 oplog 以及 journal 这两个概念. journal journal 是 M ...

  10. SAS学习笔记32 select语句