DNS,或者说域名系统,通常是学习如何配置网站和服务器的一个非常困难的部分。了解 DNS 的工作原理将有助于诊断网络访问的问题,也有助于理解 DNS 系统背后的工作原理。

这篇文章中,我们会讨论一些基本的 DNS 概念,这些概念将有助于你配置并使用 DNS。

在我们开始配置你自己的服务器域名解析之前,让我们先来看一些关于这些是如何实现的的基本概念。

我们应该先从术语定义开始。虽然有一些术语在谈论计算领域中其它内容时经常出现,但是有许多术语不常使用。

先从简单的开始:

域名系统(Domain Name System)

域名系统(通常被称为“DNS”)是一个网络系统,允许我们把对人类友好的名称解析为唯一的地址。

域名(Domain Name)

域名是我们习惯于与互联网资源关联的人性化名称。例如,”google.com” 是一个域名。有些人会说 “google” 部分是域名部分,但我们通常可以将组合形式称为域名。

网址 “google.com” 与 Google Inc. 拥有的服务器相关联。当我们在浏览器中键入 “google.com” 时,域名系统允许我们访问其相关联的 Google 服务器。

IP 地址(IP Address)

IP 地址是我们所说的网络可寻址位置。每个 IP 地址在其网络中必须是唯一的。我们这里谈论的网络就是指整个互联网。

IPv4,目前最常见的地址形式,由四组数字组成,每组最多有三位数字,每一组用一个点分隔。例如,111.222.111.222 是有效的 IPv4 IP 地址。使用 DNS,我们可以将名称映射到该地址,这样,你就不必记住一组复杂的数字,来访问你需要的网站。

顶级域名(Top Level Domain)

顶级域名,或者说 TLD,是域名的最基本部分。顶级域名是右侧的最远部分(由点分隔)。常见的顶级域名是 com、net、org、gov、edu 和 io。

顶级域名在域名术语层次结构的最上层。由 ICANN(互联网名称和号码分配公司)对顶级域名进行管理控制。然后,通过域名注册商来分发 TLD 下面的域名。

主机(Host)

域名所有者可以定义多个单独的主机,指向可以通过该域名访问的不同的计算机或者服务。例如,大多数域名所有者会让他们的 web 服务器可以通过裸域(example.com)以及 www 主机(www.example.com)访问。

你可以在一个域名下面定义其它主机。比如说,通过 api 主机(api.example.com) 允许 API 访问,通过 ftp 主机或者 files 主机(ftp.example.com 或者 files.example.com)允许 ftp 访问。主机名可以任意指定,只要它们在该域名下是唯一的。

子域名(Sub Domain Name)

一个和主机相关的主题就是子域名。

DNS 有层次结构,TLD 下面可以有多个域名。例如,com 下面有 google.com 和 ubuntu.com。”子域名” 是指作为较高层级域名的一部分。所以说,ubuntu.com 可以说是 com 的子域名,但是通常这被称为域名,或者 “ubuntu” 部分是 SLD(Second Level Domain),所以这是一个二级域名。

同样,每个域名可以控制它下面的子域名。这通常就是我们所指的子域名。例如,你可以把 “www.history.school.edu” 作为你学校的历史部门的域名。 “history” 部分是一个子域名。

主机名和子域名之间的区别是主机定义计算机或资源,而子域名扩展父域。它是一种把域名本身细分的方法。

无论谈论子域名还是主机,你都可以开始看到域名的最左边部分是最具体的。这也是 DNS 的工作原理:从左到右阅读时,从最具体到最不具体。

完全限定域名(Fully Qualified Domain Name)

完全限定的域名,通常称为 FQDN,也就是我们所说的绝对域名。DNS 系统中的域名可以是相对的,所以可能是模糊的。FQDN 是一个绝对名称,表示了它相对于域名系统中绝对根目录的位置。

这表明它表示的每个域名都包括 TLD 部分。正确的 FQDN 以点结束,表示 DNS 层次结构的根。“mail.google.com.” 就是一个标准的 FQDN 的例子。有时候,一些软件使用的 FQDN 不需要末尾的点,但是要符合 ICANN 标准的话一定要加上末尾的点。

名称服务器(Name Server)

名称服务器(NS)是一种将域名翻译成 IP 地址的计算机。这些服务器完成了 DNS 系统中的大部分工作。由于域名翻译的数量对于任何一台服务器来说都太多了,因此每台服务器可以将请求转发给其他名称服务器或把它们负责的子域名的子集委派给其他名称服务器。

名称服务器可以是 “权威的”,表示它们自己可以提供所负责的域名的查询结果。否则,它们可能会转发到其他服务器,或者提供其他名称服务器数据的缓存副本。

区域文件(Zone Files)

区域文件是一个简单的文本文件,包含域名和 IP 地址之间的映射。这是当用户请求某个域名时,DNS 系统最终找出 IP 关联记录的地方。

区域文件放置在名称服务器中,通常定义了特定域名下可用的资源,或者可以去获取该信息的位置。

记录(Record)

在区域文件中,保存着记录。其中最简单的记录形式是,是资源和名称之间的单独映射。它们可以将域名映射到 IP 地址,定义域名的名称服务器,定义域名的邮件服务器等。

总结

现在你已经了解了 DNS 所涉及到的一些术语,接下来你可以想了解 DNS如何工作

什么是DNS的更多相关文章

  1. 6.DNS公司PC访问外网的设置 + 主DNS服务器和辅助DNS服务器的配置

    网站部署之~Windows Server | 本地部署 http://www.cnblogs.com/dunitian/p/4822808.html#iis DNS服务器部署不清楚的可以看上一篇:ht ...

  2. Liunx下配置DNS服务

    当Ping 主机名时可以映射出该主机的IP地址,反之亦然.配置并指定DNS服务器可以快速部署集群,不需要每台主机都去修改HOSTS文件即可实现IP与主机名的相互解析.而在Linux下的DNS是用bin ...

  3. ★Kali信息收集~4.DNS系列

    ★.1host:DNS信息 参数: 一般情况下,host查找的是A,AAAA,和MX的记录 案例: DNS服务器查询  host -t ns 域名 A记录和MX记录查询  host 域名(host - ...

  4. Node.js:DNS模块的使用

    Nodejs的DNS模块包涵有关DNS查询和操作的方法,下面介绍该模块的基本用法以及实现一个DNS查询小工具. 1.获取DNS服务器地址 使用getServers方法,该方法返回一个IP地址组成的数组 ...

  5. Java DNS查询内部实现

    源码分析 在Java中,DNS相关的操作都是通过通过InetAddress提供的API实现的.比如查询域名对应的IP地址: String dottedQuadIpAddress = InetAddre ...

  6. DNS报文格式(RFC1035)

    一.域名和资源记录的定义 1.Name space definitions 2.资源记录定义(RR definitions)      2.1 格式          后面分析报文的时候详细解释.   ...

  7. DNS原理及其解析过程 精彩剖析

    本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...

  8. CentOS7 查看IP、Gateway、DNS、Hostname

    1.查看IP# ip addr 2.查看路由# ip route 3.查看DNS# cat /etc/resolv.conf 4.查看主机名# hostname

  9. linux查看本机IP、gateway、DNS

    IP:     ifconfig gateway:[root@localhost ~]# netstat -rnKernel IP routing tableDestination     Gatew ...

  10. Centos6.2设置静态ip和dns

    参考了如下文章:https://gist.github.com/fernandoaleman/2172388http://www.lifelinux.com/how-to-configure-stat ...

随机推荐

  1. Textual Entailment(自然语言推理-文本蕴含) - AllenNLP

    自然语言推理是NLP高级别的任务之一,不过自然语言推理包含的内容比较多,机器阅读,问答系统和对话等本质上都属于自然语言推理.最近在看AllenNLP包的时候,里面有个模块:文本蕴含任务(text en ...

  2. python3正则表达式详细用法示例

    转载自:https://www.runoob.com/python3/python3-reg-expressions.html

  3. sublime的Package Control的安装及使用

    一.快速安装 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码(注意下面代码为一行): import urllib.request,os; pf = ...

  4. JAVA实验报告及第八周总结

    JAVA第八周作业 实验报告六 实验一 编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常.在ca ...

  5. shell 字符

    Shell 中的符号: 在shell中有很多符号代表了一些意思,重点说说 键盘上的符号在shell中的意义. 通配符: ~ 匹配家目录 ?  匹配单个字符.( ?之匹配单一的一个字符.x11 这种的就 ...

  6. python中的with语句

    https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/index.html

  7. package[golang]学习笔记之context

    *关于context https://talks.golang.org/2014/gotham-context.slide#29

  8. MySQL之主键

    一.主键  primary key (唯一标识 .不能重复.不能为空) 1.主键-----是表中的字段,这个字段能唯一标识一条记录.例如 学生表(学号.姓名,年级)里的学号,不能重复.不能为空: 课程 ...

  9. 大数据学习(2)- export、source(附带多个服务器一起启动服务器)

    linux环境中, A=1这种命名方式,变量作用域为当前线程 export命令出的变量作用域是当前进程及其子进程. 可以通过source 脚本,将脚本里面的变量放在当前进程中 附带自己写的tomcat ...

  10. SQL SERVER 相关

    while循环 declare @sum int; declare @i int; ; ; ) begin ) begin set @sum=@sum+@i; end ; end select @su ...