随着公司业务的扩大,服务器的数量也随之变大,在管理上如果还是单独的使用ip来管理,十分的麻烦,而且在某些业务或者软件上,比如使用bi使用Hadoop来进行数据挖掘与日志分析的时候,hadoop集群需求dns配合,如果集群机器少,可以使用/etc/hosts里设置,但如果多的话,使用dns是更好的选择,puppet的应用也是如此,所以我最近研究了一下bind技术,把我的成果分享给大家。
推荐阅读:
CentOS 6.0安装Bind 9.7遇到的问题总结
CentOS 6.2 DNS 服务器搭建 Bind9.7.3
一.介绍
DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
主从的原理为:
原理:主dns服务器上修改完成后重启服务,会主动传送notify值,如果辅助DNS服务器没有收到才参考Refresh,Refresh 不成功,则参考Retry ,Retry 一直不成功, 则参考 Expire,如果Expire也不成功,则选择放弃zone transfer的过程。
二.测试目的
本次测试主要想达到以下2个目的:
1、dns主从;(如master与slave任何一端dns服务断掉,也可以通过从另外一端来解析域名);
2、自动更新;(如果master修改完成信息后,slave也会自动更新);
三.环境
123 IP              status          domain name        system 
192.168.56.104      master          ns1.test.com        centos 6.2 x86_64 
192.168.56.105      slave          ns2.test.com        centos 6.2 x86_64
四、安装
12 在master与slave都是使用yum来安装bind 
yum install bind*
五、配置
A.在master端配置
1、修改/etc/named.conf
此文件注意是提供bind的配置
下面我的master的配置
[root@master ~]# cat /etc/named.conf 
// 
// named.conf 
// 
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS 
// server as a caching only nameserver (as a localhost DNS resolver only). 
// 
// See /usr/share/doc/bind*/sample/ for example named configuration files. 
// 
options { //服务器的全局配置选项及一些默认设置 
listen-on port 53 { any; }; //监听端口,也可写为 { 127.0.0.1; 192.168.56.104; } 
#  listen-on-v6 port 53 { ::1; }; //对ip6支持 
directory  "/var/named"; //区域文件存储目录 
dump-file  "/var/named/data/cache_dump.db"; //dump cach的目录directory 
statistics-file "/var/named/data/named_stats.txt"; 
memstatistics-file "/var/named/data/named_mem_stats.txt"; 
allow-query    { any; }; //指定允许进行查询的主机,当然是要所有的电脑都可以查啦 
recursion yes; //设置进行递归查询 
allow-transfer  { 192.168.56.105;}; //指定允许接受区域传送请求的主机,说明白一点就是辅dns的ip 
dnssec-enable yes; 
dnssec-validation yes; 
dnssec-lookaside auto; 
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key"; 
managed-keys-directory "/var/named/dynamic"; 
}; 
logging { //指定服务器日志记录的内容和日志信息来源 
channel default_debug { 
file "data/named.run"; 
severity dynamic; 
}; 
}; 
zone "." IN { 
type hint; 
file "named.ca"; 
}; 
include "/etc/named.rfc1912.zones"; //包含文件,这里也就是载入/etc/named.rfc1912.zones 
#include "/etc/named.root.key";
注意:红色字体为需要修改的地方。
2、/etc/named.rfc1912.zones
此文件主要是保存正向解析与反向解决配置
下面是我在master里的配置
12345678910111213141516171819202122232425262728293031323334353637383940414243 [root@master ~]# cat /etc/named.rfc1912.zones 
// named.rfc1912.zones: 
// 
// Provided by Red Hat caching-nameserver package 
// 
// ISC BIND named zone configuration for zones recommended by 
// RFC 1912 section 4.1 : localhost TLDs and address zones 
// and  
// (c)2007 R W Franks 
// 
// See /usr/share/doc/bind*/sample/ for example named configuration files. 
// 
#zone "localhost.localdomain" IN { 
#  type master; 
#  file "named.localhost"; 
#  allow-update { none; }; 
#}; 
zone "test.com" IN { 
type master; 
file "named.test.com"; 
notify yes; 
also-notify { 192.168.56.105;}; 
allow-update { none;}; 
allow-transfer { 192.168.56.105; }; 
}; 
#zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { 
#  type master; 
#  file "named.loopback"; 
#  allow-update { none; }; 
#}; 
zone "56.168.192.in-addr.arpa" IN { 
type master; 
file "192.168.56.arpa"; 
#  notify yes; 
#  also-notify { 192.168.56.105;}; 
allow-update { none;}; 
allow-transfer { 192.168.56.105; }; 
}; 
#zone "0.in-addr.arpa" IN { 
#  type master; 
#  file "named.empty"; 
#  allow-update { none; }; 
#};
说到底也就是2个功能:
1、增加一个正向解析的域名test.com,设置类型为master,同时允许在更新时候通知192.168.56.105;
2、增加一个反向节点的ip,同样设置类型为master,也允许在更新时候通知192.168.56.105;
其他不需要的地方你可以删除与注释掉。
3、到/var/named目录下,添加正向解析与反向解析的文件
cd /var/named/ 
cp –p name.localhost  name.test.com 
cp –p name.localhost  192.168.56.arpa
下面是我的master的正向解析配置
[root@master named]# cat named.test.com 
$TTL 1D 
@  IN SOA  ns1.test.com.  root.localhost. (# SOA字段 
2013070814  ; serial # 版本号 同步一次 +1,一般格式为年月日+次数,如果想在master修改一次slve就自动更新,每次修改完后必须+1,也就是说每次想slave同步master,必须保证master的serial比slave的大 
60  ; refresh # 更新时间 
1H  ; retry # 更新失败,重试更新时间 
1W  ; expire#更新失败多长时间后此DNS失效时间 
3H )    ; minimum # 解析不到请求不予回复时间 
NS  ns1.test.com. 
NS  ns2.test.com. 
A  192.168.56.104
server  A  192.168.56.101
client1 A  192.168.56.103
Ubuntu  A  192.168.56.102
ns1 A  192.168.56.104
ns2 A  192.168.56.105
说明
SOA
起始授权机构
此记录指定区域的起点。它所包含的信息有区域名、区域管理员电子邮件地址,以及指示辅 DNS服务器如何更新区域数据文件的设置等。
常用的资源记录类型[3]
A 地址 此记录列出特定主机名的 IP 地址。这是名称解析的重要记录。
CNAME 标准名称 此记录指定标准主机名的别名。
MX邮件交换器此记录列出了负责接收发到域中的电子邮件的主机。
NS名称服务器此记录指定负责给定区域的名称服务器。
