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

发布时间:2020-07-13 01:59:34 作者:IT小匠Leo
来源:网络 阅读:1439

NVGRE协议

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

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

图1  NVGRE封装隧道

 

PA和CA

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

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

图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所示。

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

图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所示。

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

图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地址池。

 

 


推荐阅读:
  1. SDN(软件定义网络)简史-早期
  2. 如何从微软下载最新版Win10安装镜像?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

微软 sdn 软件定义

上一篇:Android最近项目用到的框架xUtils

下一篇:字典---有序字典(SortedDictionary<TKey,TValue>)

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》