随着公司业务的扩大,服务器的数量也随之变大,在管理上如果还是单独的使用ip来管理,十分的麻烦,而且在某些业务或者软件上,比如使用bi使用hadoop来进行数据挖掘与日志分析的时候,hadoop集群需求dns配合,如果集群机器少,可以使用/etc/hosts里设置,但如果多的话,使用dns是更好的选择,puppet的应用也是如此,所以我最近研究了一下bind技术,把我的成果分享给大家。

一.介绍

DNS 域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

主从的原理为:

原理:主dns服务器上修改完成后重启服务,会主动传送notify值,如果辅助DNS服务器没有收到才参考RefreshRefresh 不成功,则参考Retry Retry 一直不成功则参考 Expire,如果Expire也不成功,则选择放弃zone transfer的过程。

测试目的

本次测试主要想达到以下2个目的:

1、dns主从;(masterslave任何一端dns服务断掉也可以通过从另外一端来解析域名);

2、自动更新;(如果master修改完成信息后,slave也会自动更新);

三.环境

1
2
3
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

四、安装

1
2
在master与slave都是使用yum来安装bind
yum install bind*

五、配置

A.在master端配置

1、修改/etc/named.conf

此文件注意是提供bind的配置

下面我的master的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[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;
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" ;

注意:红色字体为需要修改的地方。




http://dl528888.blog.51cto.com/2382721/1249311