FreeBSD连载37:DNS的体系结构

来源:岁月联盟 编辑:zhu 时间:2008-01-17
FreeBSD连载37:DNS的体系结构内容简介:【FreeBSD教程】DNS服务 通常,一台计算机只需要配置域名解析就可以了,不需要自己运行名字服务器守护进程,然而有些时候需要设置自己的名字服务器,这就需要FreeBSD下配置名字服务器BIND(Berkeley Internet Na   【FreeBSD教程】DNS服务

  通常,一台计算机只需要配置域名解析就可以了,不需要自己运行名字服务器守护进程,然而有些时候需要设置自己的名字服务器,这就需要FreeBSD下配置名字服务器BIND(Berkeley Internet Name D omain)。BIND也是由伯克利开发的一个闻名软件,它的执行程序为named,运行在Internet上几乎所有的名字服务器上,构成Internet的名字系统。

  由于普通的客户计算机并不需要运行named,因此在其/etc/rc.conf配置文件中,named_enable 应为NO。当需要运行named以提供DNS服务的时候,就要将这个参数的值改为”YES”。

  DNS的体系结构

  Internet上的DNS名字服务为一种分布式的体系,由分布在Internet各地的DNS服务器上的named 守护进程为整个Internet提供本域内计算机的名字解析服务。DNS域名结构为分级方式,例如www.online.ha.cn 中最后面的cn为顶级域名,由后向前分别划分为不同级别的域。

  Internet上的顶级域名有两种,一种象cn这样的国别代码,另一种是如同edu、org、net、com 等分类代码。国别顶级域下的次级域名同样可以按照地域或组织结构来分类划分。

  那么要进行名字解析,就需要从域名的后面向前,一级级查找这个域名。因此Internet上就有一些DNS服务器为Internet的顶级域提供解析任务,这些DNS服务器称为根DNS服务器。知道了根DNS服务器的地址,就能按级查找任何具有DNS域名的主机名字,BIND代码中就包括了这些根DNS服务器的地址。

  名字服务使用zone的概念来表示一个域内的主机,然而zone与域也有所区别,zone只是域的一部分,而不是整个域。因为zone中不包括域下的子域。例如域名www.example.org.cn的域为example.org.cn ,这是一个独立的zone。这个域下可由子域组成,例如www.sub.example.org.cn就属于其子域sub.example.org.cn,子域也是一个独立的zone,并不包括在example.org.cn 这个zone之内,作为域的example.org.cn中就包括sub.example.org.cn子域。

  除了从名字查找主机的IP地址这种正向的查找方式之外,另外还有从IP地址反查主机域名的解析方式。很多情况下网络中使用这种反向解析来确定主机的身份,因此也很重要。查找名字的反向解析是从前面的网络地址向后面的节点地址,逐级查找,因此IP地址zone是IP地址的前面部分。然而由于一个主机的域名可以任意设置,并不一定与IP地址相关,因此正向查找和反向查找是两个不同的查找过程,需要配置不同的zone。

  使用DNS查询工具

  用来进行DNS查询的一个非常有用的工具是nslookup,可以使用它来查询DNS中的各种数据。除了可以在命令行下直接进行基本的DNS查询之外,直接启动nslookup将进入一个交互模式,这里能查询各种类型的DNS 数据。

  的名字解析数据可以有各种不同的类型,有设置这个zone的参数的SOA类型数据,有设置名字对应的IP地址的A类型数据,有设置从IP地址反向解析DNS名字的PTR数据,有定义服务与这个zone的DNS服务器的NS数据,以及定义主机别名的CNAME数据。这些不同类型的数据均可以通过nslookup的交互模式来查询,需要使用 set type命令设置相应的查询类型。

$ nslookup
Default Server: ns.hazzptt.net.cn
Address: 202.102.224.68

> set type=ns
> yahoo.com
Server: ns.hazzptt.net.cn
Address: 202.102.224.68

Non-authoritative answer:
yahoo.com nameserver = NS2.DCA.yahoo.com
yahoo.com nameserver = NS5.DCX.yahoo.com
yahoo.com nameserver = NS.EUROPE.yahoo.com
yahoo.com nameserver = NS1.yahoo.com

Authoritative answers can be found from:
NS2.DCA.yahoo.com internet address = 209.143.200.34
NS5.DCX.yahoo.com internet address = 216.32.74.10
NS.EUROPE.yahoo.com internet address = 195.67.49.25
NS1.yahoo.com internet address = 204.71.200.33
>

  这个例子就使用nslookup来查询yahoo.com这个zone的名字服务器,需要将类型设置为ns来执行查询。用来帮助获得DNS数据的工具还有很多,如dig能迅速返回整个zone的名字解析数据,dnswalk可以用来帮助查询名字服务器的设置。这些工具都可以用来帮助查找DNS的设置问题。

图片内容