电脑技术学习

Linux 网管 123 --- 第7章. 自订的组态及管理内容 -2.DNS

dn001

网域名称伺服器;(DNS);组态及管理
在我工作的很多地方,我们使用;Linux;作为;DNS;伺服器。它表现的非常好。这一节将会指出使用;Red;Hat
发行版内含的标准;BIND;8.x;套件所提供这些服务的;DNS;table;组态;
注意:;Red;Hat;5.1;及更早的版本使用;BIND;4.x;套件,它的组态档格式有一点点不同。;BIND;8.x;比;
BIND;4.x;提供更多的功能,而且;4.x;已经不再发展了,;您可能需要考虑升级到最新版的;BIND;套件。
先安装;BIND;RPM;套件;(查看;第10章,使用;Red;Hat;套件管理程式;(RPM);一节;有关使用;RPM;公用程式
的细节),然後转换您的组态成新的格式。;
幸运地,转换原有的;BIND;4.x;组态档以符合;BIND;8.x;很简单;!;就像是;BIND;位於文件档的目录下的一部份
(例如,;``/usr/doc/bind-8.1.2/'';相对於;BIND;version;8.1.2),有一个档叫做;``named-bootconf.pl'';,
这是一个可执行的;Perl;程式。;假设您已经在系统上安装好;Perl,您可以利用这个程式转换您的组态档。键入
下列指令完成它;(以;root;身分):;
cd;/usr/doc/bind-8.1.2
./named-bootconf.pl;<;/etc/named.boot;>;/etc/named.conf
mv;/etc/named.boot;/etc/named.boot-obsolete



您现在应该会得到一个可以在;BIND;8.x;下使用的档案;``/etc/named.conf'';。;原有的;DNS;table;在新版的
BIND;下也可以使用,;因为;table;的格式还是一样。


在;Linux;下组态;DNS;服务与下列步骤有关:;
要起始;DNS;服务,;``/etc/host.conf''这个档案看起来应该像下面着个样子:;
#;Lookup;names;via;/etc/hosts;first,;then;by;DNS;query
order;hosts,;bind
#;We;don't;have;machines;with;multiple;addresses
multi;on
#;Check;for;IP;address;spoofing
nospoof;on
#;Warn;us;if;someone;attempts;to;spoof
alert;on


加大的;;spoof;侦测可以增加一点;DNS;搜寻的命中率(管可以忽略),所以如果您不担心这个的话可以;
disable;“nospool”及“alert”;项目。;

依需要编辑;``/etc/hosts'';档。一般在这里不必改太多,;但为了增加效率可以增加您最常存取的主机;
(像是本地伺服器);以避免过度使用;DNS;搜寻在他们身上。;

``/etc/named.conf'';档应该根据下面例组态指出;DNS;table;

(注意:下面的;IP;位址只是例,必须根据您自己的;class;位址更改!):;

options;{
//;DNS;tables;are;located;in;the;/var/named;directory
directory;"/var/named";

//;Forward;any;unresolved;requests;to;our;ISP's;name;server
//;(this;is;an;example;IP;address;only;--;do;not;use!)
forwarders;{
123.12.40.17;
};

/*
*;If;there;is;a;firewall;between;you;and;nameservers;you;want
*;to;talk;to,;you;might;need;to;uncomment;the;query-source
*;directive;below.;;Previous;versions;of;BIND;always;asked
*;questions;using;port;53,;but;BIND;8.1;uses;an;unprivileged
*;port;by;default.
*/
//;query-source;address;*;port;53;
};

//;Enable;caching;and;load;root;server;info
zone;"named.root";{
type;hint;
file;"";
};

//;All;our;DNS;information;is;stored;in;/var/named/mydomain_name.db
//;(eg.;if;mydomain.name;=;foobar.com;then;use;foobar_com.db)
zone;"mydomain.name";{
type;master;
file;"mydomain_name.db";
allow-transfer;{;123.12.41.40;;};
};

//;Reverse;lookups;for;123.12.41.*,;.42.*,;.43.*,;.44.*;class;C's
//;(these;are;example;Class;C's;only;--;do;not;use!)
zone;"12.123.IN-ADDR.ARPA";{
type;master;
file;"123_12.rev";
allow-transfer;{;123.12.41.40;;};
};

//;Reverse;lookups;for;126.27.18.*,;.19.*,;.20.*;class;C's
//;(these;are;example;Class;C's;only;--;do;not;use!)
zone;"27.126.IN-ADDR.ARPA";{
type;master;
file;"126_27.rev";
allow-transfer;{;123.12.41.40;;};
};


小技巧:;注意上面的;allow-transfer;选项,它限制;DNS对於特定;IP;位址的;zone;transfer。;举例来说,;
我们允许位於123.12.41.40;的主机(可能是我们网域上的一个次要;DNS伺服器)请求;zone;transfer。如果您
漏了这个选项,位於;Internet;的任何人都可以请求这个转换。因为这些资讯常被存心不良的人运用,我强
烈建议您除了到次要;DNS伺服器以外都限制;zone;transfer,或使用;loopback;address,;``127.0.0.1''作为替代。;

现在您可以像在第三步骤组态``/etc/named.conf''档一样,设定位於;``var/named/'';目录的;;DNS;table;。
第一次组态;DNS;资料库档是个大工程,并且超出本文讨论围。有一些线上及印刷品型式的指南应该参考。然而下
面有提供;一些例。;
位於;``/var/named/mydomain_name.db'';正向查询档的例列:;
This;is;the;Start;of;Authority;(SOA);record.;;Contains;contact
&;other;information;about;the;name;server.;;The;serial;number
must;be;changed;whenever;the;file;is;updated;(to;inform;secondary
servers;that;zone;information;has;changed).
@;IN;SOA;mydomain.name.;;postmaster.mydomain.name.;(
19990811;;Serial;number
3600;;;;;;1;hour;refresh
300;;;;;;;5;minutes;retry
172800;;;;2;days;expiry
43200;);;;12;hours;minimum

List;the;name;servers;in;use.;;Unresolved;(entries;in;other;zones)
will;go;to;our;ISP's;name;server;isp.domain.name.com
IN;NS;;;mydomain.name.
IN;NS;;;isp.domain.name.com.

This;is;the;mail-exchanger.;;You;can;list;more;than;one;(if
applicable),;with;the;integer;field;indicating;priority;(lowest
being;a;higher;priority)
IN;MX;;;mail.mydomain.name.

Provides;optional;information;on;the;machine;type;&;operating;system
used;for;the;server
IN;HINFOPentium/350;;;;;LINUX

A;list;of;machine;names;&;addresses
spock.mydomain.name.;;;;IN;A;;;;123.12.41.40;;;;;OpenVMS;Alpha
mail.mydomain.name.;;;;;IN;A;;;;123.12.41.41;;;;;Linux;(main;server)
kirk.mydomain.name.;;;;;IN;A;;;;123.12.41.42;;;;;Windows;NT;(blech!)

Including;any;in;our;other;class;C's
twixel.mydomain.name.;;;IN;A;;;;126.27.18.161;;;;Linux;test;machine
foxone.mydomain.name.;;;IN;A;;;;126.27.18.162;;;;Linux;devel.;kernel

Alias;(canonical);names
gopher;;;;;;IN;CNAMEmail.mydomain.name.
ftp;IN;CNAMEmail.mydomain.name.
www;IN;CNAMEmail.mydomain.name.



位於;``/var/named/123_12.rev'';反向查询档的例列:;
This;is;the;Start;of;Authority;record.;;Same;as;in;forward;lookup;table.
@;IN;SOA;mydomain.name.;;postmaster.mydomain.name.;(
19990811;;Serial;number
3600;;;;;;1;hour;refresh
300;;;;;;;5;minutes;retry
172800;;;;2;days;expiry
43200;);;;12;hours;minimum

Name;servers;listed;as;in;forward;lookup;table
IN;NS;;;mail.mydomain.name.
IN;NS;;;isp.domain.name.com.

A;list;of;machine;names;&;addresses,;in;reverse.;;We;are;mapping
more;than;one;class;C;here,;so;we;need;to;list;the;class;B;portion
as;well.
40.41;;;;;;;IN;PTR;;;;spock.mydomain.name.
41.41;;;;;;;IN;PTR;;;;mail.mydomain.name.
42.41;;;;;;;IN;PTR;;;;kirk.mydomain.name.

As;you;can;see,;we;can;map;our;other;class;C's;as;long;as;they;are
under;the;123.12.*;class;B;addresses
24.42;;;;;;;IN;PTR;;;;tsingtao.mydomain.name.
250.42;;;;;;IN;PTR;;;;redstripe.mydomain.name.
24.43;;;;;;;IN;PTR;;;;kirin.mydomain.name.
66.44;;;;;;;IN;PTR;;;;sapporo.mydomain.name.

No;alias;(canonical);names;should;be;listed;in;the;reverse;lookup
file;(for;obvious;reasons).



任何其他的;reverse;搜寻档需要;map;位址,在不同的;class;B;(像是;126.27.*);会被建立,并且会和上面
的反向查询档更相似。;

确定;named;daemon;正在执行。这个;daemon;通常在系统开机时由``/etc/rc.d/init.d/named'';这个档案启动。;
您也可以手动地启动及停止这个;daemon;;;分别是键入;``named;start'';及;``named;stop''。;

无论对;DNS;table;做了什麽改变,应该键入;``/etc/rc.d/init.d/named;restart''重新启动;DNS;伺服器。
您可以使用像是“nslookup”的工具去询问机器以测试您所做的变更。更多有关如何组态;DNS;服务的资料可以
在位於;http://metalab.unc.edu/Linux/HOWTO/DNS-HOWTO-5.html的;``DNS-HOWTO'';指南上找到

标签: linux