OpenFlow交换机的实现总结

先粗略介绍,后续会逐渐完善。

OpenFlow交换机通过使用OpenFlow协议的安全通道与控制器进行通信。其具体实现如下示意图所示:

对于一个新到达的数据流,交换机通常的做法是,把该数据包发送给控制器,由控制器来决定数据包的下一步操作。至于已存在的,则会直接根据原有的发送路径,发往目的点。

根据上图,在实际中,交换机内部通常由两个表,一个是组表还有一个就是流表,组表目前只是初涉猎,暂不解释,后续补充。流表是由流条目构成,其结构可以抽象为下图:

也就是说,每个流表是由多个流条目组成的,而每个流条目对应的就是实际中的一种数据流(目前的理解),当数据流经过OpenFlow交换机的时候,交换机就会根据数据流所带的这些条目进行匹配,来决定对这些数据流的相应操作指示。因此,对于每个流条目,它也具有相应的报文结构,大致分为三个部分,如下所示:

一般而言为匹配字段、计数以及指示段三个部分组成。当一个流条目进入一个OpenFlow交换机后,会根据流表自身的优先级顺序决定匹配的先后次序,若匹配成功,则会执行相应的指示字段所对应的指示,对匹配成功的数据包进行下一步的操作;倘若匹配失败,则会基于交换机本身的配置,来处理流条目,比如发送给远程交换机,丢掉该数据包,或者继续发送给下一个流表,或者洪范广播等。

而对于流表之间的传递通道是用于表与表之间的通信,通常是以元数据的形式,将数据包发送给后续表(目前认为是优先级较低的表)来进行进一步处理和允许信息。当与匹配流条目关联的指令集不指定下一个表的时候,传递途径就会被关闭。在这一点上,数据包通常被修改并转发。

时间: 2024-07-28 20:59:24

OpenFlow交换机的实现总结的相关文章

ubuntu 14.04安装OVS虚拟OpenFlow交换机配置总结

一.安装OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source (与网上之前的资料相比,没有安装openvswitch-brcompat,提示没有这个包.笔者目前的使用来看没有问题,可能是linux内核或OVS版本变化造成的,不再需要安装?) 二.配置OVS虚拟OpenFlow交换机 1.新建一个桥(交换机),命名为s1: sudo ovs-vsctl add-b

多网卡PC装OVS改造成OpenFlow交换机配置脚本

#!/bin/sh #启动物理端口 echo "openflow" | sudo -S ifconfig eth0 up echo "openflow" | sudo -S ifconfig eth1 up echo "openflow" | sudo -S ifconfig eth2 up echo "openflow" | sudo -S ifconfig eth3 up #如果网桥已存在,删除 echo "op

基于 Open vSwitch 的 OpenFlow 实践(zz)

https://www.ibm.com/developerworks/cn/cloud/library/1401_zhaoyi_openswitch/index.html Open vSwitch 概述 Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机.在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略.网络隔离.流量监控等等. OVS 遵循 Apach

OpenFlow协议(OVS)

白皮书(版本): 功能(OpenFlow半年升级一次) FlowTable流表:由很多个流表项组成,每个流表项就是一个转发规则.进入交换机的数据包通过查询流表来获得转发的目的端口.流表项由头域.计数器和操作组成:其中头域是个十元组,是流表项的标识:计数器用来计算流表项的统计数据:操作标明了与该流表项匹配的数据包应该执行的操作. Secure Channel:安全通道是连接OpenFlow交换机到控制器的接口.控制器通过这个接口控制和管理交换机,同时控制器接收来自交换机的事件并向交换机发送数据包.

OpenFlow:Enabling Innovation in Campus Networks

SDN领域,OpenFLow现在已经成为了广泛使用的南向接口协议.若想好好学习SDN,在这个领域有所进步,需要熟悉OpenFlow协议.我最近找了篇有关OpenFLow的论文,发现最早该协议是在Sigcomm2008中的一篇论文<OpenFlow:Enabling innovation in Campus Networks>,作者之一是SDN领域创始人之一的Nick McKeown.现在我写下一些学习笔)记: 1. 最早该协议是作用于校园网建设,现在已经成为较为通用的SDN南向协议.至于网络的

NS3之路---在NS3中添加openflow模块

如何在NS3中安装openflow模块 Note:目前NS3中虽然支持openflow(貌似仅为V0.89),但是并不支持外部控制器,仅使用内部封装的一个控制器(ofi::Controller). 模型描述 该模型依赖于建立一个外部的openflow switch库(Openflow software implementation distribution, OFSID),然后编译ns3封装器来调用该openflow库函数.ns3的封装源码位于“src/openflow/model”路径下. 设

OpenFlow技术白皮书-V1.0

1.  概述 OpenFlow是由斯坦福大学的Nick McKeown教授在2008年4月ACM Communications Review上发表的一篇论文OpenFlow: enabling innovation in campus networks首先详细论述了OpenFlow的原理.由该论文课题可知OpenFlow提出的最初出发点是用于校园内网络研究人员实验其创新网络架构.协议,考虑到实际的网络创新思想需要在实际网络上才能更好地验证,而研究人员又无法修改在网的网络设备,故而提出了OpenF

[转]基于 Open vSwitch 的 OpenFlow 实践

Open vSwitch 概述 Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机.在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略.网络隔离.流量监控等等. OVS 遵循 Apache 2.0 许可证, 能同时支持多种标准的管理接口和协议.OVS 也提供了对 OpenFlow 协议的支持,用户可以使用任何支持 OpenFlow 协议的控制器对 OVS

openflow简明学习笔记(原创)

一.openflow用来解决什么问题? 1.首先简单介绍一下什么是SDN,传统的网络是每个节点自己计算路由: SDN是集中控制路由.在一个数据中心的网络中,只有一个控制器,下面可以连接多个交换机.控制器集中计算好路由后,将流表下发给交换机,交    换机根据流表进行转发. 跑在最上层是用户的APP(相当于计算机架构的应用软件),下一层是SDN控制层面(相当于操作系统),给APP提供接口,并负责集中    计算并控制所有    的路由: 最下面一层是进行转发的网络设备,控制器将流表下发给交换机,交