Etherblade.net封装器和网络组件的导入替代(第二部分)

图片

第一篇文章中,我想展示FPGA开发是一项有趣的任务,并且流封装器的实现是一个相当简单的项目,很可能充当高中生或研究生的学术项目。

即使硬件设计值得一玩,但在本文中,我还是要注意本课的实际价值。 特别是,我们的对话将继续讨论如何使用在FPGA上实现的Etherblade.net封装器为电信运营商创建网络基础架构。

本文是对网络技术的一些见解,为了使这一广泛的主题适合于一篇文章的框架,我决定在一些行动计划的背景下编写该文本,或者根据需要回答以下问题:“如何尽可能高效地使用FPGA和开源替换设备来自思科和瞻博网络。”
因此,让我们开始吧。

针对大型供应商的SDN(软件定义的网络)概念


传统上,数十年来,网络设备一直由思科和瞻博网络等巨头制造。 如今,大型网络运营商开发自己的网络设备正在成为新的规范。 他们想要实现的目标是独立于组件供应商并更好地控制基础架构。

在俄罗斯,出于政治原因,这种方法与将第三方产品替换为具有较高比例的本地开发的知识产权组件(知识产权模块或IP核)的系统有关,通常称为进口替代。

应该理解,大型公司拥有大量的工程资源,并且依赖于垂直集成的开发模型。 相对较小的制造商呢?

开源可以弥补资源的不足。 而且缺乏垂直整合以及较小参与者之间子任务的正确分配。

传统上由大型供应商生产的网络设备的体系结构很容易划分。 为了并行化流程并突出显示各个子任务,SDN(软件定义网络)的概念建议将网络设备的体系结构划分为多个级别,尤其是将网络管理级别(控制平面)与数据传输设备级别(数据平面)分开。

我注意到,如今,SDN已成为大型供应商的强大营销工具,他们将其作为一组对最终用户有用的“新功能”来展示。 有趣的是,正如我已经提到的,从历史上讲,SDN的概念是与行业巨头形成对比的。

因此,SDN以分解形式提供了网络路由器的体系结构模型。 我们的任务是确定此模型中我们感兴趣的组件并开始开发它。

“从小处着手”-封装在路由器和SDN覆盖层上


一口气解决世界的所有需求是很自然的。 因此,在构建大型系统时,从小处着手并使系统可扩展是有意义的,因此可以通过集成其他模块或修改现有模块来引入其他功能。 用“从小开始”这个词,我的意思是选择一些足以构成运行系统的完整网络功能。

在Etherblade.net项目中,作为此类功能,决定实现一种用于封装网络流量的机制。

网络中的封装是很平常的事情。 让我们“分离”路由器,考虑其组件与SDN模型的组件如何对应,并确定两种模型中封装所占的位置。

例如,采用本文开头所示图中的一个路由器,并在下图中对其进行描述-但它已经是“准备好的”形式。
在同一图中,我们将路由器与提供类似功能的替代“覆盖SDN模型”进行了对比。

图片

上层(绿色)层是SDN控制/编排平面。 这是系统的大脑,实际上是执行控制网络软件的微处理器。 在传统路由器中,此组件是内置的。 在SDN中,通常将此功能带给外部“编排控制器”(可为许多网络设备提供服务的计算机)。

中(蓝色)级别-转发路径。 该级别的主要作用是提供网络传输(交换/流量路由)。 在传统路由器中,此功能被实现为内部交换单元。 在我们的“ SDN覆盖”模型中,可以通过直接将边缘设备(白盒)连接到传输网络来完全降低“交换”组件的作用。

较低(橙色)-边缘/访问级别。 在这些组件上,会发生所有与网络流量有关的操作,例如封装和其他协议转换。 此级别的特点是处理速度快和确定性功能-ASIC / FPGA的绝佳去处。 在传统路由器中,此功能是在线性模块(线卡)上实现的,在SDN中,这些功能就是所谓的“白盒设备”。

因此,综上所述,我们可以说Etherblade.net本质上是一个为“ SDN覆盖”开发“白盒”设备的项目。

“转发到数据中心!!!”-封装程序作为NFV(网络功能虚拟化)的功能


在弄清楚我们正在开发的系统的结构外观之后,有必要讨论其物理实施方案的选项。

图片

左侧是Etherblade封装器,它是单独的CPE设备(校园版)。 右侧是服务器内部实现的Etherblade封装器(数据中心的选件)。

有趣的是,通过在具有PCIe接口的板上实现封装器并将该板“隐藏”在服务器内部,我们实际上可以创建虚拟化此网络功能的幻觉。 这种方法称为NFV-网络功能虚拟化。

由于服务器内部功能的虚拟化,NFV的概念涉及摆脱防火墙,负载平衡器等外部网络设备。 将封装器实现为NFV功能,使我们摆脱了物理“边缘”路由器。

因此,NFV既时尚又方便。 困难在于,就硬件设计而言,限制PCIe不如以太网容易。 如果以太网是串行串行协议,则PCIe是具有许多最终状态的复杂事务协议(本质上是在硬件中实现的网络堆栈)。 不要忘记操作系统需要适当的驱动程序才能与PCIe设备一起使用。

解决该问题的最优雅的方法之一是使用FPGA板,类似于本文开头所示。 下图显示了电路板的体系结构以及在其上实现封装器的两个选项。

图片

如您所见,该FPGA板具有板载“外部”网络适配器,它们实质上是以太网和PCIe之间的转换器。 因此,在此类设备上实施封装器可以使NFV“开箱即用”,而不会给PCIe和写入驱动程序带来不必要的麻烦。

从“私有”到“通用”-创建网络IP核的开放存储库


当今世界上有许多专用网络ASIC(例如,来自Broadcom的专用ASIC)可以将任何此类项目转化为“享受FPGA的乐趣”系列的另一个故事,这一点让人无法不同意。 在这种情况下,怀疑主义是适当的,但是,我想提醒您,Etherblade.net项目不仅限于创建单独的网络设备。 Etherblade.net的主要目标是创建一个开放的存储库,其中包含参数化和已记录的IP核。

该存储库可以成为创建整个网络设备(包括最奇特的网络设备)的有效基础,而网络设备又可以在FPGA上以ASIC的形式实现。

在此-我完成。 在下一篇文章中,我们将直接进行硬件设计,但现在,我邀请您熟悉更接近etherblade.net的项目。

Source: https://habr.com/ru/post/zh-CN484108/


All Articles