[原创] 是时候深入了解SDN了

2019-06-12 14:00:09 来源: 半导体行业观察

越来越多的数据中心网络是在软件定义的网络白盒上执行的,而不是在由一个供应商控制的专用黑盒机器上执行的。将硬件从软件中解放出来 不但 可以让两者独立发展, 而且 也可以让网络设备进行调整,只 需要 做必要的工作 就行 ,不再做其他工作。

SDN成功地将控制平面和数据平面分离,采用基于软件的集中控制平面来指导网络硬件数据平面,并确保整个网络的高效管理。集中控制平面软件使许多物理和虚拟交换机的配置、管理和更新变得容易,而不是在每个交换机中嵌入控制器。这是一种趋势,许多大公司都试图在现有硬件的基础上构建SDN层平台——通过专有网络控制器将该硬件与软件层集成。他们的营销理念是提供一个集中管理和安全的交钥匙包。

这样的设置可能看起来很有吸引力——如果您已经在熟悉其平台的工程师的帮助下操作该供应商提供的网络套件,则这种设置被视为低风险——但这意味着您被锁定在该供应商的范围内。这种锁定的代价是巨大的:私有控制器从几万美元开始,很快就会达到几十万美元。

幸运的是,有一种向更开放的SDN形式发展的趋势,它采用标准协议,并且不会将您锁定到单个供应商中。

 

SDN的未来是开放的

SDN的两个基础协议是虚拟可扩展LAN(VXLAN),用于创建网络覆盖,以及提供控制器功能的以太网虚拟专用网络(EVPN)。这两个标准已被RFC7348(VXLAN)和RFC8356(EVPN)中的互联网工程任务组(IETF)采用。

它们是如何工作的? VXLAN将第2层以太网帧封装为第4层UDP数据包,以创建覆盖层——物理基础设施上的虚拟网络,为特定功能或服务承载流量。它避免了重新配置物理网络以部署新服务的需要,并且多个第2层网络可以在一个物理网络之上共存。

VXLAN之所以受欢迎,是因为它具有可扩展性: 它为VXLAN支持超过1600万个虚拟网络,而标准第2层VLAN协议(IEEE 802.1q)仅支持4094个。每个VXLAN也可以跨一个中间层2网络运行,而标准VLAN通常仅限于一个L2域。这两个事实都使VXLAN特别适合在复杂和不断扩展的数据中心环境中运行服务。

EVPN从技术上来看是边界网关协议(BGP)的一个扩展,用于路由互联网上的流量。EVPN最初是用于多协议标签交换(MPLS)以取代服务提供商网络中的虚拟专用LAN服务(VPL),但现在EVPN已被IETF选为数据中心内网络覆盖的控制平面。

传统上,BGP在IP堆栈的第3层运行,而EVPN在第2层(MAC地址)运行。EVPN使用相同的机制来实现MAC地址学习,因此VXLAN虚拟隧道端点(VTeps)可以发现在何处需要转发网络覆盖数据包,以便它们到达最终正确的正确的VTep目的地。vtep通常是托管虚拟机的服务器中的虚拟交换机,但它也能够处理vxlan和终止vtep的物理以太网交换机。在数据中心的虚拟化部分和非虚拟化部分之间架桥时,这种交换机至关重要。

BGP 已被证明可以使用 EVPN 进行扩展, 从而可以传播 IP 和 MAC 地址, 而无需集中 (通常是昂贵的) 控制器。因此, 这种体系结构有时被称为 "无控制器 EVPN"。

 

进入无控制器云结构交换机

这一切听起来都很好——但等一下。虽然网络覆盖很简单,但由于网络节点只需要VTEPs的支持来转发数据包,因此在管理覆盖时,它们确实引入了一定程度的复杂性。此外,VXLAN和EVPN也有一定的权衡。

VTEP显然要求交换机可以支持VXLAN协议,但许多支持VXLAN和EVPN的交换机只支持少数端口和服务器机架。此外,在许多交换机上,获得这些功能需要一个高价格的软件许可证。

解决这一问题的一种方法是部署增强型以太网交换机,该交换机专为以太网云结构(ECF)设计,以bgp作为控制平面处理evpn和vxlan。正确设计的ECF交换机为数千个虚拟端点和数百个机架提供可扩展的支持,所有这些交换机在其所有端口上以25 GB/秒、50 GB/秒和100 GB/秒的线速运行。云结构交换机应该在基本软件包中包含这些功能,而不需要额外的昂贵许可证。

这些ECF开关具有许多优点:

交换机保持较低的延迟,并将微爆炸或由于缓冲区结构设计不当而导致的性能不均衡造成的数据包丢失降至最低。

这些交换机是“无控制器的”,因此您可以消除与专有网络控制器相关的成本和可能的锁定。

交换机与SmartNICs 或智能NICs一起工作,可获得额外的VXLAN性能和可扩展性。

实现VTEP更简单、更灵活,因为它可以在服务器NIC或交换机硬件中完成,无论哪一个对于服务器类型和网络体系结构都是有意义的。

它们允许单个仪表板视图显示您的全部虚拟化,计算和网络基础架构元素。

 

用硬件加速定义的软件

但是,还有另一个难题:即使交换机支持vxlan和vtep,每个使用覆盖网络和vxlan隧道协议(tunnel protocol)的服务器中的网络接口控制器(nic)也必须能够在其硅中处理新的包头格式。如果不这样做,主机CPU最终不得不做所有的覆盖网络处理,吸收CPU内核,从而损害应用程序的性能。

这一事实表明,许多超大型互联网公司将车载硬件加速器集成到其服务器的NIC中,以从主机卸载SDN功能,如VXLAN数据包封装/去封装、RDMA和开放式VSwitch(OVS),并释放CPU核心。

这些所谓的智能卡现在作为数据中心的产品出现,但是有不同的实现智能卡的方法,不同的供应商采取不同的方法。通常,这些方法分为三种:智能网卡使用定制设计的特定于应用程序的集成电路(ASIC),使用FPGA,或向网卡添加CPU核心(通常基于ARM)来执行加速。

ASIC和FPGA方法是当今最常见的方法,它们为处理网络卸载提供了良好的性能。然而,fpgas通常成本高昂,编程难度相对较大,因为它们通常依赖复杂的低级硬件定义语言,如verilog。这意味着它们通常用于优化不太可能经常更改的特定函数。

使用ASIC提供了价格和性能的巨大平衡,以及通过开放式API(例如:linux tc/flower)进行数据平面编程的能力。核心ASIC功能不可重新编程,但在设计合理的基于ASIC的智能网卡中,外部网络控制器可以快速修改数据管道。此外,还可以通过固件更新添加新的功能和加速。使用ASIC方法时,控制平面处理仍然驻留在主机CPU上。

第三种方法是将网卡转换成一个片上系统(SOC),其中一个或多个CPU与标准网络接口逻辑集成在一起。这是迄今为止最灵活和开放的方法,因为它允许使用标准操作系统(如Linux)以及使用熟悉的编程语言实现的功能,从而产生可以根据需要随时更新的代码。这些基于SoC的智能卡的一个基本优势是,控制平面也可以在集成处理器上运行,与在主机CPU上运行的应用程序在完全不同的安全域中运行。与不受信任的主机应用程序的隔离是交付受信任的裸机云的关键功能。

事实上,有些人甚至声称,可编程的、CPU增强的网卡应该被视为唯一的“真正”智能网卡,而那些使用FPGAs 或ASICs的网卡则只能比标准的网卡稍微智能一些。专门构建和编程的数据包处理是智能网卡和智能网卡灵活性的核心,允许它们提供更多的SDN和其他以网络为中心的应用程序的通用加速,并承担其他任务,如安全过滤或驱动软件的功能。重新定义的存储。

 

携带一个智能网卡,行走自如

SDN越来越受欢迎,但不要认为这意味着它们在某种程度上必须是简单的。SDN并不是微不足道的,您应该仔细计划,因为您在旅程开始时所做的技术选择将具有深远的影响。

专有系统似乎是构建模块的一个安全选择,但它们通常成本高昂,而且集中式SDN控制器与交换和路由元素紧密耦合的)与其他供应商的产品不太协调。你将限制未来的选择。

使用VXLAN,EVPN, SmartNICs and Intelligent NICs等工具为sdn选择开放式体系结构意味着您可以保持网络选项的开放性,而不会对您的钱包或灵活性造成不可避免的影响。

唯一的警告?需要仔细考虑这些覆盖网络的处理负担将从何而来-合适的交换机和智能网卡中的硬件加速可以确保您的服务器保持正常运行:运行工作负载。

责任编辑:Sophie

相关文章

半导体行业观察
摩尔芯闻

热门评论