微软公有云系列,前面的几篇文章相信可以让大家能对网络虚拟化有了一些基本的了解。那么接下来,我将实现网络虚拟化在真实的环境中,更重要的一些功能,NVGRE的网关功能。


        第一个Demo是通过NVGRE的网关功能,实现NAT,就是让租户的虚拟机能够访问外网,同时外网能通过开放的端口来访问租户在公有云提供的虚拟机。


        第二个Demo是通过NVGRE的网关功能,实现Site to Site 的×××访问,当租户租用了我们公有云平台提供的虚拟机之后,如何跟其企业本地的数据中心能连通,这就需要利用到Site to Site  的×××访问了。


Gateway

虚拟Gateway 介绍

补充


Demo 1 环境介绍


  • 网络规划

      内网段(System center&AD,宿主机所在网段),10.10.10.0/24

      外网段(模拟个外网,准备一台Client接到另外一个交换机上),10.0.15.0/24

      租户PA段(PA 的网段),192.168.0.0/24

租户网段:172.16.10.0/24


      物理交换机两台:分别叫NO.1 和 NO.2。


  • 主机角色规划

物理Gateway 角色:Bjlconhyp05 (宿主机)

     虚拟网关角色:gtw_01 (虚拟机),放置在Bjlcosnhyp05物理机上的一台虚拟机。

     承载租户角色:Bjlconhyp06 (宿主机),承载租户申请使用的虚拟机。

     租户申请的虚拟机:Test011


  • 网络拓扑


物理交换机两台:分别叫NO.1 和 NO.2,NO 1用于连接内网段和租户网段;  NO.2 用于连接模拟外网的Client 客户端和 NO.1 交换机。

     用于模仿外网的Client:My Notebook。一张网卡直接连接到NO.2 交换机

gtw_01 设置三个虚拟网卡,

     Bjlconhyp06,有两张物理网卡,

     Test011,设置一个虚拟网卡

     Bjlconhyp05,三张物理网卡,分别起名Front_END,Back_end,Manager

Front_END 接的办公网络的网线,(相当于实际环境中的外网的办公私有IP,IP段为10.0.15.0/24 ),但此网卡暂无需配置IP地址

Back_end 接的DEMO环境的网线(负责租户Tenant),但此网卡暂无需配置IP地址

Manager 接的DEMO环境的网线(负责管理网络),配的静态IP 10.10.10.26

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第1张图片


-------------------------------------------------------------------------------------------------

备注:

Bjlconhyp05两个物理网卡的环境,可参考以下的方式

Front_end连接到outbound logical switch外网,这个逻辑交换机上,,

Back_end连接到了inbound logical switch内网,这个逻辑交换机上,并且创建一个用于管理的mgmt虚拟网卡

------------------------------------------------------------------------------------


前提条件

分别把Bjlconhyp05Bjlconhyp06,Bjlconhyp01都加入到SCVMM管理库中。


设置物理网关宿主机

接下来通过SCVMM找到Bjlconhyp05这台物理网关主机,在属性中找到“host access”并且勾选“将这台主机作为专用的网络虚拟化网关”,请注意:windows 2012 R2之前的版本的主机是看不到这个选项的,做不了


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第2张图片


      创建Logical network

分别创建3Logical network1个叫Tenant(租户),1个叫Manager(管理),1个叫Front(前端出外网)

  • Tenant

     勾上这个代表,启用NVGRE,因为是租户网络使用的Logical network,所以要启用NVGRE。

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第3张图片


下图设置的IP段,为PA段. (举例:例如两台物理主机中的分别两台虚拟机要通信,需要借助此PAIP来进行封装通信 );同时设置了站点,来确定哪些主机可以使用此Logical Network

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第4张图片


最后完成创建。

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第5张图片


  • Manager


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第6张图片


同样为其指定站点包括哪些主机组,但因为我们没有启用NVGRE,所以此处IP段的意义则不是做PA使用。而是作为管理网络的IP段,我们可以使用此处的IP段范围去动态分配给那些管理网络的机器,也可以单独给管理网络的IP段去手动指定静态IP.

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第7张图片

  • Front

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第8张图片


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第9张图片

分别为Logical network 创建IP POOL

TenantIP POOL(PA POOL)

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第10张图片

 Manager IP POOL

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第11张图片

 Front IP POOL

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第12张图片

 总的逻辑网络的截图如下:

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第13张图片


创建3个uplink port profile(创建uplink,是为了后续创建logical switch使用

  •     Uplink Tenant

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第14张图片


           勾选之前在Logical Networks 里定义的站点范围所包括的Host主机

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第15张图片


  • Uplink Manager


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第16张图片

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第17张图片


  •           Uplink Front


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第18张图片

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第19张图片


    创建3个Logical Switch

  •  TenantSwitch

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第20张图片


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第21张图片



【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第22张图片


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第23张图片


  •    Manager的Logical Switch


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第24张图片


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第25张图片


  •         Front 的Logical Switch


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第26张图片


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第27张图片

总览

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第28张图片

配置物理机Gateway (bjlcosnhyp05)


   管理网卡勾上

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第29张图片


          创建关联3个LOGICAL SWITCH


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第30张图片


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第31张图片


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第32张图片


同时创建一个MGMT的虚拟网卡,用于直接捕获原来给网卡设定的固定IP,否则没了管理网络的IP.那么此主机就会立刻跟管理网络,跟SCVMM失去联系导致失败。

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第33张图片



创建完后如下图:

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第34张图片


创建GTW_01 虚拟网关 (虚拟机)


通过模板创建一个虚拟机出来(当然也可以手动去创建一个虚拟机windows server 2012 r2),这个虚机就是在物理网关服务器上的虚拟网关了,基于windows RRAS功能来创建。也可以手动安装好Windowsserver2012 r2 系统之后,然后手动安装相对应的角色。如下:

参考下图,添加Remote Access & Remote admin Tool的role和feature。

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第35张图片

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第36张图片


并且给此虚拟机三个网卡。

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第37张图片


注意:虚拟机中的每个网卡接对应的logicalswitch

  Mgmt 管理网卡连接

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第38张图片


       Front 网卡连接

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第39张图片


       Tenant租户网卡连接(无连接)


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第40张图片


  注意:Front网卡给 配上IP

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第41张图片


 Manager 配上IP

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第42张图片


 Tenant无需配置IP,做相当于接上Switch,做2层可通信,而不直接从IP 三层去通信。


 创建Network Services

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第43张图片


看看其相关配置


为其命名为GW      

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第44张图片

模式选择:Microsoft Windows Server Gateway

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第45张图片

选择运行账户

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第46张图片

连接字符串:VMHost=承载虚拟网关的宿主机的FQDN;GatewayVM=虚拟网关的虚拟机的FQDN;BackendSwitch=连接租户的LogicalSwitch名

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第47张图片

选择Test,这里看到都已经Passed,说明测试通过。

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第48张图片

下面选择需要使用GateWay网关的Host主机组

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第49张图片

配置完成后,我们把对应的站点和网卡绑定上

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第50张图片


分别创建3个 Vm Network(2个非NVGRE类型,1个租户的NVGRE类型)


          管理Manager(非NVGRE类型)

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第51张图片


          模拟外网Front(非NVGRE类型)

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第52张图片

          租户Tenant  (NVGRE类型)



我们可以看到,NVGRE类型的VM network 左边那栏,会多出许多配置,首先命名tenant1,并且选择对应得Logical netework

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第53张图片


给Tenant租户创建一个子网,划分一个网段

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第54张图片


这里选择NAT功能(若前面的Network Service没配置好,是不会出现这项)

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第55张图片


这里会显示IP POOL,其实就是我们之前为FRONT设置的PA POOL,这里给个pool,所以会默认从第一个地址开始分配,作为PA

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第56张图片


权限账户配置选择

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第57张图片


选择对应的主机组可使用此Tenant 的Vm Network,此处其实只需给VM HOST和GATEWAY 主机组即可

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第58张图片

            到此一切配置完成。


测试结果

    bjlcosnhyp06是承载租户虚拟机的主机,测试,挂上logicalswitch

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第59张图片


   里面的测试虚拟机Test011则绑定个VM NETWORK

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第60张图片

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第61张图片

    结果:


虚拟机获得了指定的VMNETWORKS 的网络的IP

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第62张图片

并且PING 到模拟外网是通的,说明NAT已经生效

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第63张图片


测试模拟外网连接到租户内网虚拟机

    假设租户内网虚拟机开放了IIS web服务,则外网想访问此租户内网虚拟机,那么需要对外开放指定80&443端口

     那么我们可以通过在下图配置的时候,Add指定的IP和端口

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT_第64张图片


Demo NAT的实验到此结束。后续会给大家送上site to site 的×××. 并且site to site & Nat 是可以并存做在同一台虚拟网关上的。