SRv6网络编程自学系列 | ALL IP 1.0的机遇:SDN与网络编程

Posted COCOgsta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SRv6网络编程自学系列 | ALL IP 1.0的机遇:SDN与网络编程相关的知识,希望对你有一定的参考价值。

书籍来源:《SRv6网络编程:开启IP网络新时代》

这本书已经出了很多年了,但多年之后因为工作需要再来读一遍,除了温习之外,发现自己学到了更多的知识。一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:SRv6网络编程自学系列 | 汇总_COCOgsta的博客-CSDN博客


All IP 1.0时代存在的挑战不仅有IPv4和MPLS数据平面可扩展性和可编程能力不足,还有其他问题。

  • 缺乏网络的全局视角,缺乏流量可视化功能,无法基于全局视角做出全局最优的网络决策,无法快速响应TE需求。
  • 数据平面缺乏统一的抽象模型,控制平面无法基于数据平面API (Application Program Interface,应用程序接口)进行编程来支持网络新功能。
  • 缺乏自动化工具,业务上线周期长。
  • 设备的数据平面和控制平面紧密耦合,相互绑定销售;在演进上相互依赖,不同厂商设备的控制平面无法控制彼此的数据平面。

借鉴计算机领域的通用硬件、软件定义和开源理念,美国斯坦福大学尼克·麦基翁(Nick McKeown)教授的团队提出了一个新的网络体系架构——SDN。

在SDN架构中,网络的控制平面与数据平面相分离。网络设备的控制逻辑由SDN控制器和应用来定义,从而实现软件定义的网络功能。随着开源SDN控制器和开源SDN开放接口的出现,网络体系架构也拥有了通用底层硬件、支持软件定义和开源模式3个要素。

控制平面和数据平面分离为逻辑集中控制创造了条件,逻辑集中控制为网络开放可编程提供了架构基础,而网络开放可编程才是SDN的核心特征。

SDN只是一种网络架构,历史上出现过多种用于实现SDN的技术,比如OpenFlow、POF(Protocol Oblivious Forwarding,协议无关转发)、P4(Programming Protocol-independent Packet Processors,编程协议无关的包处理器)和本书要介绍的Segment Routing。

  1. OpenFlow

在OpenFlow的协议架构中,OpenFlow交换机和OpenFlow控制器之间建立OpenFlow协议通道用于交互信息。控制器可以通过OpenFlow向OpenFlow交换机下发转发流表项。每一条流表项定义了一种流及其对应的转发动作,即在Match(匹配)成功的条件下,执行对应的Action(动作)来进行数据处理和转发。

OpenFlow的优点在于可以灵活编程转发规则,但问题也比较明显。

第一,OpenFlow的流表规格受限,导致OpenFlow交换机性能不足。

第二,在实际部署中,OpenFlow的用途就只剩下对关键业务的流量调优,作用弱化了很多。

第三,OpenFlow只能在现有的转发逻辑上添加对应流表项来指导报文的转发,而无法对交换机的转发逻辑进行编程和修改。

第四,OpenFlow缺乏足够的能力去维持网络状态,所以OpenFlow交换机基本无法自主实现有状态的操作。

受限于以上问题,OpenFlow还没有被广泛部署。

  1. POF

为了解决OpenFlow无法对交换机的转发逻辑进行编程和修改的问题,华为提出了POF。

POF架构与OpenFlow相似,可以分为控制平面的POF控制器和数据平面的POF转发元件两部分。

但与OpenFlow相比较,POF的控制流程就要复杂得多,为了实现POF,还需要定义一套通用指令集,实现复杂的指令调度,这也给转发性能带来了一定的影响。因此POF在商业上并没有太好的进展。

  1. P4

P4是一种高级编程语言,它定义了一系列的语法,支持对转发模型的协议解析过程和转发过程进行编程定义,实现了协议无关的可编程网络数据平面。

在漫长的标准制定过程中,P4快速支持网络编程的能力就显得不那么重要了。另外,现网并不需要通过推翻分布式路由协议架构来完全重新构建连接,而是需要在现有分布智能互联的基础上,提供增强的集中式全局优化的能力,实现全局优化和分布智能的结合。

  1. Segment Routing

为了实现网络可编程就必须要进行革命性的创新吗?答案是否定的。

Segment Routing支持MPLS和IPv6两种数据平面,基于MPLS数据平面的Segment Routing被称为SR-MPLS,其SID为MPLS标签;基于IPv6数据平面的Segment Routing被称为SRv6,其SID为IPv6地址。

相比于OpenFlow等革命性的协议,SR-MPLS考虑了对现网的兼容,支持平滑演进,同时也提供了网络编程的能力。此外, Segment Routing保留了网络的分布式智能,并在此基础上引入SDN控制器的全局优化能力。

受限于MPLS封装可扩展性不足等问题,SR-MPLS无法很好地满足SFC和IOAM等一些需要携带元数据的业务的需求。而基于IPv6数据平面的SRv6不仅继承了SR-MPLS网络的所有优点,还拥有比SR-MPLS更好的可扩展性。

以上是关于SRv6网络编程自学系列 | ALL IP 1.0的机遇:SDN与网络编程的主要内容,如果未能解决你的问题,请参考以下文章

SRv6网络编程自学系列 | ALL IP 1.0的挑战:IP/MPLS的困局

SRv6网络编程自学系列之二 | 汇总

SRv6网络编程自学系列 | 汇总

SRv6网络编程自学系列 | 互联网发展概述

SRv6网络编程自学系列之二 | SR报文开销与承载效率

SRv6网络编程:开启IP网络新时代 | 一文读懂SRv6 Policy