您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

重生的 SDN?云原生网络功能介绍

时间:2022-09-06 10:04:38  来源:企鹅号  作者:InfoQ

作者 | Wavell Watson

译者 | 明知山

策划 | 丁晓昀

在三类云资源(计算、存储和网络)中,网络似乎最经得起云原生非功能性需求的考验。例如,计算弹性是通过虚拟机、容器和编配器合理分配的,并通过 CI/CD 管道进行管理。网络在实现方面似乎缺乏弹性。在本文中,我们将试图通过云原生网络功能将网络应用程序引入云原生世界。但究竟什么是 CNF,为什么它们如此重要?

1

重生的 SDN?我们以前没试过吗?

软件定义网络(SDN)在过去和现在都是网络配置自动化的一种尝试。云原生网络功能并不是重生的 SDN,它以一种完全不同的方式看待网络。在某种意义上,云原生网络功能类似于 SDN,因为它们是基于软件而不是基于硬件的解决方案。但是,云原生网络有一组完全不同于 SDN 的非功能性需求。云原生非功能需求优先考虑通过弹性、自动化【脚注 1】,等等,比 SDN 要多得多。这个需求的实现依赖于声明式配置。换句话说,云原生配置更倾向于说它想要完成“什么”,而不是“如何”完成。例如,有一个禁止硬编码 IP 地址的网络声明式配置。声明式配置让整个系统具备了自愈的能力【脚注 2】,因为这样更容易读取和并做出适当的响应。然后,系统可以不断地进行自我修正。云原生系统的其他非功能需求是弹性和可用性,并通过横向扩展而不是垂直扩展技术来实现。云原生系统试图通过让子组件具有更高的可服务性和冗余性来解决可靠性问题。例如,在云原生环境中,拥有一个包含多个冗余子组件的顶级组件(其中几个组件可用,但少数组件出现故障)要比一个紧密耦合但“高可靠”的组件更可靠【脚注 3】。

2

超越虚拟化网络

在某种意义上,“网络功能”并不是解耦的。虚拟网络功能(VNF)始于网络硬件的虚拟化。VNF 的硬件与虚拟化硬件是一一对应的,下至网卡、特定于应用程序的集成电路(ASIC)或整个交换机。SDN 似乎是将物理网络机器虚拟化,但 CNF 不仅仅是容器化的网络虚拟机,它对网络功能进行进一步的解耦。CNF 根据敏捷产品团队的发布周期,从大公司的大发布周期中脱离出来,在功能上把网络分成具有相似变化速度的组件。由产品团队发布的软件【脚注 4】可以被认为是“厚”微服务。“薄”微服务是指作为容器内的单个进程类型【脚注 5】交付的软件。通过作为产品团队来开发软件,我们发现,在实践中,厚微服务常常看起来很像薄微服务。

编配器的出现为管理微服务带来了福音。编配器负责微服务的调度、启动、停止和监控(生命周期)。现在有许多编配器,其中 Kube.NETes(K8s)是最流行的,但也有特定于领域的编配器,例如电信领域的编配器。云原生生态系统早期的一个愿景是防止编配器 K8s 被“割据”。这是通过提供官方的 K8s 认证来实现的,该认证由 CNCF 维护,以确保 K8s 的分支版本都将支持社区要求的 API 和最佳实践。

3

究竟什么是云原生网络功能?

云原生网络功能存在于 OSI 网络栈【脚注 6】之上,已从云原生轨迹图中移除。CNF 在网络栈的位置越低,就越难有好的云原生实现。这可能是因为网络需要与编配器和底层主机集成,同时保留其云原生属性,也可能是因为如果不小心将以前的网络功能(比如转发平面)从共享内存 / 线程模型分离到无共享进程模型【脚注 7】会降低性能。

要理解解耦网络功能的影响,就有必要了解一下网络分层背后的逻辑。OSI 网络栈允许网络出现创新,同时保持层之间的互操作性。在网络层,IP 协议最终成为大赢家。在数据链路层,出现了 ARP。供应商们在每一层的协议层进行迭代,创建出新的协议和新的协议实现。云原生网络功能可以实现为包含在开发库、微服务中的协议,甚至可以作为网络应用程序中的一组微服务来实现。

网络服务网格项目的 Ed Warnicke 曾经说过,对于网络服务来说,“数据包就是有效载荷”。这意味着实际操作(转换、路由或分析)网络数据包或数据帧的是网络应用程序或服务。以下是 OSI 模型各层网络功能的一些例子。

第 7 层:CoreDNS

第 6 层:NFF 包检查器;

第 5 层:Rsocket

第 4 层和第 3 层:Envoy/Network Service Mesh/Various CNI 插件;

第 2 层:基于 VPP 的 VSwitch。

对于云原生网络应用,或更高阶的跨多层云原生网络功能,例如 MATRIXX Software 的 5G 融合计费系统和 PANTHEON.tech 的 BGP 服务器。

云原生轨迹图在一定程度上描述了云原生应用程序的成熟度。当我们深入研究云原生化道路上的某一站时,事情会变得更加复杂,就像网络、策略和安全性一样。这就是说,帮助你走向云原生的工具中有一种原生云自反性。如果讲这些也应用在云原生网络功能上,那么我们最终必须像其他云原生应用程序一样实现网络功能。总结如下。

第 1 步从粗粒度的部署开始,通常用容器来实现。

第 2 步是使用无状态和声明式配置将服务或应用程序部署到 CI/CD 管道中。

第 3 步是支持部署在同构节点上的编配器(例如 K8s),用于管理服务的生命周期。

第 4 步确保网络功能具有遥测功能,包括指标(例如,Prometheus)、跟踪(例如,Jaeger)和兼容事件流的日志(例如,Fluentd)。

云原生成熟度的第 5 个步骤是服务发现,集群内部甚至外部的其他消费者可以用它来发现网络服务。

为了方便声明式配置,第 6 步概述了策略的重要性,特别是网络和安全策略。

第 7 步是分布式存储,适用于使用有状态工作负载的地方,以确保兼容云原生环境。

云原生消息传递、注册表、运行时和软件分发是云原生成熟度的其他阶段,这些阶段将完成应用程序的整个旅程。

4

CNF 数据平面

有了 CNF,数据平面【脚注 8】(也称为转发平面)更进一步地远离了传统硬件。由于云原生更重视横向扩展而不是垂直扩展,这意味着拥有更多同构商业化节点比拥有更少的异构专门节点更可取。正因为如此,出现了一种使用商业化服务器来取代专用网络交换机 ASIC 的呼声。这样做的一个好处是出现了一种支持更敏捷的变更速度的数据平面。SDN 数据平面(这里我们讨论的是真正转发数据包的东西)位于硬件 ASIC 或传统内核网络转发的虚拟机上,而 CNF 已经开始探索像用户数据平面(例如 VPP)、带有快速数据路径(XDP)的扩展 Berkeley 包过滤器(eBPF)和 SmartNIC 转发等技术。

5

Layer 3 提升

云原生数据中心偏向于 Layer 3 解决方案。能够声明式地指定和自动化 Layer 3 网络配置已经成为 Kubernetes 网络模型发展中的一个决定性因素。这些新的云原生网络依赖 IP 地址来连接集群的节点和应用程序,而不是 Layer 2 的 mac 和 VLAN。然而,这是编配器及其应用程序的主要关注点。数据中心有多个移动部件,它们具有不同的变化速度。这三个层是这样的:在编配器之下(例如网络操作系统 SONIC、配置工具 Terraform)、在编配器中(例如 Kubernetes)、在编配器之上但在容器中(例如 CNF)。编配器之下的网络基础设施结构,例如数据中心中的机架顶部交换机,仍然具有 Layer 2 配置。电信领域是采用 CNF 的一个重要驱动因素,它仍然不可避免地继续使用 Layer 2,例如多协议标签交换(MPLS)。Layer 2 的故事仍在通过新的交换软件(如 SONiC)实现来续写。

6

结论

网络的配置、部署和自动化是难以实现弹性(云原生环境的一个主要部分)的部分原因。这可能是影响向超规模(如 Amazon)迁移的决定性因素,即使可以保证更定制化的部署。这与电信领域尤其相关,因为他们可能希望为企业客户提供自定义网络协议支持(例如,MPLS)。云原生网络功能根据变化速率解耦网络功能,细化到粗粒度镜像和进程(例如容器)级别,解决了这些部署问题。这避免了网络容易出现的同步部署问题。

CNF 是一种网络功能,传统上被认为是位于 OSI 网络栈上的功能,只是在实现方面遵循了与云原生生态系统耦合的云原生实践。网络,尤其是电信网络,有很长一段非功能性需求的历史,比如弹性。电信服务供应商以 911 呼叫系统为例,它就是一个要求极端弹性和可用性的关键任务系统。即便如此,云原生生态系统的非功能属性已经引起了服务供应商的注意。这些属性,例如可用性(云原生类型)、易于部署和弹性,已经促使电信服务供应商向电信设备供应商(物理和软件)施加压力,要求它们更多地采用云原生。这要求这些新的网络组件遵循云原生基础设施最佳实践,以便在云原生生态系统中成为成熟的解决方案。但这并不容易,因为对于具有高性能要求的传统紧耦合组件(如网络数据平面)来说,要将它们解耦是非常困难的。

CNF 数据平面是一项正在进行当中的工作,有许多解决方案。光是数据平面概念就足以让 CNF 变得难以理解,因为 CNF 不仅仅是一个物理服务器的虚拟化表示。简单地说,云原生数据中心中的网络连接可以通过专注于默认的内核网络和 Layer 3 IP4/IP6 网络来避免这种复杂性。这对于电信来说通常是不可行的。这些问题是解耦网络软件的自然进程的一部分,所以没有办法避免它们。如果 CNF 做得好,就能达到以前没有达到的更高水平的可部署性、弹性、易于配置和弹性。

要了解有关云原生网络功能的更多信息,请加入 CNCF 的云原生网络功能工作组。这里可以找到有关 CNF 认证计划的信息。

脚注参考资料:

1.“原生云是指不需要人类做决定的自主系统。它仍然使用自动化,但只在决定需要采取的行动之后。只有当系统无法自动决定该做什么时,才会通知人类。”——摘自“Cloud Native Infrastructure: Patterns for Scalable Infrastructure and Applications in a Dynamic Environment”(作者 Justin Garrion & Kris Nova,由 O'Reilly 出版)。

2.“自愈基础设施本质上是一种智能部署,能够自动响应已知和常见的故障。根据故障的不同,架构具有固有的弹性,并采取适当的措施来纠正错误。”——摘自“Cloud Native Architectures: Design high-avAIlability and cost-effective applications for the cloud”(作者 Tom Laszewski,由 Packt 出版)。

3.“从直觉上看,一个系统的可靠程度取决于它最不可靠的组件(最薄弱的环节)。但事实并非如此:事实上,这是计算领域的一个旧想法,它的前提是在一个不太可靠的底层基础之上构建一个更可靠的系统。”——摘自“Designing Data-Intensive Applications”(作者 Martin Kleppmann,由 O'Reilly 出版)。

4. 跨职能团队将所有负责构建和运行系统某个方面的人员集合在一起,可能包括测试人员、项目经理、分析师、商业或产品所有者,以及不同类型的工程师。这些团队应该很小,亚马逊称之为“两个披萨团队”,意思是团队足够小,两个披萨足以喂饱每个人。这种方法的优点是,人们可以专注于单一的、集中的服务或少量服务,避免了在项目之间处理多任务。由一组固定人员组成的团队比那些成员每天都在变化的团队工作效率更高。——”Infrastructure as Code: Managing Servers in the Cloud”(作者 Kief Morris,由 O'Reilly 出版)。

5. “最好的方法是将容器视为一种打包服务、应用程序或作业的方法。它是一种升级版的 RPM,包含了应用程序及其依赖项,还为宿主系统提供了管理运行时环境的标准方法。我们不应该在一个容器中运行多个进程,而是使用多个容器,每个容器运行一个进程。这些进程成为独立的、松散耦合的实体。因此,容器非常适合用在微服务应用架构中。”——摘自“Infrastructure as Code: Managing Servers in the Cloud”(作者 Kief Morris,由 O'Reilly 出版)。

6. 为了尽量减少专有解决方案,创建网络系统的开放市场,并管理好通信的复杂性,国际标准化组织(ISO)开发了一种开放通信参考模型。这个参考模型被称为 ISO 开放系统互连(Open Systems Interconnection,OSI)参考模型,提出了一个抽象的、分层的网络模型。具体地说,它定义了七层抽象和每一层的功能。但是,它没有定义必须在每一层使用的特定协议,而是给出了与每一层对应的服务和协议的概念。——“Architecture of Network Systems”(作者 DimitrIOS Serpanos & Tilman Wolf,由 Morgan Kaufmann 出版)。

7. “进程不共享内存,而是通过消息传递相互通信。消息从发送进程的栈复制到接收进程的堆。由于进程在独立的内存空间中并发执行,这些内存空间可以进行单独的垃圾回收,从而使 Erlang 程序具有非常可预测的软实时属性,即使在持续的高负载下也是如此。……异常发生时进程会失败,但由于没有共享内存,故障通常会被隔离,因为进程处理的是独立的任务。其他处理不相关或不受影响的任务的进程可以继续执行,程序作为一个整体可以进行自我恢复。”——摘自“Designing for Scalability with Erlang/OTP: Implement Robust, Fault-Tolerant Systems”(作者 Francesco Cesarini & Steve Vinoski,由 O'Reilly 出版)。

8. 路由器的数据平面实现了针对典型网络流量的一系列操作。如前所述,这些步骤包括处理已到达数据包的 IP,通过交换机结构传输到输出端口,以及调度对外传输。数据平面中的一个关键操作是确定将数据包发送到哪个输出端口。这个过程称为路由查找……——“Architecture of Network Systems”(作者 Dimitrios Serpanos & Tilman Wolf,由 Morgan Kaufmann 出版)。

作者简介:

Wavell Watson 已有 30 年从事软件开发的经验。为了追求软件协作的完美组织结构,他花了数年时间研究博弈论和其他商业专业知识。他还创立了 Austin Software Cooperatives,并将 Vulk Coop 作为团队开发软件的另一种方式。他拥有多元化的背景,包括在海军陆战队担任计算机程序员,以及在多个行业(包括国防、医疗、教育和保险)开发软件。在过去的几年里,他一直在开发补充性的云原生系统,比如 cncf.ci 仪表盘。他目前从事与云原生网络功能(CNF)认证和云原生网络功能测试套件相关的工作。

https://www.infoq.com/articles/cloud-native-network-functions/#theCommentsSection



Tags:SDN   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
重生的 SDN?云原生网络功能介绍
在三类云资源(计算、存储和网络)中,网络似乎最经得起云原生非功能性需求的考验。例如,计算弹性是通过虚拟机、容器和编配器合理分配的,并通过 CI/CD 管道进行管理。网络在实现方面似乎缺乏弹性。在本文中,我们将试图通过云...【详细内容】
2022-09-06  Search: SDN  点击:(469)  评论:(0)  加入收藏
什么是软件定义网络 (SDN)?一张架构图搞定!
软件定义网络 (SDN) 是一种架构,它抽象了网络的不同、可区分的层,使网络变得敏捷和灵活,SDN 的目标是通过使企业和服务提供商能够快速响应不断变化的业务需求来改进网络控制。...【详细内容】
2022-08-30  Search: SDN  点击:(513)  评论:(0)  加入收藏
这篇文章把 SDN 软件定义网络讲的彻彻底底,看这篇足够了
SDN字面意思是软件定义网络,其试图摆脱硬件对网络架构的限制,这样便可以像升级、安装软件一样对网络进行修改,便于更多的APP(应用程序)能够快速部署到网络上。...【详细内容】
2022-08-16  Search: SDN  点击:(499)  评论:(0)  加入收藏
原生javascript解锁恶心的CSDN强制关注才能阅读让文章自动展开
作者:极客小俊公众号同名: 一个把逻辑思维转变为代码的技术博主前言⚽你们一定在CSDN上见过以下这种强制恶心的关注 才能展开看到你想看的文章如图 好的 今天就必须教大家一...【详细内容】
2022-06-29  Search: SDN  点击:(3163)  评论:(0)  加入收藏
5G中的SDR和SDN是什么?
随着 5G 时代的到来,无线通信将迎来新的变化,5G 的三大典型应用场景包括海量机器类通信 (mMTC)、超可靠低延迟通信 (URLLC) 和增强型移动宽带 (eMBB)。此外,5G 还将提供跨多技...【详细内容】
2022-05-12  Search: SDN  点击:(763)  评论:(0)  加入收藏
SDN的主要组织
概述前几年SDN发展火爆,各种概念和场景层出不穷,伴随着大量的标准组织纷纷成立。这些组织由来自不同立场的团体成立,代表着他们的利益,并成为他们的喉舌。现在世界上的SDN组织有...【详细内容】
2020-06-12  Search: SDN  点击:(748)  评论:(0)  加入收藏
在 Linux 上使用开源软件创建 SDN
使用开源路由协议栈 Quagga,使你的 Linux 系统成为一台路由器。 来源:https://linux.cn/article-12199-1.html 作者:M Umer 译者:messon007网络路由协议分为两大类:内部网关协议...【详细内容】
2020-05-09  Search: SDN  点击:(294)  评论:(0)  加入收藏
SDN是什么?SDN概念和应用
软件定义网络(SDN)是控制功能和转发功能的分离,它使网络具有更大的自动化和可编程性。它通常与网络功能虚拟化(NFV)结合使用,NFV以虚拟化网络功能(VNFs)的形式将网络功能与硬件分离...【详细内容】
2020-04-26  Search: SDN  点击:(4808)  评论:(0)  加入收藏
微pe装win10系统安装教程 MSDN原版Win10系统U盘安装的方法
如今,不少用户会使用官方MSDN原版系统镜像来安装系统,主要是因为网上提供的GHO系统文件基本都是被修改过,可能会有强制修改主页、捆绑软件、后门的情况。那么原版win10镜像怎么...【详细内容】
2019-10-08  Search: SDN  点击:(851)  评论:(0)  加入收藏
▌简易百科推荐
学生偷看“不良网站”,手机上3个痕迹无法清除,网友:咋不早说
众所周知,中国的常规教育中,总是“谈性色变”,但在这个信息爆炸的互联网时代,即便是一些年纪很小的孩子,也能轻易接触到一些所谓的不良网站,因此这一方面的教育缺失,其实是很可怕的...【详细内容】
2024-03-28    叶姐生活指南  Tags:不良网站   点击:(11)  评论:(0)  加入收藏
什么是网络中的路由器?核心功能解释
路由器是互联网连接的核心元素,是一种允许多个设备连接到互联网,并促进将数据包转发到各自的目标地址的设备。使用动态路由技术,路由器检查数据并在各种可用路径中选择最有效的...【详细内容】
2024-03-07    千家网  Tags:路由器   点击:(31)  评论:(0)  加入收藏
过年该不该升级Wi-Fi 7路由?看完就知道
打开电商网站不难发现,从2023年第三季度到现在,Wi-Fi 7路由器新品越来越多。而且价格不再是高高在上,已经基本和Wi-Fi 6路由价格差不多了。看到这些Wi-Fi 7新品路由,不少朋友就...【详细内容】
2024-02-27    中关村在线  Tags:Wi-Fi   点击:(37)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  云云众生s  微信公众号  Tags:Kubernetes   点击:(39)  评论:(0)  加入收藏
SSL协议是什么?关于SSL和TLS的常见问题解答
SSL(安全套接字层)及其后继者TLS(传输层安全)是用于在联网计算机之间建立经过身份验证和加密的链接的协议。尽管SSL协议在 1999年已经随着TLS 1.0的发布而被弃用,但我们仍将这些...【详细内容】
2024-02-06  IDC点评网    Tags:SSL协议   点击:(69)  评论:(0)  加入收藏
从零开始了解网络协议:TCP/IP详解
从零开始了解网络协议:TCP/IP详解 在当今数字化的时代,网络协议已经成为我们生活中不可或缺的一部分。作为互联网的基础,网络协议规定了数据如何在不同的网络设备之间传输。TC...【详细内容】
2024-02-01    简易百科  Tags:TCP/IP   点击:(59)  评论:(0)  加入收藏
BGP路由属性:互联网路由的灵活控制器
在互联网的庞大网络中,边界网关协议(BGP)是确保不同自治系统(AS)间路由信息有效交换的关键协议。然而,BGP的功能远不止于此。其核心组成部分,即BGP路由属性,赋予了BGP强大的灵活性,使...【详细内容】
2024-01-26  诺诺爱生活    Tags:互联网路由   点击:(40)  评论:(0)  加入收藏
简易百科之什么是网络延迟?
简易百科之什么是网络延迟?随着互联网的普及和发展,网络已经成为我们生活中不可或缺的一部分。然而,我们在使用网络时可能会遇到一种情况,那就是网络延迟。那么,什么是网络延迟呢...【详细内容】
2024-01-24    简易百科  Tags:网络延迟   点击:(149)  评论:(0)  加入收藏
网络延迟与网络速度有什么区别?分享具体的答案
通常,许多人抱怨网速测试。速度还是不错的,但是他们玩游戏的时候怎么会卡住,还是断开连接等等问题,这一系列问题始终困扰着大家。那么,网络延迟与网络速度有什么区别呢?请不要担心...【详细内容】
2024-01-24  萌新小郭    Tags:网络延迟   点击:(51)  评论:(0)  加入收藏
揭秘IP地址的网络威胁与攻击类型
在当今数字化时代,网络攻击已经成为网络安全的一大挑战。IP地址,作为互联网通信的基础,也成为网络威胁和攻击的焦点之一。本文将深入探讨不同类型的网络威胁和攻击,以及如何防范...【详细内容】
2024-01-22  IP数据云    Tags:IP地址   点击:(78)  评论:(0)  加入收藏
站内最新
站内热门
站内头条