DNS工作原理

2015/03/30 运维

概述

这几天一直在学习Linux。Linux作为服务器来讲,其网络功能是非常强大的。Internet的两大基础设施其中一项就是域名系统(DNS),还有一项是Internet的路由系统。DNS服务器负责解析主机到底是谁,而路由系统则是关心到底如何到达这一台主机。

DNS作为一项关键性的互联网服务,其地位是非常重要的。我们把这样服务配置起来并不困难,然而其背后的原理并不是那么容易理解。简单来说,DNS服务减轻了人的记忆负担。对于机器来说,它更善于处理比较规则的IP地址,但是对于人来讲IP地址则并不是那么容易记忆。于是我们就有了DNS服务。

到底什么是DNS

DNS(Domain Name System),也称为域名系统。是因特网使用的域名管理系统。用来减轻人的记忆负担。我们知道,机器更加善于处理规则的数字,而我们来说则更加善于记忆有意义的字符串,然而在Internet进行寻址的时候有必须把这些字符串转化为数字,也就是IP地址。

DNS是一种分布式的数据库系统。分布式意味着每个节点都保存着当前域内的所有信息,因此当我们发起查询请求的时候,就可以得到快速的响应。

DNS服务的基本结构

DNS作为一种基础性的网络应用,每天必须处理大量的请求。因此,今天的DNS被设计成一种分布式,层次型的服务。DNS分布式数据库是以域名为索引的,每个索引节点都是一颗倒置的树。每一个节点实际上也是一个域命名空间。

DNS的顶级域名主要有三大类:

组织域:com(公司企业),net(网络服务机构),org(非营利机构)…

国家域:cn(中国),us(美国),hk(香港)…

反向域:arpa,用于反向域名解析

DNS工作的基本原理

DSN最主要的功能就是提供域名解析,如果要提供域名解析,就必须具备查询的功能,因此下面就简单介绍一下DNS的查询机制。

首先,主机向本地域名服务器的查询一般是递归查询。所谓递归查询就是,本地主机向本地DNS服务器发起查询请求,如果本地DNS服务器不知道,那么本地DNS服务器会以客户机的身份向根节点发起查询请求。然后,本地域名服务器发起的查询请求一般是迭代进行的。本地域名服务器向根域名服务器发起查询请求时,根域名服务器要么返回要查询的IP地址,要么返回下一次需要查询的IP地址。如此迭代进行,直到获取最终的查询结果。

DNS提供的服务

DNS提供的服务主要是主机名到IP地址的转换,此外DNS服务器还提供额外的功能。

  • 主机别名——hody aliasing

一般来说,主机名名比较复杂的主机可以设置主机别名,从而可以方便记忆。例如:主机名可能是:hworks1.beijing.example.com可以有主机别名为:example.com或www.example.com。hworks1.beijing.example.com称为正规主机名,而后两个则被称为别名主机名。

  • 邮件服务器别名——mail server aliasing

邮件服务器别名类似于主机别名,主要也是为了方便记忆。

  • 负载分担——load distribution

这个功能一般用于比较繁忙的站点上。可以实现把一个域名解析到多个不同的IP地址上,可以实现网站的加速。

Search

    Table of Contents