基于PROXY—ARP和智能DNS的校园内网服务器双线访问技术研究
2016-05-30单庆元南峰
单庆元+南峰
摘 要:文章针对基于DNAT和SNAT的双线方法中的日志查询问题和基于Web反向代理双线方法中的服务扩展问题,利用移动IPV4中使用的IP漫游技术,在校园网和联通公网边界处的NAT服务器上设置PROXY-ARP,相关网络设备上设置静态路由,将联通公网IP地址漫游到校园内网服务器区。利用IP地址的技术,将双线访问中使用的联通公网IP地址和教育网IP地址配置到一台服务器上。在出口路由器上配置策略路由,使得源地址为联通公网IP的数据包通过联通公网链路发送,源地址为教育网IP的数据包通过教育网链路发送。实际使用证明,基于PROXY-ARP的双线访问方法具有日志查询简单、服务扩展容易等特点。
关键词:双线访问;PROXY-ARP;IP漫游
中图分类号:TP393.01 文献标志码:A 文章编号:1673-8454(2016)08-0072-04
一、引言
随着校园信息化的发展,校园网出口带宽不断增加,在互联网服务提供商的选择上也实现了多元化。服务器双线访问技术能够利用多元化的出口链路资源提升校外用户访问校园内网服务器的速度。依托智能DNS技术实现的方法有多种,文献[1]提出了基于单主机双网卡的方法,该方法在网络客户机的本地DNS服务器配置不合适时,服务器访问会失败。文献[2]使用了双主机内容同步方法,该方法需要两台主机,资源比较浪费,维护不方便。文献[3]总结了单主机双网卡方法的缺点后提出了基于Web反向代理的方法,该方法也需要额外的软硬件,而且非Web应用支持不好。文献[4]使用了基于NAT和静态路由的方法,该方法在网络客户机DNS配置不合适时访问网站会出错。文献[5]详细阐述了基于NAT和策略路由方法的原理和实现方法,该方法的缺点是服务器日志查询分析比较困难。文献[6]使用了专业设备F5负载链路均衡器的虚拟服务器技术,该方法本质上也是基于NAT,成本较高。文献[7]简述了CDN技术,使用Squid的反向代理实现了双线访问,CDN网络发展迅猛,从CDN服务提供商租用服务来加速变得可行,但一些应用实现加速很困难(如SSH、SMTP、SSLVPN等)。受移动IPV4技术[8, 9]和文献[2]的启发,本文实现了一种基于PROXY-ARP的双线访问方法。
二、校园网拓扑简介
如图1所示,校园网有两条出口链路:教育网链路和联通公网链路,内网服务器使用教育网IP地址提供服务。在校园网和联通公网的边界处使用NAT服务器(RouterOS系统),将校园网内网用户使用的教育网IP地址转换成联通公网IP地址。出口路由器(Juniper Router)负责进出校园网数据的路由选择,通过使用静态路由和策略路由,使得校园内网用户对教育网IP的访问请求通过教育网公网链路发送,对非教育网IP的访问请求则通过联通公网链路发送。出口路由器还保证了校园网外客户机对内网服务器的访问请求能正确转发至服务器,同时内网服务器的响应也能正确返回给客户机。
1.代理ARP技术的技术原理
在使用以太网技术的局域网内,本地数据的传输是通过MAC地址来寻址的。在同一个局域网内的两台计算机要传送数据,除了需要知道接收设备的IP地址(D-IP),还需要接收设备的MAC地址(D-MAC),如果数据发送的计算机(该计算机的IP为S-IP)不知道接收方的MAC地址,就会发送ARP请求,该请求为二层的广播,局域网里的计算机都能收到该请求,但是只有IP地址为D-IP的主机做出响应,给IP地址为S-IP的主机回复一个ARP响应(ARP Response),告诉数据发送主机,D-IP对应的MAC地址为D-MAC。
如果数据发送主机IP地址(S-IP)和数据接收主机的IP地址(D-IP)是同一个逻辑网段(就是两台主机配置的IP地址所在的网络号相同),但是物理上却被路由器隔离开,单纯的使用ARP协议是不能通信的。因为路由器的一个重要作用就是将所有的广播数据包限制在本地,不会将广播数据包发送到另外的路由器接口上。这样单纯使用ARP协议,源主机是不能获得目标主机的D-MAC的。这时,需要在路由器指定的接口上开启PROXY-ARP协议。
当路由器在开启PROXY-ARP的接口上接收到目标地址为D-IP的ARP请求时,路由器会查找路由表,看路由表中是否有到D-IP的路由,如果路由表中有D-IP的路由,路由器会代替D-IP主机,用连接S-IP主机的路由器接口的MAC地址(Router-MAC)给S-IP主机发送一个ARP响应(ARP Response),告诉S-IP主机D-IP主机的MAC地址是Router-MAC。这样所有S-IP主机到D-IP主机的数据先发送给路由器,再由路由器转发给D-IP主机。
代理ARP典型应用是在移动IPV4网络中设备的漫游[8]。如图2所示。
移动IP终端属于网络A,由于某种原因,现在需要移动到网络B中,但是IP地址仍然使用网络A的地址。通过移动IP的移动终端注册机制,路由器A知道此时移动终端已经到达网络B中,并且通过路由器B可以到达移动终端。这样A网络中固定IP终端与移动终端的通信就必须使用下列步骤:①路由器A的内联接口开启代理ARP功能。②网络A中的固定终端发送目标IP为移动终端IP的ARP请求,在网络A中的所有主机都能收到该请求。③路由器A收到该ARP请求之后,用内联接口的MAC地址回复ARP请求。④网络A中的固定终端将数据发送给路由器A。⑤路由器A通过隧道等的技术将数据通过路由器B转发给移动终端。
2.PROXY-ARP在服务器双线访问中的应用
实现方法如示意拓扑图3的①所示,有两台Web服务器(Windows 2003系统),发布的内容一样,1号Web服务器配置联通公网IP地址,连接到联通公网中,为非教育网的用户提供Web服务,2号Web服务器配置教育网IP地址,放置在校园内网服务器区,为教育网的用户提供Web服务,这就是双线访问的双主机方法[2]。现在利用PROXY-ARP和静态路由,将位于联通公网边界处的1号Web服务器漫游到校园内网服务器区,如图3的②所示,再利用从IP的技术将1号Web服务器和2号Web服务器整合,变成一台服务器,如图3的③所示。Web服务器的网卡上配置主从IP地址,主IP设置为教育网IP,从IP设置为联通公网IP。
3.基于PROXY-ARP双线方法的具体实现步骤
(1)智能DNS解析
利用智能DNS技术实现教育网的客户机将网站域名映射为Web服务器教育网IP地址,非教育网的客户机将网站域名映射为Web服务器的联通公网IP地址。可以采购商业化的智能DNS产品或者使用开源的DNS服务器BIND,考虑到成本因素,实际使用BIND的VIEW来实现域名的智能解析[10]。
(2)客户机访问请求的正确转发
该部分利用PROXY-ARP,设置静态路由,服务器主从IP地址使得客户机对Web服务器联通公网IP的请求正确地转发给Web服务器。
联通出口的NAT服务器的外网卡(ether1)配置相关IP、网关及启用PROXY-ARP功能,命令如下:
/ interface ethernet set ether1 arp=proxy-arp
注:在外网卡上开启proxy-arp功能
/ ip address add address=124.93.236.98/27 interface=ether1
注:网络接口ether1上配置联通分配的IP地址
/ ip route add dst-address=0.0.0.0/0 gateway=124.93.236.97
注:添加指向联通网关的默认路由
客户机对Web服务器联通公网IP的访问请求首先在联通公网内进行转发,最终网关设备(124.93.236.97)会收到该请求,联通网关会发送关于Web服务器联通公网IP的ARP请求,NAT服务器会在外网卡收到该请求,由于在该网卡上启用了PROXY-ARP功能,NAT服务器会用外网卡的MAC地址进行ARP回复,这样所有的访问请求都由联通网关转发到了NAT服务器。由图3可知,配有联通公网IP的Web服务器现在的位置是在内网服务器区,所以NAT服务器须将访问请求转发到出口路由器,由出口路由器进行下一步转发。实现方法是在NAT服务器上添加静态路由:
/ ip address add address=172.16.15.1/29 interface=ether2
注:配置NAT服务器的内联接口地址,此接口与出口路由器直连
/ ip route add dst-address=124.93.236.122/32 gateway=172.16.15.2
注:将Web服务器的联通公网IP(124.93.236.122)转发的下一节点设置为出口路由器。这样访问请求就被转发到了出口路由器,同样在出口路由器上设置静态路由,将请求进一步转发给校园网的核心交换机。配置如下:
set interfaces ge-0/0/0 unit 20 family inet address 172.16.15.2/29
注:ge-0/0/0是出口路由器的外联接口,与NAT服务器通过交换机相连,IP地址为172.16.15.2
set interfaces ge-1/3/0 unit 0 family inet address 172.16.10.1/29
注:ge-1/3/0是出口路由器的内联接口,与核心交换机相连,IP地址为172.16.10.1
set routing-options static route 124.93.236.122/32 next-hop 172.16.10.2
注:设置静态路由将请求转发给校园网核心交换机。
核心交换机设置为Web服务器教育网IP的网关,与Web服务器直接相连,在核心交换机上设置静态路由,将发送给Web服务器联通公网IP的数据转发给Web服务器教育网IP。
配置如下:
ip route 0.0.0.0 0.0.0.0 172.16.10.1
注:配置默认路由指向出口路由器的内联接口
ip route 124.93.236.122 255.255.255.255 210.30.48.11
注:将所有发送给服务器联通公网IP地址(124.93.236.122)的数据,转发给服务器教育网IP(210.30.48.11)。Web服务器的网络接口上配置主IP(210.30.48.11)和从IP(124.93.236.122),以便接收目标为教育网和联通公网IP地址的访问请求,默认网关设置为核心交换机的IP(210.30.48.254)。
另外,Web服务器上IIS的站点配置为监控所有IP地址,同时处理教育网IP和联通IP的Web访问请求。
至此,客户机的访问请求已经能正确发送到Web服务器。
(3)Web服务器响应的转发
该部分使用默认路由,策略路由将Web服务器对客户机的响应正确的转发给客户机。
服务器处理完客户机的请求之后(以Web服务器联通公网IP响应为例),将数据包的源IP设置为124.93.236.122,目标IP为客户机IP地址,发送给Web服务器的网关-核心交换机IP地址210.30.48.254。核心交换机接收到该数据包后,根据默认路由,将数据包转发给出口路由器。出口路由器使用策略路由对Web服务器的响应数据包进行转发。由于对Web服务器联通公网IP的访问请求都是从联通线路进来的,对Web服务器教育网IP的访问请求都是从教育网线路进来的,所以利用基于源IP的策略路由,将所有源IP为服务器联通公网IP的响应直接转发给NAT服务器,所有源IP为服务器教育网IP的响应直接转发到教育网即可。在Juniper路由器中,策略路由称为基于过滤器的转发(Filter-Based Forwarding)。
4.配置正确性的验证
设置Web服务器的IIS的访问日志,记录具体的访问请求。
通过对网站日志的简单统计,可以发现Web网站的整体访问趋势。该网站在2015年4月1日-15日期间,对教育网IP地址(210.30.48.11)的访问次数为17172次,对服务器联通公网IP地址(124.93.236.122)的访问次数为64875次,大部分访问来自非教育网。
对于服务扩展方面,该方法对服务没有限制。除了一般的Web应用外,对于SSL VPN、PPTP VPN、SMTP、POP3、TELNET等,用该方法也实现了双线访问。在线路扩展方面,由于在服务器上可以配置多个从IP地址,所以该方法可以利用多条出口线路对内网服务器区的服务器加速访问。
三、结束语
下面对通常使用的双线访问技术进行对比,可以根据不同的业务需求使用合适的双线访问技术。①基于PROXY-ARP的方法。Web访问的所有信息都在Web服务器上,便于统计分析和对特定访问记录的追溯;可以实现Web以外应用的双线访问;线路扩展简单,只要出口线路足够,很容易扩展为三线或者更多线路的加速访问;通过PROXY-ARP,静态路由配合策略路由将主机移动到内网服务器区,有利于服务器的统一防护。使用策略路由确保服务器的响应数据包能正确路由,不会出现因客户机DNS服务器配置不合适而影响服务访问。②基于双向NAT的方法。由于NAT服务器对源IP、目标IP进行了转换,如果需要追溯特定的访问记录,需要查Web服务器的访问日志和NAT服务器的NAT转换记录,在Web服务器和NAT服务器的时间同步的情况下,日志查找也比较困难。由于客户机的IP地址在NAT服务器上做了转换,在Web服务器看来,所有的非教育网客户机的IP地址都是相同的,如果在Web服务器上安装了Web应用防火墙对恶意的客户机IP地址进行阻断,那么所有非教育网的访问都会被阻断。③基于Web反向代理的方法。需要至少一台额外的服务器,Web反向代理服务器对内网服务器的响应做了本地的缓存,能够分担Web服务器的负载。但是该方法只适合于一般的Web应用服务,使用了加密的Web应用和非Web应用(如SSLVPN,SSH等)实现困难。
另外,在互联网接入的时候,互联网服务提供商分配IP地址的方式也影响双线访问的实现方法,以上的方法一般都基于路由的IP分配方式。如果是交换的IP分配方式,实现双线访问会简单一点。
参考文献:
[1]李孜.公众网用户快速访问校园网Web的设计与实现[J].河南科技大学学报(自然科学版),2008(2):51-54.
[2]刘妍,陈松,战学刚.外网访问校园WWW服务器双线接入策略[J].鞍山科技大学学报,2007(5):493-498.
[3]孙伟平,张延.浅析高校网站的双线接入解决方案[J].科技视界,2012(11):142-143.
[4]吴宏波.动态DNS技术在双出口校园网中的应用[J].电脑与信息技术,2009(1):59-61.
[5]战学刚,陈松.基于双向NAT和智能DNS内网服务器安全快速访问策略[J].计算机工程与设计,2009(12): 2941-2944.
[6]李海明,苏开宇.智能DNS在校园网多链路控制的应用[J].中国计量学院学报,2011(1):59-63.
[7]孟小华,陈仁章.基于CDN技术实现教育网网站的跨网络快速访问[J].计算机工程与设计,2010(9):1909-1911.
[8]Ietf.RFC2002-IP Mobility Support[S].2002.
[9]Ietf.RFC3344-IP Mobility Support for IPv4[S].2002.
[10]Paul Albitz C L.DNS and BIND, 5th Edition [M].O'Reilly, 2001.
(编辑:鲁利瑞)