基于301重定向技术的DNS动态管理实验
2013-05-16李战国刘向东王兴伟
李战国, 刘向东, 王兴伟
(1.平顶山学院,河南平顶山467002;2.东北大学 信息科学与工程学院,辽宁 沈阳110004;3.大连民族学院非线性信息技术研究所,辽宁大连 116600)
0 引言
在服务器部署上,很多单位都没有自己的域名服务器而使用域名提供商或上级单位提供的域名服务。由于业务的类型及规模的不断变化,应用服务器的域名、IP地址及服务端口号在不断发生变化。如果每次变化就要对这些参数在域名提供商那里修改对于域名提供商来说可能是一个不可接受的负担,如果不修改对于单位的信息发布来说可能是灾难性的损失[1]。如何解决这一矛盾是服务器管理的一个重要问题。本文提出设置自己的域名代理服务器,使用301重定向技术解决在应用服务器的IP地址及服务端口号等发生变化(不论是不是默认端口)的情况下不需要修改外部的域名服务器的内容,只修改自己的域名代理服务器的映射关系就可以实现对外的访问域名不变,从而实现对外是一个稳定的域名体系[2]。
在“Windows网络架构”[3]课程上,一般来说各种网络服务器配置实验都是分别进行的,其目的是给学生一个清晰的概念。但是在实际应用中各种服务器是综合应用的,因此由只注重服务器的功能配置转向更加复杂的服务器应用部署,这就要使用相应的多种服务器综合管理技术来实现。本文提出的301重定向技术就是实现复杂服务器部署的技术之一,它可以实现Web服务器、DNS服务器、代理服务器的功能配置,实现综合服务器应用实验。在实现设备与环境要求上很简单,在实验室中使用模拟器技术每一位学生只需要使用一台PC机及Windows等操作系统就可以满足实验的要求,在一般的服务器实验室都可以实现。
1 基于301重定向技术的服务器动态管理工作原理
1.1 域名重定向
在网站建设中,经常会遇到网站IP地址或域名的调整、改变网页目录结构、网页被移到一个新地址等情况。在这些情况下如果不做域名重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息(无法显示网页);再如某些注册了多个域名的网站,也需要通过域名重定向让访问这些域名的用户自动跳转到主站点。
常用的重定向方式有:
(1)301 redirect。301重定向是一种永久性转移(Permanently Moved)。301重定向是网页更改地址后对搜索引擎最友好的方法。只要不是暂时域名转移,建议尽量采用301重定向技术来实现[4]。
(2)302 redirect。302重定向代表暂时性转移(Temporarily Moved),一般使用在临时域名重定向环境,当然,也有少数Black Hat SEO(黑帽搜索引擎优化)应用这项技术进行作弊。使用这项技术缺点是:即使网站客观上不是spam(作弊,散布垃圾广告消息等),也很容易被搜寻引擎容易误判为spam而惩罚。
(3)meta fresh。这种方式在以前比较流行,不过现在已很少使用。其具体实现是通过在网页中加入meta指令,在特定时间后重定向到新的网页,但如果延迟的时间太短(约5 s之内),会被判断为spam。
1.2 301重定向实现方法
在不同的系统及技术下,301重定向的实现方法不同。为了适应多种平台与技术的应用,下面简单介绍一下在不同平台及技术下的301重定向技术。
1.2.1 IIS服务器实现301重定向
打开Internet信息服务管理器,在欲重定向的网站上选择属性→主目录,在“此资源的内容来自”中选择第三项“重定向到URL”,并且在地址栏中输入重定向的IP地址或域名。选中“资源的永久重定向”。配置界面图见图1,在实验中就采用这种配置方式。
图1 IIS 301重定向配置
在输入重定向到网址的时候请注意,如果在网址中要传递目录及参数信息,则一般在重定向地址后加SQ 参数,如 http://www.test.comsq。S是将请求的初始URL后缀(目录及文件等)传递给新的URL;Q是将初始URL的参数(如query string)传递至新的URL,包括问号[5]。如果不想使用参数方式,可以在重定向到的地址栏中直接输入完整的域名目录及参数。然后选中“上面输入的准确的URL”及“输入的URL下的目录”即可。
1.2.2 Apache服务器实现301重定向
在Apache中,通过修改文件.htaccess可以实现很多强大的服务控制功能,301重定向只是其中的功能之一。301重定向示例如下:
(1)将当前网站重定向到一个新的网站。redirect permanent/http://www1.test.com/(将当前网站根目录下内容重定向到 http://www1.test.com/)。
(2)将当前网站的一个网页重定向到另一个带参数的网站页面中。redirect permanent/index.php http://www.test.com/index.php?stu=zhangsan(将网 页index.php 重定向到 http://www.test.com/index.php?stu=zhangsan)。
在不同的编程语言环境下都可使用301重定向技术实现域名的重定向功能。虽在不同的编程语言中使用的命令格式不同,但301重定向基本上都使用了参数301 Moved Permanently来声明永久重定向,使用Location参数声明重定向的目的地。详见文献[4]。
2 基于虚拟机的DNS动态管理实验
2.1 网络拓扑及工作原理
在服务器DNS动态管理实验中需要使用DNS服务器、动态DNS代理服务器、应用服务器及验证客户端等[6-8]。网络拓扑图如图2所示。
图2 网络拓扑图
图2中DNS服务器是单位租用的商业DNS服务器,Web服务器是单位的应用服务器,Proxy是单位的动态DNS代理服务器。Client是外网要访问单位应用服务器的网络客户。
为了简化实验过程,我们将各服务器及客户端的IP地址设置为同一网段的IP地址。它们分别为:验证客户端 Client:192.168.210.163/24;域名服务器 DNS:192.168.210.222/24;域名代理服务器 Proxy:192.168.210.181/24;应用服务器 web1-3:192.168.210.200-202/24。
在客户访问应用服务器时,其访问过程如下:
(1)客户机使用域名方式通过DNS解析需要访问的应用服务器web1-3的IP地址,在客户端输入应用服务器的域名http://web1.test.com/等访问应用服务器。
(2)商业DNS服务器给单位用户建立web1.test.com,web2.test.com,web3.test.com 共 3 个应用服务器DNS域名,但它们的IP地址不是指向应用服务器的真实 IP 地址,而是全部指向 192.168.210.188——单位的DNS代理服务器Proxy的IP地址,主要目的是实现相对固定的域名解析服务,隐藏应用服务器可能的IP地址及端口的变化。
(3)DNS代理服务器Proxy是一个执行301重定向的Web服务器。主要作用是将DNS服务器解析的不同的网站根据不同的网站主机头解析到真正的应用服务器上,以完成到应用服务器的重定向工作。
(4)根据代理服务器的301重定向,客户端得到真正的应用服务器的域名或IP地址直接访问应用服务器,得到最终的结果。其访问界面见图3。
图中验证客户端访问 http//web3.test.com/,通过DNS服务器解析到的 IP 地址是192.168.210.188,在该服务器上使用301重定向技术,将该网站重定向到http://192.168.210.202:202/这个非默认端口的 Web应用服务器Web3。从验证图示上先看到一个http://web3.test.com/的域名访问,然后立即看到一个http://192.168.210.202:202/的 301 重定向的 web3的IP地址(域名)。说明DNS代理服务器正确地执行了301重定向,且得到了该网站的正确内容见图3。
图3 客户端访问http://web3.test.com/界面图
2.2 虚拟机的安装与配置
虚拟机(VM)支持多操作系统并行运行在单个物理服务器上的系统,能提供更加有效的底层硬件使用。在虚拟机中,中央处理器芯片从系统其他部分划分出一段存储区域,操作系统和应用程序运行在“保护模式”环 境 下[9-11]。 常 用 虚 拟 机 软 件 有:VMware Workstation和Oracle VM Virtual Box等,本文使用开源虚拟机软件 Oracle VM Virtual Box 4.1.6 实现[12]。
在Oracle VM Virtual Box构建虚拟机的过程中,有些过程容易出现错误而使实验无法进行下去。为了保证实验的正常进行,下面对创建虚拟机的几个关键过程结合配置界面进行介绍。
2.2.1 创建虚拟机
启动Oracle VM Virtual Box虚拟机软件,选择新建(以创建 Windows XP为例),然后输入名称为“XP”,选择系统类型为“Microsoft Windows”,版本为“Windows XP”,界面见图4。本实验中我们在一个物理计算机上创建DNS(Windows 2008)、DNS代理服务器Proxy(Windows 2003)及应用服务器Web(Windows 2003)共3个虚拟机,客户直接在物理计算机上访问。同时开启3个虚拟机运行正常,验证正常。
2.2.2 虚拟磁盘文件格式选择
在Oracle VM Virtual Box 4版本之后支持更多的虚拟磁盘文件格式,以方便与其他虚拟机软件交换使用虚拟机文件,其选择界面见图5。
在虚拟磁盘文件类型选择上有四种选择:第一项VDI是Oracle VM Virtual Box系统使用的虚拟磁盘文件格式;第二项VMDK文件是VMware Workstation的文件格式;第三项VHD是Microsoft Virtual PC 2007和Microsoft Virtual Server 2005以及Hyper-V使用的虚拟磁盘文件格式;第四项HDD文件是在Mac、Windows及Linux系统下都能够打开的通用虚拟磁盘文件格式。如果你的计算机上只有Oracle VM Virtual Box虚拟软件,直接选择第一项即可。
2.2.3 虚拟机系统设置
图4 创建虚拟机
图5 虚拟机磁盘格式选择
在虚拟机的系统设置上主要进行主板、处理器设置等,界面图见图6。在主板设置中首先要根据物理机及虚拟系统的需求设置内存及虚拟硬盘的大小,一般可以取默认值,也可以根据你的物理内存的大小及分区可用磁盘空间的大小选择虚拟机的内存128~1024MB,硬盘8-32GB。在硬盘空间分配上一般采用动态分配方式。在启动顺序选择上,一般选择先硬盘,后光驱的原则,这样可以避免由于光驱中有安装文件反复安装的情况。
图6 虚拟机系统选择
2.2.4 虚拟机安装文件来源选择
在虚拟机的安装过程中,操作系统安装文件来源一般有两种:光盘安装盘及安装压缩包ISO安装文件。如果是光盘,则安装文件来源直接选物理光盘即可,如果是ISO文件,选择虚拟光盘文件。
2.2.5 虚拟机网络选择
在网络选择上主要进行虚拟机的网卡连接方式的选择。可以选择的类型有:桥接、NAT、主机及内部网络等。本实验中使用同一个网段的IP地址实现各虚拟机的互相访问,因此网络连接方式选择桥接模式,网卡直接选择物理网卡,配置界面见图7。
图7 虚拟机网络选择
该模式的主要好处是不需要路由器的参与各个虚拟机之间就可以相互通信,并且各虚拟机可以直接通过物理网卡访问外网。如果需要可以选择其他模式,也可以选择多块网卡进行配置以满足系统需求。
2.3 服务器配置
随着网络规模扩大,服务器的功能增强,各种网络服务器的性能要求也在不断提高。因此在服务器部署上有很多新技术,如服务器集群[13-14]、云计算[15]、智能路由[16]等在服务器部署上得到广泛的应用。
在本实验中,为了减少设备使用,简化实验环境,使用一台PC机,安装3台虚拟机实现DNS服务器、DNS代理服务器及应用服务器。实验计算机配置为:CPU E8400,3 GHz,内存 3 GB,操作系统 Windows XP。
2.3.1 DNS 服务器配置
商业DNS服务器的配置可以根据客户需求进行配置与管理。实验中使用Windows 2008自带的DNS服务器进行配置,配置结果见图8。
图8 DNS服务器配置
在DNS管理器中首先建立一个标准正向区域test.com,在该区域下建立三个主机,主机名分别是web1,web2,web3,它们的 IP 地址都是 192.168.210.181,即指向单位的DNS代理服务器。反向区域根据需要建立,在该实验中没有建立反向区域。
2.3.2 DNS 代理服务器配置
在DNS代理服务器上建立三个Web网站对应三个应用服务器。在三个Web网站中使用301重定向技术将网站重定向到三个应用服务器的IP地址及端口或域名及端口及参数等。
在一个IIS下可以采用多种技术同时建立多个Web网站,如多IP地址、多端口、多主机头技术等。假如要求在该服务器下只有一个IP地址,并且只能在默认端口(80端口)下运行多个Web网站,那么就要配合DNS技术使用多主机头技术来区分多个网站,这就是我们在DNS服务器上配置多个域名到代理DNS服务器的同一个IP地址的目的之一。通过DNS传递的IP地址可以找到DNS代理服务器,通过客户端传输过来的主机头(域名)可以区分不同的主机,进而使用301重定向技术找到真正的应用服务器。
在增加Web站点的过程中,要确定IP地址、端口号及主机头等参数,其配置界面见图9。
图9 web1网站主机头配置
图9是增加web1.test.com的配置界面,在IP地址上使用了DNS代理服务器的IP地址,端口号使用了默认端口80,这些参数web2及web3都是相同的。唯一不同的是网站的主机头,web1的是 web1.test.com,其他两个网站的主机头分别为 web2.test.com,web3.test.com。
在web1的属性配置中并没用给该网站设立默认主页,而是使用301重定向功能将网站重定向到真正的应用服务器,其界面图见图1。注意,在重定向配置中使用了重定向到web1应用服务器的IP地址及非默认端口200,根据需要也可以重定向到应用服务器的域名及端口号,甚至带参数重定向。这样即使内部应用服务器使用非默认端口在外部也可以使用默认端口来访问,增加了内部应用服务器部署的灵活性。其他配置从略。
2.3.3 应用服务器配置
在应用服务器配置上,商业应用一般使用独立的具有不同IP地址的服务器来建立不同的网络应用服务器,并且要使用各种脚本技术及数据库技术实现复杂的服务功能。
为了简化实验,在试验中使用了一台虚拟机配置多个 IP 地址(192.168.210.200-202)实现多个应用服务器的配置。首先在虚拟机网卡中配置多个IP地址192.168.210.200-202,在 IIS 网站默认文件夹(C:Intpubwwwroot)下新建web1~web3文件夹,在对应的文件夹下建立Default.htm默认主页。在默认主页中简单添加说明性文字如图3所示。
在虚拟机的IIS下共配置了三个应用发生器web200、web201、web202 分别对应 web1.test.com,web2.test.com,web3.test.com,其配置界面见图 10。三个应用Web站点的IP地址及端口号分别为192.168.210.200:200,192.168.210.20,1:201,192.168.210.202:202,可以根据需要而改变,但改变的参数要与DNS代理服务器的参数一致。在Web站点属性上只设置了测试要求的参数,如端口号由默认的80改为200等,不同Web服务器选择了不同的IP地址,其他参数基本上使用了默认参数。
图10 应用服务器web1.test.com属性配置
2.4 实验结果
实验验证采用物理计算机作为验证客户端与虚拟机通信及访问Web服务器验证。首先要实现各虚拟机与物理计算机的连通,在各计算机能够正常通信的情况下,再验证DNS代理服务器的301重定向功能。
(1)连通性验证。将客户机的DNS配置为本实验的 DNS 服务器的 IP 地址(192.168.210.181),由于验证客户机与各虚拟机在同一个网段,默认网关不必配置。首先在客户机上PING各服务器IP地址,结果显示全通,然后PING各Web服务器域名返回的都是192.168.210.181,说明 DNS 服务器解析正确。
(2)服务器重定向验证。在客户机的浏览器上分别访问 web1.test.com,web2.test.com,web3.test.com。其中web3.test.com访问结果见图3,其他访问结果类似,从略。这一结果说明DNS代理服务器的301重定向结果正确,达到了其功能要求。
3 结语
本实验是“Windows网络架构”的一个综合实验,希望通过本实验使学生能够理解各种网络服务的工作关系及配置方法,加强各种网络服务的综合应用能力。该实验不仅能够加深学生对网络服务的认识,并且为在复杂网络环境下部署应用服务器提供了一种良好的技术实现方式,具有一定的应用价值。
该实验虽然实现了应用服务器DNS的动态管理,但是在实际环境下的运行效果如何,特别是多服务器的重定向的性能如何还没有进行研究。在以后的研究中要对服务器重定向的性能,如DNS代理服务器的转发性能及稳定性要作进一步的研究。
(References):
[1] 邢 丽,李桂兰,王韧峰.中小型企业WEB服务器集群的配置与管理[J].吉林工程技术师范学院学报,2010,36(3):38-39.
[2] 王艳峰,王 正,阎保平.一种基于域名错误的DNS重定向协议[J].计算机系统应用,2010,19(7):50-53+41.
[3] 微软公司(Microsoft).网络基本架构的规划和维护——以Windows Server 2003为例[M].北京:高等教育出版社,2005.
[4] 百度百科.301 重定向[EB/OL].http://baike.baidu.com/view/2173220.htm,2011-12.
[5] 柴文磊,李 超.301重定向在地址转换中的应用[J].信息安全与技术,2010(10):41-42.
[6] 王艳峰,王 正,阎保平.一种基于域名错误的DNS重定向协议[J].计算机系统应用,2010,19(7):50-53+41.
[7] 彭 勇,范乐君,陈冬青,等.基于透明代理的域名系统隐患分析与防御策略[J].清华大学学报(自然科学版),2011,51(10):1318-1322,1328.
[8] 王 彬,刘百祥,宓 詠.基于URL重定向的第三方接入系统的设计与实现[J].实验技术与管理,2011,28(5):262-264+271.
[9] 邢仲璟,林丕源.浅谈虚拟机在网络实验课程中的作用[J].实验室研究与探索,2007,26(12):304-306.
[10] 杨志彬.高校实验教学用服务器资源虚拟化部署[J].实验室研究与探索,2010,29(7):75-78.
[11] 许 娜.基于VMware ESX Server的实验教学平台建设[J].实验室研究与探索,2011,30(9):202-205.
[12] Oracle VM Virtual Box User Manual Version 4.0.6[EB/OL].http://www.virtualbox.org
[13] 崔荣波,许晓兵,陆 颖.一种虚拟化的服务器集群模型[J].计算机系统应用,2011,20(3):173-177+213.
[14] 林天山.DNS服务器集群解决方案[J].电信技术,2010(1):83-87.
[15] 游小明.新型云计算服务器的设计与实现[J].计算机工程,2011,37(11):40-42.
[16] 吴许俊.基于多ISP接入的网关架构与实现[J].计算机与现代化,2010(10):147-149.