千家信息网

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

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,NVGRE协议NVGRE(Network Virtualization Generic RoutingEncapsulation)是常用的隧道封装协议之一,NVGRE是使用通用的封装格式将二层网络数据
千家信息网最后更新 2025年12月02日微软软件定义网络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地址池。


地址 虚机 物理 分配 网络 逻辑 数据 交换机 运行 命令 封装 数据中心 示例 实时 客户 目标 结果 网卡 池里 如图 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 便利店销售管理系统软件开发 上海华庆互联网科技有限公司 数据库怎么设置验证规则 阿里云 pop服务器地址 一站式网络技术咨询质量推荐 郑州智能还款app软件开发 上海通信软件开发工程师招聘信息 办理软件开发合同免税政策 网络技术公司岗位结构图 学校关于网络安全教育活动总结 研究生银行做网络安全工资 dtcc 数据库技术大会 电路板连接电脑数据库 计算机网络技术用不用学代码 带有搜索功能的数据库 画册排版软件开发 服务器有文件但是提示404 网络安全问题及危害 java获取服务器运行态势 nodejs 服务器搭建 5g 无线网络技术论文 求生之路2查不到服务器 阿里云服务器流量需要多少钱 材料数据库应用 数据库语句漏了分号会扣分吗 畅捷通t 数据库错误 十月网络安全会 有什么免费的高速服务器 广东网络服务器机柜云空间云主机 北京易驰互联网科技有限公司
0