智能DNS那些事(基于bind9 view的主从配置)
2013-02-16 13:19
344 查看
一.智能DNS简介
智能DNS是域名频道在业界首创的智能解析服务。能自动判断访问者的IP地址并解析出对应的IP地址,使网通用户会访问到网通服务器,电信用户会访问到电信服务器。智能DNS就是根据用户的来路,自动智能化判断来路IP返回给用户,而不需要用户进行选择。解决南北互联问题
二.软件及环境
Red hat 5.4×64 Bin9 主192.168.10.45 辅 192.168.10.44
三.安装配置
1. bind的安装
下载bind
wget ftp://ftp.isc.org/isc/bind/9.8.0-P4/bind-9.8.0-P4.tar.gz
可直接从官网下载最新bind http://www.isc.org/software/bind
其中–libdir=/usr/lib64 可以根据自己系统来设定,32位使用–libdir=/usr/lib
编译安装(主从相同)
./configure –prefix=/usr –exec-prefix=/usr –bindir=/usr/bin –sbindir=/usr/sbin –sysconfdir=/etc –datadir=/usr/share –includedir=/usr/include –libdir=/usr/lib64 –libexecdir=/usr/libexec –localstatedir=/var –sharedstatedir=/usr/com –mandir=/usr/share/man –infodir=/usr/share/info –with-libtool –localstatedir=/var –enable-threads –with-openssl=no –enable-epoll
make –j 24
make install
2. 基础配置文件生成
生成rndc.conf
rndc-confgen > /etc/rndc.conf
生成named.conf
cat /etc/rndc.conf |tail |head -9 |sed “s/^#//g” > /etc/named.conf
域名文件目录
mkdir /var/named/chinanet –p
mkdir /var/named/cnc -p
useradd named
生成根域文件
dig -t NS . >/var/named/named.root
ip库文件
开始找以前同事要的,后来发现网上可以找到 http://liubaishui.com/下载其它的bind view IP库 (netlist.inc)
主DNS配置及简要说明(建议仔细阅读,配置时如果不需要说明,可以过滤掉以”;”开始的行)
view会根据定义顺序在定义的IP列表查找,将相应结果返回请求者。这次测试分为三部分,网通、电信、其它、如果请求者的IP不能匹配到,那么将会被“其它”匹配。
cat /etc/named.conf
options {
directory “/var/named”;
;这里可以添加其它控制参数,比如IP限制,可否递归查询等。请根据自己的生产需要添加
};
; rndc-key 用于控制DNS
key “rndc-key” {
algorithm hmac-md5;
secret “Mq+WZABoE+a/FFwgFYh3oQ==”;
};
;以下这三个key 用于主从同步。如果不设置会出现只会同步一个域。因为view已经可以匹配到结果。而且同步回来的数据可能会是错误的,这取决于从DNS同步时IP。本文中使用内网IP,IP列表中不会有内网IP,所以会同步other域名的数据。
;key的生成方法:使用 rndc-confgen命令。使用下面的命令即可。只输出key部分。将其名称做下修改即可。有多少个view域就生成多少个。主从DNS使用的key必须相同。
; rndc-confgen |grep “# key” -A3|sed “s/^# //g”
key “cnc” {
algorithm hmac-md5;
secret “wPaGrqLp0XtAepn8Rc0U3w==”;
};
key “chinanet” {
algorithm hmac-md5;
secret “i+uKnzR3JfSheMVLNWUH5Q==”;
};
key “other” {
algorithm hmac-md5;
secret “3o9OOMjzusp+M82okFcWyA==”;
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { “rndc-key”; };
};
;acl.conf即为下载回来的ip库。将其命名为acl.conf。其中cnc和chinanet为大写,我手动修改成了小写。如果写随意,记得其中acl的定义的名称就OK。如果拿不到ip库文件,可以邮件给我.learywolf@163.com内容示例如下。(下面的acl定义 在acl.conf中定义,这里只是示意,不要写在named.conf中)
; acl “cnc” {
; 1.24.0.0/13;
; 1.56.0.0/13;
; 1.188.0.0/14;
; ……………..
; 14.204.0.0/15;
; 27.8.0.0/13;
; };
; acl “chinanet” {
; 1.0.1.0/24;
; ……….
; 1.0.2.0/23;
; };
include “/etc/acl.conf”;
; view 部分 三部分中会顺序匹配,我的配置顺序,电信→网通→其它
view “chinanet” {
; match-clients 定义了来源的IP。如果请求IP在chinanet 的acl中,那调用此view配置。其中添加的key为了实现主从同步
match-clients { key “chinanet” ; chinanet; };
;server指定从dns的IP及所用key 以区分不同 view域。同理从dns指定主。
server 192.168.10.44 { keys “chinanet”;};
;指定根域文件 .
zone “.” IN {
type hint;
file “named.root”;
};
;加载chinanet.conf,其内容为常规dns配置。示例如下.注意三个view域要有三个不同的zone文件。如果不需要view 可以直接定义view控制文件中调用相同的zone文件。简单的说就是 cnc.con chinanet.conf other.conf中调用相应zone配置。当然,也可以只在other.conf中定义。这样只能在other.conf中匹配到相应的解析信息。但不推荐这样。其它配置不再赘述。可以查阅官方文档。
; zone “leary.com” IN {
; type master;
; file “chinanet/leary.com.dns”;
; };
include “/etc/chinanet.conf”;
notify yes;
also-notify { 192.168.10.44; };
allow-transfer { 192.168.10.44; };
};
view “cnc” {
match-clients { key “cnc” ;cnc; };
server 192.168.10.44 { keys “cnc”;};
zone “.” IN {
type hint;
file “named.root”;
};
include “/etc/cnc.conf”;
notify yes;
also-notify { 192.168.10.44; };
allow-transfer { 192.168.10.44; };
};
view “other” {
match-clients { key “other” ; any; };
server 192.168.10.44 { keys “other”;};
zone “.” IN {
type hint;
file “named.root”;
};
include “/etc/other.conf”;
notify yes;
also-notify { 192.168.10.44; };
allow-transfer { 192.168.10.44; };
};
;end
3. view域配置文件
/etc/cnc.conf
/etc/chinanet.conf
/etc/other.conf
分别配置其内容,需要注意:
zone “leary.com” IN {
type master;
file “cnc/leary.com.dns”;
};
1) type类型,主或者从
2) zone文件位置。基础目录为/var/named. 其中对应域名解析到的IP为别定义在不同的域文件中
3) cnc 的zone放在/var/named/cnc/下,chinanet 放在/var/named/chinanet/下,other放在/var/named/下
4. zone 文件
根据需要配置域文件。
cat /var/named/leary.com.dns
$TTL 86400
@ IN SOA ns.leary.com. root.leary.com. (
6 ; serial_num
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.leary.com.
@ IN A 10.1.4.165
ns IN A 10.1.4.164
www IN A 10.1.4.164
cat /var/named/cnc/leary.com.dns
$TTL 86400
@ IN SOA ns.leary.com. root.leary.com. (
6 ; serial_num
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.leary.com.
@ IN A 10.1.2.165
ns IN A 10.1.2.164
www IN A 10.1.2.164
cat /var/named/chinanet/leary.com.dns
$TTL 86400
@ IN SOA ns.leary.com. root.leary.com. (
6 ; serial_num
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.leary.com.
@ IN A 10.1.3.165
ns IN A 10.1.3.164
www IN A 10.1.3.164
5. 从DNS与主的配置区别
1) named.conf 中server的配置。 server 192.168.10.45 { keys “chinanet”;};
2) view配置文件。以cnc.conf为例
zone “leary.com” IN {
type slave;
file “slaves/cnc/leary.com.dns”;
masters { 192.168.10.45; };
};
type 类似型为 slave
file 指定的文件位置,当然也可以按主DNS那样配置,我这里只是为了区分。
3) key 定义一定要和主一样
4) 从DNS的zone文件不用配置。可以直接从主同步
6. 权限修改
chown -R named:named /var/named
chown -R named /var/run/named
四.启动脚本及命令
1. 启动脚本。基于rhel 其它系统需要另行修改.放在/etc/init.d/named
脚本见附件
chown +x /etc/init.d/named
chkconfig –add named
chkconfig named on
2. named-checkconf 检查dns配置正确性
3. rndc reconfig 重加载dns配置
4. named-checkzone leary.com /var/named/leary.com.dns 重要zone配置文件
5. rndc reload leary.com in cnc 重加载cnc 对应的zone文件配置
6. rndc reload leary.com in chinanet 重加载chinanet 对应的zone文件配置
7. rndc reload leary.com in other 重加载other 对就的zone文件配置
至此,可以启动dns了。
/etc/init.d/named configtest
/etc/init.d/named start
日志在/var/log/message,如遇问题,根据其中报错排查
已知问题:
会有报错如下
managed-keys-zone ./IN/chinanet: loading from master file 0eb205490a59454b6f6feb085efc6b0dab64a63f855a77e2d200c59ed055acd0.mkeys failed: file not found
touch /var/named/managed-keys.bind 依旧会报,目前没找到解决办法。但测试不影响使用。
测试方法:
由于基于内网,可以分别修改acl.conf,添加192.168.0.0/16;在对应的acl中,用其它内网机器 dig 结果,正常可以得到不同的解析结果。我这里设置的,cnc为10.1.2 网段,chinanet 10.1.3网段 other 10.1.4网段。有问题可以留言或才邮件给我。learywolf@163.com
出处:http://blog.chinaunix.net/uid-14880689-id-3201959.html
智能DNS是域名频道在业界首创的智能解析服务。能自动判断访问者的IP地址并解析出对应的IP地址,使网通用户会访问到网通服务器,电信用户会访问到电信服务器。智能DNS就是根据用户的来路,自动智能化判断来路IP返回给用户,而不需要用户进行选择。解决南北互联问题
二.软件及环境
Red hat 5.4×64 Bin9 主192.168.10.45 辅 192.168.10.44
三.安装配置
1. bind的安装
下载bind
wget ftp://ftp.isc.org/isc/bind/9.8.0-P4/bind-9.8.0-P4.tar.gz
可直接从官网下载最新bind http://www.isc.org/software/bind
其中–libdir=/usr/lib64 可以根据自己系统来设定,32位使用–libdir=/usr/lib
编译安装(主从相同)
./configure –prefix=/usr –exec-prefix=/usr –bindir=/usr/bin –sbindir=/usr/sbin –sysconfdir=/etc –datadir=/usr/share –includedir=/usr/include –libdir=/usr/lib64 –libexecdir=/usr/libexec –localstatedir=/var –sharedstatedir=/usr/com –mandir=/usr/share/man –infodir=/usr/share/info –with-libtool –localstatedir=/var –enable-threads –with-openssl=no –enable-epoll
make –j 24
make install
2. 基础配置文件生成
生成rndc.conf
rndc-confgen > /etc/rndc.conf
生成named.conf
cat /etc/rndc.conf |tail |head -9 |sed “s/^#//g” > /etc/named.conf
域名文件目录
mkdir /var/named/chinanet –p
mkdir /var/named/cnc -p
useradd named
生成根域文件
dig -t NS . >/var/named/named.root
ip库文件
开始找以前同事要的,后来发现网上可以找到 http://liubaishui.com/下载其它的bind view IP库 (netlist.inc)
主DNS配置及简要说明(建议仔细阅读,配置时如果不需要说明,可以过滤掉以”;”开始的行)
view会根据定义顺序在定义的IP列表查找,将相应结果返回请求者。这次测试分为三部分,网通、电信、其它、如果请求者的IP不能匹配到,那么将会被“其它”匹配。
cat /etc/named.conf
options {
directory “/var/named”;
;这里可以添加其它控制参数,比如IP限制,可否递归查询等。请根据自己的生产需要添加
};
; rndc-key 用于控制DNS
key “rndc-key” {
algorithm hmac-md5;
secret “Mq+WZABoE+a/FFwgFYh3oQ==”;
};
;以下这三个key 用于主从同步。如果不设置会出现只会同步一个域。因为view已经可以匹配到结果。而且同步回来的数据可能会是错误的,这取决于从DNS同步时IP。本文中使用内网IP,IP列表中不会有内网IP,所以会同步other域名的数据。
;key的生成方法:使用 rndc-confgen命令。使用下面的命令即可。只输出key部分。将其名称做下修改即可。有多少个view域就生成多少个。主从DNS使用的key必须相同。
; rndc-confgen |grep “# key” -A3|sed “s/^# //g”
key “cnc” {
algorithm hmac-md5;
secret “wPaGrqLp0XtAepn8Rc0U3w==”;
};
key “chinanet” {
algorithm hmac-md5;
secret “i+uKnzR3JfSheMVLNWUH5Q==”;
};
key “other” {
algorithm hmac-md5;
secret “3o9OOMjzusp+M82okFcWyA==”;
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { “rndc-key”; };
};
;acl.conf即为下载回来的ip库。将其命名为acl.conf。其中cnc和chinanet为大写,我手动修改成了小写。如果写随意,记得其中acl的定义的名称就OK。如果拿不到ip库文件,可以邮件给我.learywolf@163.com内容示例如下。(下面的acl定义 在acl.conf中定义,这里只是示意,不要写在named.conf中)
; acl “cnc” {
; 1.24.0.0/13;
; 1.56.0.0/13;
; 1.188.0.0/14;
; ……………..
; 14.204.0.0/15;
; 27.8.0.0/13;
; };
; acl “chinanet” {
; 1.0.1.0/24;
; ……….
; 1.0.2.0/23;
; };
include “/etc/acl.conf”;
; view 部分 三部分中会顺序匹配,我的配置顺序,电信→网通→其它
view “chinanet” {
; match-clients 定义了来源的IP。如果请求IP在chinanet 的acl中,那调用此view配置。其中添加的key为了实现主从同步
match-clients { key “chinanet” ; chinanet; };
;server指定从dns的IP及所用key 以区分不同 view域。同理从dns指定主。
server 192.168.10.44 { keys “chinanet”;};
;指定根域文件 .
zone “.” IN {
type hint;
file “named.root”;
};
;加载chinanet.conf,其内容为常规dns配置。示例如下.注意三个view域要有三个不同的zone文件。如果不需要view 可以直接定义view控制文件中调用相同的zone文件。简单的说就是 cnc.con chinanet.conf other.conf中调用相应zone配置。当然,也可以只在other.conf中定义。这样只能在other.conf中匹配到相应的解析信息。但不推荐这样。其它配置不再赘述。可以查阅官方文档。
; zone “leary.com” IN {
; type master;
; file “chinanet/leary.com.dns”;
; };
include “/etc/chinanet.conf”;
notify yes;
also-notify { 192.168.10.44; };
allow-transfer { 192.168.10.44; };
};
view “cnc” {
match-clients { key “cnc” ;cnc; };
server 192.168.10.44 { keys “cnc”;};
zone “.” IN {
type hint;
file “named.root”;
};
include “/etc/cnc.conf”;
notify yes;
also-notify { 192.168.10.44; };
allow-transfer { 192.168.10.44; };
};
view “other” {
match-clients { key “other” ; any; };
server 192.168.10.44 { keys “other”;};
zone “.” IN {
type hint;
file “named.root”;
};
include “/etc/other.conf”;
notify yes;
also-notify { 192.168.10.44; };
allow-transfer { 192.168.10.44; };
};
;end
3. view域配置文件
/etc/cnc.conf
/etc/chinanet.conf
/etc/other.conf
分别配置其内容,需要注意:
zone “leary.com” IN {
type master;
file “cnc/leary.com.dns”;
};
1) type类型,主或者从
2) zone文件位置。基础目录为/var/named. 其中对应域名解析到的IP为别定义在不同的域文件中
3) cnc 的zone放在/var/named/cnc/下,chinanet 放在/var/named/chinanet/下,other放在/var/named/下
4. zone 文件
根据需要配置域文件。
cat /var/named/leary.com.dns
$TTL 86400
@ IN SOA ns.leary.com. root.leary.com. (
6 ; serial_num
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.leary.com.
@ IN A 10.1.4.165
ns IN A 10.1.4.164
www IN A 10.1.4.164
cat /var/named/cnc/leary.com.dns
$TTL 86400
@ IN SOA ns.leary.com. root.leary.com. (
6 ; serial_num
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.leary.com.
@ IN A 10.1.2.165
ns IN A 10.1.2.164
www IN A 10.1.2.164
cat /var/named/chinanet/leary.com.dns
$TTL 86400
@ IN SOA ns.leary.com. root.leary.com. (
6 ; serial_num
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.leary.com.
@ IN A 10.1.3.165
ns IN A 10.1.3.164
www IN A 10.1.3.164
5. 从DNS与主的配置区别
1) named.conf 中server的配置。 server 192.168.10.45 { keys “chinanet”;};
2) view配置文件。以cnc.conf为例
zone “leary.com” IN {
type slave;
file “slaves/cnc/leary.com.dns”;
masters { 192.168.10.45; };
};
type 类似型为 slave
file 指定的文件位置,当然也可以按主DNS那样配置,我这里只是为了区分。
3) key 定义一定要和主一样
4) 从DNS的zone文件不用配置。可以直接从主同步
6. 权限修改
chown -R named:named /var/named
chown -R named /var/run/named
四.启动脚本及命令
1. 启动脚本。基于rhel 其它系统需要另行修改.放在/etc/init.d/named
脚本见附件
chown +x /etc/init.d/named
chkconfig –add named
chkconfig named on
2. named-checkconf 检查dns配置正确性
3. rndc reconfig 重加载dns配置
4. named-checkzone leary.com /var/named/leary.com.dns 重要zone配置文件
5. rndc reload leary.com in cnc 重加载cnc 对应的zone文件配置
6. rndc reload leary.com in chinanet 重加载chinanet 对应的zone文件配置
7. rndc reload leary.com in other 重加载other 对就的zone文件配置
至此,可以启动dns了。
/etc/init.d/named configtest
/etc/init.d/named start
日志在/var/log/message,如遇问题,根据其中报错排查
已知问题:
会有报错如下
managed-keys-zone ./IN/chinanet: loading from master file 0eb205490a59454b6f6feb085efc6b0dab64a63f855a77e2d200c59ed055acd0.mkeys failed: file not found
touch /var/named/managed-keys.bind 依旧会报,目前没找到解决办法。但测试不影响使用。
测试方法:
由于基于内网,可以分别修改acl.conf,添加192.168.0.0/16;在对应的acl中,用其它内网机器 dig 结果,正常可以得到不同的解析结果。我这里设置的,cnc为10.1.2 网段,chinanet 10.1.3网段 other 10.1.4网段。有问题可以留言或才邮件给我。learywolf@163.com
出处:http://blog.chinaunix.net/uid-14880689-id-3201959.html
相关文章推荐
- 使用BIND安装智能DNS服务器(三)---添加view和acl配置
- 基于Bind实现的DNS正反向解析及主从DNS的配置
- DNS2之bind安装、主从配置同步、子域创建、view配置
- 基于密钥的主从DNS服务器的配置
- DNS VIEW(智能搭建 主从搭建)
- 基于BIND9的智能DNS实现
- 使用BIND安装智能DNS服务器 添加view和acl配置
- DNS高级配置原理及配置、子域授权、view智能解析(二)
- 基于Bind实现的DNS正反向解析及主从DNS的配置
- DNS:正反向解析,主从配置,子域授权,转发机制,view
- linux源码包安装DNS服务器,并配置view视图,实现智能DNS。
- Linux DNS服务系列之主从复制、子域授权和转发、view配置详解
- Linux DNS服务系列之主从复制、子域授权和转发、view配置详解
- DNS高级配置原理及配置、子域授权、view智能解析(二)
- DNS正反解析、主从复制、子域授权、安全相关配置
- MySQL主从replication半同步设置及支持基于ssl复制配置
- 主从DNS配置流程示例
- rhel6下,mysql 5.6.14 主从复制(也称mysql AB复制)环境配置[基于binlog] 推荐
- DNS-实验4_简单的智能DNS和日志配置
- CentOS DNS服务详解与基于bind的智能DNS