CentOS上配置主DNS服务器的简易指南

任何运作中的域名至少有两台DNS服务器,一台称为主域名服务器(比如叫做ns1),而另一台称为从域名服务器(比如叫做ns2)。这些服务器通常用于故障转移:如果一台宕机,另外一台就激活成为DNS服务器(译注:此处译者有不同意见,事实上两个或更多的DNS服务器是共同工作的,并不是第一台停止服务后,第二台才接替工作。解析器是随机选择一个DNS服务器进行询问,如果超时则会询问下一个,这是多个DNS的故障容错机制)。也可以实现包括负载均衡、防火墙和集群在内的更为复杂的故障转移机制。

一个域的所有DNS条目都会被添加到主域名服务器,从服务器只会根据主服务器上的SOA记录的序列号参数从主服务器同步所有信息。

此教程将会讲述如何创建一台在CentOS上运行的主DNS服务器。请注意,本教程中提到的DNS服务器将会是一台开放DNS服务器,这也就是说该服务器将会回应来自任何IP地址的查询。对于DNS服务器的访问控制将在此教程中讨论(译注:开放的DNS服务器是一个安全隐患)。

CentOS上配置主DNS服务器的简易指南

RHEL6服务器搭建DNS服务器

精解Linux RHEL 6.x DNS 服务器

Ubuntu DNS服务器配置

Solaris中配置DNS服务器

CentOS 6.3 x64下借助MySQL和DNS view实现智能DNS

在开始之前,我想要提一下的是,DNS可以在chroot环境中配置,也可以在非chroot环境中配置。chroot环境将DNS服务器限制在系统中某个特定目录中,以避免让服务器具有系统级的访问权限。在此环境中,任何DNS服务器的安全漏洞不会导致整个系统的破坏。将DNS服务器置于chroot环境中,对于部署测试也很有用。

目标

我们将在基于域名example.tst的测试环境中配置一台DNS服务器,这个域名是虚假的(并不真实存在的)。这样,我们就不会意外干扰到其它真实的域名。

在该域中,有以下三台服务器。

服务器   IP地址   托管的服务   完全限定域名(FQDN)  
Server A   172.16.1.1   Mail   mail.example.tst  
Server B   172.16.1.2   Web, FTP  
ftp.example.tst
 
Server C   172.16.1.3   Primary DNS server   ns1.example.tst  

我们将会配置一台主域名服务器,并添加上表中必要的域和DNS记录。

设置主机名

所有的主机名必须以完全限定域名的方式正确定义,可以通过以下方法完成设置。

# vim /etc/sysconfig/network

HOSTNAME=ns1.example.tst

注:该文件中指定的主机名参数在服务器启动后才会启用(译注:或者网络服务重启后),因此,该设置不会马上生效。下面的命令可以立刻临时性地修改主机名。

# hostname ns1.example.tst

一旦设置,主机名可以通过以下命令验证。

# hostname
ns1.example.tst

在进入下一步之前,请确保上述三台服务器上的主机名已经设置正确。

安装软件包

我们将使用bind来配置DNS服务,该软件可以很方便地通过yum来安装。

不使用chroot环境的:

# yum install bind bind-chroot

使用chroot环境的:

# yum install bind bind-chroot

准备配置文件

正如前面提到的,bind可以在chroot环境下配置,或者在非chroot环境下配置,配置文件的路径会因为是否安装chroot包而不同。

    配置文件路径   区域文件路径  
不带有 chroot   /etc/   /var/named/  
带有 chroot   /var/named/chroot/etc/   /var/named/chroot/var/named/  

可以使用默认提供的named.conf配置文件,但是为了更方便使用,我们将使用另外一个简单的配置文件模板。

非chroot环境:

# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /etc/named.conf

chroot环境:

# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

现在来备份并修改配置文件。

非chroot环境:

# vim /etc/named.conf

chroot环境:

# vim /var/named/chroot/etc/named.conf

添加/修改以下行:

options {

## 区域文件存放目录 ##

directory "/var/named";

## 对于非本地权威域的请求转发到 Google 的公开 DNS 服务器 ##

forwarders {8.8.8.8;};

};

## 申明一个本地域 example.tst ##

zone "example.tst" IN {

type master;

file "example-fz";## 存储文件名,放在 /var/named ##

allow-update { none;};

};

## 为IP段 172.16.1.0 提供反向解析 ##

zone "1.16.172.in-addr.arpa" IN {

type master;

file "rz-172-16-1";## 存储文件名,放在 /var/named ##

allow-update { none;};

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/89d284e66bc01d7ea070e4166777fcab.html