Chinaunix首页 | 论坛 | 博客
  • 博客访问: 163088
  • 博文数量: 27
  • 博客积分: 2179
  • 博客等级: 大尉
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-21 12:53
文章分类

全部博文(27)

文章存档

2012年(1)

2010年(9)

2009年(7)

2008年(10)

我的朋友

分类: LINUX

2010-04-20 15:27:28

在上一篇配置文件中,介绍地太泛了。所以今天从新理解一下forword类型服务器和NS记录。

一、forword服务器

记得上配置篇中,说道SOA记录中的type有4种:master、slave、hint(root缓冲区域)、forward(代理查询)。由于hint的工作方式很相似,所以下面特别说说hint和forward代理查询两种类型。
Unknown Object
1.1 hint

hint类型也称为caching-only。从名字上看,就是说它的功能就只有在cache里面。即是,它本身没有存在磁盘中的一些zone配置文件,只有named.conf和named.root这两个文件。

它的工作方式是:

  1. 客户机请求hint服务器
  2. hint服务器查看cache是否有客户机想要的东东,如果有就返回结果给客户机;如果没有就按照DNS协议规定,从root里面查找下来,然后再缓存在cache,最后返回给客户机。
所以cache的工作量会很大。这个时候forward就出来了。所以现在一些hint服务器后面有加上forword语句。

1.2 forward

forward类型,就是将客户机来的请求,传递给另外一台(或多台)DNS服务器查询。和cache-only一样,也是没有本地磁盘的zone配置文件。

但是其工作方式和hint的不同:

  1. 客户机请求forward服务器;
  2. forward服务器也是查看cache里面是否有客户机想要的东东,如果有就返回给客户机;
    如果没有,就将请求传递给farward指定的DNS服务器查询
    ,指定的DNS服务器接受到请求
    后就根据一般的DNS查找一样,得到结果后,就返回给forward服务器,然后forward服务
    器再将结果返回给客户机。
所以,现在很多hint服务器都和forward结合一起了。

二、理解NS记录

NS记录,主要是管理下一层的DNS服务的。下面举个例子来说明:


前提:
假如我申请到private.com这样的域名,并在域名注册商上将域名服务器转到自己的一台DNS服务器S1上。而我要管理private.com这个域的子域名,比如sub.private.com这个子域名。

首先:
在S1(10.14.2.22)、S2(10.14.2.163)上安装好bind。
然后:
在S1的named.conf配置中加入private.com这个域的语句。如下:

zone "private.com" {
        type master;
        file "private.com.zone";
        allow-update{ none; };
};

接着:
编写S1的zone配置文件:

$TTL 1D
@ IN SOA master.private.com. root.master.private.com.(
                        1053891162
                        3H
                        15M
                        1W
                        1D)
@ IN NS master.private.com.

master IN A 10.14.2.22 
#注意:添加NS记录后,必需添加对于的A记录。
sub IN NS sub.private.com.
sub IN A 10.14.2.163
#将sub子域名指向10.14.2.163(S2)这个DNS服务器.

既然将管理权交给了10.14.2.163(S2)这个DNS服务器,那么我们到S2这个台DNS服务器上配置,sub的子域名。

在S2的named.conf配置中,添加sub.private.com的zone相关语句。如下:

zone "sub.private.com" {
    type master;
    file "sub.private.com.zone";
    allow-update{ none;};
}

和S1的一样,还要添加sub.private.com.zone这个zone文件:

$TTL 1D
@ IN SOA master.sub.private.com. root.sub.private.com. (
                    2010042001 ;Serial
                    43200 ;refresh 12hour
                    3600 ;retry 1hour
                    604800 ;expire 1week
                    900) ;negative_cache_ttl 15min
@ IN NS master.sub.private.com.
master IN A 10.14.2.163
www IN A 10.14.2.168 #指定www主机的A记录
@ IN A 10.14.2.163   #指定sub.private.com的A记录.

配置好了。下面测试吧。

三、测试

3.1 启动S1的DNS服务器和S2的DNS服务器,方法都是一样,如下面命令:

[root@localhost bind9.2.3]#./sbin/named -gc ./etc/named.conf


3.2 在S1上测试是否可以得到的ip地址。

[root@localhost bind]# cat /etc/resolv.conf
nameserver 10.14.2.22
[root@localhost bind]# nslookup www.sub.private.com
Server: 10.14.2.22
Address: 10.14.2.22#53

Non-authoritative answer:
Name: www.sub.private.com
Address: 10.14.2.168        #OK,和我们在S2设定的ip一样。

[root@localhost bind]#

阅读(6490) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~