Etherblade.net-用于在FPGA上创建以太网流量封装器的开源项目(第1部分)

图片

我想立即保留一点,即这篇文章不仅意味着被动阅读,而且还邀请所有人加入到开发中。 欢迎系统程序员,硬件开发人员,网络和DevOps工程师。

由于该项目处于网络技术和硬件设计的交汇处,因此我们将对话分为三个部分-可以更轻松地将信息适应特定读者群。

将第一部分定义为简介。 在这里,我们将讨论在FPGA上创建的硬件以太网封装器封装器,并讨论其主要功能,架构特征以及与软件解决方案相比的优势。

第二部分,我们称其为“网络”,对于希望更好地了解网络技术的硬件开发人员而言,将更加有趣。 它将致力于“ Etherblade.net”在电信运营商网络中的作用。 我们还将讨论SDN (软件定义网络)的概念,以及开放网络硬件如何与大型供应商(例如Cisco和Juniper)的解决方案形成互补,甚至与之竞争。

第三部分是“硬件”,它更可能引起希望参与硬件设计并开始自行开发网络设备的网络工程师的兴趣。 在其中,我们将仔细研究FPGA工作流程,“软件和硬件的结合”,FPGA板,开发环境以及其他一些问题,这些问题告诉您如何连接才能参与EtherBlade.net项目。
所以走吧!

以太网封装


Etherblade.net项目的目标是设计和制造一种设备,该设备可以在硬件级别模拟L3环境上的L2以太网通道。 一个简单的用例是将完全不同的服务器和工作站彼此连接,就像它们之间使用常规物理以太网电缆一样。

在Internet上,您可以找到此技术的不同术语。 其中最常见的是伪线,evpn,L2VPN,e-line / e-tree / e-lan等。 嗯,对于通过虚拟以太网通道铺设的不同类型的传输网络,大量的衍生项是不同的。

因此,例如,以下技术提供了IP网络上的以太网仿真: EoIP,VxLAN,OTV
MPLS网络上的以太网仿真-VPLS和EoMPLS技术 ;
以太网上的以太网仿真是MetroEthernet,PBB-802.1ah等技术的任务。

营销人员的工作是想出术语,但如果铁艺设计师为每个术语或缩写发明一个单独的设备,他们就会发疯。 因此,硬件开发人员的目标以及我们的目标是开发一种通用设备-一种封装器,它可以将以太网帧封装在传输网络的任何协议中,例如IP / IPv6,MPLS,以太网等。

这样的封装器已经实现,并且正在一个名为“ Etherblade-Version1-封装器核心”的项目中开发。

为了更好地理解,我建议考虑一个解释此封装原理的图:
图片

我们看到封装器位于运营商传输网络的周围。 每个封装器具有两个接口(L2-中继端口,“面向”客户端; L3接口,“面向”传输网络)

让我们仔细看看最右边的封装器。 客户端连接到该客户端,每个客户端的流量在单独的VLAN中“进行”。 设备必须能够为单个客户端创建虚拟通道,或者以科学的术语来说,必须能够为具有不同L3标头的不同VLAN封装以太网流量。 该图显示了一个封装器如何为四个客户端模拟四个虚拟通道:

  • vlan-11(绿色) -IP上的以太网(IPv4 + GRE) ;
  • vlan-12(紫色) -IP上的以太网(IPv4 + UDP) ;
  • vlan-13(蓝色) -MPLS上的以太网 ;
  • vlan-14(红色) -IP上的以太网(IPv6 + UDP) ;

因此,在整理出功能之后,现在让我们讨论实现封装器的选项。

为什么要使用FPGA?


实际上,FPGA是代替烙铁的芯片和一盒芯片(逻辑元件,存储芯片等)的芯片 。 也就是说,有了FPGA,我们就能为我们的需求和任务创建硬件。
图片

但是,除了“一组元件和烙铁”之外,还必须具有电路图。 因此,此类方案的存储库是项目“ Etherblade.net”,从中可以“焊接” FPGA内的封装器并获得可用的设备。 FPGA的另一个重要优势可以被称为以下事实:可以将其元素“重新焊接”到新电路中,但是由于有了存储库,因此无需“从头开始”创建和验证电路本身即可实现新功能。

但是,为什么要使用FPGA,而不是软件解决方案?

当然,如果提出了从头开始开发系统的问题,那么与开发专用的硬件设备相比,购买一台完整的计算机并为其编写程序将更容易,更快。

但是,为了简化和加快开发速度,您必须付出更差的性能,这是该软件解决方案的主要缺点。 事实是,软件是一种计算机程序,由于分支和循环的缘故,其执行时间可变。 我们在此添加了操作系统不断引起的微处理器中断以及DMA子系统中的流量再循环。

实际上,在硬件实现中,我们的封装器是直流“存储转发”缓冲区,配备了用于存储标头的附加内存。 由于其简单性和线性度,该硬件解决方案以与以太网通道的带宽相同的速度处理流量,并具有最小的延迟和稳定的抖动。 值得一提的是,与微处理器系统相比,我们在此处添加了更少的功耗和更低廉的FPGA解决方案。

在继续讨论下一个主题之前,让我与您分享视频链接 ,该视频演示了封装器的实际应用。 该视频随附英语字幕,如有必要,“ Youtube”可以启用自动翻译成俄语的选项。

在本文的最后一部分,我想谈谈作为Etherblade.net项目的一部分正在开发的几个模​​块。

开发接收器“ Etherblade-Version2-解封装器核心”


您可能已经注意到,在以前的网络图中(显示了连接到提供商网络的封装器),有一个小小的注释表明网络中的MTU应该大于1560。对于大型电信运营商来说,这不是问题,因为它们在启用了硬件的巨型帧的“暗”光纤通道上工作。 在这种情况下,最大大小为1,500字节的封装的以太网数据包和一个附加的L3标头可以在此类网络上自由“行走”。

但是,如果我们想使用常规的Internet,并且将封装器连接到家庭DSL或4G调制解调器作为传输网络,该怎么办? 在这种情况下,封装器的接收部分应该能够收集碎片化的以太网帧。

目前,思科和瞻博网络均未在其设备中提供此类功能,这是可以理解的,因为他们的设备侧重于大型电信运营商。 EtherBlade.net项目最初针对的是各种口径的客户,并且已经在其武器库中开发了一种“硬件”片段组装的开发方法,该方法可以模拟电信级服务质量的无处不在的信道。 有关详细的文档和源代码,请访问https://etherblade.net

10吉比特


目前,正在开发10 GB版本的封装器,并将其移植到硬件上,尤其是移植到圣彼得堡的通用研发团队的电路板上,如文章Cyclone 10GX开头所示。

除了本文描述的功能之外,十吉字节的封装器还可用于电信运营商的网络中,以将“有趣的”流量重定向到DDoS结算中心,Yarovoy服务器等。 在下一篇关于SDN (软件定义网络)的概念以及大型网络中Etherblade.net的使用的文章中,请阅读有关此内容的更多信息-敬请关注。

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


All Articles