安装DNS服务BIND的全称是Berkeley Internet Name Domain (伯克利因特网名称域系统),BIND是目前最流行的DSN服务器软件,DNS所需软件:bind-9.2.2-21.e20.i386.rpm 查询是否安装BIND软件包[root@hongtu /]# rpm ...
安装DNS服务
BIND的全称是Berkeley Internet Name Domain (伯克利因特网名称域系统),BIND是目前最流行的DSN服务器软件,DNS所需软件:
bind-9.2.2-21.e20.i386.rpm
查询是否安装BIND软件包
[root@hongtu /]# rpm -qa | grep bind
bind-utils-9.2.2-21
redhat-config-bind-2.0.0-14
bind-9.2.2-21 主程序
ypbind-1.12-5
假如没有安装,下载RPM软件包,或者插入Linux光盘,在第二张光盘找到bind软件包,然后安装。
[root@hongtu /] # rpm -ivh bing.*******.rpm
DNS的配置文档
RH9.0 和企业版redhat enterprise 5.0 所在的位置有所区别:
RedHat 9.0 配置文件位置:
DNS需要设置的文档:
/ect/named.conf //主配置文件
/var/named/named.ca //根文件(默认存在)
/var/named/named.local //本地主机反解(默认存在)
/var/named/localhost.one //本地主机正解(默认存在)
在RedHat enterprise 4.0及以上的文档位置在:
/ect/named.conf
/var/named/chroot/etc/named.conf 这里的文件要求和etc下面的一样,假如/etc下没有,可以建立一个符号链接到此,
/var/named/chroot/var/named/ 和上面一样
以下是RedHat 9.0中的默认配置:
options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type slave;
masters { 192.168.220.100; };
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file “named.local”;
};
RedHat enterprise 5.0 不止这些,我们可以吧其他不要的删除,只保留这些内容即可。
配置DNS技巧:
1,确定你所在的域,如https://www.wendangku.net/doc/6c11889969.html,,然后将此域写入到主配置文件named.conf中,表示此DNS刻治理这个区域,并且制定才区域的数据库文件名字和路径。
Zone “区域名” {
Type 类型;
File “区域文件名”;
};
Type字段
master
主DNS服务器;有区域数据文件,提供对此区域的治理
Slave
辅助DNS服务器;拥有DNS的副本,从主DNS下载同步所有区域数据
Stub
和slave类似,但它只复制DNS服务器上的NS记录,
Forward
转发区域,转发DNS查询使用
HINIT
根域名服务器
如:
zone "https://www.wendangku.net/doc/6c11889969.html," {
type master;
file "https://www.wendangku.net/doc/6c11889969.html,";
{;
2,编辑数据库文件添加SOA,NS,A或者PTR记录,
3,启动DNS服务器,
4,测试,
注重,DNS语法要求比较严格,写完再该加的地方加上分号。
案例:
公司所在域为https://www.wendangku.net/doc/6c11889969.html,在该域下有100台主机,一台WEB服务器,一台FTP服务器,加入https://www.wendangku.net/doc/6c11889969.html,域中,要求DNS能够解析所有的主机对于的IP地址,
[root@leng /]# vi /etc/named.conf options { directory "/var/named"; 制定DNS数据库所在目录,pid-file "/var/run/named/named.pid"; 制定DNS,PID(进程号)文件}; ...
[root@leng /]# vi /etc/named.conf
options {
directory "/var/named"; 制定DNS数据库所在目录,
pid-file "/var/run/named/named.pid"; 制定DNS,PID(进程号)文件
};
zone "." IN { 默认存在的根区域,
type hint; type类型为根,
file "named.ca"; 根文件名字和路径(路径/https://www.wendangku.net/doc/6c11889969.html,d/)
};
zone "localhost" IN { 对应本机的正解,这在/etc/hosts文件也存在,为什么我们能用localhost访问本机的原因在此。
type master; 类型为主DNS
file "localhost.zone"; 数据库文件名及其路径。
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN { 对于本机反解,IP到域名,注重反解的写法IP反写".in-addr.arpa"结尾。
type master; 同上
file “named.local”;同上
};
下面在里面添加正解区域:
zone "https://www.wendangku.net/doc/6c11889969.html," { 定义DNS能够治理的区域格式为zone "区域名"
type master; 类型为主DNS
file "https://www.wendangku.net/doc/6c11889969.html,.zone" 区域文件名(自己定义)及路径(/var/named)
};
下面在里面添加反解区域,反解IP写法:如所有主机在一个IP段192.168.1.0/24则可写为"1.168.192.in-addr.arpa",假如有网络有两个段192.168.1.0/24和192.168.2.0/24,则可以这样写“168.192.in-addr.arpa"
zone "1.168.192.in-addr.arpa" {
type master;
file "192.168.1.zone"
};
这样https://www.wendangku.net/doc/6c11889969.html,这个区域我们就写好了,此时DNS可以治理这个区域,但是当他们去解析的时候要找我们定义的文件,所有我还要去建立区域文件,并且添加相应记录,区域文件(数据库文件)在/var/named/下定义,文件名要和主配置文件的file 字段定义的文件名相同哦,
# cd /var/named
#ls
named.ca localhost.zone named.local 默认的文件,5.0中可能不止这几个,
在这个目录下建立区域文件,
#touch https://www.wendangku.net/doc/6c11889969.html,.zone
#touch 192.168.1.zone
下面开始编辑区域文件,添加素材记录,我们添加在此文件里面的素材记录包括:
SOA素材记录:
SOA为起始授权记录,最重要常用的素材记录,当DNS加载服务器配置区域的时候,使用SOA和NS确定区域的授权属性,SOA 和NS任何区都需要的素材记录,并且在文件中列出的第一个素材记录,SOA处于任何标准区域的第一位,表示了最初创建它的DNS服务器,
SOA素材记录语法:
区域名(当前的)记录类型 SOA 主域名服务区器的FQDN(或者DNS的主机名)治理员邮件地址(
序列号
刷新间隔
重试间隔
过期时间
TTL
)
https://www.wendangku.net/doc/6c11889969.html,. IN SOA https://www.wendangku.net/doc/6c11889969.html,. https://www.wendangku.net/doc/6c11889969.html,. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry 1D ) ; minimum 字段...
1W ; expiry
1D ) ; minimum
字段描述
主域名服务器区域主DNS服务器的FQDN
治理员治理区域负责人的电子邮件,用“. ”代替AT @ ,
序列号该区域文件的修订版本号,每一次素材记录的改变这个数字会增加,
刷新间隔以秒计算,辅助DNS与主DNS等待同步的时间
重试间隔以秒计算,辅助DNS哀求失败后等待多长时间再次哀求区域传输,这个时间要比刷新时间短。
过期时间当辅助DNS还没有与主DNS服务器连接的时候,辅助DNS吧自己的本地数据当做不可靠数据
TTL 区域缓存的默认保存时间,假如$TTL没有定义以这里为准,
NS记录
用于指定区域的权威服务器,通过在NS中列出服务器的名字,其他主机认为它就该区域权威服务器,并且能应答区域内所含名称的查询
NS素材记录语法:
区域名 IN NS 完整主机名(FQDN)
https://www.wendangku.net/doc/6c11889969.html, IN NS https://www.wendangku.net/doc/6c11889969.html,
A记录
A记录使用较为频繁,作用是将制定的主机名解析为对应的IP地址,
A记录语法:
https://www.wendangku.net/doc/6c11889969.html, IN A 192.168.220.100
PTR记录
相对于A记录,将IP映射为域名,如:
100 IN PTR https://www.wendangku.net/doc/6c11889969.html, //这里IP写最后的那一个字节,前面的192.168.1我们已经定义了,完整的就是192.168.1.100 对于的域名是https://www.wendangku.net/doc/6c11889969.html,
编辑区域文件
#vi https://www.wendangku.net/doc/6c11889969.html,.zone
建立正向解析文件:
#cd /var/named/
#touch https://www.wendangku.net/doc/6c11889969.html,
#ivi https://www.wendangku.net/doc/6c11889969.html,
$TTL 86400 //区域缓存保存的时间
$ORIGIN https://www.wendangku.net/doc/6c11889969.html,. 定义起源,及下面对应的是那个区域,可不定义,则默认使用主配置文件的zone定义的,
@ IN SOA https://www.wendangku.net/doc/6c11889969.html,. root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
@ IN NS https://www.wendangku.net/doc/6c11889969.html,.
https://www.wendangku.net/doc/6c11889969.html,. IN A 192.168.1.254
www IN A 192.168.1.100 (定义web服务器地址此时可简写,自动添加(https://www.wendangku.net/doc/6c11889969.html,)完整为https://www.wendangku.net/doc/6c11889969.html,)
ftp IN A 192.168.1.101 同上
..............
@代表区域名,即使$ORIGIN 定义的,$ORIGIN 没有定义使用zone 后面定义的区域名,治理员的邮件地址我们可以简写为root,root本来定义为root@https://www.wendangku.net/doc/6c11889969.html,,但是这里不能用@,可以简写为root
以上是正向解析文件,
下面我们写反向解析文件:
# vi 192.168.1.zone
[root@leng named]# vi 192.168.1.zone
$TTL 86400
@ IN SOA https://www.wendangku.net/doc/6c11889969.html,. root ( 42 ; Serial 28800 ; Refresh 1440 ...
@ IN SOA https://www.wendangku.net/doc/6c11889969.html,. root (
42 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS https://www.wendangku.net/doc/6c11889969.html,.
254 IN PTR https://www.wendangku.net/doc/6c11889969.html,.
100 IN PTR https://www.wendangku.net/doc/6c11889969.html, (注重反解域名要写全)
101 IN PTR https://www.wendangku.net/doc/6c11889969.html,
...............
写完保存退出,
启动DNS
# service named start
修改自己的DNS服务器地址为本机,
# echo "nameserver 192.168.1.254" >/etc/resolv.conf
测试:
[root@hongtu named]# nslookup https://www.wendangku.net/doc/6c11889969.html,
Note: nslookup is deprecated and may be removed from future releases. Consider using the `dig' or `host' programs instead. Run nslookup with the `-sil[ent]' option to prevent this message from appearing. Server: 192.168.1.254
Address: 192.168.1.254#53
Name: https://www.wendangku.net/doc/6c11889969.html,
Address: 192.168.1.100
[root@hongtu named]# nslookup https://www.wendangku.net/doc/6c11889969.html,
Note: nslookup is deprecated and may be removed from future releases. Consider using the `dig' or `host' programs instead. Run nslookup with the `-sil[ent]' option to prevent this message from appearing. Server: 192.168.1.254
Address: 192.168.1.254#53
Name: https://www.wendangku.net/doc/6c11889969.html,
Address: 192.168.1.101
此时DNS服务器配置成功