同一域名使内外网用户看到不同主页的技术方法.docVIP

  • 26
  • 0
  • 约7.89千字
  • 约 9页
  • 2018-10-11 发布于江苏
  • 举报

同一域名使内外网用户看到不同主页的技术方法.doc

同一域名使内外网用户看到不同主页的技术方法

同一域名使内外网用户看到不同主页的技术方案(暂定) 方案一:bind9(view)+apache(虚拟网站) 1利用dns服务器对来自内网的域名解析请求解析成ip内,对来自外网的域名解析请求解析成ip外。 2 方案二:php 如果自己没有DNS服务器,可以利用脚本语言(如php) 资料: [1]http://www.ipsec.nu/dns/bind9/Bv9ARM.html [2] [root@node2 home]# more index.php ? $user_ip = ($_SERVER[HTTP_VIA]) ? $_SERVER[HTTP_X_FORWARDED_FOR] : $_SERVER[ REMOTE_ADDR]; $user_ip = ($user_ip) ? $user_ip : $_SERVER[REMOTE_ADDR]; $userip = $user_ip ; $row = explode(.,$userip); if ($row[0]==210 $row[1]==26) { header(Location: ./indexin.php); } else { header(Location: ./indexout.php); } ? [3]我们都知道事实上标准的DNS软件就是BIND,几乎所有Unix、Linux下的DNS服务器使用的都是这个软件。如果你使用的是BIND8或以前的版本不能很好地处理这个问题,如果你使用DNS软件版本是BIND9的话,问题就可以得到很好的解决。 BIND9可以根据不同的原地址给出不同的解析结果,也就是说内网的用它解析得出是内网的IP地址,公网的用它解析得出的是公网的IP地址。要实现这个功能只需要用好BIND9的view语句就可以了,任何有BIND配置经验的管理员使用以下的方法都不会有任何困难,十分简单,只需将系统升级到BIND9,再按照下面方法做即可。 假设内网的网段是/16,我们的域名是,那么我们只要对named.conf等文件做些简单修改就可以了,我们来看这个named.conf的配置例子, options{directory/var/named; pid-file/var/named/named.pid;}; viewinternal{ //view语句是以前版本的BIND没有的 match-clients { /16; }; recursion yes; zone. {type hint; filenamed.ca;}; zone0.0.127.IN-ADDR.ARPA {type master; filedns.local;}; zone {type master; file.in;}; zone255.168.192.in {type master; fileabcde.rev.in;}; }; viewexternal{ match-clients { any; }; recursion yes; //如果对公网不提供其它域名递归的解析,只提供自己域名的解析,将yes改为no就可以了,这样公网IP就不能用这个服务器做其它域名的解析了,可以减轻服务器负担。 zone. {type hint; filenamed.ca;}; zone0.0.127.IN-ADDR.ARPA {type master; filedns.local;}; zone {type master; file.ex;}; zone95.111.211.in {type master; fileabcde.rev.ex;}; }; 是不是很简单呢?这样配置以后服务器就会根据源地址的不同到/var/named目录下面寻找相应的DNS记录文件,如果是/16网段的IP地址做查询,服务器就会查找/var/named/.in这个文件里的数据并给出内网的解析结果,公网IP则查找/var/named/.ex里的数据并给出公网的解析结果。注意,在这里/var/named目录下面所有的文件格式不需要做任何修改,只不过*.ex里面记录的是公网的数据,*.in里面记录的是内网的数据。 [4]在 Debian 上使用 BIND 9 搭建域名服务器 这是一

文档评论(0)

1亿VIP精品文档

相关文档