|
|
转载,文章原地址:http://blog.sina.com.cn/u/48e17e5501000505
[原创文章]转载请注明作者和出处,谢谢
本文假设读者已经了解 DNS 的工作原理以及三种 DNS (Cache Only、Master、Slave)的区别和联系,并掌握了基本的 linux 命令行操作方法。
二话不说,进入正题。
步骤后面的括号代表执行此项所需的命令,请根据自身情况灵活变化。
1.进入下载好的 bind 源码包所在目录( cd )
2.解压缩( tar -zxvf )
3.进入解压缩后出现的目录( cd )
4.使用如下命令
./configure --prefix="你希望将bind安装到的目录" --sysconfdir="你希望bind默认到这里找配置文件"
解释: --prefix=PREFIX 选项用于指定安装目录,默认为/usr/local/sbin
--sysconfdir 选项用于指定bind默认寻找配置文件named.conf的路径,默认为/etc.推荐采用默认值
另外的更多参数请参阅 README 文档。
5.稍等一段时间,完成./configure后直接输入如下命令:
make
6.还需等待一段时间,make结束之后直接输入如下命令:
make install
7.等待安装完成
至此 bind9 安装完成。
---------------------------------------------------
配置 bind9
特别注意:安装完成后的新 bind 是不会有任何配置文件的,也不会有任何zone数据文件。所有网上教程中所述的文件都必须依次手工建立。
配置环境假设如下:
有一个局域网,网段为 173.26.100.x
www服务提供于 173.26.100.59
dns服务器,即需要配置的机器位于 173.26.100.17
想要架设的域为 linux.org( 此域名未到ISP注册,应该是内部使用的域名 )
请根据具体情况定制。
下面开始配置工作:
1.进入/etc目录( cd )
2.执行如下命令(以默认安装路径为准):
vim named.conf ( Ubuntu 系统下需要 sudo vim named.conf 并输入密码 )
注:视系统不同,某些系统可能使用文本编译器 vi
3.对于假设网络环境使用的named.conf文件
options {
directory "/var/named"; //bind默认zone文件位置
forwarders {
123.123.1.1; //可定义你的上级DNS
};
};
// 首先定义出 . (root) 这个 hint type 的档案内容
zone "." in {
type hint;
file "named.root";
};
// 再来则是定义出 localhost 的正反解了,很简单,就是 127.0.0.1 (必要)
zone "localhost" in {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "named.127.0.0";
};
// 定义出我自己的域这一组正反解设定
zone "linux.org" {
type master;
file "named.linux.org";
};
zone "100.26.173.in-addr.arpa" {
type master;
file "named.173.26.100";
};
//特别注意上面zone ""引号内ip段反写
4.根据建立的named.conf,依次建立zone数据文件
进入/var文件夹,建立文件夹named,进入named( cd、mkdir )
建立文件named.root(根服务器位置)
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.root
; on server FTP.INTERNIC.NET
;
; last update: Nov 5, 2002
; related version of root zone: 2002110501
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
这个文件直接粘贴内容即可。或者到国际域名管理服务器rs.internic.net下载这个文件,将得到完全版本。直接粘贴上面内容可用。
建立本机(localhost)正解文件named.localhost
仍然在/var/named下: vim named.localhost
$TTL 600
; 这个跟清除 cache 的时间有关系, 单位是秒
@ IN SOA localhost. root.localhost. (
2002120601 ; Serial 与 master 及 slave 是否同步有关,一般而言,如果这个数值变大了, slave 才会同步更新!
28800 ; Refresh 定义出 slave 多久会主动的检查 serial 的值,以便主动的更新数据库!
14400 ; Retry 定义出,如果 slave 没有连上 master DNS 主机则多久之后会重新再次的主动检查!
720000 ; Expire 如果一直没有连接上 mater ,那么到了这个时候slave 就会放弃检查的动作了,不再更新!
86400 ) ; Minimum 这个其实就是 TTL 如果您没有定义 TTL ,那么 TTL 的值就以这个来设定
; 开始设定正解的信息内容:
@ IN NS localhost. ; 特别留意最后面有个 .
localhost. IN A 127.0.0.1 ; A 是正解里面 hostname 对应 IP 的标志
加入注释后有些乱,粘贴过去后调整一下格式,另外注意删除中文空格,否则会出现错误。
建立本机(localhost)反解文件named.127.0.0
还是/var/named下: vim named.127.0.0
$TTL 600
; This is about DNS server's settings
@ IN SOA localhost. root.localhost. (
2002120601 ; Serial
28800 ; Refresh
14400 ; Retry
720000 ; Expire
86400 ) ; Minimum
; The server's infomations
@ IN NS localhost.
1 IN PTR localhost.
注释已经加过,此处不再赘述
下面开始我们的linux.org域解析文件,首先是正解文件named.linux.org
vim named.linux.org
$TTL 600
; 跟上面提到的一样,设定主机的一些基本信息
@ IN SOA dns.linux.org. root.dns.linux.org. (
2002120601 ; Serial
28800 ; Refresh
14400 ; Retry
720000 ; Expire
86400 ) ; minimum
; 主机的设定参数部分
@ IN NS dns.linux.org. ; 这个 zone 的主机
@ IN MX 10 dns.linux.org. ; 邮件转递的主要邮件主机
dns IN A 173.26.100.17
dns IN TXT "The testing DNS server" ; 仅是说明文件 !
; 其它主机的设定信息上面
www IN A 173.26.100.59
然后是linux.org域反解文件named.100.26.173
vim named.100.26.173
$TTL 600
@ IN SOA dns.linux.org. root.dns.linux.org. (
2002120601 ; Serial
28800 ; Refresh
14400 ; Retry
720000 ; Expire
86400 ) ; minimum
@ IN NS dns.linux.org.
17 IN PTR dns.linux.org.
; The following is about other hosts
59 IN PTR www.linux.org.
至此我们对于假设网络环境的配置已经全面完成。
---------------------------------------------------
测试 bind9
使用如下命令启动 named 服务:
/etc/rc.d/init.d/named start
注:在 Ubuntu 下以源码包方式安装后启动使用如下命令:
sudo /usr/local/sbin/named -g
如果启动成功,将看到提示信息,最后为running.特别注意如果出错,看看在哪一步出现的问题,如果是加载 zone 文件失败,多半是zone文件格式不对。如果发现bad name的提示,请注意删除 zone 文件中的中文空格。
named启动成功后,执行如下步骤:
1.进入/etc目录( cd )
2.执行如下命令:
vim resolv.conf
在第一行,特别注意是第一行,添加代码:
nameserver "173.26.100.17"
3.再启动一个shell,执行如下命令:
dig www.linux.org
如果成功解析,在 ANSWER SECTION 中将会出现 www.linux.org 对应的 ip 地址 173.26.100.59
如果 59 上确实开设了 www 服务的话,用浏览器察看 www.linux.org 将可以访问 59 的 www 服务。
至此内网 DNS 解析配置完成。外网配置类似,可以灵活变通。
辰星
2006年8月7日于哈尔滨
原文章有格式,比较容易看,贴过来有点乱~~~ |
|