searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

紫金DPU的网络虚拟化,原理其实不复杂

2026-08-18 17:14:05
1
0

网络虚拟化是云计算的基础技术之一,但它的原理对非网络专业的人来说往往显得神秘。VXLAN、GRE、NVGRE这些术语看起来就让人头疼。实际上,网络虚拟化的核心思想非常简单,理解了基本概念后,再来看紫金DPU在其中扮演的角色就顺理成章了。这篇文章用通俗的方式解释网络虚拟化的原理,然后说明紫金DPU如何将这个原理在硬件上高效实现。

网络虚拟化的基本概念

先从一个生活化的比喻说起。想象一栋大楼里有多层办公室,每层是一个独立的公司。大楼有一个公共走廊,所有公司的人进出都要走这个走廊。如果没有门禁和标识,不同公司的人可能在走廊里走串了。为了解决这个混乱,给每层办公室装上了门禁系统,每个公司的员工只能进自己的楼层。从外面看整栋楼只有一个入口,但内部各层是隔离的。

网络虚拟化的原理与此类似。在数据中心里,多台虚拟机共享同一组物理网络设备。如果不做隔离,不同虚拟机的网络流量会混在一起,存在安全和性能干扰问题。网络虚拟化的做法是:给每组的虚拟机网络流量打上一个"标签"(虚拟网络标识),物理网络设备根据标签将流量路由到正确的虚拟网络。

具体实现上,最常用的技术是VXLAN(虚拟扩展局域网)。VXLAN的原理是:在原始的网络数据包外面再包一层"信封"——原始数据包是虚拟机发出的,外层信封是物理网络设备处理的。外层信封上有VXLAN标识,物理网络设备根据这个标识将数据包路由到正确的目标物理服务器,到达后拆掉外层信封,将原始数据包交给目标虚拟机。

这个"加信封、路由、拆信封"的过程就是网络虚拟化的核心。简单来说就是封装(Encapsulation)和解封装(Decapsulation)。

传统方案的问题

网络虚拟化的概念不复杂,但实现起来有性能开销。在传统方案中,封装和解封装由宿主机CPU上的虚拟交换机完成。每当虚拟机发送网络数据包时,虚拟交换机要执行以下操作:接收原始数据包,计算VXLAN头部,拼接外层IP和UDP头部,将封装后的数据包发出。接收方向反过来,拆解VXLAN头部并转发给目标虚拟机。

这些操作看起来不复杂,但在高吞吐场景下,每秒要处理数百万个数据包,每个包都要走一遍封装或解封装流程。CPU需要为每个包分配内存、拷贝数据、计算校验和,这些操作累积起来消耗了大量CPU周期。

在25Gbps网络环境下,仅VXLAN封装解封装一项就可能消耗2到3个CPU核心。在100Gbps环境下,CPU几乎完全被网络处理打满,留给业务计算的资源所剩无几。

延迟方面,CPU处理网络数据包的时间受CPU负载影响。当CPU高负载时,网络包在队列中等待处理的时间变长,导致网络延迟波动。对于需要稳定低延迟的业务来说,这种波动是不可接受的。

紫金DPU的硬件实现

紫金DPU解决网络虚拟化性能问题的方法,是将封装解封装操作从CPU软件搬到DPU硬件上。

在DPU的网络加速引擎中,有专门的封装解封装硬件模块。当虚拟机发送数据包时,数据包首先到达DPU,DPU的硬件模块自动完成VXLAN封装——添加外层头部、计算校验和、设置路由信息——然后将封装后的数据包发出。整个过程在硬件流水线上完成,不需要CPU参与,不需要内存拷贝,延迟在微秒级。

接收方向同样由DPU处理。数据包到达DPU后,硬件模块自动识别VXLAN标识,拆解外层头部,将原始数据包直接写入目标虚拟机的内存。CPU完全不参与这个过程。

这种硬件实现的封装解封装有几个优势。首先是速度——硬件流水线的处理速度远超CPU软件,可以线速处理网络流量。其次是延迟稳定性——硬件处理时间固定,不受CPU负载影响。第三是CPU释放——网络处理不再占用CPU资源,CPU可以全力跑业务。

多虚拟网络的支持

云环境中可能有成百上千个虚拟网络,每个虚拟网络有独立的VXLAN标识。紫金DPU需要同时处理多个虚拟网络的流量。

DPU内部维护了一张虚拟网络转发表,记录每个VXLAN标识对应的物理服务器地址。当数据包到达时,DPU根据VXLAN标识查表,确定目标服务器的物理地址,然后封装并转发。这个查表操作在硬件上用专用存储器实现,查找速度极快,不会成为瓶颈。

转发表的内容由云平台的管理系统下发到DPU。当虚拟机迁移或新的虚拟网络创建时,管理系统更新DPU的转发表,确保路由正确。这个过程对虚拟机和应用完全透明——它们感知不到自己是在虚拟网络中通信,就像使用物理网络一样。

网络虚拟化之外

除了VXLAN封装解封装,紫金DPU在网络虚拟化方面还实现了其他功能。

访问控制列表(ACL)在DPU上执行。每个虚拟网络可以配置访问控制规则,限制哪些虚拟机可以互相通信。这些规则在DPU硬件上过滤网络流量,效率高且不占用CPU。

流量镜像功能用于网络监控和排障。DPU可以将指定虚拟机的网络流量复制一份发送到监控服务器,用于分析流量模式和排查网络问题。这个功能在DPU上实现不会影响业务流量性能。

负载均衡功能可以部分在DPU上实现。当多个虚拟机提供相同服务时,DPU可以根据负载均衡算法将请求分发到不同的虚拟机。这种"先到DPU再分发"的模式比传统的软件负载均衡更高效。

总的来说,紫金DPU将网络虚拟化的核心功能——封装解封装、路由转发、访问控制——从CPU软件实现转为硬件实现,原理不变但效率和可靠性大幅提升。网络虚拟化的概念虽然简单,但要在高性能环境下稳定运行,离不开DPU这样的专用硬件支撑。

0条评论
0 / 1000
思念如故
2056文章数
3粉丝数
思念如故
2056 文章 | 3 粉丝
原创

紫金DPU的网络虚拟化,原理其实不复杂

2026-08-18 17:14:05
1
0

网络虚拟化是云计算的基础技术之一,但它的原理对非网络专业的人来说往往显得神秘。VXLAN、GRE、NVGRE这些术语看起来就让人头疼。实际上,网络虚拟化的核心思想非常简单,理解了基本概念后,再来看紫金DPU在其中扮演的角色就顺理成章了。这篇文章用通俗的方式解释网络虚拟化的原理,然后说明紫金DPU如何将这个原理在硬件上高效实现。

网络虚拟化的基本概念

先从一个生活化的比喻说起。想象一栋大楼里有多层办公室,每层是一个独立的公司。大楼有一个公共走廊,所有公司的人进出都要走这个走廊。如果没有门禁和标识,不同公司的人可能在走廊里走串了。为了解决这个混乱,给每层办公室装上了门禁系统,每个公司的员工只能进自己的楼层。从外面看整栋楼只有一个入口,但内部各层是隔离的。

网络虚拟化的原理与此类似。在数据中心里,多台虚拟机共享同一组物理网络设备。如果不做隔离,不同虚拟机的网络流量会混在一起,存在安全和性能干扰问题。网络虚拟化的做法是:给每组的虚拟机网络流量打上一个"标签"(虚拟网络标识),物理网络设备根据标签将流量路由到正确的虚拟网络。

具体实现上,最常用的技术是VXLAN(虚拟扩展局域网)。VXLAN的原理是:在原始的网络数据包外面再包一层"信封"——原始数据包是虚拟机发出的,外层信封是物理网络设备处理的。外层信封上有VXLAN标识,物理网络设备根据这个标识将数据包路由到正确的目标物理服务器,到达后拆掉外层信封,将原始数据包交给目标虚拟机。

这个"加信封、路由、拆信封"的过程就是网络虚拟化的核心。简单来说就是封装(Encapsulation)和解封装(Decapsulation)。

传统方案的问题

网络虚拟化的概念不复杂,但实现起来有性能开销。在传统方案中,封装和解封装由宿主机CPU上的虚拟交换机完成。每当虚拟机发送网络数据包时,虚拟交换机要执行以下操作:接收原始数据包,计算VXLAN头部,拼接外层IP和UDP头部,将封装后的数据包发出。接收方向反过来,拆解VXLAN头部并转发给目标虚拟机。

这些操作看起来不复杂,但在高吞吐场景下,每秒要处理数百万个数据包,每个包都要走一遍封装或解封装流程。CPU需要为每个包分配内存、拷贝数据、计算校验和,这些操作累积起来消耗了大量CPU周期。

在25Gbps网络环境下,仅VXLAN封装解封装一项就可能消耗2到3个CPU核心。在100Gbps环境下,CPU几乎完全被网络处理打满,留给业务计算的资源所剩无几。

延迟方面,CPU处理网络数据包的时间受CPU负载影响。当CPU高负载时,网络包在队列中等待处理的时间变长,导致网络延迟波动。对于需要稳定低延迟的业务来说,这种波动是不可接受的。

紫金DPU的硬件实现

紫金DPU解决网络虚拟化性能问题的方法,是将封装解封装操作从CPU软件搬到DPU硬件上。

在DPU的网络加速引擎中,有专门的封装解封装硬件模块。当虚拟机发送数据包时,数据包首先到达DPU,DPU的硬件模块自动完成VXLAN封装——添加外层头部、计算校验和、设置路由信息——然后将封装后的数据包发出。整个过程在硬件流水线上完成,不需要CPU参与,不需要内存拷贝,延迟在微秒级。

接收方向同样由DPU处理。数据包到达DPU后,硬件模块自动识别VXLAN标识,拆解外层头部,将原始数据包直接写入目标虚拟机的内存。CPU完全不参与这个过程。

这种硬件实现的封装解封装有几个优势。首先是速度——硬件流水线的处理速度远超CPU软件,可以线速处理网络流量。其次是延迟稳定性——硬件处理时间固定,不受CPU负载影响。第三是CPU释放——网络处理不再占用CPU资源,CPU可以全力跑业务。

多虚拟网络的支持

云环境中可能有成百上千个虚拟网络,每个虚拟网络有独立的VXLAN标识。紫金DPU需要同时处理多个虚拟网络的流量。

DPU内部维护了一张虚拟网络转发表,记录每个VXLAN标识对应的物理服务器地址。当数据包到达时,DPU根据VXLAN标识查表,确定目标服务器的物理地址,然后封装并转发。这个查表操作在硬件上用专用存储器实现,查找速度极快,不会成为瓶颈。

转发表的内容由云平台的管理系统下发到DPU。当虚拟机迁移或新的虚拟网络创建时,管理系统更新DPU的转发表,确保路由正确。这个过程对虚拟机和应用完全透明——它们感知不到自己是在虚拟网络中通信,就像使用物理网络一样。

网络虚拟化之外

除了VXLAN封装解封装,紫金DPU在网络虚拟化方面还实现了其他功能。

访问控制列表(ACL)在DPU上执行。每个虚拟网络可以配置访问控制规则,限制哪些虚拟机可以互相通信。这些规则在DPU硬件上过滤网络流量,效率高且不占用CPU。

流量镜像功能用于网络监控和排障。DPU可以将指定虚拟机的网络流量复制一份发送到监控服务器,用于分析流量模式和排查网络问题。这个功能在DPU上实现不会影响业务流量性能。

负载均衡功能可以部分在DPU上实现。当多个虚拟机提供相同服务时,DPU可以根据负载均衡算法将请求分发到不同的虚拟机。这种"先到DPU再分发"的模式比传统的软件负载均衡更高效。

总的来说,紫金DPU将网络虚拟化的核心功能——封装解封装、路由转发、访问控制——从CPU软件实现转为硬件实现,原理不变但效率和可靠性大幅提升。网络虚拟化的概念虽然简单,但要在高性能环境下稳定运行,离不开DPU这样的专用硬件支撑。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0