利用GRE隧道让Windows Server Gateway支持多租户路由

Windows Server Gateway(WSG)是一个多租户的网关,但是当它作为直接路由网关时只能服务于一个虚拟网络。这就意味着每个启用直接路由的虚拟网络都需要要给独立的WSG。很明显这对于服务提供商而言非常不经济。

如中文章 GRE Tunneling in Windows Server Technical Preview 中所提及的,Windows Server Threshould引入了一个新的特性让WSG具备建立GRE隧道的能力。GRE是一个轻量的隧道协议,它可以将很多不同的网络层协议封装在虚拟的点到点IP网络连接中。GRE支持多租户在一个6核的虚拟机上可以达到2Gbps的吞吐。而且很多第三方的网络软硬件设备都支持GRE(RFC 2890)。

虽然Windows Server Threshould尚未正式发布,但如今Windows Server 2012 R2也可以通过安装更新KB3022776来支持GRE隧道。这个更新没有公开的下载链接,虚拟联系微软的售后技术支持获得该更新。详细的信息可以参考链接 https://support.microsoft.com/en-us/kb/3022776 。

下面我们将展示GRE隧道是如何让WSG具备多租户路由能力的。

我的测试环境中新建了一个具备两块虚拟网卡的Windows Server 2012 R2 RRAS虚拟机,两块虚拟网卡都接入同一个物理网络。

我在这台虚拟机上添加RRAS角色并配置使用其中一块作为外部网卡,另一块连接内部网络。

 

接着我通过了Windows Azure Pack创建了一个虚拟网络,但不用创建S2S VPN。

在两个布有RRAS的虚拟机上(一个是Windows Azure Pack测试环境中的多租户WSG,另一个是新安装的RRAS)安装了更新KB3022776并重新启动以后,我们可以来配置GRE隧道的VPN。

在多租户的WSG上,运行下面的命令。

Add-VpnS2SInterface -Name GREtoDESKTOP -Destination 10.172.88.110 -IPv4Subnet "10.172.88.0/22:100" -GRETunnel -GREKey "12345" -SourceIp: 10.190.165.83 -RoutingDomain GREVNET82d8f1a6-731f-459d-a679-debe954c181f

在新装的RRAS上运行命令

Add-VpnS2SInterface -Name GREtoBLUECLOUD -Destination 10.190.165.83 -IPv4Subnet "192.168.10.0/24:100" -GreTunnel -GreKey "12345" -SourceIpAddress: 10.172.88.110

通过命令"Get-VpnS2SInterface",我们可以看到GRE VPN连接已经是已连接状态。

在物理网络"10.172.88.0/22"中添加了一条静态路由后,在虚拟网络"192.168.10.0/24"和物理网络之间就可以建立连接了。