SDN网络可编程性的另一种方法

如果你还没有被生活在过去的几年里,岩石下,你的脑袋大概是从软件定义网络过载爆炸。在斯坦福大学的学术研究扎根,SDN最初被打成“科学项目”,这在现实中它是。然而,快速增长的市场的兴趣迅速助推其从理论到实践和时代SDN初创公司已经开始。

在其纯粹的形式中,SDN提倡控制和数据平面的解耦,两者传统上都驻留在网络设备(如交换机和路由器)内部。一旦实现了这种解耦,控制平面函数就从网络设备中移除,并放在x86服务器平台上,充当控制器。

OpenFlow协议是最经常用于控制器和网络设备之间的通信,这当然意味着,网络设备支持的API开放流(由开放流剂递送)接受通过IP网络外部的控制平面连接。

[也:给SDN IT买家的12条建议]

从单个设备提取控制平面函数可能会消除运行分布式控制平面协议(如OSPF、BGP或生成树)的复杂性,从而可能简化整个网络设置。SDN控制器不采用分布式控制平面协议,而是集中计算网络拓扑,将转发表项直接编程到网络设备的转发asic中。

集成和解耦控制和数据平面

集成和解耦控制和数据平面

虽然这种方法提供了强大的新功能,经仔细检查,但也不是没有瑕疵。为了执行其控制平面功能的SDN控制器需要知道哪个流或哪些端点在网络中存在。这可以通过三种方式来实现:

* Proactive-static。管理员可以预先在控制器上配置流。这种方法隐含了所有网络“对话”的知识,这让人联想到在传统网络模型中定义静态路由所带来的管理负担。管理员还可以选择预先配置粗流条目,这将减少网络设备的硬件表消耗,但同时也会限制每个流的转发状态粒度。

Proactive-static

Proactive-static

*活性。所述SDN控制器可以自动地(反应性)发现流动,但是这需要每个新的流的第一分组被转发到控制器,用于检查。这可以创建一个性能瓶颈和单个故障点,如果有,控制器和网络设备之间的连接中断。在这种情况下,网络设备很可能继续使用转发的最后已知状态数据,但是,将被创建新的条目,直到连接到SDN控制器被完全恢复。作为一种变通方法,网络设备还可以允许管理员程序转发表项通过本地CLI在设备上。

反应

反应

* Proactive-dynamic。控制平面协议可以在网络设备和SDN控制器交换端点可达性信息之间被利用。这主要表现在标识符,例如MAC或IP地址。这种情况是与前两次不同,因为SDN控制器意识到单个终点,而不是发生在网络上的流“对话”。一旦端点被识别和发现的,所述SDN控制器计算的路径和方案的流入中间网络设备的转发表。

主动动态

主动动态

下一个问题是如何利用我们所描述的SDN方法将连接从单个网络设备扩展到整个网络。在传统网络模型中使用的分布式控制平面允许网络扩展到数十万个转发条目,ASIC的创新允许将这些条目高效地编程到转发硬件中。在SDN控制器上集中拓扑和可达性计算可能具有显著的规模影响。

让我们来看看三种可能的途径。第一和最明显的是具有SDN控制器计算端点A和端点B之间的路径,然后进行编程的转发条目插入一个逐跳的基础的那些端点之间的所有中间设备。这是一个SDN控制器看到整个端至端的拓扑结构的能力是最有利的。

端至端网络编程

端至端网络编程

第二种情况是让SDN控制器程序只在连接端点A和B的网络边缘上转发条目。由于没有将与端点A和B相关的转发条目编入网络核心,所以网络边缘执行封装以承载通信。在这种情况下,网络核心不需要知道端点A和B,而是只关心在连接端点A和B的网络边缘之间传递封装好的流量。这种方法通常称为网络虚拟化或网络覆盖,它将边缘的SDN编程与网络核心中的传统转发相结合。

网络边缘的编程

网络边缘的编程

有几种封装协议可以用于覆盖,VXLAN是最流行的,也是主要供应商中采用最多的。它也是目前switch ASICs中唯一支持的一个。这是一个重要的区别,因为网络边缘可以是虚拟管理程序中的软件交换机,也可以是物理拓扑中的边缘交换机。

如果端点A是一个虚拟机,而端点B是一个物理服务器,那么在连接端点A的虚拟交换机和连接端点B的物理交换机之间最优地构建网络覆盖隧道。在这种情况下,对于规模和性能来说,硬件支持是一个重要的考虑因素。

第三种情况是前两种情况的混合。SDN控制器可以计划在网络边缘的转发条目“推”端点A和B之间的交通网络覆盖隧道,并转发条目在网络核心允许隧道(封装)交通网络之间转发边缘没有利用传统的分布式控制平面网络模型。

端至端和网络边缘编程

端至端和网络边缘编程

替代的方法

虽然SDN提供了一套强大的新功能,它也需要这样或许对某些人来说颠覆性的转变。但对于网络可编程这并不一定包括这样的细颗粒的方法的替代方法。

您还记得,SDN的正式定义主要关注于控制和数据平面分离。没有控制平面,网络设备无法自主执行智能功能,必须依赖SDN控制器。

考虑其中网络设备保留某些控制平面功能和传达他们的工作特性的能力,如CPU /存储器的消耗,负载接口,传输错误等的外部实体,这可能恰好是一个SDN控制器的情况。这就为网络可编程性的一种全新的方式大门。

你可以,例如,很容易重新路由流量,如果接口负载超过75%,或者你可以基于动态确定的CPU周期可用性的网络设备上影响最短路径优先算法计时器,而不是行政的预配置定时器的值。可能性几乎是无止境的和运营的影响是巨大的。

历史上,类似的功能可以通过利用外部监控器(使用SNMP之类的东西)来轮询(获取)来自网络设备的某些数据,然后根据所需的操作调用配置脚本或使用SNMP (set)来更改网络设备的行为来实现。

现代编程方法允许我们通过充分利用的API,而不是实现显著更全面的结果。这些API允许访问设备的信息,提取它的分析,并根据结果,修改设备行为的编程方法。根据不同的使用情况下,原料药可以影响转发行为,安全控制,服务质量特性,等等。

与当地的控制平面方案办法

与当地的控制平面方案办法

让这些api在不同的网络设备中保持一致可以产生显著的优势,因为它们可以代表一致的编程接口来进行开发。设想一个应用程序商店,在那里开发人员可以发布他们的应用程序供客户使用。只要在网络设备上启用了API层,它就可以与应用程序逻辑进行通信。

如您所见,有多种方法可以实现网络可编程性,但有一件事是肯定的:客户需求促使供应商投资编程api来利用硬件/软件创新来实现跨不同环境集的操作敏捷性。

k黎巴嫩诺夫拥有15年的网络行业经验。在他的工作中,他影响了行业领先的数据中心平台的战略发展,为下一代面料奠定了基础。2020欧洲杯预赛可以联系到他klebanov@cisco.com或发推特@ davidk黎巴嫩诺夫。

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对最重要的话题发表评论。
有关:

版权所有©2013足球竞彩网下载

工资调查:结果是