SDN/Openflow学习总结

本文详细介绍了SDN(软件定义网络)和OpenFlow的基础知识,包括两者的发展起源、SDN的核心特征、OpenFlow网络架构及其组件如控制器和交换机的工作原理。此外,还探讨了FlowVisor在OpenFlow网络虚拟化中的作用,以及OpenFlow在校园网、数据中心、广域网和安全控制等领域的应用案例。文章还对比了OpenFlow的不同版本,如1.1、1.2和1.3的特点和改进,并概述了SDN/OpenFlow的发展趋势,包括ONF、IETF等组织的角色和贡献。
摘要由CSDN通过智能技术生成

目录

1      起源

2      SDN简介

3      OpenFlow网络简介

3.1       OpenFlow架构

3.1.1 控制器(controller)

3.1.2 OpenFlow交换机(OFSwitch)

3.1.3数据包在交换机中的匹配处理

3.2       Flowvisor

3.2.1Flowvisor综述

3.2.2融合FlowVisor的OpenFlow网络

3.3       OpenFlow的应用

4      OpenFlow版本之间的区别

4.1       OpenFlowVersion 1.1

4.2       OpenFlowVersion 1.2

4.3       OpenFlow  version 1.3

4.4       区别综述

5      SDN/OpenFlow发展

5.1       学术研究组织

5.1.1    ONF

5.1.2    IETF

5.1.3    ITU-T

5.1.4    ETSI

5.1.5    CCSA.. 

5.2       技术实现方面

5.2.1    Nicira公司

5.2.2    Big Switch Networks.

5.2.3    Insieme Networks

5.2.4    IBM

5.2.5华为  

5.3       协议应用

6      附录1开展SDN项目的机构及研究情况

6.1       Sane项目

6.2       Ethane项目

6.3       CLEANSLATE项目

6.4       HyperFlow

6.5       ONIX.

6.6       master-slave模式的分布式控制架构

6.7       ASIC

6.8       NOX

6.9       defane

6.10     FlowScale

6.11     Aster*x

6.12     ElasticTree.

6.13     SODALES(无线方向)

6.14     其他..

6.14.1      智能宽带接入网

6.14.2      华为PON网络SDN发展计划

1、起源

网络早已经成为支撑当代人们生活、娱乐、工作、学习等各个方面的基础性设施之一。然而,当今网络的架构越来越不可以满足运营商、企业和用户等的需求。传统互联网由极其复杂的交换机、路由器、终端以及其他设备组成,这些网络设备使用着封闭、专有的内部接口,并运行着大量的分布式协议。在这种网络环境中,对于网络管理人员、第三方开发人员(包括研究人员),甚至设备商来说,网络创新都是十分困难的。近年来,SDN以软件进行定义网络,结合网络虚拟化的技术正在对网络的发展发挥越来越大的作用,并且越来越因此业界的重视。

SDN是软件定义网络的简称,其核心理念是使网络软件化并充分开放,从而使得网络能够像软件一样便捷、灵活,以此提高网络的创新能力。通常意义上来讲,SDN是指从OpenFlow发展而来的一种新型的网络架构,其前身是斯坦福的用于企业集中安全控制的Ethane项目”。2008年斯坦福大学的Nick Mckeown教授将其命名为0penFlow,后经由斯坦福Clean state项目推广,以及在大型网络一全球网络创新环境(GENI)项目中的应用,该概念被逐渐扩展并成为了SDN。

2、SDN简介

图 2‑1描述了SDN架构的逻辑视图。SDN的基本网络要素包括:逻辑上集中的SDN控制器,它是基于软件的控制器,负责维护全局网络视图,并且向上层应用提供用于实现网络服务的可编程接口(通常也称为“北向接口”);控制应用程序,该程序运行在控制器之上,通过控制器提供的全局网络视图,控制应用程序可以把

整个网络定义成为一个逻辑的交换机,同时,利用控制器提供的应用编程接口,网络人员能够灵活地编写多种网络应用,如路由、多播、安全、接入控制、带宽管理、流量工程、服务质量等;转发抽象,转发抽象通常称为“南向接口”,

SDN控制器通过利用SDN提供的转发平面的网络抽象来构建全局网络视图。


图2-1 SDN架构

SDN特征:

1)  控制与转发分离。转发平面由受控转发的设备组成,转发方式以及业务逻辑由运行在分离出去的控制面上的控制应用所控制。

2)  控制平面与转发平面之间的开放接口。sDN为控制平面提供开放的网络操作接口,也称为可编程接口。通过这种方式,控制应用只需要关注自身逻辑,而不需要关注底层更多的实现细节。

3)  逻辑上的集中控制。逻辑上集中的控制平面可以控制多个转发面设备,也就是控制整个物理网络,因而可以获得全局的网络状态视图,并根据该全局网络状态视图实现对网络的优化控制。


3、OpenFlow网络简介

从2007年提出至今,OpenFlow得到十足的发展,首先,好多设备厂商例如CISCO,Junifer,Toroki,pronto等相继推出支持OpenFlow协议的交换机、路由器、网络接入点等网络设备。同时,OpenFlow协议在全球得到很大的发展应用而不是仅仅局限于科研理论研究,例如OpenFlow已经在美国斯坦福大学、Internet2、日本的JGN2plus以及其他的10-15个科研机构中部署,并将在国家科研骨干网以及其他科研和生产中应用。OpenFlow的国际覆盖已经包括日本、葡萄牙、意大利、西班牙、波兰和瑞典等。

3.1OpenFlow架构

图 3‑1,这是最基本的OpenFlow网络架构图,主要分为三个部分,控制器(controller)、OpenFlow交换机(OpenFlow switch),终端(terminal)。


图3-1 OpenFlow架构

3.1.1控制器(Controller)

OpenFlow实现了数据层和控制层的分离,其中OpenFlow交换机进行数据层的转发,而Controller实现了控制层的功能。

Controller通过OpenFlow 协议与OF交换机的连接,对OF交换机内的流表和流表项的控制,然后数据流通过交换机的时候,通过与交换机内的流表以及流表项的匹配,使交换机完成对数据流的操作。Controller的这一切功能都要通过运行NOX来实现,NOX就像是OpenFlow网络的操作系统。

此外,在NOX上还可以运行Plug-n-serve、OpenRoads以及OpenPipes等应用程序。

Plug-n-Serve通过规定数据传输路径来控制网络以及服务器上的负载,从而使得负载均衡并降低响应时间。

OpenRoads是支持OpenFlow无线网络移动性研究的框架。

OpenPipes可以在网络系统中通过移动每个子模块来测试每个子模块,并可以决定如何划分设计单元。

3.1.2 OpenFlow交换机(OF Switch)

OpenFlow交换机由流表、安全通道和OpenFlow协议三部分组成。图3‑2,OpenFlow 交换机的逻辑结构图。


图3-2 OpenFlow交换机逻辑结构图
 3.2.1.1流表
在交换机中的每个流表中包含的一组流表项,用来匹配数据包,每组流表项就是一个转发规则。进入交换机的数据包通过查询流表来获得转发的目的端口。流表项由头域(匹配字段)、计数器和操作(指令)组成;其中头域是个十元组,是流表项的标识;计数器用来计数流表项的统计数据;操作标明了与该流表项匹配的数据包应该执行的操作。
3.2.1.2 流表项

流表项包含:

匹配字段:对数据包匹配。包括入口端口和数据包匹配,以及由前一个表指定的可选的元数据。

优先级:流表项的匹配次序。

计数器:更新匹配数据包的计数。

流表项可能包含数据包转发到某个端口。这通常是一个物理端口,但它也可能是由交换机定义的一个逻辑端口或通过本规范中定义的一个保留的端口。保留端口可以指定通用的转发行为,如发送到控制器、泛洪、或使用非OpenFlow的方法转发。如“普通”交换机转发处理;而交换机定义的逻辑端口,可以指定链路汇聚组,隧道或环回接口。

3.2.1.3 指令
指令存在于流表项中,描述报文匹配流表项时OpenFlow的处理方式。指令可以修改流水线处理,如指导包匹配另一个流表,也可以包含一系列添加到行动集的行动,还可以包含一系列立即应用到数据包的行动。
3.2.1.4 安全通道

连接OpenFlow交换机到控制器的接口。控制器通过这个接口控制和管理交换机,同时控制器接收来自交换机的事件并向交换机发送数据包。交换机和控制器通过安全通道进行通信,而且所有的信息必须按照OpenFlow协议规定的格式来执行。

3.2.1.5 行动
行动描述了数据包转发,数据包的修改和组表处理。流水线处理的指令允许数据包被发送到后面的表进行进一步的处理,并允许信息以元数据的形式在表之间进行通信。当与一个匹配的流表项相关联的指令集没有指向下一个表的时候,表流水线处理停止,这时该数据包通常被修改和转发。流表项相关的行动,也可直接把数据包发送到组,进行额外的处理。
3.2.1.6 行动集

行动集与数据包相关的行动集合,在报文被每个表处理的时候这些行动可以累加,在指令集指导报文退出处理流水线的时候这些行动会被执行。

3.2.1.7 组

组表示一组泛洪的指令集,以及更复杂的转发(如多路径,快速重路由,链路聚合)。作为间接的通用层,组也使多个流表项转发到一个单一的标识符&#x

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值