服务器使用异地IP地址的方法
2015-01-17尹宗平
尹宗平
(合肥职业技术学院,安徽 合肥 238000)
服务器使用异地IP地址的方法
尹宗平
(合肥职业技术学院,安徽 合肥 238000)
服务器一般使用数据中心分配的IP地址,有时需要在服务器上使用异地数据中心的IP地址,以实现某些特殊的功能,但互联网体系结构使这种需求难以实现。使用VPN技术在互联网上建立隧道,将服务器与异地数据中心在网络层直接连接,再通过配置路由规则,可以实现在服务器上使用异地数据中心的IP地址,并在应用上呈现出一些特点。
服务器;IP地址;VPN;路由;异地数据中心
1 引言
服务器托管在数据中心时,有时需要使用异地数据中心的IP地址,这样可以实现一些特殊的功能,例如:可以将流量费用较高的香港Web服务器迁移到国内数据中心以降低流量成本;可以让服务器使用异地较为便宜的IP地址。实现此需求的一个方法是:对于具备条件的企业可以申请获得AS号,再采用BGP协议将申请的IP地址广播到本地数据中心。但这个方法一般企业不具备操作条件,本文提出了一种简便的服务器使用异地IP地址的方法。
2 基本思路
IP地址是服务器在网络层的唯一标识,服务器上配置的公网IP地址需要向CNNIC、APNIC等IP地址分配机构申请获得,然后才能在世界各地的互联网路由器上通过路由协议配置路由规则,获得的IP地址才能在指定的数据中心使用。当某台客户计算机访问互联网上某台服务器时,客户计算机发出请求IP数据报,其目标地址为服务器IP地址,请求IP数据报经过互联网路由路径的各台路由器转发后,最终到达服务器;然后服务器发出响应IP数据报,其目标地址为客户计算机IP地址,响应IP数据报同样经过多次转发后,最终到达客户计算机。
根据上述互联网体系结构的规则,服务器上即使配置了异地数据中心的IP地址,也将无法使用,因为未在互联网路由器上配置路由规则,客户计算机发出的访问请求无法送达服务器。
VPN技术可以在互联网的两个节点间建立隧道,使这两个节点在网络层上成为相邻节点。当这两个节点是路由器时,一个节点可以将另一个节点作为路由规则中的下一跳。当这两个节点是服务器与异地数据中心的服务器时,则呈现如图1所示的网络拓扑。
图1 网络拓扑图
在上述两节点上运行路由服务、配置路由规则,可以实现服务器与异地数据中心在网络层上直接互联,实现在服务器上使用异地数据中心的IP地址。其做法是:在异地数据中心的服务器上配置静态路由,将目标地址指定的异地数据中心IP地址的IP数据报,通过VPN隧道路由到服务器上;在服务器上配置此指定的异地数据中心IP地址,则服务器可接收到此IP数据报;服务器响应发出IP数据报,其目标地址是客户计算机IP地址,将广播到服务器的默认网关,经互联网转发到客户计算机。
3 实验验证
3.1 基本环境
异地数据中心的服务器可以是一台OpenVZ技术的虚拟机,在其上安装CentOS操作系统。设其IP地址为A.A.A.10与A.A.A.11,虚拟机上只配置A.A.A.10。修改/etc/sysctl.conf配置文件,将net.ipv4.ip_forward行的值由0改为1,使本机成为软件路由器。
服务器上安装Windows 2008 Server,设其IP地址为B.B. B.20,并配置A.A.A.11为第二个IP地址,默认网关为B.B. B.1。配置并启用“路由和远程访问”,选“自定义配置”、“LAN路由”,使本机成为软件路由器。
3.2 VPN的配置
当前实践中较典型的VPN技术有PPTP、L2TP、OpenVPN等。OpenVPN基于UDP或TCP协议通讯,具有较强的穿透力,具有压缩、加密功能,多种认证方式可选,具有服务器端、客户端,通过虚拟网卡实现通讯,配置简便,故选用之。在A.A.A.10上安装Linux版本的服务器端,在B.B. B.20上安装windows版本的客户端,并分别编辑配置文件。
OpenVPN应使用UDP协议通讯。虽然可以使用TCP协议通讯,但TCP协议是可靠的、有连接的,其可靠性主要通过差错控制、流量控制、拥塞控制实现,可靠性、连接性机制均有损传输效率;如果在使用TCP协议通讯的OpenVPN隧道上再传输TCP流量(如WEB服务),就会出现TCP连接上的TCP连接(TCP-over-TCP),存在双重可靠性、连接性机制,造成效率更低。而UDP协议是不可靠的、无连接的,传输效率较高,传输的可靠性可由上层协议来完成,如由OpenVPN隧道上传输的TCP流量本身来实现可靠性。
OpenVPN一般应禁用加密。虽然可以启用加密,但加密、解密操作会降低传输效率。
OpenVPN一般应启用压缩。虽然压缩、解压操作会降低传输效率,但较高的压缩比降低了传输的数据量,可提高总传输效率。
服务端配置文件如下:
proto udp#选择协议
port 1200#监听端口
dev tun#基于网络层连接
secret/static.key#预共享密钥文件
ifconfig 10.2.0.1 10.2.0.2#指定服务器端与客户端的IP
routeA.A.A.11 255.255.255.255#路由规则
keepalive 10 60#ping间隔与超时时间
comp-lzo#启用压缩
cipher none#禁用加密
客户端配置文件如下:
proto udp
remoteA.A.A.10 1200#指定服务器端
dev tun
secret"c:\static.key"
ifconfig 10.2.0.2 10.2.0.1
comp-lzo
cipher none
当OpenVPN隧道建立后,A.A.A.10服务器将存在IP地址为10.2.0.1的虚拟网卡,B.B.B.20上将存在IP地址为10.2.0.2的虚拟网卡,两者属于同一子网。
3.3 访问请求的路由路径
在远程数据中心的服务器A.A.A.10上,在OpenVPN服务器端配置文件中添加静态路由规则行:“route A.A.A.11 255.255.255.255”,则由客户计算机发出的目标地址为A.A. A.11的IP数据报,将沿互联网转发到A.A.A.10上,再通过VPN隧道转发到服务器的10.2.0.2虚拟网卡接口,再在本机内转发到A.A.A.11接口。
3.4 响应请求的路由路径
在服务器的A.A.A.11接口上将响应客户计算机的请求,其响应请求的IP数据报的目标地址是客户计算机的IP地址。该IP数据报将根据默认路由规则广播到默认网关B.B. B.1,默认网关根据目标地址再转发到互联网上其它路由器,沿着路由路径最终转发到客户计算机。
需要说明的是,在上述过程中响应请求的IP数据报的源地址为A.A.A.11,并不是数据中心分配给服务器的IP地址B. B.B.20,故需要数据中心在防护墙上允许该IP数据报通过。
3.5 结果测试
在互联网中任一计算机上用命令测试:“ping A.A. A.11”,均可以ping通,说明服务器已经成功使用异地IP地址。
4 应用特点
(1)本方法使服务器可以使用世界上任意便宜的IP地址资源。
(2)可以将多个数据中心的IP地址配置到一台服务器上实现线路冗余备份,在对线路稳定性要求较高的情况下、以及在组建防攻击网络时适用。
用服务器上的异地IP地址架设Web服务时,还具有以下特点:
(3)异地数据中心的流量占用小,本地服务器的流量占用大。原因是在Web服务中,客户端访问请求包括的主要是网址信息,数据量较小,主要数据的路由路径是:客户计算机——互联网——异地数据中心服务器——服务器;服务器响应访问的主要是网页信息,数据量较大,主要数据的路由路径是:服务器——互联网——客户计算机。前文所述的香港Web服务器迁移到国内即是此特点的应用。
(4)当异地数据中心距离遥远,离服务器较近地区的网站访问速度有一定提升。例如:当异地数据中心位于美国,服务器位于中国电信,从中国电信访问服务器上的美国IP地址的网站时,速度一般将比访问异地数据中心的网站快。原因是较小的访问请求流量经过了较长的路由路径,而较大的响应请求流量经过了较短的路由路径。
实验证明,上例中的网站访问速度并不会提升太多,与访问中国电信网站相比仍较慢。原因之一是传输层使用TCP协议,存在流量控制、拥塞控制,客户计算机接收到响应请求数据后,要向服务器发送确认信息,而确认信息要经过较长的路由路径,迫使服务器不能持续地向客户计算机高速传输数据。
5 结论
通过VPN技术可以在服务器与异地数据中心之间建立基于网络层的直接连接,结合路由技术可以在服务器上使用异地数据中心的IP地址。这种方法有利于降低IP成本,有利于实现线路冗余备份,在架设Web服务时有利于降低远程数据中心的流量,特定条件下有利于改善网站访问速度。
[1]中国互联网信息中心.CNNIC[EB/OL].http://www.cnnic.com.cn,2014.
[2]兰少华,杨余旺,吕建勇.TCP/IP网络与协议[M].北京:清华大学出版社,2005.
[3]林圣东,陈小惠,赵瑞卿.基于OpenVPN的Lan-to-Lan VPN的设计与实现[J].电子测试,2012,(4):86-92.
[4]OpenVPN Technologies,Inc.OPENVPN[EB/OL].http://www.openvpn.net,2014.
Method of Server using the Remote IPAddress
Yin Zongping
(Hefei Vocational and Technical College,Heifei,238000,China)
act】Servers usually use IP addresses of the data center.In order to realize some special functions,sometimes it's necessary that the server uses IP address of remote data center.But the internet architecture makes it difficult to achieve.To build a tunnel on the internet using VPN technology,the server and the remote data center will be directly connected in the network layer.Then through the configuration of the routing rules,the server using the IP address of remote data center can be realized.Some characteristics in application will also be presented.
server;IP address;VPN;routing;remote data center
TP393
:A
1008-6609(2015)03-0068-03
尹宗平,男,安徽巢湖人,硕士,高级工程师,研究方向:网络理论与应用。