DNS解析

Posted 闻人此生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS解析相关的知识,希望对你有一定的参考价值。

DNS—域名系统

前言:人们喜欢用便于记忆的主机名来标识主机,而路由器则喜欢定长的、有着层次结构的IP地址。为了折衷这些不同的偏好,我们需要一种能进行主机名到IP地址转换的目录服务。这就是域名系统DNS的主要任务。
DNS的定义

  • DNS是一个由分层的DNS服务器实现的分布式数据库
  • 一个使得主机能够查询分布式数据库的应用层协议(DNS协议运行在UDP之上)

DNS提供的服务

  • 主机别名: 有着复杂主机名的主机可能一个或者多个别名。在有别名的情况下,有一个规范主机名,主机别名一般比规范主机名更加容易记忆。应用程序可以调用DNS来获得主机别名对应的规范主机名以及主机的IP地址
  • 邮件服务器别名: 类似于主机别名
  • 负载分配: 繁忙的站点被冗余地分布在多台服务器上,每台服务器均运行在不同的端系统上,每个都有着不同的IP地址。在这种情况下,一个规范主机名对应着一个IP地址集合,DNS数据库中存储着这些IP地址。当客户对映射到某地址集合的名字发出一个DNS请求时,该服务器用IP地址的整个集合来响应,但在每个回答中循环这些地址次序。这样,DNS就在这些冗余的服务器之间循环地分配了负载。

DNS的工作机理

应用程序调用DNS客户端—>用户主机上的DNS客户端向网络中发送一个DNS查询报文—>用户主机上的DNS客户端接收到一个DNS回答报文—>这个映射结果被传递到调用DNS客户端的应用程序

  • 这是一个函数调用及返回的过程!!!
  • 所有的DNS请求和回答报文使用UDP数据报经53号端口发送
  • 这个调用过程产生了额外的网络时延

DNS服务器的设计
此时DNS服务器对我们来说还是一个黑盒,我们只能知道它可以通过网络向DNS客户端返回一个主机名到IP地址的映射结果,接下来我们讨论一下DNS服务器的设计理念及工作方式。

首先我们给出一个结论,DNS服务器是以树状结构组织的一个服务器群(分布式数据库)

除了以上三种层次的DNS服务器,还有一种不包含在该层次结构中的称为本地DNS服务器的DNS服务器,它起着代理的作用
查询本地DNS服务器地址

举例:
主机 cis.poly.edu 想知道主机 gaia.cs.umass.edu的IP地址
假设本地DNS服务器的IP为dns.poly.edu
假设gaia.cs.umass.edu的权威服务器名为dns.umass.edu
以上就是主机cis.poly.edu获取主机gaia.cs.umass.eduIP地址的全过程。其中过程1是递归查询,因为dns.poly.edu以自己的名义获得映射结果,最终返回到应用程序,而过程2,4,6均是迭代查询。就拿过程2来说,根服务器收到请求后,将向本地DNS服务器返回负责edu的TLD服务器的IP地址列表,该本地 DNS务器则再次向这些 TLD 服务器之一发送查询报文,4、6与二过程类似。

  • 本例中共发送了8份DNS报文,为了减少由发送DNS报文产生的网络时延,我们引入了DNS缓存技术(在一个请求链中,当某DNS服务器接收到一个回答时,它能将该回答中的信息缓存在本地存储器中。由于主机名和IP地址的映射不是永久的,因此DNS在一段时间后丢弃缓存信息)

假设DNS服务器不是树状结构组织的服务器群,而就是一台UNIX机器,会出现以下问题

  • 单点故障:如果该服务器崩溃,那么整个网络都会瘫痪
  • 通信容量:单个的DNS服务器必须承担世界上所有的DNS查询
  • 远距离的集中式数据库:该服务器只能位于地球上的一个位置,有离的进的查询,自然就有离得远的查询,离得远的查询可能还会经历低速和拥塞的链路,这将带来很大的时延
  • 维护:记录数目庞大,难以维护

DNS记录

DNS资源记录(RR)
(Name,Value,Type,TTL)TTL是该资源记录的生存时间

  • Type=A,Name–主机名,Value–IP地址
    (relay1.bar.foo.com,145.37.93.126,A)
  • Type=CNAME,Name–主机别名,Value–规范主机名
    (foo.com,relay1.bar.foo.com,CNAME)
  • Type=MX,Name–邮件服务器别名,Value–邮件服务器的规范主机名
    (foo.com,mail.bar.foo.com,MX)
  • Type=NS,Name–域(foo.com),Value–知道如何获得该域中主机地址的权威 DNS 服务器的主机名
    (foo.com,dns.foo.com,NS)

    注册域名其实就是向DNS服务器群(分布式数据库)插入DNS记录!!!

DNS报文

查询DNS记录的工具-----nslookup程序

以上是关于DNS解析的主要内容,如果未能解决你的问题,请参考以下文章

域名如何设置DNS解析

怎么知道是dns解析慢?

DNS分离解析和智能解析 1构建DNS域名服务器的分离解析 DNS分离解析域名服务器概述 DNS分离解析域名服务器实际也是主域名DNS服务器,这里所说的分离解

DNS解析原理

CentOS7 搭建 DNS 域名解析服务器

如何判断DNS解析故障?如何解决DNS解析错误?