微软网络虚拟化HNV Overlay子网和分布式路由

虚机网络和虚拟子网

在介绍HNV工作原理之前,我们有必要了解下组成HNV的原子网络——VM Network(虚机网络)和Virtual Subnet(虚拟子网)。HNV中,虚机网络作为租户间虚机隔离的单位,在网络虚拟化结构中起到非常关键的作用。虚机网络是虚机连接到物理网络的逻辑组件,每个虚机网络都有一个路由域并由特定路由域ID(Routing Domain ID,简称为RDID)标识,路由域ID是标准的Windows GUID,格式通常为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”。在虚机网络里可进一步定义虚拟子网,虚拟子网是广播域,在同一个虚拟子网的虚机必须使用相同的IP前缀。每个虚拟子网都有一个特定的虚拟子网ID(Virtual Subnet ID,简称为VSID),虚拟子网和VLAN类似,但是比VLAN有更广的范围,VSID范围从4096到16777214。同一个HNV路由域里的虚拟子网可以实现不同子网间的路由,因此也可以说HNV网络里集成了软件路由功能。

如果物理机逻辑交换机启用了HNV,可使用PowerShell命令PS C:\>Get-NetVirtualizationCustomerRoute查看虚机的RDID和虚拟子网的VSID,如下示例所示。

PS  C:\>Get-NetVirtualizationCustomerRoute
RoutingDomainID    :  00894F8A-631A-43C3-B52E-B54F47970938    
VirtualSubnetID    :  676802    
DestinationPrefix  :  192.168.188.0/24    
NextHop            :  0.0.0.0    
Metric             :  0     
RoutingDomainID    :  00894F8A-631A-43C3-B52E-B54F47970938    
VirtualSubnetID    :  1001280    
DestinationPrefix  :  0.0.0.0    
NextHop            :  10.0.2.2    
Metric             :  0 
    
RoutingDomainID    :  72961897-0253-48C3-9ACE-E2D1EEDFB9AB    
VirtualSubnetID    :  16283042    
DestinationPrefix  :  192.168.188.0/30    
NextHop            :  0.0.0.0    
Metric             :  0     
RoutingDomainID    :  72961897-0253-48C3-9ACE-E2D1EEDFB9AB    
VirtualSubnetID    :  11061729    
DestinationPrefix  :  172.16.100.0/30    
NextHop            :  0.0.0.0    
Metric             :  0

虚拟化网络的VM Network和网络虚拟化的VM Network略有不同,如图1所示,虚拟化网络结构里,每个逻辑网络里只能创建一个唯一的虚机网络,每个虚机网络下可以创建若干个虚拟子网。虚拟化网络结构里要求每一个虚拟子网都是唯一的,也即同一个虚机网络(逻辑网络)下的虚拟子网不能重复,不同虚机网络(逻辑网络)里的虚拟子网也不能重复。

图1 虚拟化网络的虚拟子网

在网络虚拟化的结构里,可以由用户自主在逻辑网络里创建虚机网络,虚机网络是隔离用户与用户网络的边界。在一个虚机网络里可以创建多个不重复虚拟子网,虽然同一个虚机网络里的虚拟子网不可重复,但不同虚机网络里的虚拟子网允许重复。如图2所示,虚机网络1的有两个不重复虚拟子网—虚拟子网1和虚拟子网2,虚机网络2有一个虚拟子网3,虚拟子网1和虚拟子网3的子网是完全一样的。在同一个虚机网络下的不同子网默认可以路由互通,在图2里,虚机网络1的两个虚拟子网分别为192.168.188.0/24和192.168.189.0/24,这两个虚拟子网内的IP地址的可以互通。因为HNV交换机内置了路由器,这个路由器是物理主机逻辑交换机的一部分,多台使用同一个逻辑交换机的主机使用分布式路由器为虚拟子网提供路由,每一台物理机的逻辑交换机成为同一虚机网络不同虚拟子网间默认的网关。在Windows Server里HNV默认的网关地址都是1,掩码24位,在创建虚拟子网时都会保留这个IP地址不给虚机使用。

在多租户的场景里,重复但不冲突的网络虚拟化实现了多租户数据中心里租户按需定义自己的网络的需求。

图2网络虚拟化的虚拟子网

接下来我们将借助微软云平台(Windows Azure Pack)为租户提供自助创建虚拟网络的接口,首先需要在SCVMM创建好网络虚拟化的逻辑网络并发布到云平台供租户自助创建虚机网络和虚拟子网。

 

重复的虚拟子网

假设有两个租户分别是CorpA和CorpB,两个租户使用云自助门户创建了相同的虚拟子网192.168.188.0/24,如图3所示。他们的虚拟子网配置完全一样的IP地址池,如图4所示。注意地址池分配的第一个IP地址从2开始,因为1这个IP地址默认预留作为虚拟子网的网关使用。

图3 租户自定义自己的虚机网络

图4租户自定义自己的虚拟网络

CorpA创建两台虚机(CorpA-Web001和CorpA-DB001)并从IP地址池里获取IP地址为192.168.188.2和192.168.188.3;同样,CorpB创建两台虚机(CorpB-Web001和CorpB-DB001)并从IP地址池里获取IP地址也是192.168.188.2和192.168.188.3,如图5所示。

图5 CorpA和CorpB的虚机具有一样的IP地址

即使CorpB的两台虚机的IP地址和CorpA的IP地址完全一样,各自的IP地址并没有发生冲突导致IP地址无效。登录CorpA-Web001虚机,可以顺利Ping通 CorpA-DB001虚机,如图6所示。

图6 CorpA的虚机互相ping

登录CorpB-Web001虚机,可以顺利Ping通 CorpB-DB001虚机,如图7 所示。

图7 CorpB的虚机互相ping

经过验证,在网络虚拟化的逻辑网络下可以创建多个虚机网络,虚机网络里的虚拟子网可以重复不冲突。

HNV软件实现路由

HNV具备多个租户使用相同的虚拟子网之外,还具备同一虚机网络中的路由功能,在验证过在网络虚拟化的逻辑网络创建重复的虚拟子网后,接下来验证同属一个虚机网络中不同虚拟子网之间的路由。

租户CorpC借助微软私有云门户Azure Pack,在同一个虚机网络里创建两个不同虚拟子网192.168.188.0/24和172.16.100.0/24,如图8所示。

图8 CorpC在同一个虚机网络里创建两个虚拟子网

在云平台创建两台虚机,分别获取到192.168.188.2和172.16.100.2的IP地址,如图9所示。

图9 在不同子网的两台虚机分别获取IP地址

登录corpc-web001虚机,确认分配的IP地址是192.168.188.2,然后Ping 172.16.100.2这个IP地址,在图10里可看到192.168.188.2这个IP地址成功Ping通了172.16.100.2这个IP地址。

图10 跨子网ping

反过来登录corpc-db001虚机,确认分配的IP地址是172.16.100.2,然后Ping 192.168.188.2这个IP地址,在图11看到可以看到172.16.100.2这个IP地址成功Ping通了192.168.188.2这个IP地址。

图11反向ping测试

时间: 2024-08-24 23:55:13

微软网络虚拟化HNV Overlay子网和分布式路由的相关文章

DVR分布式路由

1. 背景 没有使用DVR的场景: 从图中可以明显看到东西向和南北向的流量会集中到网络节点,这会使网络节点成为瓶颈. 如果启用DVR,如下图: 对于东西向的流量, 流量会直接在计算节点之间传递. 对于南北向的流量,如果有floating ip,流量就直接走计算节点.如果没有floating ip,则会走网络节点. 2.部署以及流量走向 2.1东西向流量 VM1 (10.0.1.5 Net1) ping VM2 (10.0.2.5 Net2) 1) VM1 (10.0.1.5) -> qr (10

SDN Overlay 网络中虚机数据包的转发(1)

在配置了网络虚拟化(Overlay)的网络结构中,处于Overlay网络中的虚机数据包的封装和MAC地址学习和传统物理网络(Underlay)相似又不尽相同.除了我们了解Overlay网络需要借助Underlay网络进行二次封装之外,其MAC地址学习过程也相对要曲折一些.这些MAC地址学习过程取决于多种因素:     1)  虚机是否在同一虚拟子网?    2)  虚机是否在同一虚机网络的不同虚拟子网?    3)  虚机是否运行于同一台物理机?    4)  虚机是否运行在不同的物理机?不同的

SDN Overlay网络中虚机到物理机的数据包的转发

在之前我们讨论了SDN Overlay 网络中5个不同场景下虚机数据包如何转发,今天我们将继续讨论处于Overlay网络中的虚机如何与物理机进行数据转发.有关于微软网络虚拟化HNV的相关概念,如RDID.VSID.虚机网络.虚拟子网.默认网关等,可以参考http://ichbinleo.blog.51cto.com/11948851/1902265和http://ichbinleo.blog.51cto.com/11948851/1903866  进一步了解. 在开始今天的讨论之前,我们需要引入

SDN Overlay 网络中虚机数据包的转发(2)

在配置了网络虚拟化(Overlay)的网络结构中,处于Overlay网络中的虚机数据包的封装和MAC地址学习和传统物理网络(Underlay)相似又不尽相同.除了我们了解Overlay网络需要借助Underlay网络进行二次封装之外,其MAC地址学习过程也相对要曲折一些.这些MAC地址学习过程取决于多种因素: 虚机是否在同一虚拟子网? 虚机是否在同一虚机网络的不同虚拟子网? 虚机是否运行于同一台物理机? 虚机是否运行在不同的物理机? 不同的场景,虚机之间学习对方的MAC地址,以及在互相学习到对方

[转]数据中心网络虚拟化 主流平台产品介绍

http://www.sdnlab.com/12076.html SDNLAB 为了对数据中心网络虚拟化有个初步的认识,本文将对当前比较主流的几款商业平台进行介绍,包括VMware公司的网络虚拟化技术,IBM公司的Dove及开源的OpenDove平台, NEC公司的virtual-network-platform和VTN平台,以及Cisco公司的Nexus虚拟化平台. 1.Vmware公司的网络虚拟化技术 VMware在虚拟化领域的领导地位使得我们必须首先介绍一下他们的网络虚拟化技术NSX.然而

从SDN鼻祖Nicira到VMware NSX 网络虚拟化平台的简单探讨

以前的大二层技术,一般是在物理网络底层使用IS-IS路由技术,再在此基础之上,实现数据中心网络的二层扩展,如公有的Trill.SPB技术和Cisco私有的OTV.Fabricpath技术:前沿一些的网络虚拟化技术,使用了VXLAN.NVGRE等协议,突破VLAN和MAC的限制,将数据中心的大二层网络扩展的更大.而使用VMware NSX,则更进一步--我们可以对网络提供已对计算和存储实现的相同虚拟化功能.就像服务器虚拟化可以通过编程方式创建.删除和还原基于软件的虚拟机以及拍摄其快照一样,NSX网

Hyper-V 网络虚拟化技术细节

Hyper-V 网络虚拟化技术细节 适用对象:Windows Server 2012 R2 服务器虚拟化能让多个服务器实例在同一台物理主机上同步运行,但各个服务器实例都是相互独立的. 每台虚拟机的运作本质上就像是只有这一台服务器在该物理计算机上运行. 网络虚拟化也有类似的功能,即多个虚拟网络基础结构在同一个物理网络上运行(可能有重叠的 IP 地址),而且每个虚拟网络基础结构的运作就好像只有这一个虚拟网络在此共享的网络基础结构上运行. 图 1 显示了此关系. 图 1:服务器虚拟化与网络虚拟化对比

深入浅出Hyper-V网络虚拟化(序)

服务器虚拟化已经越来越普及,很多企业也都在尝试着将现有业务转换成虚拟化的方式来运行,即在一个物理服务器上虚拟出多个实例,而每个实例彼此隔离,就好像在使用一台真实主机一样:网络虚拟化也同样如此,在同一条物理链路上虚拟出若干网络环境,且彼此隔离:不光如此,网络虚拟化还打破了传统VLAN以及IP地址分配方面的不便捷性,使用网络虚拟化可以把现有业务直接无缝的托管到IaaS中,而整个过程甚至无需考虑IP地址的重复性,现有应用的访问也不需要做任何修改 那么说到网络虚拟化就不得不提到“软件定义网络(SDN)”

使用BGP E***方式部署分布式网关VXLAN

BGP E*** VXLAN能够通过VETP隧道实现大二层MAC IN UDP,但是没有控制平面,虽然可以手动创建隧道,但是再面对大规模虚拟机场景下,基本不太现实,同时BUM报文泛滥,占用带宽华为的VXLAN方案可以通过BGP E***方式来充当控制平面,解决相关问题.E***(Ethernet Virtual Private Network)是一种用于二层网络互联的***技术.E***技术采用类似于BGP/MPLS IP ***的机制,在BGP协议的基础上定义了一种新的NLRI(Network