快捷搜索:

在linux上使用BIND建立DNS服务器

只管Linux在桌面谋略的天下中还没有取得惹人注目的进展,但作为收集办事器它已经小着名气了。因为其出色的靠得住性,我们可以宁神地在Linux上运行当今Internet期间所必需的各类紧张办事法度榜样。由此,Linux最普遍的一些用途包括用作邮件办事器、Web办事器以及DNS办事器。

下面我们将钻研如何在Red Hat Linux上应用BIND建立一个DNS办事器。BIND(Berkeley Internet Name Domain)是一个在UNIX/Linux系统上实现的域名解析办事软件包。我们将进修在Linux上建立和运行一个DNS办事器所需的安装、初始设置设置设备摆设摆设以及系统设置等步骤。

在本文中我们用Red Hat作为示例,以是你大概盼望应用BIND的RPM版本,可以经由过程搜索www.rpmfind.net找到它,由于应用RPM形式的发行包是安装BIND最简便的措施。下载了BIND的RPM之后,比如bind-9.1.0-10.i386.rpm,必要以超级用户的身份履行rpm -ivh bind-9.1.0-10.i386.rpm敕令。在RPM安装BIND时要留意反省任何能够导致安装掉败的缺掉的依附关系。

假如你更乐意从源码包安装的话,鄙人载如bind-9.1.3.tar.gz这样的文件之后必要以超级用户身份运行tar xvfz bind-9.1.3.tar.gz敕令对它进行解压。就本例而言会天生一个名为bind-9.1.3的目录,它包孕了进行安装所必需的所有文件。下一步,进入这个新创建的目录然后履行./configure敕令,在脚本法度榜样完成所有设置设置设备摆设摆设事情后,运行make,接着运行make install完成安装历程。现在在你的系统中应该已经安装好了基础设置设置设备摆设摆设的BIND,接下来要根据必要对它进行调剂。

设置设置设备摆设摆设BIND

当系统中安装好BIND之后,你就可以把它设置设置设备摆设摆设成多种要领。最常用的两种之一是应用ISP类型的设置,DNS办事器吸收并解析来自任何人的哀求(或者一组预先定义的用户);另一种是Web主机要领,办事器只解析对办事域名的哀求。当办事器的用途改变时,你也可以随时改变设置设置设备摆设摆设的类型。

DNS办事器既可所以主控办事器也可所以帮助办事器。主控办事器也称为主理事器,是鉴定域名的终极滥觞。主控办事器同时也是传送到帮助办事器的区传送(zone transfer)的泉源。帮助办事器接管所有来自立控办事器的区信息。一个常见的差错是试图改变二级办事器上的区数据库文件而没有改变主控办事器上的区数据库文件(zone file)。为什么要两个办事器呢?在任何设置设置设备摆设摆设中应用冗余都是一个好主见,这是BIND和DNS的一个原生部分。幸运的是,在机房中增添第二台Linux机械作为帮助DNS办事器一样平常来说不会影响你的预算。

要记着当有两种类型的办事器时,主控办事器也可以同时担当其他域的帮助办事器。在大年夜多半ISP情况傍边都可以看到这种情形,客户拥有自己的主控DNS办事器,同时又出于备份的目的把ISP算作二级办事器。这种类型的设置设置设备摆设摆设以及BIND中险些所有的其他设置设置设备摆设摆设项都是经由过程named.conf文件完成的。这个文件以纯文本的形式寄放各办事器信息和区信息。如表A所示。

named.conf 文件示例

options {

notify-source 10.0.0.2;

pid-file "/var/run/named.pid";

};

zone "." {

type master;

file "root.db";

};

zone "example.com" {

type master;

file "/var/named/sample.com.zone";

};

DNS办事器有多种可用的选项,假如你必要某种特殊的安装要领,我建议你通读一遍附带的文档。上面的例子中notify-source指明办事器把区更改看护(NOTIFY)消息发送到什么地方,当主控办事器检测到区数据库文件发生更改时就会向帮助办事器发出这样的消息。pid-file选项只是奉告守护进程(daemon)办事器写入ID信息的路径,平日是/var/run/named.pid,但假如你从新设置了目录的结构的话也可以根据必要对其进行变动。

上面的例子中第一个区挂号项用来看护BIND在何处定位根办事器的信息。办事器发送和接管的不仅是你自己的域信息同时也包括Internet上所有的域信息。并不是每个办事器上都有每个域名的挂号项,但每个办事器都知道如何获守信息。当然,因为列表会按期更新,以是也该当按期作记录。

在named.conf示例文件中第二个区挂号项是一个"主控"域项,意思是这个DNS办事器保存着example.com的有效信息, Internet上其他所有的DNS办事器都将用它来参照任何与这个域相关的信息。Example.com项引用/var/named/sample.com.zone这个文件。这是一个纯文本文件,它奉告DNS办事器所有有关example.com的信息,包括serial值、刷新率、所有的DNS记载以及其他一些项目。表B显示了这个区数据库文件的示例。

DNS区数据库文件示例

@ IN SOA ns1.sample.com. (

200101111 ;serial

14400 ;refresh after 4 hours

3600 ;retry after 1 hour

604800 ;expire after 1 week

86400) ;minimum TTL of 1 day

;

;Nameservers

;

IN NS ns1.sample.com. ;

IN NS ns2.sample.com. ;

;

;Domain Mail Handlers

;

sample.com. IN MX 10 mail

;

;Hosts in order

;

www IN A 212.204.219.71

ftp IN A 212.204.219.71

mail IN A 212.204.219.71

pop IN CNAME mail

SOA是Start of Authority的缩写,所有区文件都要以它打头。顺序号(serial)使办事器能够记载所进行过的各次更新,守护进程近来一次启动后只要数字呈现了增长,它就会从新把信息读入到数据库中去。举例来说,你可以从0开始然在每次更新之后加让一个数字,也可以应用日期项如200101111。这很有用,由于它让你能够看近来的一次更新的发生并且看出一天是否发生过多次更新。接下来的四行以秒的形式处置惩罚刷新和超时周期,假如BIND数据库没有发生过人工或者办事器范围的刷新,办事器会自动的从新读入信息。不必要常常改变此处所列出的数值,只有因为某种缘故原由域异常频繁地改变它们的信息时才必要对这些数值进行变动。接着列出的是域名,这样BIND就会知道是谁节制全部域。

接着列出的是MX记载,,它使办事器知道当有邮件信息哀求sample.com时该当发出什么信息,在本例中,mail.samle.com的优先级是10。你可以列出多个MX记载作为邮件办事器的备份。数字越小优先级越高。要留意的是还有一个响应的A记载给出了mail.sample.com的IP地址,这是必弗成少的,这样DNS办事器就可以知道如何根据域直接把邮件哀求发往何处。一个A记载仅仅是把IP地址赋给一个子域项,如www、mail、ftp或者ns,这些都必须用上面的款式录入,而且必须与一个IP地址相关联。比如说,当某个用户哀求www.sample.com时,他将会被指向该域所在的Web办事器的IP地址212.104.219.71。

上面的例子中还有一个CNAME项,CNAME是指canonical name,用于指定IP地址的又名,应用这些又名时照样要回偏激参考已经应用过的A记载。

帮助办事器部分看过name.conf中的主控办事器部分后我们再来看看帮助办事器部分: zone "sample2.com" {

type slave;

file "/var/named/sample2.com.zone";

master { 10.0.0.1; };

最主要的两个差别一是type项,它既可所以master也可以使slave,二是IP地址指定的是主控DNS办事器。其他的都和Master项相同。

启动BIND

用于启动DNS办事的法度榜样是named,读作"name D"。你可以经由过程履行/etc/rc.d/init.d/named start敕令来运行这个法度榜样。假如办事器已经处于运行状态,你可以用restart敕令。这个脚本法度榜样应该是在安装时放进精确的目录中的,它在启动时运行以初始化办事器。你老是该当用ps aux敕令反省一下named是否已经运行,这个敕令会列出当前所有进程的清单。

您可能还会对下面的文章感兴趣: