欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

基于SSTP协议的VPN隧道通信

在即将到来的Windows Longhron Server Beta3以及Windows Vista SP1中(注意是SP1,呵呵,还没上市就考虑SP1了),针对远程访问中的VPN连接,微软将提供一个新的协议,称为SSTPSecure Socket Tunneling Protocol,安全套接字隧道协议)。这个协议将用来替代PPTPL2TP协议,以提高VPN访问的灵活性,不过SSTP还不是一个标准,将来肯定还有一段路需要走。

 

大家在使用PPTPL2TP协议进行VPN的时候,肯定遇到VPN连接不能正常工作的情况,很多时候是因为防火墙或者NAT路由器没有开放PPTP GRE或者L2TP ESP的端口。对于用户来说,这样的VPN连接的体验肯定是不好的,他们希望的是VPN连接就像IE连接一样好用。SSTP就是为了解决这样的问题而出现的。

 

为了避开防火墙或者NATVPN连接的影响,SSTP通过HTTPSSSL)建立VPN隧道,大部分防火墙是允许出方向的SSL访问通过的。但是SSTP并不支持站点到站点的VPN,只适合于客户端到站点的远程访问连接。下面将描述SSTP的运作流程:

1、  客户端通过Internet和服务器建立TCP连接,这个连接是通过TCP端口443进行的。假定客户端的IP地址是100.100.100.1,服务器的IP地址是200.200.200.1

2、  当这个TCP会话开始之初,将进行SSL协商。通过SSL协商过程,客户端将获取并验证服务器的证书(如果验证失败,连接将终止)。在这个过程中,服务器并不验证客户端的身份。

3、  客户端将通过加密的SSL会话,往服务器发送HTTPS请求。

4、  通过HTTPS会话,SSTP协议将开始运作,客户端将发送SSTP控制数据包,在客户端和服务器上开启SSTP状态机。然后将在PPP层建立链路通信。

5、  PPP会话(这个会话建立于SSTP over HTTPS之上)的初始将进行PPP验证,验证的方法取决于验证算法,一般情况下此时服务器将验证客户端的身份,而客户端对服务器的身份验证是可选的。

6、  PPP验证结束后,SSTP将在客户端和服务器通过VPN连接接口进行通信,该接口将使用“内部IP”,比如客户端为192.168.1.2,服务器为192.168.1.1。这个IP地址是在RRAS服务器上进行配置,用来访问公司的内部网络。

7、  客户端和服务器通过SSTP进行VPN通信,发送数据包。假设客户端(192.168.1.2)需要发送一个数据包到服务器(192.168.1.1),此时SSTP将提交此数据包到SSL层进行加密,然后SSL层添加新的数据包头部(源地址为100.100.100.1,目的地址为200.200.200.1),通过Internet连接接口将数据包发往服务器。

 

SSTP协议同时还具有以下的特点:

  • 集成的NAP支持。
  • 支持IPv6
  • SSTP使用的是单通道的HTTPS连接,相比于其他厂商的多通道实现,有更好的网络利用率,以及更佳的负载均衡性能。

 

以上内容部分翻译自微软RRAS BlogSamirj Jain的文章。通过邮件联系了Samirj之后,他表示计划在3/4月份推出的LH Beta3Vista SP1 Beta中加入SSTPBeta Release。看来只有等Longhorn Server定型了,Vista才算是完整了吧,特别是Bussiniss这个版本,继续等待吧。

 

已发表 2007年1月26日 12:22 作者 zarthur

评论

# re: 基于SSTP协议的VPN隧道通信

2007年1月29日 12:41 by Lee

看来MS是打算把所有东西都框到HTTPS上去了.......

禁止匿名发表评论