Linux基础服务 ·

DNS简介

DNS(Domain Name System,域名系统),因特网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS 协议运行在 UDP 协议之上,使用端口号53。

DNS功能

每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是 DNS 协议所要完成的功能。

主机名到IP地址的映射有两种方式:

1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;

2)动态映射,建立一套域名解析系统(DNS),只在专门的 DNS 服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到 DNS 服务器查询主机所对应的IP地址。

通过主机名,最终得到该主机名对应的 IP 地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

DNS重要性

1、技术角度看

DNS 解析是互联网绝大多数应用的实际寻址方式; 域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网应用和协议。
2、资源角度看
域名是互联网上的身份标识,是不可重复的唯一标识资源; 互联网的全球化使得域名成为标识一国主权的国家战略资源。

DNS冗余

为保证服务的高可用性,DNS 要求使用多台名称服务器冗余支持每个区域。

某个区域的资源记录通过手动或自动方式更新到单个主名称服务器(称为主 DNS服务器)上,主 DNS 服务器可以是一个或几个区域的权威名称服务器。

其它冗余名称服务器(称为辅 DNS 服务器)用作同一区域中主服务器的备份服务器,以防主服务器无法访问或宕机。辅 DNS 服务器定期与主 DNS 服务器通讯,确保它的区域信息保持最新。如果不是最新信息,辅 DNS服务器就会从主服务器获取最新区域数据文件的副本。这种将区域文件复制到多台名称服务器的过程称为区域复制。

单文件解析: /etc/hosts

早期互联网时代,人们将 IP 地址与主机名的对应存于本地文件中,这个文件就是 hosts 文件了。

但是随着互联网的发展,互联网上的主机越来越多,更新的越来越快,而这种方式记录的数据无法在所有的主机中自动更新,且此方式加入的对应关系并不方便管理,若 IP 数量太多时,其文件会非常的大。

分布式、阶层式主机名管理架构:DNS 系统

为了解决 hosts 的缺陷,柏克莱大学发展出另外一套阶层式管理主机名称对应 IP 的系统 Berkeley Internet Name Domain, BIND,这也是目前全世界使用最广泛的领域名称系统(Domain Name System, DNS),通过DNS ,我们不需要知道主机的 IP ,只要知道该主机的名称,就能够轻易的连上该主机了!

DNS 利用类似树状目录的架构,将主机名称的管理分配在不同层级的 DNS 服务器当中,经由分层管理, 所以每一部 DNS 服务器存储的数据就不会很多,而且若有 IP 异动时也相当容易修改!因为你如果已经申请到主机名称解析的授权, 那么在你自己的 DNS 服务器中,就能够修改全世界都可以查询到的主机名称!而不用通过上层 ISP 的维护!

由于目前的 IPv4 已经接近用完,因此 128bits 的 IPv6 会逐渐热门起来。那么你需要背 128bits 的 IP 来上网,想必是不可能的!因此这个可以通过主机名称就解析到 IP 的 DNS 服务,可以想像的到,它会越来越重要。此外,目前全世界的 WWW 主机名称也都是通过 DNS 系统在处理IP的对应,所以,当 DNS 挂点时,我们将无法通过主机名称来连线,那就几乎相当于没有 Internet 了

完整主机名称: Fully Qualified Domain Name (FQDN)

主机名称与域名称(hostname and domain name)

我们的 DNS 架构是分布式,阶层式的,整理来看就是一个金字塔的样式,最顶层的 DNS 服务器我们称为根服务器(根逻辑域名服务器),而全球共有 13 台根服务器,这13台逻辑根域名服务器中名字分别为“A”至“M”,真实的根服务器在2014年1月25日的数据为386台,分布于全球各大洲。

在根域名服务器中没有每个域名的具体信息,不负责解析详细的域名信息,但储存了负责每个域(如.com, .cn, .ren, .top等)的解析的域名服务器的地址信息,当需要查询某个域的域名时,它会负责指定该去哪个服务器查询。世界上所有互联网访问者的浏览器都将域名转化为IP地址的请求(浏览器必须知道数字化的IP地址才能访问网站)理论上都要经过根服务器的指引后去该域名的权威域名服务器(authoritative domain name server) ,当然现实中提供接入服务的ISP的缓存域名服务器上可能已经有了这个对应关系(域名到IP地址)的缓存。

如上图所示,我们的根下很多域,如 .com、.cn等等很多,我们就称它们为顶级域,而我们申请了一个所属的顶级域下的一个名称,如我们申请一个 .cn 顶级域下的名称 getlinux ,那么它们合起来就成了我们的域名 linunx.cn ,而我们将其绑定于一个 IP 地址来访问,而这个 IP 地址对应的主机如 WWW ,这个 www 就是主机名了。

在其 DNS 系统中,.com、.cn 等等我们称为顶级域,而其下我们申请的域名如:getlinux.cn 称为二级域。

而在使用中通常将申请到的域名称为一级域名,其下又可以划分域名出来,如 www.getlinux.cn、email.getlinux.cn 称为 getlinux.cn 的二级域名。而 www.email.getlinux.cn 就是一个三级域名,其中 www.email 就是主机名了。

参与评论