认识DNS

开篇

  在互联网诞生之初,那个时候并没有DNS。在那个时候如果需要访问某台服务器的数据服务需要记住该服务器的ip地址和服务端口号,利用相应的应用程序去打开指定的服务。当时的设计人员想出了一个巧妙的方法来解决这个问题,在操作系统中编辑加入一个文件,在里面写入域名和IP地址的对应关系,以简化访问服务的流程和不必要的人工记录,这个文件就叫做host表,目前全世界所有计算机都还在使用。

  当互联网走出实验室,面向全球的时候。就出现了一个问题,如果每增加一台服务器,一个服务,就要向本地host表中添加一条记录,当时互联网发展迅速,如果以此下去,本地的host表很快就会占满所有的磁盘空间,为了解决这种问题,DNS诞生了。

什么是DNS

  DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

DNS是基于现行的互联网协议TCP/IP协议运行的,所用的端口为TCP/UDP的53号端口。在TCP/IP模型中,DNS处在应用层。

DNS的工作模式

  DNS的工作模式为Client/Server 模式即客户端/服务器模式

  通过客户端向DNS服务器发送查询请求,DNS服务器给予答复,并返回相应的结果。

DNS的结构

  DNS的结构并不复杂,是比较常见的层级结构,具体结构如下:

 

 

  如上图所示,所有的DNS域都是从根域开始。这是一个比较简单而且容易理解的层级结构。

  关于上图我解释下,如果看不懂上图,那么请看我下面这段描述

  1、DNS的根域负责全球Internet中的所有DNS域的管理,在DNS体系中,是至高无上的存在。全球现在运行着13台根服务器,分布如下:

clip_p_w_picpath003

  2、根域通过子域委派的方式,将.com.域、.net.域、.org.域等DNS域,这些域叫做顶级域。.com.域再委派给.example.com.域,这个域就叫做二级域。(大家都注意到我在所有的顶级域后面都加了一个“.”,这是因为早期的域名必须以英文句号“.”结尾,当用户访问 www.example.com 的HTTP服务时必须在址栏中输入:http://www.example.com.,这样DNS才能够进行域名解析。如今DNS服务器已经可以自动补上结尾的句号。下面的文章中将不带.)

  3、子域和父域:举个例子来说.com域就是根域的子域,根域就是.com域的父域。

  4、子域委派:子域委派就是将子域委派出去,交由别的服务器或运营商代理。举个例子A公司生成 了产品,交给B 公司代理,那么产品就是由A公司委派给B 公司代理经营的。也就是说子域委派是发生在子域不与父域在同一台或者同一组机器上的时候。如果.com域和根域同处在一台计算机或者一组计算机上的时候,那么.com域就没有被委派出去。

  5、域名的结构

域名的结构如下

 
 clip_p_w_picpath004

顶级域名:不用多说上面已经介绍过

二级域名:为顶级域的子域

三级域名:为二级域的子域

主机名:在此图中,www这个主机名属于.web.example.com 这个域的某台或者某组计算机,客户可以通过访问www.web.example.com来获取该域名指向的服务

例如,腾讯的门户网站提供的web服务,其域名为www.qq.con 那么www就是主机名,.qq.com就是腾讯的二级域该域中所有的管理命名等均由.qq.com负责

使用DNS

  DNS的使用非常简单,客户端只要指向DNS服务器即可,一般情况下,家庭拨号上网(pppoe)会由运营商提供IP地址和子网掩码 网关和dns服务器的IP地址。也可以手动指定。手动指定的方法如下

1、Windows (以windows7 为例)

clip_p_w_picpath006

首先点击任务栏上的clip_p_w_picpath007网络图标打开网络共享中心

在打开的网络共享中心中选择更改适配器设置

clip_p_w_picpath009

选择当前连接网络的网卡右键选择属性

clip_p_w_picpath011

双击打开IPv4 协议属性

clip_p_w_picpath012

选择使用下面的dns服务器,输入DNS服务器的IPv4地址,确定后生效

clip_p_w_picpath014

Linux(以CENTOS6.4为例)

在linux下面设置DNS其实并不复杂 但是有两种方法一种是临时生效,另外一种是永久生效

临时生效方法(修改/etc/resolv.conf文件)

clip_p_w_picpath015

使用vim打开该文件

clip_p_w_picpath016

在其中添加nameserver ,该参数就是指定DNS服务器的IPv4 地址

其中的 search 选项需要解释一下,当用户提交域名查询的时候,如果用户提交域名不全,即用search参数中的域名补全,假如你需要去寻找www.qq.com 但是你在查找的时候仅仅输入的是www。那么系统提交给DNS 服务器请求查询的结果就是 www.example.com,而并非www.qq.com

永久生效方法(修改网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-ethX)

使用vim 打开网卡配置文件 在/etc/sysconfig/network-scripts/下,一般命名为ifcfg-ethx

clip_p_w_picpath017

书写方法如下,在手动指定了IP 子网掩码 网关 之后需要在后面添加DNS 来达到解析域名的目的,网卡中DNS的写法如下,一定要写成DNS1 哦

clip_p_w_picpath018

其他版本的linux 大同小异~~ 相信各位可以操作

DNS与hosts

  DNS与hosts表之间的关系,大家应该明白了。当用户发起请求时,操作系统会首先查找自己本地的hosts表,如果hosts表中没有才会去向DNS 索要。这样大家可以理解了吧,hosts表就是一个本地的小型DNS数据库 记录了用户添加进去的域名和IP地址的对应关系,在实际使用过程中如果用户知道服务的IP地址和域名 也可以自行添加映射关系进hosts表,来实现减少网络开销和提高访问效率。但是正是由于这一点,本地hosts表也是常常会被***盯上的文件,这点大家要注意哦!