gbcmakehsht

导航

OpenFlow:Enabling Innovation in Campus Networks论文学习

一.可编程网络发展的背景

   在过去日常生活中的网络技术设施几近僵化:已经大规模部署好的设备与协议与对在流量中进行网络实验开发的排斥,使得网络工程人员对于网络可以施加的影响越来越小,网络相关的创新性想法也变得难以付诸实践。于是,相关研究人员提出了可编程网络的概念,以编程的方式操纵网络,使其更加灵活。可编程的网络利用可编程的交换机与虚拟化的路由器实现对不同网络包的处理。该作者从部署校园网络出发,致力于将可编程性推广到大学校园的网络线路。由于可编程网络部署的高昂成本,作者提出了不同于一般概念的新型可交换机,即OpenFlow.它具有以下特点:

 

  • 可接受的高性能、低成本
  • 支持广泛研究的能力
  • 确保隔离实验与商用流量
  • 符合生产商的封闭需求

  下面的描述,是对以上四种要求的初步尝试。

二.什么是OpenFlow

   OpenFlow具有开放的协议,程序员可以通过代码操作不同交换机与路由器中的流表,控制数据包对包进行处理,在此过程中也可以灵活的研究新的协议与模块等,网络管理员可以提取流量中有用的部分;下面介绍OpenFlow的交换机,至少由三个部分构成:(1)流表 (2)连接交换机与远程控制器的安全通道 (3)OpenFlow协议,即交换机与远程交换器通信的标准。流表包含了“流”的行为与事件,交换机根据流表的信息处理流;通道用来传输指令与包;协议一般把流表项定义在外部,避免程序员对交换机本身编程带来错误。

  OpenFlow交换机可以被分为两类:

  1)专用交换机  (不支持二层 三层网络处理)

  2)通用交换机    (支持二层 三层网络处理)

 

 

   专用交换机

   专用交换机中,远程控制器来决定数据包的转发,仅仅由controller在外部传入包,被称为“哑”的通路,灵活性较差。

   

  

   在专用交换机的场景下,流的定义是宽泛的,可能是Tcp链接,地址,包等。流表包含描述流的行为的信息。每条流表项包含三个字段:(1)头部(2)行为 (3)统计。流表的流表项的行为部分也必须要包含三个最基本的行为:(1)将流的数据包转发到一个或多个端口 (2)封装并转发数据包到控制器(包先转发到安全通道,完成封装后再转发到控制器)(3)处于数据安全的考虑,丢弃流的数据包  。在第一代交换机中,流表项的头部是一个十元组,如下图所示:

 

 

  通用交换机

 

   在通用交换机场景下,所有流表允许由一个或多个控制器管理以提高性能。作者希望实验能够再现有的商用网络开展冰雨现实中的网络流量并行;为了实现实验流量的隔离,作者提出了两种解决方案。一种是在原有三种基本流表项行为中增添第四种行为:将流量包转发到交换机的常规处理管道。另一种方案是将商用流量和实验流量化分开,再按照交换机的方式处理。此外,满足四个行为的称为为Type0交换机,在此基础上具有重写部分包头等功能的称为Type1交换机。

 

 

三.关于OpenFlow的使用

  在实际情况中,面对的流量与变化将远远超出实验流量,中心化的控制器在动态处理流时,管理交换机的新流时,其性能,可扩展性与可靠性受到了质疑。在商用网络中,就必须满足另外的特性:(1)非实验流量应该按路由器中运行的,常规的,经充分测试的协议转发 (2)为避免更多漏洞的出现,研究员只能拥有管理实验流量的权限。在OpenFlow通用交换机中,第一个属性已经得到了实现。对与第二个特性,可以通过研发特殊的控制器来实现。这种控制器允许研发者在其上进行试验,并通过一些其他的方法限制研发者控制流权限。

  举了一些使用OpenFlow的实例,

 

包括网络管理与访问控制,VLANs,移动终端的VOIP客户端WIFI网络切换,非IP网络(OpenFlow对包的格式不做要求),包处理等。

 

 

 

四.OpenFlow的后续

  OpenFlow的研发者旨在向全球范围内推广OpenFlow,并成立OpenFlow联盟。OpenFlow的是一个务实的妥协,允许研究者以统一的方式,在各种交换机和路由器上进行实验,无需厂商暴露他们产品的内部工作原理,或者逼迫研究人员编写只适用以某个特定供应商的控制软件。

posted on 2022-11-02 20:50  柚子湖  阅读(116)  评论(0编辑  收藏  举报