爱心区 公益下载 公益文章 人在旅途 小博士乐园

>>首页 -> 公益文章 -> 技术文栏 -> 操作系统 -> 不同的网段,不同的 DNS



不同的网段,不同的 DNS


作者internet 来源internetlove 加入时间:2005-8-29
摘要:
不同的网段,不同的 DNS

  A:我们知道在大量网络结构中IP地址使用的是内网IP地址,然后通过PIX等防火墙工具进行地址转换连接到公网。如果网内建立有WWW、mail服务器的话一般是通过在PIX上做映射来实现。这样的网络结构带来的问题就是这些服务器在内网是一个内网的IP地址,在公网又是一个公网的IP地址,也就是说内网和公网用户必须通过不同的IP地址访问这些服务器...

转载:转载请保留本信息,本文来自
http://www.51dibs.com/info/19503.htm

不同的网段,不同的 DNS

  A:我们知道在大量网络结构中IP地址使用的是内网IP地址,然后通过PIX等防火墙工具进行地址转换连接到公网。如果网内建立有WWW、mail服务器的话一般是通过在PIX上做映射来实现。这样的网络结构带来的问题就是这些服务器在内网是一个内网的IP地址,在公网又是一个公网的IP地址,也就是说内网和公网用户必须通过不同的IP地址访问这些服务器。
    在这类网络架构中为了实现服务器的正常访问无非就是两种情况:第一种是公网的DNS解析交给专门做域名解析的公司做,比如万网等,然后每年交注册费,同时在内网架设一台DNS服务器给内网用户使用,将域名解析成内网的IP地址,这样可以确保内网、公网用户都可以正常访问,但是这种方式每年需要交注册费用,且修改记录不是太方便。另一种情况就是注册DNS服务器,自己得到自己域名的权威解析权,那么只要注册一次,交一次费用即可,而且记录修改在自己的服务器上完成就可以了,但是这样做必须在内网安装两套DNS服务器,一套供内网使用,一套供公网解析你的域名使用,成本太高。这样看来目前使用的这些方法都不是太好。
    我们都知道事实上标准的DNS软件就是 BIND,几乎所有 Unix、Linux 下的 DNS 服务器使用的都是这个软件。如果你使用的是BIND8或以前的版本不能很好地处理这个问题,如果你使用DNS软件版本是BIND9的话,问题就可以得到很好的解决。
    BIND9可以根据不同的原地址给出不同的解析结果,也就是说内网的用它解析得出是内网的IP地址,公网的用它解析得出的是公网的IP地址。要实现这个功能只需要用好BIND9的view语句就可以了,任何有BIND配置经验的管理员使用以下的方法都不会有任何困难,十分简单,只需将系统升级到BIND9,再按照下面方法做即可。
    假设内网的网段是192.168.0.0/16,我们的域名是abcde.com,那么我们只要对named.conf等文件做些简单修改就可以了,我们来看这个named.conf的配置例子:

    options{directory“/var/named”;
          pid-file“/var/named/named.pid”;};
    view“internal”{ //view语句是以前版本的BIND没有的
    match-clients { 192.168.0.0/16; };
           recursion yes;
           zone“.”
       {type hint;
                    file“named.ca”;};
           zone“0.0.127.IN-ADDR.ARPA”
       {type master;
                    file“dns.local”;};
           zone“abcde.com”
       {type master;
        file“db.abcde.com.in”;};
            zone“255.168.192.in-addr.arpa”in
       {type master;
        file“abcde.rev.in”;};
    };
    view“external”{
           match-clients { any; };
                  recursion yes; //如果对公网不提供其它域名递归的解析,只提供自己域名的解析,将yes改为no就可以了,这样公网IP就不能用这个服务器做其它域名的解析了,可以减轻服务器负担。
            zone“.”
       {type hint;
                    file“named.ca”;};
           zone“0.0.127.IN-ADDR.ARPA”
       {type master;
                    file“dns.local”;};
           zone“abcde.com”
       {type master;
                    file“db.abcde.com.ex”;};
            zone“95.111.211.in-addr.arpa”in
       {type master;
                    file“abcde.rev.ex”;};
    };

是不是很简单呢?这样配置以后服务器就会根据源地址的不同到/var/named目录下面寻找相应的DNS记录文件,如果是192.168.0.0/16网段的IP地址做查询,服务器就会查找/var/named/db.abcde.com.in这个文件里的数据并给出内网的解析结果,公网IP则查找/var/named/db.abcde.com.ex里的数据并给出公网的解析结果。注意,在这里/var/named目录下面所有的文件格式不需要做任何修改,只不过*.ex里面记录的是公网的数据,*.in里面记录的是内网的数据。

我相信任何有过BIND配置经验的管理员在这个配置上面不会存在任何问题,大家快去做做看吧,小小的一个配置上的改动,可以给大家省下一套DNS服务器和不少资金。


相关文章

相关软件

客户服务中心信箱:[email protected]