传统vpn将面临的技术难点

  1. 防火墙的拦截:协议,异常通话的拦截

  一般来说,在时下的很多公司,为了公司网络为了确保安全,都在使用防火墙、代理服务器和NAT,这些设备不但可以将内部网络和外部分开,达到安全的目的,而且也是为了让办公室的许多计算机用户来分享宝贵的IP地址。因此,今天这种设备是必不可少的。但问题也随之而来。传统VPN协议(如IPSec、L2TP和PPTP)的隧道不是经常可以建立并通过防火墙、代理服务器和NAT的。有些协议是在NAT广为流传前的时代被开发的。例如,IPsec和L2TP使用ESP(安全封装有效载荷)数据包,PPTP使用GRE(通用路由封装)数据包。这些数据包是IP数据包的特殊形式。因此,这些传统的VPN数据包无法通过一般防火墙、代理服务器和NAT。最近,一些IPsec、L2TP和PPTP VPN产品的供应商试图发明扩展方法来通过这些墙设备,一些VPN产品实施了这种扩展的方法。但是,这种传统VPN协议的扩展方法仍然有一个兼容的问题。在许多情况下,用户尝试通过L2TP或PPTP在有防火墙、代理服务器和NAT的网络内建立VPN连接,但他会失败。你可能有这种经历,你在酒店房间用L2TP或PPTP远程访问VPN试图连接到你们公司的网络,但是失败了。失败的原因是因为网络上的防火墙、代理服务器和NAT与L2TP或PPTP不兼容。

  因此,可以说今天的网络管理员有个VPN连接与安全设备不兼容的头疼问题。如果你想在你的网络上使用传统的VPN,你不得不修改当前安全设备的网络策略,如防火墙允许特殊的IP协议通过,如ESP和GRE。你还不得不修改防火墙上的配置文件。这些工作需要你额外的努力,还可能引起你们本来稳定并宝贵的网络产生一些棘手的副作用。不仅困扰你,因为需要你额外的工作;你还要承担使网络危险的风险,因为你必须改变防火墙的设置,在它上面打一个洞,以允许传统VPN的数据包通过。

  当代市场上,一些最聪明的防火墙可以检测到穿过防火墙的TCP连接的异常行为。如果在网络上通往互联网的出口有这样的防火墙,PacketiX VPN的一个VPN会话可能被检测为异常TCP连接,并可能被防火墙终止。这将是保持可靠、稳定的VPN会话的一个风险。

  因为PacketiX VPN利用HTTPS协议作为一个隧道传输VPN的内部数据包,一个HTTPS/ TCP连接将是双向的。在HTTPS的标准行为,在同一个TCP会话从会话建立到它终止,有方向转换的最大数量,在HTTP1.1协议的RFC中定义的标准值是15。如果PacketiX VPN使用一个单一的HTTPS/TCP连接作为隧道,方向转换的数量一定超过15。正常的HTTPS使用,这是不可能的。于是一个具有全状态数据包检查功能的智能防火墙,将断开那个HTTPS会话。

  2. 传输速度:mtu值得解决方案

  传统的VPN协议,如L2TP或PPTP继承了过时协议的PPP(点对点协议)的不良行为。PPP被计设的目的是通过窄带电话线传输数据包。不适合当代的高速互联网线路。

  计算机使用默认的1,514字节作为MTU(最大传输单元),因为它是一个标准的没有FCS的以太网数据包的大小。事实上没有办法决定MTU优化的尺寸,即使数据包通过VPN传输。

  传统的VPN协议,如IPSec、PPTP和L2TP,这个以太网MTU值是不好的。有一个严重的问题,叫做“MTU问题”,来自于传统VPN的局限性,因为传统VPN必须传送数据包到在物理线路上组成数据块的隧道里。

  如果一台电脑通过以太网段传输全尺寸的数据包(1,514字节),将会实现最佳的吞吐量。但是,如果两台电脑之间用传统的VPN,性能将会是一半。由于MTU问题,每个数据包将被分为两个包。增加数据包的总数将会减少总的吞吐量。

  理想的情况下,这个问题可以通过两种方式,即:路径MTU发现协议和在边缘节点上的相应设置得到解决。但是,路径MTU发现在实际网络中是无用的。而在网络上的所有电脑建立合适的MTU设置是不可能的。

  3. 安全性:加密,后门,人在中间,认证

  传统VPN厂商隐藏他们的软件和专用集成电路的代码,所以几乎任何人都不可以检查代码里面的步骤是否真的安全,以及他们是否在产品里实施了秘密的后门程序,以便在没有客户允许的情况下,让需要知道秘密的人(例如,他们的政府,或他们自己)进入客户的私有网络。每个人都可以证明这种安全风险的存在。由于所有内部软件代码是在硬件集成电路上写的这个事实,我们不能做任何逆向工程来防备它。这些事实可以说明,传统的硬件VPN对客户没有一定的安全性。

  传统的VPN硬件产品,操作系统层的开发人员和VPN层的开发人员是相同的供应商。这个特性将是至关重要的安全问题。在任何代码里,一定有一些未知的弱点。操作系统层是非常大的,比系统中的VPN层要复杂。然后,未来在操作系统层里将有更多的弱点被发现,而不是在VPN层。其封闭和专用的操作系统都在他们手上。所以,除非他们决定修复和发布补丁给所有现有的用户,每个人都将受到影响,但是用户不能做任何事情。这种情况是非常危险的。

  4. 安装:

  传统的VPN,如L2TP,IPSec或PPTP,实际上仅可以传输IPv4。因为这些VPN协议只可以在3层或3层以上进行传输。相反,PacketiX VPN可以传输在2层或2层以上的任何数据包。

  几乎所有IPsec、PPTP或L2TP等传统的VPN产品都需要在VPN服务器内定义一个虚拟IP子网,因为这些协议实际上是3层VPN协议。如果贵公司现有的局域网有一个IP子网为192.168.3.0/24,你不能把远程电脑直接连接到该IP子网。首先,你必须创建一个虚拟IP子网,例如192.168.100.0/24在VPN服务器上。然后你就可以连接VPN客户端电脑到VPN服务器上。VPN服务器总是处理两个不同IP子网间的路由。这种远程访问VPN的方法是复杂的,因为有时网络管理员不得不设计和修改局域网的路由策略。这可能会引起麻烦。例如,许多协议和应用程序是基于任何广播IP数据包可以通过节点之间的假设而设计的。但在传统VPN的情况下,这些应用程序不能正常工作。很好的实例是Windows的文件共享协议,每个人都知道它。这个协议,如我们所知的CIFS(通用互联网文件系统)或SMB(服务器信息块),实际上是依赖于通过IP广播包解决计算机名称的方法。没有广播IP数据包可以超越不同的IP子网进行广播。所以,这种通过Windows浏览计算机的机制在传统VPN上不能很好地工作。您需要很多的费用来修补这个问题,如为Windows名称浏览建立WINS或DNS服务器。此外除了上面提到的,从远程使用任何协议,你可能遇到麻烦,因为传统的VPN协议缺乏对任何类型数据包的透明度。一些传统的VPN设备,如思科的,尝试采用Proxy-ARP机制修补这个问题。但它是一个罕见的案例,缺乏任何情况下的兼容性。

  IPSec或L2TP这样传统的VPN,你不能用2层隧道连接两个或多个站点。由于这种传统VPN协议的局限性,您不得不建立3层隧道。然后几乎是同样的问题总是会发生,与用传统VPN建立远程访问VPN的情况类似。每个站点间的IP子网一定是不同的。例如,东京是192.168.1.0/24,北京是192.168.2.0/24,上海是192.168.3.0/24。您不能使用任何依赖广播包的协议,如实施在SMB或CIFS上Windows文件共享的名称浏览功能。你也不能使用任何非IP协议。不仅这些限制,而且你不得不为每个站点设计各自的IP子网。一个站点的IP子网不能与其他站点的重叠。如果你是一家小公司,它可能会成为额外的成本,因为这种IP子网的指定需要足够的能力来进行,以防止任何麻烦。而如果你是一个大公司,要相互连接多个站点,这将是一种噩梦般的情况。你必须管理很多子网,努力防止碰撞任何其他子网。如果你想采用传统VPN创建站点到站点VPN,它需要我们付出特别的痛处,以满足传统的VPN的需求。