简介DNS

前言

本篇文章讲的是DNS协议及其工作原理,由于本人对其接触不多,因此写起来难免有纰漏和错误,敬请诸位看官留言指点。不过还是希望能够给不了解这方面知识的同学带来帮助。

 

域名系统 / 服务(Domain Name System,简称 DNS)协议

域名,又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
DNS协议是一种 分布式网络目录服务主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送。

 

DNS协议的作用

DNS 协议提供的是一种主机名到 IP 地址的转换服务,就是我们常说的域名系统。是应用层协议,通常该协议运行在UDP协议之上,使用的是53端口号。

  • 域名的正向解析A记录

  将主机域名转换为对应的IP地址,以便网络程序能够主动通过主机域名访问到对应的服务器主机。

  • 域名的反向解析PTR记录

  将主机的IP地址转换为对应的域名,以便网络程序能够通过IP地址查询到相应域名

 

DNS的结构
简介DNS

 

DNS的工作原理
简介DNS

名词解释:

  • 根域: 就是*域名之后省略的 ‘.’,就是根; 全世界只要一台主根服务器,其余都是辅根服务器
  • 一级域名<*域|国家域> : com/edu/gov/org/cc/io | cn uk us ru
  • 域名机构: 就是在网上售卖域名的机构

  • 递归查询C-S: 当 DNS 服务器收到请求时,就会检查 DNS 缓存,如果没有就会询问其他服务器,并将返回的查询结果返回客户端。(一次请求多层深入)

  • 迭代查询S-S: DNS 收到请求时,而不是直接返回查询结果,而是告诉客户端另一台 DNS 服务器地址。然后客户端再向这台的 DNS 服务器提交请求,依次循环。(多次请求一层深入)

备注:关于本机hosts文件

一般来说本地就有域名与IP的映射文件,在windows中,C:\Windows\System32\drivers\etc\hosts;在linux中, /etc/hosts文件中

此文件能够提供主机名或域名的解析,且速度较DNS更快,但是前提是知道主机名对应域名,并且需要手动维护。计算机优先寻找hosts文件。

 

DNS缓存

缓存也很好理解,在一个请求中,当某个DNS服务器收到一个DNS回答后,它能够回答中的信息缓存在本地存储器中。「返回的资源记录中的 TTL 代表了该条记录的缓存的时间。」

 

DNS实现负载均衡

这是因为一般的大型网站使用多台服务器提供服务,因此一个域名可能会对应 多个服务器地址。

在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的

DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态