|
这里在 CentOS6.4 上架设一个最简单的 DNS 服务器,只有主服务器,而且也不会涉及更多的拓展参数。在以后的文章中会逐渐的补充上相关内容。
在这次的配置中,是针对局域网环境的。因为对于普通的个人用户来说,在公网上架设一个 DNS 是没多大意义的。
需要安装相关的 DNS 软件包有:bind, bind-chroot, bind-utils。
如果是 CentOS5.x ,那么用 yum 还可以安装 caching-nameserver 软件包,它包含了许多便利的模板,我们只需要按照模板来修改就可以达到基本的应用目的。
此外,如果使用的是 Fedora ,那么还可以 yum 到 system-config-bind ,这是个图形配置工具,比较直观。
安装完相关的软件后,那么就要开始配置相关的文件了。
安装 bind-chroot 软件包,是为了安全的目的,chroot 可以将 BIND 限制在某个非根的目录,比如 /var/named/chroot ,这样一来 BIND 所能存取的文件都是 /var/named/chroot 下的文件或其子目录下的文件。因此,chroot 这个“监牢”的作用就是将进程的权限限制在文件系统目录树中的某一子树中。
1. 首先将 /etc/named.conf 文件复制一份到 /var/named/chroot/etc 目录下,这个 named.conf 是个全局配置文件,在复制时应该保持其权限,因此需要用 cp 命令的 -p 选项:
修改一下 named.conf 这个文件,内容如下://
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
#listen-on port 53 { any; }; 默认端口 53,由于不希望任何主机(any)都可以向该服务器发出请求,所以这里屏蔽
listen-on-v6 port 53 { none;};
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; 192.168.1.0/24; }; # 允许 192.168.1.0/24 这个网段发出解析请求
allow-transfer {localhost; 192.168.1.0/24; }; # 允许区域传输的辅助区域
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view "internal" {
match-clients {
localhost;
192.168.1.0/24;
};
zone "." IN {
type hint;
file "named.ca";
};
zone "groad.net" IN {
type master;
file "groad.net.lan";
allow-update { none; };
};
}; 在上面的配置内容中,定义了一个视图 --- view 块,它用于指定主配置文件存放路径及名称,通常包含下面几个项:
match-clients : 指定提交 DNS 客户端的源 IP 地址范围。
match-destinations : 指定提交 DNS 客户端的目标 IP 地址范围。
match-destinations-only yes|no : 指定是否只允递归查询。
include : 指定主配置文件。(注意,如果使用了 chroot 该路径会是一个相对路径)
zone "." 表示的是根区域,其中相关的文件为 named.ca ,这里装有全球 13 台 DNS 根服务器的解析信息。
zone "groad.net" 是我们自定义的区域,它的类型(type)是 master,表示主服务器。它的相关配置文件名为 groad.net.lan 。allow-update 指定允许动态更新此区域的系统,这里不指定。
下面看一下 groad.net.lan ,它存放在 /var/named/ 下, 内容为:[root@groad.net etc]# cat /var/named/groad.net.lan
$TTL 86400
@ IN SOA dns.groad.net. root.groad.net. (
2013060400 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
);
IN NS dns.groad.net.
IN A 192.168.1.109
dns IN A 192.168.1.109
www IN A 192.168.1.110 其中,TTL 指定资源记录在高速缓存中的时间,单位为秒,86400 表示一天。
@ 符号当前域。这里的当前域就是全局配置文件中定义的 zone 名称,即 groad.net 。
SOA 是 start of authority 的缩写,称之为“起始授权”。紧接其后的 dns.groad.net. 是“主域名服务器(FQDN)”,注意后面要以 '.' 结尾。再接着的 root.groad.net. 是管理员邮件地址,注意和平时所见的邮件地址有点区别,@ 符号要用 ‘.' 来表示。接下来的几行数字内容分别表示序列号,刷新时间,重试时间,过期间隔,TTL 。
再接下来,使用 IN NS dns.groad.net. 指定了该区域的 NS 记录。这里没有指定区域名称,表示直接使用上一条记录的区域名称。
再接着 IN A 192.168.1.109 定义了 groad.net 对应的 A 记录为 192.168.1.109 。
同理,最后一条 www.groad.net 的 A 记录是 192.168.1.110。
配置完成后,重启一下 named 服务:# /etc/rc.d/init.d/named start
修改一下/etc/resolv.conf 文件,该文件可以指定要搜索的 DNS 服务器,它和 Windows 里的网络设置里填写的首选 DNS 服务器和 备用 DNS 服务器是类似的,内容如下:[root@groad.net etc]# cat /etc/resolv.conf
search groad.net
nameserver 192.168.1.109
为了验证服务器搭建是否成功,我们在另外一台机器上也同样修改上面的 resolv.conf 文件,然后来验证:
从上面的第 2 图中也可以看到,在浏览器里输入 www.groad.net 时,不再转到我们的论坛这里来,而是访问内网 IP 地址为 192.168.1.110 的一台机器的 WEB 服务上。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|