centos 4.4 智能DNS(精华解决南北互通方案)

source:[url]http://hilinux.com/bbs/thread-195-1-1.html[/url]
一、应用背景
  某网络广告公司,总部设在中国上海,是一个具有多项全球顶尖互联网专利技术的专业广告集团,主营在线网络广告,业务量庞大,广告主及联盟网站众多且遍布不同区域。由于南北互通问题,严重制约了市场的拓展和业务的进一步发展,影响了工作效率。目前有CDN(内容分布网络),BGP(边际网关协议)等技术可以解决南北互通问题,但是高投资、高使用费以及高维护费成为该公司的首要难题。为打破困局,该公司决定对症下药,寻找更经济的解决办法,消除南北间不可逾越的"鸿沟",降低网络费用。

二、解决方案
  采用双线机房,Bind9作为智能DNS,通过DNS View配置,自动根据客户端IP来判断,网通的用户解析出网通的IP,电信的解析出电信IP,使用户能够访问到临近的同网的服务器,避免跨网访问,从而提高访问速度,解决南北互访问题。

三、实施步骤

操作系统:
CentOS 4.4  [url]http://www.centos.org[/url]

软件列表:
BIND9  [url]http://www.isc.org[/url]
Ripe-dbase-client-v3  [url]http://www.apnic.net[/url]

例子域名:
Entage.net

步骤一、安装操作系统
推荐使用CentOS 4.4,基于RedHat Enterprise AS 4.4安全加强的免费可升级独立分发版本Linux操作系统,安装过程不再详述。

步骤二、安装Bind9

(1)RPM包方式安装

1.手动下载软件包安装

下载RPM软件包:
wget [url]http://isoredirect.centos.org/ce[/url] ... 2.4-16.EL4.i386.rpm

wget [url]http://isoredirect.centos.org/ce[/url] ... 2.4-16.EL4.i386.rpm

wget [url]http://isoredirect.centos.org/ce[/url] ... 2.4-16.EL4.i386.rpm

wget [url]http://isoredirect.centos.org/ce[/url] ... 2.4-16.EL4.i386.rpm

安装软件包:
rpm -iUvh bind*.rpm

2.yum自动安装
yum install bind bind-libs bind-utils bind-devel

3.up2date自动安装
up2date bind bind-libs bind-utils bind-devel

以上三种方式任选一种安装,安装后执行以下命令配置DNS服务开机自启动
chkconfig named on

(2)源码包方式安装

下载源码包:
wget [url]http://ftp.isc.org/isc/bind9/9.3.3/bind-9.3.3.tar.gz[/url]

解压源码包:
tar zxvf bind-9.3.3.tar.gz

配置:
cd bind-9.3.3

./configure --prefix=/usr

编译:
make

安装:
make install

添加用户和组:
groupadd -g 25 named

useradd -u 25 -g 25 -d /var/named -s /sbin/nologin named

建立启动脚本:
vi /etc/init.d/named

==========named begin==========
#!/bin/bash
#
# named           This shell scrīpt takes care of starting and stopping
#                 named (BIND DNS server).
#
# chkconfig: - 13 87
# descrīption: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: true
#
if [ `id -u` -ne 0 ]
  then
  echo "ERROR:For bind to port 53,must run as root."
  exit 1
fi
case "$1" in
  start)
        if [ -x /usr/sbin/named ]
     then
           /usr/sbin/named -u named -c /etc/named.conf && echo . && echo 'BIND9 server started.'
        fi
        ;;
  stop)
        kill `cat /var/run/named/pid` && echo . && echo 'BIND9 server stopped.'
        ;;
  restart)
        echo .
        echo "Restart BIND9 server"
        $0 stop
        sleep 10
        $0 start
        ;;
  *)
        echo "$0 start | stop | restart"
        ;;
esac
==========named end===========

更改启动脚本权限:
chmod 755 /etc/init.d/named

添加启动脚本为系统服务:
chkconfig --add named

配置DNS服务开机自启动:
chkconfig named on

步骤三、安装IP地址段查询工具Ripe-dbase-client-v3:

下载软件包:
wget [url]http://ftp.apnic.net/apnic/dbase[/url] ... se-client-v3.tar.gz

解压软件包:
tar zxvf ripe-dbase-client-v3.tar.gz

配置:
cd whois-3.1

./configure --prefix=/usr

编译:
make

安装
make install

步骤四、建立相关目录及文件

mkdir -p /var/named/data

mkdir -p /var/named/master/any

mkdir -p /var/named/master/cnc

mkdir -p /var/named/master/telecom

mkdir -p /var/named/slaves

mkdir -p /var/log/named

mkdir -p /var/run/named

touch /var/named/cnc_acl.conf

touch /var/named/telecom_acl.conf

touch /var/log/named/dns_warning

touch /var/log/named/dns_log

touch /var/named/master/any.def

touch /var/named/master/cnc.def

touch /var/named/master/telecom.def

wget [url]ftp://ftp.internic.org/domain/named.root[/url] -O /var/named/named.ca

chown -R named.named /var/named /var/log/named /var/run/named

chmod -R 770 /var/named /var/log/named /var/run/named

步骤五、配置rndc

设置rndc.conf:
vi /etc/rndc.conf

==========rndc.conf begin==========
options {
       default-key "rndc-key";
       default-server 127.0.0.1;
       default-port 953;
};
include "/etc/rndc.key";
==========rndc.conf end============

生成/etc/rndc.key:
/usr/sbin/rndc-confgen –a

步骤六、配置ACL文件

设置网通IP列表ACL文件cnc_acl.conf:
/usr/bin/whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}'| sort -n | awk 'BEGIN{print "acl \"CNC\" '{'"}{print $1";"}END{print "'}';"}' > /var/named/cnc_acl.conf

设置电信IP列表ACL文件telecom_acl.conf:
/usr/bin/whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}'| sort -n | awk 'BEGIN{print "acl \"TELECOM\" '{'"}{print $1";"}END{print "'}';"}' > /var/named/telecom_acl.conf

步骤七、配置named.conf
vi /etc/named.conf

==========named.conf begin==========
acl "trusted-lan" {
   127.0.0.1/8;
   192.168.0.0/24;
};
options {
   directory "/var/named";
   dump-file "/var/named/data/cache_dump.db";
   statistics-file "/var/named/data/named_stats.txt";
   version "";
   datasize 40M;
   allow-transfer {
    "trusted-lan";
   };
   recursion yes;
   allow-notify {
       "trusted-lan";
   };
   allow-recursion {
       "trusted-lan";
   };
   auth-nxdomain no;
   forwarders {
       202.96.209.5;
       210.22.70.3;
   };
};
logging {
   channel warning {
    file "/var/log/named/dns_warning" versions 3 size 1240k;
    severity warning;
    print-category yes;
    print-severity yes;
    print-time yes;
   };
   channel general_dns {
       file "/var/log/named/dns_log" versions 3 size 1240k;
       severity info;
       print-category yes;
       print-severity yes;
       print-time yes;
   };
   category default {
       warning;
   };
   category queries {
       general_dns;
   };
};
include "cnc_acl.conf";
include "telecom_acl.conf";
view "view_cnc" {
   match-clients {
         CNC;
   };
   zone "." {
         type hint;
         file "named.ca";
   };
   include "master/cnc.def";
};
view "view_telecom" {
   match-clients {
         TELECOM;
   };
   zone "." {
         type hint;
         file "named.ca";
   };
   include "master/telecom.def";
};
view "view_any" {
   match-clients {
         any;
   };
   zone "." {
         type hint;
         file "named.ca";
   };
   include "master/any.def";
};
include "/etc/rndc.key";
==========named.conf end===========

步骤八、增加域名解析配置文件

设置网通解析配置文件:
vi /var/named/master/cnc.def

==========cnc.def begin==========
zone "entage.net"{
    type master;
    file "master/cnc/entage.net";
};
==========cnc.def end===========

设置电信解析配置文件:
vi /var/named/master/telecom.def

==========telecom.def begin==========
zone "entage.net"{
    type master;
    file "master/telecom/entage.net";
};
==========telecom.def end===========

设置网通电信以外解析配置文件:
vi /var/named/master/any.def

==========any.def begin==========
zone "entage.net"{
    type master;
    file "master/any/entage.net";
};
==========any.def end===========

步骤九、增加域名定义文件

设置网通域名定义文件:
vi /var/named/master/cnc/entage.net

==========cnc/entage.net begin==========
$TTL 3600
$ORIGIN entage.net.
@ IN SOA ns.entage.net. root.entage.net. (
                      2007011701  ;Serial
                      3600    ;Refresh ( seconds )
                      900    ;Retry ( seconds )
                      68400       ;Expire ( seconds )
                      15          ;Minimum TTL for Zone ( seconds )
                      )
@       IN      NS     ns.entage.net.
@       IN      A      218.108.238.221
ns      IN      A      218.108.238.221
www     IN      A      218.108.238.221
;
;end
==========cnc/entage.net end===========

设置电信域名定义文件:
vi /var/named/master/telecom/entage.net

==========telecom/entage.net begin==========
$TTL 3600
$ORIGIN entage.net.
@ IN SOA ns.entage.net. root.entage.net. (
                       2007011701  ;Serial
                       3600   ;Refresh ( seconds )
                       900   ;Retry ( seconds )
                       68400   ;Expire ( seconds )
                       15   ;Minimum TTL for Zone ( seconds )
                       )
@      IN       NS      ns.entage.net.
@      IN       A       61.152.241.97
ns     IN       A       61.152.241.97
www    IN       A       61.152.241.97
;
;end
==========telecom/entage.net end===========

设置其它区域域名定义文件:
vi /var/named/master/any/entage.net

==========any/entage.net begin==========
$TTL 3600
$ORIGIN entage.net.
@ IN SOA ns.entage.net. root.entage.net. (
                       2007011701  ;Serial
                       3600   ;Refresh ( seconds )
                       900   ;Retry ( seconds )
                       68400   ;Expire ( seconds )
                       15   ;Minimum TTL for Zone ( seconds )
                       )
@      IN       NS      ns.entage.net.
@      IN       A       61.152.241.97
ns     IN       A       61.152.241.97
www    IN       A       61.152.241.97
;
;end
==========any/entage.net end===========

四、结束语
此方案有如下优点:
1.低成本-无需添加任何专用设备,只需通过简单配置即可;
2.灵活性强-可随时增加/删除解析规则;
3.有一定的可扩展能力-如果搭配Round Robin DNS可无缝快速的配置简单的负载均衡;

/etc/init.d/named

#!/bin/sh
#
#Description: named (BIND) is a Domain Name Server (DNS)
export PATH=/usr/sbin

case "$1" in
  start)
echo -n "Starting named: "
named -c /etc/named.conf
echo "done"
;;
  stop)
echo -n "Shutting down named: "
rndc stop
echo "done"
;;
  status)
        rndc status
        exit $?
        ;;
  restart)
echo -n "Reload named: "
rndc reload
echo "done"
;;
  reload)
echo -n "Reload named: "
rndc reload
echo "done"
;;
  *)
        echo "Usage: named {start|stop|status|restart|reload}"
        exit 1
esac

exit 0

转载于:https://blog.51cto.com/comtv/139230

centos 4.4 智能DNS(精华解决南北互通方案)相关推荐

  1. centos 4.4 智能DNS解决南北互通方案

    一.应用背景   某网络广告公司,总部设在中国上海,是一个具有多项全球顶尖互联网专利技术的专业广告集团,主营在线网络广告,业务量庞大,广告主及联盟网站众多且遍布不同区域.由于南北互通问题,严重制约了市 ...

  2. 怎样解决南北互通的难题?

    http://www.west263.com/info/html/caozuoxitong/FreeBSD/20090513/131540.html 目前电信.网通瓶颈问题可以说主要是人为因素造成的, ...

  3. 解决南北互通瓶颈 服务器多线接入探讨

    多线路接入技术就是在互联网数据中心(IDC)通过特殊的技术手段把不同的网络接入商(ISP)服务接入到一台服务器上或服务器集群,使服务器所提供的网络服务访问用户能尽可能以同一个ISP或互访速度较快的IS ...

  4. 智能DNS解析+JBOSS集群(一)

    智能DNS+JBOSS集群<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  5. 在Win2003中安装bind【部署智能DNS】

    http://369369.blog.51cto.com/319630/811179 前言:     搞LINUX的朋友都知道,bind是linux下的DNS服务软件,但很多人不清楚,它也可以运行在w ...

  6. 怎样解决电信网通南北互通问题?

     一.BGP双线技术是什么意思: BGP(Border Gateway Protocol边界网关协议)主要用于互联网AS(自治系统)之间的互联,是一种在自治系统之间动态交换路由信息的路由协议.BG ...

  7. 最优南北互通企业上网解决方案(转)

    一.应用背景 中国某通信集团注册资金2亿元,是一家专业手机研发.加工生产.内外销同步进行的民营高科技企业.该通信集团秉承"VIP金牌服务"理念,建立了完善高效的客户服务体系,在全国 ...

  8. Centos Linux 下基于bind的智能DNS搭建

    智能DNS即是能够根据用户请求过来的IP,进行自动的智能解析,从而把用户请求发送至距离用户最近,响应速度最快的服务器上.相较于普通的DNS,只是解析IP地址,而不去判断用户的来源,这是它的优势所在:目 ...

  9. 用bind架设自己的智能DNS

    中国的南北网络问题,是许多做网站的人的心病 除了使用双通或者多通机房以外,还可以通过多台镜像服务器的方法来提高用户的访问速度 但是,如果使用的双通机房并不是单IP的,或者使用多台镜像的做法,就会面临多 ...

最新文章

  1. MongoDB 维护Replica Set
  2. 从头开始学习vue-router
  3. 遭遇OutOfMemoryError
  4. python实现将文件内容按照某一列内容的大小值重新排序_Python数据分析入门教程(四):数值操作...
  5. Ambari2.7.0 + HDP3.1.4.0安装,hdfs数据备份和恢复,hive数据备份和恢复,hbase数据备份和恢复,常见错误总结,Ambari卸载,hadoop-ha,hive和ES整合
  6. 创业者具备的五大技能_赛事动态 | 新道科技连续六年支持全国职业院校技能大赛沙盘模拟企业经营赛项...
  7. 中文分词入门之字标注法4
  8. 解决:If the number of processors is expected to increase from one, then you should configure the numbe
  9. 搜索做成html静态,如何在静态的html里实现搜索功能?
  10. Python让繁琐工作自动化——chapter15 保持时间、计划任务和启动程序
  11. just help me
  12. 数字电路与模拟电路区别
  13. Cool_gamesetup.exe山寨版熊猫烧香病毒
  14. 5.3 使用数据结构对真实世界建模
  15. [转] 8 reasons why SPIR-V makes a big difference
  16. 使用华为手机怎么从网上打印资料?
  17. Enriching Local and Global Contexts for Temporal Action Localization ContextLoc论文阅读笔记
  18. 血色先锋队(BFS)
  19. 统计字母、空格、数字和其它字符个数 (Java经典编程案例)
  20. SQL数据库基础操作

热门文章

  1. element is not attached to the page document报错解决办法
  2. 算法学习笔记五:最短路径
  3. 男人也来大姨妈,你不信?痛苦不堪
  4. gmt java date_关于日期:以Java获取GMT时间
  5. 安装配置Influxdb
  6. window.postMessage - 前端跨域通信
  7. 如何删除百度快照?百度快照是什么?百度快照优化是什么意思?
  8. 驱动专题:源码编写 17 dm9000网卡设备驱动
  9. pptv手机端html,2K超高清裸眼3D,PPTV手机即将开启新体验
  10. [转] 理解各种熵最大熵模型