Chinaunix首页 | 论坛 | 博客

分类: LINUX

2012-01-01 20:11:19

一,我们问什么要用到view
 
  举例一,下图是现在互联网公司里面常用的网络拓扑模型
  下图中防火墙有三块网卡,分别连接连接三个区域:外网,内网,DMZ(非军事化区))。
  我们为什么要用这种网络拓扑结构,或者说我们为什么要把自己的公司提供的服务部署在一个单独的DMZ区里面?这主要一种安全机制,假设有人从外网攻击公司的服务器,并且攻击成功,那么攻击者就有可能通过一些方法来得到我们公司内部网的很多信息,如果把我们的服务单独放在一个区里面可以降低被攻破之后的损失……
  这里假设内网为192.168.0.0/24网段;DMZ区为172.16.100.1/16网段,DMZ区的apache服务器的IP为172.16.100.1;外网地址为1.0.0.1;
  这个时候如果internet上的一台电脑想访问apache服务器,我们可以把apache服务器地址通过DNAT(目标地址转换)技术把它映射到外网地址1.0.0.1上;
  如果内网想访问apache服务器呢?我们难道还要先绕到1.0.0.1上,然后在通过地址转换访问apache服务器吗,很明显这是没必要的,我们直接访问apache服务器就可以了,但是apache服务器如何知道要访问它的Ip来自于外网还是内网呢,这就用到了DNS中的view功能了。
  举例二:我们知道国内两家网络运营商,电信用户访问电信的服务器的时候比较快,但是访问网通的就会比较慢,同理网通的用户访问电信的也比较慢,怎么办???解决方案就是DNS VIEW,通过判断不同的运营商IP来把它解析到不同的服务器上,这就是VIEW的另外一个应用,也是目前国内比较流行的一种应用:智能DNS
  举了上面两个例子,也许大家会对view有一定的了解,它的主要作用就是在访问同一个地址的时候通过判断不同网段的IP来把它解析到不同的IP上,这种应用除了起到上述所说作用的同时也能起到一定的负载均衡作用
 
二,具体使用过程
我们通过一个简单的例子来解释它的作用,我们假设有一个主机有两块网卡(把这台主机配置成DNS),然后两个网段的主机用它来解析地址名称,结果会如何呢??拓扑图如下
 
 
第一:安装bind
  #yum install bind                                   //安装DNS软件bind
 
第二:手动编辑named.conf文件
  acl internal {                                      //设定内网用户网段(访问控制列表acl)
        192.168.2.0/24;
        127.0.0.0/8;
};
acl external {                                        //设定外网用户网段
        172.16.0.0/16;
};
options {                                            
        directory "/var/named";
        recursion yes;
};
view "INNET" {                                        //定义内网IP的区域文件,这里注意view    的时候所哟的zone都要写在view区域里面
        match-clients { internal; };                  //匹配的网段
        recursion yes;                                //DNS是否可递归
        zone "." IN {
                type hint;
                file "named.ca";
        };
        zone "a.org" IN {
                type master;
                file "a.org.internal";
        };
  };
view "EXNET" {                                         //定义外网Ip的区域文件
        match-clients { external; };
        recursion no;
        zone "." IN {
                type hint;
                file "named.ca";
        };
        zone "a.org" IN {
                type master;
                file "a.org.external";
        };
};
 
 
第三步:建立a.org.internal和a.org.external
a.org.internal文件内容如下:
  $TTL 1200
$ORIGIN a.org.
@       IN      SOA     ns1.a.org.      admin.a.org. (
                                2011081701
                                6H
                                30M
                                15D
                                3D )
        IN      NS      ns1.a.org.
        IN      NS      ns2.a.org.
        IN      MX 10   mail.a.org.
ns1     IN      A       192.168.2.129
ns2     IN      A       192.168.2.130
mail    IN      A       192.168.2.131
www     IN      A       192.168.2.132
a.org.external文件内容如下:
   $TTL 1200
$ORIGIN a.org.
@       IN      SOA     ns1.a.org.      admin.a.org. (
                                2011081701
                                6H
                                30M
                                15D
                                3D )
        IN      NS      ns1.a.org.
        IN      NS      ns2.a.org.
        IN      MX 10   mail.a.org.
ns1     IN      A       172.16.100.1
ns2     IN      A       172.16.100.130
mail    IN      A       172.16.100.131
www     IN      A       172.16.100.132
第四步:检查文件是否有语法错误
  #named-checkconf                                        //检查主配置文件是否有错误
  #named-checkzone a.org /var/named/a.org.internal        //检查区域文件是否有错误
  #named-checkzone a.org /var/named/a.org.external       
 
第五步:验证试验是否成功
通过配置文件我们可以发现我们分别用192.168.2.0/24网段和172.16.0.0/16网段通过DNS解析ns2.a.org的时候应该是不同的IP为其解析的
我们先用192.168.2.0/24网段的一个主机来ping,如图所示:
 
然后用172.16.0.0/16网段的一台主机来ping,如图所示:
 
 
  由此可知我们的试验成功,来自不同网络段的IP通过智能DNS解析同一个主机的时候会被解析到不同的Ip上……我们的简化版智能DNS配置成功!
                                                                 
阅读(11354) | 评论(2) | 转发(1) |
0

上一篇:linux下NFS文件共享的介绍和使用

下一篇:没有了

给主人留下些什么吧!~~

无处安放的青春12012-01-02 17:13:49

恩……写的不错 建议置顶!!!

无处安放的青春12012-01-02 17:03:56

那么目前这种技术主要用法是否普遍呢?大概可降低多少破坏率?成本如何?