深入分析OpenFlow协议

文章目录

  • OpenFlow是什么/li>
  • OpenFlow的起源与发展
  • OpenFlow工作原理
    • OpenFlow组件
      • OpenFlow控制器
        • 1、NOX/POX
        • 2、ONOS
        • 3、OpenDaylight
    • OpenFlow安全通道
    • OpenFlow交换机
    • 流表项的组成
    • 多级流表与流水线处理
    • 流表下发方式
  • OpenFlow的应用场景
  • OpenFlow的未来
  • 参考

OpenFlow是什么/h2>

OpenFlow是一种 络通信协议,应用于SDN架构中控制器和转发器之间的通信。软件定义 络SDN的一个核心思想就是“转发、控制分离”,要实现转、控分离,就需要在控制器与转发器之间建立一个通信接口标准,允许控制器直接访问和控制转发器的转发平面。OpenFlow引入了“流表”的概念,转发器通过流表来指导数据包的转发。控制器正是通过OpenFlow提供的接口在转发器上部署相应的流表,从而实现对转发平面的控制。

OpenFlow的起源与发展

OpenFlow起源于斯坦福大学的Clean Slate项目,该项目的目标是要“重塑互联 ”,旨在改变设计已略显不合时宜,且难以进化发展的现有 络基础架构。在2006年,斯坦福的学生Martin Casado领导了一个关于 络安全与管理的项目,试图通过一个集中式的控制器,让 络管理员方便地定义基于 络流的安全控制策略,并将这些安全策略应用到各种 络设备中,从而实现对整个 络通讯的安全控制。

受此项目启发,Clean Slate项目的负责人Nick McKeown教授及其团队发现,如果将传统 络设备的数据转发和路由控制两个功能模块相分离,通过集中式的控制器(Controller)以标准化的接口对各种 络设备进行管理和配置,那么这将为 络资源的设计、管理和使用提供更多的可能性,从而更容易推动 络的革新与发展。于是,他们便提出了OpenFlow的概念,并且于2008年发表了题为《OpenFlow: Enabling Innovation in Campus Networks》的论文,首次详细地介绍了OpenFlow的原理和应用场景。

2009年,基于OpenFlow,该研究团队进一步提出了SDN(Software Defined Network,软件定义 络)的概念,引起了行业的广泛关注和重视。2011年,由Google、Facebook、微软等公司共同发起成立了一个对SDN影响深远的组织ONF(Open Networking Foundation),致力于发展SDN。ONF将OpenFlow定义为SDN架构的控制层和转发层之间的第一个南向标准通信接口,并加大OpenFlow的标准化力度。

OpenFlow工作原理

整个OpenFlow协议架构由控制器(Controller)、OpenFlow交换机(OpenFlow Switch)、以及安全通道(Secure Channel)组成。控制器对 络进行集中控制,实现控制层的功能;OpenFlow交换机负责数据层的转发,与控制器之间通过安全通道进行消息交互,实现表项下发、状态上 等功能。

多级流表与流水线处理

OpenFlow v1.0采用单流表匹配模式,这种模式虽然简单,但是当 络需求越来越复杂时,各种策略放在同一张表中显得十分臃肿。这使得控制平面的管理变得十分困难,而且随着流表长度与数目的增加,对硬件性能要求也越来越高。

从OpenFlow v1.1开始引入了多级流表和流水线处理机制,当 文进入交换机后,从序 最小的流表开始依次匹配, 文通过跳转指令跳转至后续某一流表继续进行匹配,这样就构成了一条流水线。多级流表的出现一方面能够实现对数据包的复杂处理,另一方面又能有效降低单张流表的长度,提高查表效率。

流表下发方式

OpenFlow流表的下发分可以是主动(Proactive)的,也可以是被动(Reactive)的:

主动模式下,控制器将自己收集的流表信息主动下发给OpenFlow交换机,随后交换机可以直接根据流表进行转发。
被动模式下,OpenFlow交换机收到一个 文而查流表失败时,会发送消息询问控制器,由控制器进行决策该如何转发,并计算、下发相应的流表。被动模式的好处是交换机无需维护全部的流表,只有当实际的流量产生时才向控制器获取流表记录并存储,当老化定时器超时后可以删除相应的流表,因此可以大大节省交换机芯片空间。

OpenFlow的应用场景

随着OpenFlow概念的发展和推广,其研究和应用领域也得到了不断拓展,主要包括 络虚拟化、安全和访问控制、负载均衡等方面。下面以几个典型的场景来展示OpenFlow的应用:

  • OpenFlow在校园 络中的应用
    科研院校 络是OpenFlow的发源地,也是OpenFlow被广泛应用的 络环境。学生或研究人员在进行 络创新性研究时,可能会有全新设计的 络控制协议和数据转发技术需要验证,他们希望有一个平台能帮助他们把 络的控制、转发独立出来,以便能在平台上自由验证他们的研究工作。基于OpenFlow的 络正好可以提供这样一个试验平台,不仅更接近真实 络的复杂度,实验效果好,而且可以节约实验费用。

  • OpenFlow在数据中心 络中的应用
    云数据中心是OpenFlow得以发扬光大的地方。云数据中心部署时存在多租户资源动态创建、流量隔离以及虚拟机动态迁移等虚拟化需求,OpenFlow交换机可以配合云管理平台实现 络资源的动态分配和 络流量的按需传输,实现云服务的 络虚拟化需求并可以改善 络性能。其次,在数据中心的流量很大,如果不能合理分配传输路径很容易造成数据拥塞,从而影响数据中心的高效运行。如果在数据中心中部署OpenFlow,可以动态获取各链路的流量传输情况,动态下发OpenFlow流表规则进行均衡调度,实现路径优化以及负载均衡。

  • OpenFlow在园区 络中的应用
    在园区 络中可以使用OpenFlow对接入层设备进行有效的管控。接入层设备的特点是量大、故障率高,但设备功能和流量策略相对简单。如果使用OpenFlow,可以在控制器上集中统一对接入设备进行流表下发、 络监控等维护工作。在要求用户身份认证的场合,可以把认证流量引导到控制器上,在验证用户身份合法后再下发准入规则到用户连接的交换机端口上。在控制器检测到特定 络端口或特定用户流量异常时,可以通过下发规则关停设备端口或限制特定流量,快速恢复 络故障,提高 络可靠性和安全性。

OpenFlow的未来

OpenFlow作为SDN转控分离架构和可编程性的灵魂已经存在近十年了,作为SDN技术家族中的老前辈可谓劳苦功高。然而,从整个 络技术数十年的发展历程来看,Openflow还只是个刚刚长成的少年,尽管已具备了丰富的功能雏形,在未来的日子里仍然还有很长的成熟期要度过。我相信伴随着云计算和虚拟化技术的进一步推广落地,在众多SDN技术支持者的贡献下,OpenFlow会更加稳定、强大,最终能够某种程度上推动全人类科技的发展和生活的改善。最后,套用一句我最喜欢的话来结尾:OpenFlow的征途是星辰大海,诸君努力!

参考

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月9日
下一篇 2022年9月9日

相关推荐