本文以Red Hat Enterprise Linux AS v4为平台
一、资料参考与准备:
DNS 是指:域名服务器(Domain Name Server)。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
一些标记解释:
@ ----这个符号意味着SOA与域是一样的
IN -----IN是提供IP地址的域名类当,与A,PTR或CNAME记录一起使用时可将域名映射为IP地址,反之一样 NS -----域名服务器指定的区域DNS服务器的域名或IP地址
MX ----MX记录定义何种机器来为域或单个主机传送电子邮件,为域定义就是告诉每个人将邮件发送给该域中要与之通信的人或机器
SOA-----Start Of Authority 指明其后的域名定义了主域名服务器及该域的联系点的电子邮件地址。
PTR---将IP地址映射为主机名,PTR记录执行与A及记录相反的过程
A----将主机名映射为其IP地址
先从 http://www.isc.org/products/BIND/ 下载bind安装包或者光盘中/cdrom/RedHat/RPMS可以找到相关的安装包。
二、服务器的安装与配置
#rpm -ivh bind*.rpm
#vi /etc/name.conf
------------------------------------
directory "/var/named";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone" ;
allow-update { none; };
};
zone "xuanfei.net" IN {
type master;
file "test.net”
allow-update { none;};
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "63.45.10.in-addr.arpa" IN {
type master;
file "10.45.63";
-----------------------------------------------------------
#vi test.zone
-----------------------------------------------------------
$ttl 1D
@ IN SOA linux.xuanfei.net. root.xuanfei.net. (
1053891162
3H
15M
1W
1D )
IN NS xuanfei.net.
IN MX 5 mail.xuanfei.net.
www IN A 10.45.63.185
it IN A 10.45.63.188
--------------------------------------------------------------------------------
#vi /var/named/10.45.63
--------------------------------------------------------------------------------
@ IN SOA linux.xuanfei.net. root.xuanfei.net. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS linux.xuanfei.net.
--------------------------------------------------------------------------------
主要配置文件解释:
#rpm -ql bind|More
列出该软件包的所有文件和位置。
配置文件一般在/etc/named.conf
数据库文件一般在/var/named下
以下是这次配置DNS服务器的几个配置文件:
/etc/named.conf
/在NAMED.CONF配置文件中使用//和/* */来进行注释,
ptions { /*OPTIONS选项用来定义一些影响整个DNS服务器的环境,如这里的DI RECTORY用来指定在本文件指定的文件的路径,如这里的是将其指定到 /var/named 下,在这里你还可以指定端口等等。不指定则端口是53
*/
directory "/var/named";
}; //
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN { //在这个文件中是用zone关键字来定义域区的,一个zone关键字定义一个域区
type hint;
/*在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:
master:表示定义的是主域名服务器
slave :表示定义的是辅助域名服务器
hint:表示是互联网中根域名服务器
*/
file "named.ca"; //用来指定具体存放DNS记录的文件
};
zone "localhost" IN { //定义一具域名为localhost的正向区域
type master;
file "localhost.zone" ;
allow-update { none; };
};
zone "xuanfei.net" IN { //指定一个域名为test.net的正向区域
type master;
file "test.net”
allow-update { none;};
};
zone "0.0.127.in-addr.arpa" IN { //定义一个IP为127.0.0.*的反向域区
type master;
file "named.local";
allow-update { none; };
};
zone "63.45.10.in-addr.arpa" IN { //定义一个IP为10.45.63.*反向域区
type master;
file "10.45.63";
/var/named/test.net文件
@ IN SOA linux.test.net. root.test.net. ( SOA表示授权开始
/* 上面的IN表示后面的数据使用的是INTERNET标准。而@则代表相应的域名,如在这里代表test.net,即表示一个域名记录定义的开始。而 linux.test.net则是这个域的主域名服务器,而webmaster.test.net则是管理员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始
*/
2003012101 ; serial (d. adams) /*本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。
*/
28800 ; refresh
/*定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
*/
7200 ;retry
/*上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试
*/
3600000 ; expiry
/*上面这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的
*/
8400 )
/*上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记
录
*/
IN NS linux
IN MX 10 linux
linux IN A 10.45.63.185
it IN A 10.45.63.188
www IN CNAME linux
/*上面的第一列表示是主机的名字,省去了后面的域。
NS:表示是这个主机是一个域名服务器,
A:定义了一条A记录,即主机名到IP地址的对应记录
MX 定义了一邮件记录
CNAME:定义了对应主机的一个别名
/var/named/10.45.63
@ IN SOA linux.xuanfei.net. root.xuanfei.net. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS linux.xuanfei.net.
/*以上的各关键字的含义跟xuanfei.net是相同的
185 IN PTR linux.xuanfei.net.
188 IN PTR it.xuanfei.net.
/*
上面的第一列表示的是主机的IP地址。省略了网络地址部分。如185完整应该是:
10.45.63.185
PTR:表示反向记录
最后一列表示的是主机的域名。
三、启用与测试
启动服务:
#/etc/init.d/named startd
测试工具:
linux:host dig ping
win:ping nslookup
客服端配置:
linux:修改/etc/resolv.conf
win:双击本地连接==》打开TCP/IP属性==》选中自定义DNS服务器地址
四、小结
DNS 服务看上去简单,但其实里边是一大学问,想要搞清楚里边的细节,还得花很大的功夫!其应用也非常广可用在电信的的交换技术上、也可应用在IPv6 的 Anycasting 上 、 Net to Net 的 VPN 等领域。还有重要的安全防范领域!还我们继续努力学习啊!:)