【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

时间:2022-05-14 05:47:35

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


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


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


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


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

备注:

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


      创建Logical network

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

  • Tenant

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


最后完成创建。

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


  • Manager


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

  • Front

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

分别为Logical network 创建IP POOL

TenantIP POOL(PA POOL)

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

 Manager IP POOL

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

 Front IP POOL

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

  •     Uplink Tenant

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


  • Uplink Manager


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


  •           Uplink Front


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


    创建3个Logical Switch

  •  TenantSwitch

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT



【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


  •    Manager的Logical Switch


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


  •         Front 的Logical Switch


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

总览

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

配置物理机Gateway (bjlcosnhyp05)


   管理网卡勾上

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


          创建关联3个LOGICAL SWITCH


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT



创建完后如下图:

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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


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

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

  Mgmt 管理网卡连接

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


       Front 网卡连接

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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


【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


  注意:Front网卡给 配上IP

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


 Manager 配上IP

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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


 创建Network Services

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


看看其相关配置


为其命名为GW      

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

模式选择:Microsoft Windows Server Gateway

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

选择运行账户

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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


          管理Manager(非NVGRE类型)

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


          模拟外网Front(非NVGRE类型)

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

          租户Tenant  (NVGRE类型)



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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


权限账户配置选择

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

            到此一切配置完成。


测试结果

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

    结果:


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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

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

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

【微软公有云系列】Hyper-v(WinSer 2012 R2)网络虚拟化(四)NVGRE 网关实现NAT


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

本文出自 “关俊杰的博客” 博客,请务必保留此出处http://hajuneck.blog.51cto.com/677142/1405878