Linux上的DNS服务器配置一直是一个令我头疼的问题,我多次尝试也不得其精髓,这一次终于彻底搞清了其机制,其实这一套配置并不复杂,主要只涉及到两个文件,只需要按照我下面所说的去做,肯定一次搞定。另外,我还为大家提供了我们etran公司的配置实例,大家只需要稍加修改,就可以轻松完成所有的配置工作(当然,希望你首先对Linux的工作方式和风格要比较了解,最好对vi也同样清楚,虽然这些条件实并非必须)。
首先,让我们弄清楚我们需要处理的文件及其所在位置:
/etc/named.conf
/etc/host.conf
/etc/resolv.boot
/etc/hosts
/etc/named.boot
/var/named/named.ca
/var/named/named.hosts
/var/named/named.local
/var/named/named.rev
一共有9个文件,其中关键的是两个:“/etc/named.conf”和“/var/named/named.hosts”。前者是域名解析配置文件,后者为域配置文件。
首先我们看一下"/etc/named.conf"文件的语法和作用。以我们服务器上的配置为例:
――――――――――――――――――――――――――――――――――――
/*
* A simple BIND 8 configuration
*/
options {
directory "/var/named";
# forwarders {
# 192.168.192.100;
# };
# forward only;
};
#logging {
# category lame-servers { null; };
# category cname { null; };
#};
zone "etran.com" in {
type master;
file "named.hosts";
};
zone "192.168.192.in-addr.arpa" in {
type master;
file "named.rev";
};
zone "." in {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "named.local";
};
――――――――――――――――――――――――――――――――――――
options一段中的directory是在指示最后4个文件的位置,而forwarders则是指示是哪一台机器将不能解析的域名转发到上级DNS服务器上。关键的是几个zone段,格式如上。最重要的是带有“etran.com”字样的段。需要注意的是:该段中将etran.com换成您需要的域名,下面的file段表示对应于该域的文件,当然该文件在directory定义的/etc/named目录中。
另外,我们还要体会一下反向域的概念。DNS其实就是域名对应于IP地址,而反向域则正好相反,即将IP地址对应于域名,也就是说对给定的IP地址解析出其域名,这样可以解决IP欺骗的问题。反向域的特征就是最后两个段是以in-addr.arpa结尾,另外,前面段中的IP地址是要反向来读的,比如说0.0.127.in-addr.arpa对应的其实是127.0.0.X之类的IP地址。
下面是我们的主要任务,对“/var/named/named.hosts”文件要稍微理解一下。这一文件主要负责将DNS域名映射为IP地址。配置实例如下:
―――――――――――――――――――――――――――――――――――――――
@ IN SOA ns.etran.com. root.etran.com. (
800006 ; serial number
86400 ; Refresh interval, every 24 hours
300 ; Retry interval, every 5 minutes
2592000 ; 30 days TTL
86400 ) ; 24 hours expiration
IN NS ns.etran.com.
IN MX 1 mail.etran.com.
ns IN A 192.168.192.100
www IN CNAME ns.etran.com.
mail IN CNAME ns.etran.com.
ftp IN CNAME ns.etran.com.
smtp IN CNAME ns.etran.com.
pop3 IN CNAME ns.etran.com.
localhost IN A 127.0.0.1
―――――――――――――――――――――――――――――――――――――
其中IN表示使用的是TCP/IP协议;
上面的"NS"记录说明了本域("etran.com")的域名服务器地址为“192.168.192.100”;
"MX"记录说明本域的邮件服务器地址,后面的1就是表示顺序,顺序小的优先使用。
接下来的"A"记录简单地将DNS名映射为IP地址。
最后的"CNAME"记录的是"别名",这是在说www.etran.com、mail.etran.com、ftp.etran.com等都是指向"192.168.192.100"这一台主机。
最后一句是本地机器名的IP为127.0.0.1。
以上配置完毕后,重启后台守护进程named
以root身份运行
/etc/rc.d/init.d/named restart。
一切OK