要想使用DNS服务进行解析,需要安装bind、bind-libs、bind-utils这三个程序包。
bind:
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
解析库文件:/var/named/ZONE_NAME.ZONE
注意:
(1) 一台物理服务器可同时为多个区域提供解析;
(2) 必须要有根区域文件;named.ca
(3) 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库;
主配置文件:
全局配置:options{}
日志子系统配置:logging{}
区域定义:本机能够为哪些zone进行解析,就要定义哪些zone;
zone "ZONE_NAME" IN {}
注意:任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上;
缓存名称服务器的配置:
监听外部地址即可;
dnssec:
建议测试时关闭dnssec;
定义主DNS服务器:
(1) 在主配置文件中定义区域
zone "ZONE_NAME" IN {
type {master|slave|hint|forward}; #区域的类型
file "ZONE_NAME.zone";
};
例如:
zone "lcs.com" IN { type master; #master:主区域,slave:从服务器,hint:根提示域,forward:转发器 file "lcs.zone"; #区域解析库文件所在位置,一般在目录/var/named/下 };
(2) 定义区域解析库文件
出现的内容:
宏定义;
资源记录;
例如:
$TTL 1D @ IN SOA dns1.lcs.com. lcs.www.lcs.com. ( 20150914005 2H 2M 2D 2D) @ IN NS dns1.lcs.com. @ IN NS dns2.lcs.com. @ IN MX 2 mail.lcs.com. dns1 IN A 172.16.125.125 mail IN A 172.16.125.125 dns2 IN A 172.16.125.126 www IN A 172.16.125.120 web1 IN A 172.16.125.125 web2 IN A 172.16.125.125 web IN CNAME www
在上面定义完成之后,使用dig命令进行测试:
[root@localhost ~]# dig -t a web.lcs.com @172.16.125.125 #查看web.lcs.com的A记录
[root@localhost ~]# dig -t ns lcs.com @172.16.125.125 #查看lcs.com的NS记录
定义反向解析区域:
区域名称:网络地址反写.in-addr.arpa.
172.16.100. --> 100.16.172.in-addr.arpa.
(1) 定义区域
zone "ZONE_NAME" IN {
type {master|slave|forward};
file "网络地址.zone"
};
例如:
zone "125.16.172.in-addr.arpa" IN { type master; file "lcs.172.16.125"; #反向区域解析库文件所在位置,一般在目录/var/named/下 };
(2) 区域解析库文件
注意:不需要MX和A,以及AAAA记录;以PTR记录为主;
例如:
$TTL 1D @ IN SOA dns1.lcs.com. admin.lcs.com. ( 20150914001 3H 15M 1W 1D ) IN NS dns1.lcs.com. IN NS dns2.lcs.com. 125 IN PTR dns1.lcs.com. 125 IN PTR mail.lcs.com. 126 IN PTR dns2.lcs.com.
使用dig命令进行查看:
[root@localhost ~]# dig -x 172.16.125.125 @dns1.lcs.com #-x是只能用来检测反向解析的
DNS主从服务:
应该遵循的规则:
1、应该为一台独立的名称服务器;
2、主服务器的区域解析库文件中必须有一条NS记录是指向从服务器;
3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中;
4、主服务器得允许从服务器作区域传送;
5、主从服务器时间应该同步,可通过ntp进行;
6、bind程序的版本应该保持一致;否则,应该从高,主低;
定义主服务器区域:
在主配置文件中:
zone "lcs.com" IN { type master; file "lcs.zone"; allow-transfer{ 172.16.125.126; }; #允许哪一台主机进行解析库文件的传送 };
注意:在主服务器上要提供库解析文件。
定义从服务器区域:
在定义从服务器区域的时候,只需要的在主配置文件中定义区域,而不需要提供库文件。
在从服务器的主配置文件中:
zone "lcs.com" IN { type slave; #类型为slave,即从服务器 file "slaves/lcs.zone"; #定义传送过来的库解析文件位置,要在slaves下,如果不在此目录下,则要进行目录权限相关属性的修改 masters { 172.16.125.125; }; #定义主服务器的IP地址
以上就定义了一个主服务器和一个从服务器,在主服务器上,reload named服务,在从服务器上/var/named/slaves/目录下就能够找到主服务器传送过来的解析库文件了。
rndc命令:
安装完bind包时,默认安装了rndc该软件,并且服务器会监听在tcp协议的953端口上。
rndc不允许远程连接,要求客户端和服务器端在同一台主机上。
使用方式:
rndc Command
Command的方式:
reload: 重载主配置文件和区域解析库文件
reload zone: 重载区域解析库文件
retransfer zone: 手动启动区域传送过程,而不管序列号是否增加;
notify zone: 重新对区域传送发通知;
reconfig: 重载主配置文件
querylog: 开启或关闭查询日志;
trace: 递增debug级别;
trace LEVEL: 指定使用的级别;