码迷,mamicode.com
首页 > 其他好文 > 详细

智能DNS

时间:2018-04-30 14:41:05      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:DNS

智能DNS
智能DNS就是根据用户的来路,自动智能化判断来路IP返回给用户,而不需要用户进行选择。
比方一个企业的站点三个运营商的带宽都有:电信、网通、移动,同样有三个来自不同运营商网络的访问用户,那电信访问企业网址的时候,智能DNS会自动根据IP判断,再从电信返回给电信用户;其他的也同理。
但也会遇到一个问题,就是三个用户所使用的网络运营商的DNS同步了解析企业站点所用的智能DNS,不然用户有可能无法访问到企业站点,一般会出现在智能DNS刚生效的时候,这种情况下一般可以请求网络运营商主动同步智能DNS的解析表;或者等待最多72小时,DNS会自动同步。同时新一代智能dns如8GDNS还有宕机检测功能,如果服务器宕机,新一代的智能dns能够实时检测出宕机服务器IP,并把dns解析请求解析到运行正常的服务器。从而提供一个高可靠永不宕机的服务。

一、智能DNS作用

1、减少动态服务响应延迟
2、CDN加速(静态服务缓存)
3、负载均衡
4、防DDoS攻击

二、智能DNS缺陷

1、成本增加(如:硬件成本、维护成本)
2、不配套支持应用检测机制

三、智能DNS的实现

1、IP库(能提供完整且准确的IP地址和地理位置信息)
2、获取途径(商业第三方机构、ISP提供、自己修正或者弥补)
3、通过APNIC生成IP库(http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest)

三、获取ip库并按运营商分类

#!/bin/bash
#########
#获取IP库#
#########
FILE=/opt/apnic/ip_apnic 
rm -f $FILE 
wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILE 
grep ‘apnic|CN|ipv4|‘ $FILE | cut -f4,5 -d‘|‘|sed -e ‘s/|/ /g‘ | while read ip cnt 
do       
echo $ip:$cnt 
mask=$(cat << EOF | bc | tail -1 
        pow=32; 
        define log2(x) { 
        if (x<=1) return (pow); 
        pow--; 
        return (log2(x/2)); 
        } 
        log2($cnt) 
EOF 
) 
echo $ip/$mask >> cn.net 
if whois $ip@whois.apnic.net |grep -i ".*chinanet.*\|.*telecom.*" >/dev/null;then 
        echo $ip/$mask>> chinanet 
elif whois $ip@whois.apnic.net |grep -i ".*unicom.*" >/dev/null;then 
        echo $ip/$mask>> unicom 
else 
        echo $ip/$mask>> others 
fi 
done 

四、将ip库转化为acl文件

BIND中的ACL
acl ACL_NAME {
        <需要定义的网段>
};
/var/named/chinanet.acl
/var/named/unicom.acl
/var/named/other.acl

五、编辑/etc/named.conf

......
include "/var/named/chinanet.acl";
include "/var/named/unicom.acl";
include "/var/named/other.acl"
view "test.com.chinanet.zone" {
        recursion no;
        match-clients { chinanet; };
        zone "test.com" {
                type master;
                file "test.com.chinanet.zone";
        };
};
view "test.com.unicom.zone" {
        recursion no;
        match-clients { unicom; };
        zone "test.com" {
                type master;
                file "test.com.unicom.zone";
        };
};
view "test.com.other.zone" {
        recursion no;
        match-clients { other; };
        zone "test.com" {
                type master;
                file "test.com.other.zone";
        };
};

重启named服务。

六、测试智能DNS

在各acl文件加入测试的IP,
然后在不同的机器中dig测试。

智能DNS

标签:DNS

原文地址:http://blog.51cto.com/gdutcxh/2109222

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!