DNS协议(Domain Name System)

DNS协议(Domain Name System):

1. DNS(域名系统)

  作为可以将域名和IP地址相互映射的?个分布式数据库,能够使?更?便的访问互联?,?不?去记住能够被机器直接读取的IP数串。

2. 域名的层级结构

DNS协议(Domain Name System)

 

 

  • 根域:位于最顶层,一般用 “.” 表示
  • *域:一般代表一种类型的组织机构或国家地区,如 net、com、org、edu、gov、mil、cn、jp、hk
  • 二级域:用来标明*域内的一个特定的组织,国家*域下面的二级域名由国家网络部门统一管理,如 .cn *域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn
  • 子域:二级域下所创建的各级域统称为子域,各个组织或用户可以*申请注册自己的域名
  • 三级域或者主机名:主机位于域名空间最下层,就是一台具体的计算机,如 www、mail、都是具体的计算机名字

3. 域名服务器

DNS协议(Domain Name System)

 

  根域名服务器:最高层次的域名服务器,也是最重要的域名服务器,本地域名服务器如果解析不了域名就会向根域名服务器求助。全球共有13个不同IP地址的根域名服务器,它们的名称用一个英文字母命名,从a一直到m。这些服务器由各种组织控制,并由 ICANN(互联网名称和数字地址分配公司)授权,由于每分钟都要解析的名称数量多得令人难以置信,所以实际上每个根服务器都有镜像服务器,每个根服务器与它的镜像服务器共享同一个 IP 地址,*地区内只有6组根服务器镜像(F,I(3台),J,L)。
当你对某个根服务器发出请求时,请求会被路由到该根服务器离你最近的镜像服务器。所有的根域名服务器都知道所有的*域名服务器的域名和地址,如果向根服务器发出对 “jocent.me” 的请求,则根服务器是不能在它的记录文件中找到与 “jocent.me” 匹配的记录。但是它会找到“me”的*域名记录,并把负责 “me” 地址的*域名服务器的地址发回给请求者。
  *域名服务器:负责管理在该*域名服务器下注册的二级域名。当根域名服务器告诉查询者*域名服务器地址时,查询者紧接着就会到*域名服务器进行查询。比如还是查询"jocent.me",根域名服务器已经告诉了查询者“me”*域名服务器的地址,“me”*域名服务器会找到 “jocent.me”的域名服务器的记录,域名服务器检查其区域文件,并发现它有与 “jocent.me” 相关联的区域文件。在此文件的内部,有该主机的记录。此记录说明此主机所在的 IP 地址,并向请求者返回最终答案。

  权限域名服务器:负责一个区的域名解析工作

  本地域名服务器:当一个主机发出DNS查询请求的时候,这个查询请求首先就是发给本地域名服务器的。

4. 域名解析过程

域名解析总体可分为两大步骤:
  • 第一个步骤是本机向本地域名服务器发出一个DNS请求报文,报文里携带需要查询的域名;
  • 第二个步骤是本地域名服务器向本机回应一个DNS响应报文,里面包含域名对应的IP地址。
 
DNS协议(Domain Name System)

 

其具体的流程可描述如下:

  • 主机10.74.36.90先向本地域名服务器10.74.1.11进行递归查询
  • 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
  • 根域名服务器告诉本地域名服务器,下一次应该查询的*域名服务器 dns.me的IP地址
  • 本地域名服务器向*域名服务器 dns.me进行查询
  • *域名服务器me告诉本地域名服务器,下一步查询权限服务器dns.jocent.me 的IP地址
  • 本地域名服务器向权限服务器 dns.jocent.me进行查询
  • 权限服务器 dns.jocent.me告诉本地域名服务器所查询的主机的IP地址
  • 本地域名服务器最后把查询结果告诉 10.74.36.90

递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机

迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询

5.  DNS缓存

DNS 缓存的原理非常简单,在一个请求链中,当某个 DNS 服务器接收到一个 DNS 回答后,它能够将回答中的信息缓存在本地存储器中。返回的资源记录中的 TTL 代表了该条记录的缓存的时间。

6.  DNS实现负载平衡

DNS 可以用于在冗余的服务器上实现负载平衡。因为现在一般的大型网站使用多台服务器提供服务,因此一个域名可能会对应多个服务器地址。当用户发起网站域名的 DNS 请求的时候,DNS 服务器返回这个域名所对应的服务器IP 地址的集合,但在每个回答中,会循环这些 IP 地址的顺序,用户一般会选择排在前面的地址发送请求。以此将用户的请求均衡的分配到各个不同的服务器上,这样来实现负载均衡。

 

参考资料:

 

DNS协议(Domain Name System)

上一篇:Flink(2):Flink的Source源


下一篇:后置处理器