微软软件定义网络HNV PA和CA地址详述

NVGRE协议

NVGRE(Network Virtualization Generic RoutingEncapsulation)是常用的隧道封装协议之一,NVGRE是使用通用的封装格式将二层网络数据包封装到三层网络数据包。NVGRE在Hyper-V网络虚拟化中扮演虚拟化IP的角色,HNV使用NVGRE作为隧道报头,源虚机发送数据包过程中先被启用了HNV的交换机重新封装到另外一个数据包里。新的数据包报头包含源和目标新的IP地址(IP虚拟化)及其对应的MAC地址和VSID信息,VSID存储在GRE的报头的Key区域,如图1所示。数据发送到目标物理机交换机后,目标HNV交换机将数据包拆开,然后将数据发送到目标虚机。

图1  NVGRE封装隧道

PA和CA

在同一个物理网络体系中,可以不借助VLAN技术,让环境里存在多个重复但不冲突的IP地址,取而代之的是Overlay技术实现网络虚拟化,在HNV里,每块虚拟网卡可关联两个IP地址—也就是CA和PA地址。

  • Customer Address(CA)。也称之为客户地址,因为这个IP地址是从租户自己创建的虚拟子网的IP地址池里获取的地址,CA地址就是分配给虚机操作系统的IP地址,可以使用ipconfig或者ifconfig等命令查看。客户的虚机部署在多租户的数据中心里使用CA IP地址时,并无感知虚机使用了网络虚拟化技术,从虚机自身的角度来看,和传统的网络并无差别。
  • Provider Address(PA)也称之为服务商地址,因为这个地址是在网络虚拟化架构里定义并且不是分配给虚机而是分配给物理主机的,PA地址的作用是NVGRE用于重新封装数据的IP地址,起到IP地址虚拟化的功能。PA地址无法在虚机操作系统里面使用ipconfig或者ifconfig等命令查看。PA地址空间用于运行虚机的物理机之间通信,只能在物理网络中查看。

如果客户将虚机从自己数据中心迁移到多租户公有数据中心,那么CA地址帮助客户维持着已有的网络拓扑,在迁移到公有数据中心后,CA地址通过IP地址虚拟化公有数据中心基础网络结构保持着松耦合关系,这个IP虚拟化的过程由PA地址完成。因此HNV的本质其实是通过IP地址虚拟化的方式实现的。

PA地址不是固定分配给物理机,物理机在PA地址空间里动态获取和释放PA地址。物理机要能分配PA地址,首先要将包含HNV逻辑网络的逻辑交换机分配给物理机,一旦有关联HNV逻辑网络的虚机创建在物理机上,这台物理机就会从PA IP地址池里获取一个PA IP地址。可使用Get-NetVirtualizationProviderAddress命令查看物理机所分配的PA地址,结果如下示例所示。

PS C:\>Get-NetVirtualizationProviderAddress      
ProviderAddress   : 10.2.22.14     
InterfaceIndex    : 31    
PrefixLength      : 24    
VlanID            : 222    
AddressState      : Preferred    
MACAddress        : 001dd8b71c6f    
ManagedByCluster  : False

PA IP地址不是固定分配给物理机的而是动态变化的,只要有使用HNV逻辑网络的虚机运行,那么该虚机所在的物理机就会从地址池里拿一个PA地址,如果群集里的其他节点没有使用HNV的虚机网络则暂时不会分配PA地址。只有把虚机实时迁移到某台物理机节点后,这台物理机才会分配PA地址。失效的PA地址还会被回收,如果虚机发生迁移到其他节点,那么之前分配给物理机分配的PA地址可能会被回收,当虚机回迁到这台物理机时,则会重新分配一个新的PA地址。

接下来我们通过实际案例来验证PA的动态分配。在群集中有两台物理服务器,分别是HYP06,HYP07。创建子网为10.2.22.0/24的PA逻辑网络并创建IP地址池,将该逻辑网络关联上逻辑交换机,并将逻辑交换机分配给这两台物理机。接着创建两台虚机,全部运行在HYP06物理机上,虚机一定要使用HNV逻辑网络,如图2所示。

图2 两台虚机最初运行在同一台物理机HYP06

先使用Get-NetAdapter命令查看逻辑网络的索引编号,然后使用Get-NetVirtualizationProviderAddress命令查询分配给物理机的PA地址,可见这个PA地址是分配给网卡编号为29的逻辑交换机(启用了HNV)而非其他网卡。在返回的结果中,可以看到HYP06的网卡编号为29的逻辑交换机已经分配了两个PA地址,分别是10.2.22.18和10.2.22.19,如下示例所示。

PS C:\> Get-NetAdapter     
Name             InterfaceDescription                     IfIndex    Status    
----             --------------------                     -------    ------    
LogicalSwitch    Microsoft Network Adapter Multiplex..    29         Up
PS C:\>Get-NetVirtualizationProviderAddress      
ProviderAddress      :10.2.22.19     
InterfaceIndex       :29    
PrefixLength         :24    
VlanID               :222    
AddressState         :Preferred    
MACAddress           :001dd8b71c77    
ManagedByCluster     :False    
ProviderAddress      :10.2.22.18     
InterfaceIndex       :29    
PrefixLength         :24    
VlanID               :222    
AddressState         :Preferred    
MACAddress           :001dd8b71c76    
ManagedByCluster     :False

因为在HYP07上没有任何使用HNV的虚机,使用Get-NetAdapter命令检索到逻辑交换机的索引编号为31,以及使用Get-NetVirtualizationProviderAddress检索这个索引编号的逻辑交换机是否分配PA地址时,返回的结果为空,如下示例所示,意味着HYP07的逻辑交换机并未分配PA地址。

PS C:\> Get-NetVirtualizationProviderAddress 
PS C:\> Get-NetAdapter      
Name             InterfaceDescription                     IfIndex    Status    
----             --------------------                     -------    ------    
LogicalSwitch    Microsoft Network Adapter Multiplex..    31          Up

使用实时迁移将虚机从HYP06迁移到HYP07,迁移结束,虚机运行在新的主机HYP07之上,如图3所示。

图3 虚机从HYP06迁移到HYP07

等待迁移结束后,登录HYP07上运行命令查看PA地址分配情况,返回的结果中,可以看到HYP07已经分配了两个PA地址,分别是10.2.22.20和10.2.22.21,如下示例所示。

PS C:\>Get-NetVirtualizationProviderAddress      
ProviderAddress    :10.2.22.21     
InterfaceIndex     :31    
PrefixLength       :24    
VlanID             :222    
AddressState       :Preferred    
MACAddress         :001dd8b71c79    
ManagedByCluster   :False   
 
ProviderAddress    :10.2.22.20     
InterfaceIndex     :31    
PrefixLength       :24    
VlanID             :222    
AddressState       :Preferred    
MACAddress         :001dd8b71c78    
ManagedByCluster   :False

再将虚机实时回迁到HYP06上,虚机重新运行在HYP06上,如图4所示。

图4 虚机重新运行在HYP06上

这时候,再次登录HYP06主机,运行命令查看PA地址时,会发现分配的PA地址已经发生了变化,新的分别是10.2.22.22和10.2.22.23,如下示例所示。之前分配给HYP06的PA地址也会在稍后被回收到IP地址池里。

PS C:\>Get-NetVirtualizationProviderAddress      
ProviderAddress    :10.2.22.19     
InterfaceIndex     :29    
……               ……    
MACAddress         :001dd8b71c77    
……               ……    
ProviderAddress    :10.2.22.18     
InterfaceIndex     :29    
……               ……    
MACAddress         :001dd8b71c76    
……               ……    

PS C:\>Get-NetVirtualizationProviderAddress      
ProviderAddress    :10.2.22.23     
InterfaceIndex     :29    
……               ……    
MACAddress         :001dd8b71c7b    
……               :……    
ProviderAddress    :10.2.22.22     
InterfaceIndex     :29    
……               ……    
MACAddress         :001dd8b71c7a    
……               ……

虚机经过多次在物理机之间实时迁移,导致物理机的PA多次重新分配和回收,在SCVMM里面运行Get-SCIPAddress命令查看时会发现PA地址逐渐被SCVMM回收到PA IP地址池。

时间: 2024-08-24 11:41:13

微软软件定义网络HNV PA和CA地址详述的相关文章

软件定义网络(Software Defined Network, SDN)

软件定义网络(Software Defined Network, SDN)在InfoWorld于2011年11月公布的将影响未来10年的十项新技术中排名第二.2012年7月,SDN代表厂商Nicira被VMware以12.6亿美元收购,随后Google宣布成功在其全球10个IDC网络中部署SDN,这促使SDN引起业界的强烈关注.到底SDN与传统网络架构有何区别?其带来哪些颠覆性创新? 现有网络中,对流量的控制和转发都依赖于网络设备实现,且设备中集成了与业务特性紧耦合的操作系统和专用硬件,这些操作

网络革命:软件定义网络与网络虚拟化

发表于2014-08-28 14:49| 5691次阅读| 来源OpenStack中国社区| 13 条评论| 作者郑晨 摘要:虽然现在SDN或网络虚拟化还没有达到预期的高度,但对于IT从业者来说,拥抱这些技术永远都不算早,目前以太网在每一个数据中心中扮演者举足轻重的角色,但SDN厂商们正在摩拳擦掌准备迎接下一场网络革命. [编者按]网络经过多年的发展,已经来到“后Cisco”时代,软件定义网络.网络虚拟化等名词已经来到大家眼前,本文中着重介绍了传统网络架构与SDN网络的异同,网络虚拟化的发展状况

“第二届全国高校软件定义网络(SDN)应用创新开发大赛” 第八次培训研讨会的通知

各相关高校.单位: 为推动互联网应用创新人才的培养,教育部科技发展中心将于决定于2014年11月至2015年8月举办"第二届全国高校软件定义网络(SDN)应用创新开发大赛"(教技发中心函[2014]126号).本赛项由互联网应用创新开放平台联盟主办,华南理工大学信息网络工程研究中心承办,关于大赛详细信息可浏览网址:www.iiu.edu.cn/chuangxin和www.scut.edu.cn/sdn. 为保障赛事顺利进行,赛项执委会将于2015年5月16日(周六)在江苏省未来网络创新

5G的基本特点与关键技术之一:软件定义网络(SDN)

5G的基本特点与关键技术之一:软件定义网络(SDN) 软件定义网络(Software Defined Network,SDN)是 5G的关键技术之一. 在讨论软件定义网络时,需要理解它的定义和它对5G网络架构的影响,以及5G移动通信系统中采用软件定义网络的必要性. 基本概念 2006年,美国GENI项目资助了斯坦福大学Clean Slate课题,以Nick McKeown教授为首的课题组提出了Openflow的概念用于校园网络的创新实验,因为Openflow给网络带来可编程的特性,软件定义网络的

实现软件定义网络(SDN)的6种途径

尽管围绕软件定义网络(SDN)的所有兴奋点都是由OpenFlow刺激起来的,但实际上利用各种标准工具对网络进行编程已经有一段时间了.OpenFlow并非实现SDN的唯一方法或者唯一途径.就目前而言,要想实现SDN,除了OpenFlow以外,至少还有6种方法或途经. 命令行接口(CLI) CLI是交换机和路由器的常用接口,网络经理们常用它来配置交换机,激活或者禁用某些服务. Arista网络的CEO Jayshree Ullal说,"要想开放,不只有一种方法.要想扩展,也不只一种方法.CLI虽然不

SDN:软件定义网络

近期高级网络课的小组任务是在老师给定的范围内自选方向主题研究并做展示报告.我们组选了sdn.原以为这东西会是工业界无人问津的概念化产品,Google了一下却发现事实上sdn挺火的,因为它可能带来的可扩展性,一些大互联网企业也在開始涉足相关的研发,比方Google呵Facebook.这里简要的梳理下我对SDN概念性的认识. 背景 虚拟化的大趋势 近年来,大数据.云计算兴起,虚拟化技术的重要性越发突出.提到虚拟化,不得不提的是计算机行业里的一句老话: 计算机世界的绝大部分问题都能够通过分层的方法来解

软件定义网络(SDN)

软件定义网络(SDN):你眼中的黑科技,我眼中的新网络(附报告) 2016-07-14 中信建投 199IT互联网数据中心 ▲ 点击蓝字查阅TMT行业数据 报告下载:添加199IT官方微信[i199it],回复关键词[中信建投SDN深度报告]即可 SDN 是未来网络的新框架 SDN, 即软件定义网络( Software Defined Network), 是指用软件来调度和管理网络. SDN 改变了传统的网络层和数据链路层网络设备需要管理员配置设置之后传递数据的工作模式, 提出将管理系统(控制平

网络编程学习笔记-MAC地址和IP地址的关系

简单地说:ip地址是服务商给你的,mac地址是你的网卡物理地址. 一.IP地址 对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址.IP地址由用点分隔开的4个8八位组构成,如192.168.0.1就是一个IP地址,这种写法叫点分十进制格式.IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类.B类.C类等)的不同而不同.网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机.一个IP地址使得将来自源地址的数据通过路由而传送到目的地

《SDN软件定义网络从入门到精通》理论课

前言 SDN(Software Defined Network)即软件定义网络,是一种网络设计理念,或者一种推倒重来的设计思想.只要网络硬件可以集中式软件管理,可编程化,控制转发层面分开,则可以认为这个网络是一个SDN网络.所以说,SDN并不是一个具体的技术,不是一个具体的协议,而是一个思想.一个框架.狭义的SDN是指的"软件定义网络",广义的SDN的概念还延伸出了:软件定义安全.软件定义存储等等.可以说,SDN是一个浪潮,席卷整个IT产业. 「大物移云」的时代已经到来,传统的底层网络