Aug 18 2008

bind 下的委派

Published by David at 5:48 pm under 网络|Network

在BIND DNS服务器中创建一个DNS子域是相当简单的,步骤分为三个部分:

1.命名子域

2.将子域委派给一个或者多个域名服务器

3.提供“域名服务器黏结记录”(nameserver glue records)和子域的命名空间(namespace)内部的主机名给任意一个委派的域名服务器,以便子域外部的机器可以解析这个域名服务器。

事实上,第一和第二步已经实现了每个子域名服务器的单一记录,当你将子域名委派给在DNS子域里面有主机名的服务器时,需要第三步,但并不是必需的。

创建子域

为了创建子域,你需要以root进入到父域名的主DNS服务器,编辑父域名的zone文件,完成编辑之后重新加载zone(reload zone)。

在BIND的配置文件/etc/named.conf中zone声明了你的父域,定义了zone文件名和你想要修改的域。

记住,zone文件将会存放在/etc/named.conf中全局选项所声明的directory下(默认是/var/named)。

这里是named.conf文件zone生命的一个例子,zone文件名是testdomain.bogus.zone:

zone “testdomain.bogus” {
type master;
file “testdomain.bogus.zone”;
allow-update { none; };
};

在修改zone文件之前先做个备份,然后用你喜欢的文本编辑器打开zone文件:

# cd /var/named

# cp testdomain.bogus.zone testdomain.bogus.zone.backup

# vim testdomain.bogus.zone

下面是域名testdomain.bogus的zone文件的一个例子,在那里,我们将创建子域subdomain1.testdomain.bogus。

假设已存在的testdomain.bogus的zone文件已经包含所有下面显示的记录,到”EXISTING RECORDS STOP HERE”这行。

下面黑体的记录(”EXISTING RECORDS STOP HERE”行之后)是我们要创建DNS子域的新记录,委派给三个域名服务器,并且添加了一条NS glue记录给子域里的一个域名服务器。

$TTL 3D
@ IN SOA ns1.testdomain.bogus. root.testdomain.bogus. (
2004080203 ; zone file serial #
8H ; refresh
2H ; retry
1W ; expire
1D ) ; SOA minimum
; NS’S AUTHORITATIVE FOR PARENT DOMAIN:
testdomain.bogus. NS ns1.testdomain.bogus.
testdomain.bogus. NS ns2.testdomain.bogus.
;
; A RECORDS FOR THE PARENT DOMAIN’S AUTHORITATIVE NS’S:
ns1.testdomain.bogus. A 10.1.2.3
ns2.testdomain.bogus. A 10.1.2.4
;
; ORDINARY HOSTS IN TESTDOMAIN.BOGUS:
host01 A 10.1.2.11
host02 A 10.2.2.12
;
; EXISTING RECORDS STOP HERE
;
; HERE WE CREATE OUR DNS SUBDOMAIN BY ADDING THESE RECORDS:
; Name the subdomain: Now delegate it to these nameservers (MUST be an FQDN hostname, NOT AN IP):
subdomain1.testdomain.bogus. NS ns1.subdomain1.testdomain.bogus. ; inside the subdomain - needs NS glue record
subdomain1.testdomain.bogus. NS ns1.testdomain.bogus. ; not in subdomain - no glue required
subdomain1.testdomain.bogus. NS ns.myisp.bogus. ; not in subdomain - no glue required
;
; GLUE RECORD FOR ns1.subdomain1.testdomain.bogus -
; NEEDED SINCE IT IS INSIDE THE SUBDOMAIN
ns1.subdomain1.testdomain.bogus. A 10.4.5.6

注意:在保存文件,重新加载(reloading)之前,别忘了增加zone文件的序号(serial number)!

上面例子中,子域委派权威给其中一个父域名服务器ns1.testdoamin.bogus。并不需要父域名的NS也是子域名的NS,是DNS管理员有权限管理的任意一个就行。

你需要创建子域的zone文件,将子域添加到将成为子域的权威的服务器的/etc/named.conf配置文件。以下是主服务器上基本的子域的zone声明部分:

zone “subdomain1.testdomain.bogus” {
type master;
file “subdomain1.testdomain.bogus.zone”;
allow-update { none; };
};

子域zone文件的基本部分:

$TTL 3D
@ IN SOA ns1.subdomain1.testdomain.bogus. root.subdomain1.testdomain.bogus. (
2004080203 ; zone file serial#
8H ; refresh
2H ; retry
1W ; expire
1D ) ; SOA minimum
;
subdomain1.testdomain.bogus. NS ns1.subdomain1.testdomain.bogus.
;
; A RECORDS FOR THIS SUBDOMAIN
ns1.subdomain1.testdomain.bogus. A 10.4.5.6
host01 A 10.4.5.6

在父域名服务器reload父域的zone文件之前,建议你正确配置了子域的域名服务器,并且能正确提供子域的记录。

当你觉得子域名服务器已经正常工作,以root身份执行下面命令,reload父域的zone文件:

# rndc reload

现在,你就拥有了子域DNS。

关于BIND DNS服务器配置的文档,DNS原理,请参考下面资源:

*BIND Administrator’s Reference Manual, HTML格式(在安装了bind RPM包的红帽企业版Linux 系统上可以得到)

/usr/share/doc/bind-[version]/arm/Bv9ARM.html

*Linux Documentation Project Website中的DNS HOW-TO

http://www.tldp.org/HOWTO/DNS-HOWTO.html

simple sample:
abc.com 如何委任 tmp.abc.com
linux 下很簡單:
在 abc.com 的 db file 中加兩行(或多行,若有多個 ns 的話):
tmp IN NS ns1.tmp.abc.com.
ns1.tmp IN A 1.2.3.4

問題二:
在 ns1.tmp.abc.com 的 named.conf 中設一個 forward zone :

zone “abc.com” IN {
type forward;
forwarders { 4.3.2.1; };
};
4.3.2.1 是 abc.com 的 ns 所用 IP 。

标签:

转载原创文章请注明,转载自:Tuifei.com[http://www.tuifei.com]

本文链接: http://www.tuifei.com/2008/08/18/bind-accreditation.htm

Trackback URI | Comments RSS

Leave a Reply

Close
E-mail It