博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单CDN之智能DNS
阅读量:6213 次
发布时间:2019-06-21

本文共 3531 字,大约阅读时间需要 11 分钟。

智能DNS就是根据请求来源的ip来返回不同的结果,在CDN中客户的就近访问起了重要的作用。

1.编译安装bind9.6 (由于要用到bindview功能,所以要用版本9)

tar zxvf bind-9.6.0.tar.gz

./configure --prefix=/usr/local/named --enable-threads

make&&make install

 

编译选项--enable-threads据说能发挥多核cpu的优势

 

2.2、创建named.conf文件

[root@ns bind-9.6.0]# cd /usr/local/named/

[root@ns named] #sbin/rndc-confgen >./etc/rndc.conf

[root@ns named]# cd etc/

[root@ns etc]# tail -10 rndc.conf |head -9|sed s/#\//g >named.conf

[root@ns etc]# cat named.conf

接着在下面添加配置

配置分段的,语法类似C

logging { 

        channel default_syslog { syslog local2; severity notice; };

        channel audit_log { file "/var/log/named.log"; severity info; 

        print-time yes;print-category  yes;print-category  yes; };

        category default { default_syslog; }; 

        category general { default_syslog; }; 

        category security { audit_log; default_syslog; }; 

        category config { default_syslog; }; 

        category resolver { audit_log; }; 

        category xfer-in { audit_log; }; 

        category xfer-out { audit_log; }; 

        category notify { audit_log; }; 

        category client { audit_log; }; 

        category network { audit_log; }; 

        category update { audit_log; }; 

        category queries { audit_log; }; 

        category lame-servers { audit_log; };

        };

 

options {

        directory "/var/named/";

        pid-file "/var/named/named.pid";

        statistics-file "/var/named/named.stats"; 

        dump-file "/var/log/named.dump"; 

        zone-statistics yes;

        auth-nxdomain yes;

        notify yes;

        transfer-format many-answers;

        max-transfer-time-in 60;

        interface-interval 0;

        listen-on-v6 { any; };

        };

以上为全局配置,定义一些文件存放位置等。

接着添加用于测试

acl "TEST1"{

           192.168.1.0/24;

           192.168.1.213/32;

            };

 

acl "TEST2"{

            192.168.10.0/24;

             192.168.1.214/32;

            };

 

acl "OTHER_ALL"{

                                any;
                               }; 

 

 

view "view_test1"{

 

            match-clients{TEST1;};

             zone "fox.com"{

             type master;

             file "master/1/fox.com";

             };

                 };

 

view "view_test2"{

 

            match-clients{TEST2;};

            zone "fox.com"{

            type master;

            file "master/2/fox.com";

             };

                 };

 

 view "view_other"{


       
        match-clients{OTHER_ALL;};
        zone "fox.com"{

        type master;
        file "master/other/fox.com";
        };
          };

 

 

 

acl{}用于 指定不同客户的ip地址(段)。如果ip量大可以写在外部文件中.

view{}用于对指定acl给出相对应的.def(区域数据文件)。

acl "OTHER_ALL" 匹配剩余的,view{}的顺序很关键。

 

bind的主配置文件就这样

 

3创建目录与主区域文件

mkdir /var/named

mkdir -p /var/named/master/1

mkdir -p /var/named/master/2

mkdir -p /var/named/master/3

 

master/1/fox.com

master/2/fox.com

包含不同请求ip地址对应的区域文件

 

vim master/1/fox.com

 

$TTL 3600

$ORIGIN fox.com.

@ IN SOA ns.fox.com. root.ns.fox.com.(

2005121013 ;Serial 

3600 ; Refresh ( seconds ) 

900 ; Retry ( seconds ) 

68400 ; Expire ( seconds ) 

15 );Minimum TTL for Zone ( seconds )

  

 IN   NS  ns.fox.com.

@  IN    192.168.1.201

ns   IN   A  192.168.1.201

www  IN   A  192.168.1.11

 

--------------------------------------------------------------

vim master/2/fox.com

 

$TTL 3600

$ORIGIN fox.com.

@ IN SOA ns.fox.com. root.ns.fox.com.(

2005121013 ;Serial

3600 ; Refresh ( seconds )

900 ; Retry ( seconds )

68400 ; Expire ( seconds )

15 );Minimum TTL for Zone ( seconds )

  

@  IN  NS   ns.fox.com.

@   IN  A  192.168.1.212

ns   IN  A  192.168.1.212

www  IN   192.168.1.22

 

--------------------------------------------------------

 

vim master/other/fox.com

 

$TTL 3600

$ORIGIN fox.com.

@ IN SOA ns.fox.com. root.ns.fox.com.(

2005121013 ;Serial

3600 ; Refresh ( seconds )

900 ; Retry ( seconds )

68400 ; Expire ( seconds )

15 );Minimum TTL for Zone ( seconds )

  

@  IN  NS   ns.fox.com.

@   IN  A  192.168.3.212

ns   IN  A  192.168.3.212

www  IN   192.168.3.22

 

3.启动named

/usr/lcoal/bind/sbin/named -g &

如果配置文件没错,服务就在后台运行了,注意如果配置了view,那在view外边就不能设置zone 区域了。

根据配置,我们预料192.168.1.0/24 段的客户得到的地址将与192.168.10.0/24的不同,我们看下结果

 

  

结果是不一样的,实现了智能dns

测试的dns服务器有2块网卡,分别对应192.168.1.0/24 和 192.168.10.0/24

本文转自 hb_fukua 51CTO博客,原文链接:http://blog.51cto.com/2804976/712304

转载地址:http://ogdja.baihongyu.com/

你可能感兴趣的文章
程序员必读: 摸清Hash表的脾性
查看>>
搞一搞laravel里api路由的 auth:api 和 api_token
查看>>
极致PCWeb性能 —— 同步加载vs异步加载
查看>>
2017-05-27 前端日报
查看>>
PostgreSQL升级方案
查看>>
Quartz 2 定时任务(三):异常与中断处理
查看>>
curl记录响应时间
查看>>
JS进阶篇--touch.js 拖动、缩放、旋转 (鼠标手势)
查看>>
Maximum XOR of Two Numbers in an Array
查看>>
Reddit引入Envoy支持架构改造,性能显著提升
查看>>
Airbnb如何简化1000多位工程师的Kubernetes工作流程?
查看>>
F# 4.0于全平台发布
查看>>
音速神童创始人赵鹏王旭加入蚂蚁金服,剑指Kata Containers
查看>>
中国平安“豪赌”科技?从产险业务IT变形计聊起
查看>>
中国互联网上市科技公司市值蒸发了多少亿?
查看>>
别了MongoDB?
查看>>
Kong 发布 Kong Brain 和 Kong Immunity,可进行智能自动化和适应性监控
查看>>
.NET Core 2.1 Preview 2带来网络方面的改进
查看>>
区块链现状:从谨慎和批判性思维看待它(第二部分)
查看>>
大规模学习该如何权衡得失?解读NeurIPS 2018时间检验奖获奖论文
查看>>