//说明:本帖来自http://forum.ccert.edu.cn/bbs/read.php?tid=178

目前国内很多高校都是同时使用中国教育网和中国电信等多个通道接入互联网 。正常情况下校园服务器都使用教育网的域名和IP地址,日常校园网应用访问都通过教育网链路。当校园网服务器置于教育网环境下,由于教育网和公网之间的带宽瓶颈使公网的用户访问往往很慢,而如果设置在公网则教育网访问很慢。为了能按照请求用户的网络地址范围,做出不同的地址解析。我们最初采取的方法是,让用户根据自身上网环境选择使用不同的域名访问,如教育网用户使用www.sbs.edu.cn,而公网用户用 www1.sbs.edu.cn访问,但是这样带来的问题是要用户自己判断,并且还需要输入不同域名,不适合实际环境的要求。 

我们以上海商学院校园网实际应用需求为背景,尝试建立在Window平台下运行的智能解析方案,Windows平台具有易搭建和易维护的优势。通过此服务能自动根据访问者来源IP地址进行判断。访问者只需输入www.sbs.edu.cn就能够由域名解析服务自动判断用户的网络情况,并提供不同的地址解析,即:当教育网内用户访问的时候,域名服务器判断出该用户来自教育网,则给出教育网服务器IP地址,而如果来自公网则给出公网的IP地址。这样就提高了教育网和公网对校园网访问效率,系统运行稳定至今,实际效果良好。
Windows 2000和2003系统已集成DNS服务,但是不能实现我们需要的智能解析功能。因此我们可以通过安装专为Windows平台编译的Bind套件。(Bind是Linux/Unix下广泛采用的域名服务器,主要提供名为named的DNS服务。
Bind安装

(1)可以在网站http://www.isc.org/index.pl?/sw/bind/下载到最新的Bind for Windows套件
(2)下载并且安装 Bind 最新版本BIND 9.5.0-P2 ,下载后解压到一个临时目录,运行 BINDInstall.exe ,按照提示,默认安装到 c:\windows\system32\dns目录下,需要将账号名named 的密码更改为足够复杂的密码,然后选择 Install 进行安装。在安装的过程中系统会自动在操作系统内创建一个账号,安装完毕后,需要进入到系统服务,查看ICS Bind服务,并将登录用户改成本地系统用户。
(安装完毕后,需要进入到系统服务,查看ICS Bind服务,将登录用户改成本地系统用户。)
(3)安装完成后进入安装目录(c:\windows\system32\dns),将etc目录赋予named用户具有读写的权限。
Bind配置 

(1)在命令行环境下进入安装目录(c:\windows\system32\dns)下的bin目录运行如下命令 
rndc-confgen -a  (运行完成后会在etc目录下生成rndc.key) 
rndc-confgen > ..\etc\rndc.conf 
-
(2)编辑etc目录下的 named.conf文本,文本如下
options {
directory 襝:\windows\system32\dns\etc ;
allow-transfer { none; };
};
#这一段内容拷贝来自rndc.conf
key 襯ndc-key  {
algorithm hmac-md5;
secret 襊ZL3i0PCEva+lfpepaarRg== ;
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { 襯ndc-key ; };
};
#读取教育网列表
include 襛cl.conf ;
# 判断如果是教育网的地址范围,则会执行此处,调用教育网的解析
view 襳iew_edu  {
match-clients { EDU; };
zone 襰bs.edu.cn  {
type master;
file 襡du.sbs.edu.cn.txt ;      
};
};
# 如果不是教育网的则进行公网的解析
view 襳iew_any  {
match-clients { any; };
zone 襰bs.edu.cn  {
type master;
file 襱el.sbs.edu.cn.txt ;              
};
};
(3)进入etc目录,用记事本打开 rndc.conf,找到下面这一段,并且将注释符号#去掉,拷贝到前面编辑的 named.conf文件中去,代替原来里面的相同内容。 
# Use with the following in named.conf, adjusting the allow list as needed: 
# key 襯ndc-key  { 
#    algorithm hmac-md5; 
#    secret  PZL3i0PCEva+lfpepaarRg== ; 
# }; 

# controls { 
#    inet 127.0.0.1 port 953 
#        allow { 127.0.0.1; } keys { 襯ndc-key ; }; 
# }; 
# End of named.conf 
在etc目录下创建文件名为acl.conf的教育网地址段。地址的准确与否,直接影响到用户来源的判断。
//edu acl list
acl 褽DU  {
162.105.0.0/16;
166.111.0.0/16; 
……
(4)建立地址记录表
教育网服务器IP地址分配情况如下。我们在出口防火墙上对电信地址进行静态地址映射,对应教育网服务器IP地址。

分别建立并编辑edu.sbs.edu.cn.txt 和tel.sbs.edu.cn.txt文本,内容如下;
教育网:
$TTL 6h
@    IN SOA    SBS.EDU.CN.    DNS1.SBS.EDU.CN. (
2008081201
10800
3600
604800
86400 )
NS dns1.sbs.edu.cn.
MX 10 mx.sbs.edu.cn.
SBS.EDU.CN. IN NS DNS1.SBS.EDU.CN. 
dns1    IN A    210.35.104.2
mx              IN A  219.220.243.144
www    IN A  219.220.243.142
mail          IN A  219.220.243.144
……
公网:
$TTL 6h
@    IN SOA    SBS.EDU.CN.    DNS1.SBS.EDU.CN. (
2008081201
10800
3600
604800
86400 )
NS dns1.sbs.edu.cn.
MX 10 mx.sbs.edu.cn.
SBS.EDU.CN. IN NS DNS1.SBS.EDU.CN.
dns1    IN A    210.35.104.2
mx      IN A    222.72.138.203
www      IN A    222.72.138.201
mail      IN A    222.72.138.203
……
(5)全部配置完成后,进入Windows服务管理器,启动名为ISC Bind的系统服务。如果在调试过程出现错误,可以结合事件查看器进行排错,查看日志中应用程序错误提示信息。如果没有出现出错提示,则服务已经运行起来了。 

测试 

可以使用Windows自带的nslookup工具进行测试。
测试不同的网络环境下得到不同的结果: 
(1)测试教育网效果
>nslookup
> server 210.35.104.2 (上海交大dns)
> www.sbs.edu.cn
Name:    www.sbs.edu.cn
Address:  219.220.243.142
(2)测试公网的效果
>nslookup
> server 202.96.209.5(上海电信dns)
> www.sbs.edu.cn
Name:    www.sbs.edu.cn
Address:  222.72.138.201
如果Windows 系统中开启了防火墙,需要将UDP的53端口打开,以便服务可以正常被访问。