本文基于SDN原理视频而成:SDN原理

OpenFlow

OpenFlow 协议 和 传统的路由选择协议 有很多相似的地方,同时在某些地方也具有一定的颠覆性。

路由表,由IP地址和子网掩码组成。MAC表,由MAC地址组成。
但是OpenFlow协议的流表,却什么都有。

OpenFlow 相比传统路由协议来说,更大更广泛;是一种推倒重来的做法。

功能

OpenFlow 1.0

OpenFlow 1.3 及 更新的版本

相比1.0,1.3的OpenFlow交换机支持 多流表,多控制器,主表,计量表等等。

主要功能:

  • 用于实现 Controller 和 Switch 的通信,定义了一系列的标准术语。
  • 定义了 Controller 如何来控制 Switch 以及 Switch 如何来反馈 Controller。
  • 定义了 Controller 和 Switch 通信过程中的 消息类型和格式。

发展 版本

流表 FlowTable --- OpenFlow的核心

如果拿传统网络中的技术来类比流表,那么流表就相当于 路由选路中的路由表,交换机中的MAC地址表;有了流表,交换机才能进行转发工作。

传统的路由表,MAC地址表 无法按需更改,不可编程化;现在的OpenFlow协议支持多张流表,一个交换机可能有几张流表,相比传统的交换机,多流表增加了交换机工作的复杂性:什么时候选择什么样的流表。

在SDN网络中,经常会发送的一件事情是,有需要来对流表表项进行修改,或者是当一个数据报经过一个OpenFlow的交换机的时候,能够对它的源/目的IP地址,源/目的MAC地址进行修改,导致它选择不同的路径。传统的流表,无论是静态路由表还是动态路由表均不支持;而SDN网络交换机的流表 需要支持 可修改化,可编程化。

因此,介绍流表,从以下五个方面介绍:

  • 流表
  • 流表项
  • 流表匹配
  • 如何生成流表?

在学习过传统网络之后,学习以上的五个内容,就是一个不断进行 对比 的过程。

问题1:流 Flow

(1)流 一般由网络管理员来进行定义,根据不同的流执行不同的策略。

(2)流:同一时间,经过同一个网络,具有相同属性的数据报集合。

  • 这里的相同属性,根据不同的情况,可以不同;比如我们可以定义 目的IP地址相同 的数据报集合为一个流,也可以定义 同一个协议为一个流,或者 同一个源IP地址为一个流。

(3)在SDN网络中,所有的数据都以 流 为基本单位进行处理

目前,一般情况下,我们都以源/目的IP地址,或者是端口号 定义流的相同属性。

问题2:流表 Flow Table

注意:流经过一个交换机之后,最后结果和传统的路由器相类似:转发,或者丢弃。
但是,如果一个交换机同时拥有多张流表,那么比起传统路由器 查完唯一的一张路由表 以外,还有第三种选择:继续查下一张表。

当一个流来到一个运行OpenFlow协议的交换机的时候,开始查表;基于序号的查找:根据表项的序号来进行查找。每一张Table中都有详细的表项。

(1)流表就是交换机的一张转发表;类比于 传统网络路由器的路由表,交换机的MAC地址表/CAM表。

(2)流表由一系列连续的表项(路由条目)组成。

(3)除了OpenFlow1.0版本之外,后续版本中,OpenFlow支持多流表

问题:目前的OpenFlow支持200+流表,那么比起 传统网络路由器/交换机只需要找一张表 来看 速度肯定会更慢啊?

快和慢是一个相对的概念,传统网络的路由表是仅需要查找一张表,但是它们采用的模式是 ”接力棒模式“ 或者说 分布式交互,路由更新的时间十分缓慢,路由汇聚的时间长;而SDN网络所有的路径选择,生成流表 以及相关的控制措施,都是由控制层来实现的,转发层只负责转发,并不需要生成流表,流表由控制器提供。交换机和交换机之间并不需要多的沟通。
因此,看上去SDN网络交换机的流表更多,需要查找的表项更多,但 整体的时间 是小于 传统交互式网络的路由时间 的。

2016/9/5

SDN原理 OpenFlow协议 -1的更多相关文章

  1. SDN原理 OpenFlow协议 -2

    本文由SDN原理视频而成:SDN原理 流表 FlowTable --- OpenFlow的核心 问题3 流表项 Flow Entry 单流表(OpenFlow 1.0版本) -> 多流表(Ope ...

  2. SDN原理 OpenFlow协议 -4

    通道 Channel 在前面的OpenFlow的内容中,我们提到了在交换层所采用的流表是控制层的Controller下发的,那么Controller是如何下发流表的呢?中间经过了哪些的流程和步骤?控制 ...

  3. SDN原理 OpenFlow协议 -3

    问题4:流表匹配 OF1.1版本 这是OF1.1版本的操作,引入了多流表,1.0版本并没有多流表. 多流表的匹配称为 流水线处理:交换机从流表0开始查找,按照流表序号从小到大匹配. 每个包按照优先级去 ...

  4. SDN学习之OpenFlow协议分析

    学习SDN相关的学习也已经有快半年了,期间从一无所知到懵懵懂懂,再到现在的有所熟悉,经历了许多,也走了不少弯路,其中,最为忌讳的便是,我在学习过程中,尚未搞明白OpenFlow协议的情况下,便开始对S ...

  5. 传统二三层转发融合SDN Openflow协议的Hybrid交换机转发流程

    Hybrid 交换系统(以下简称Hybrid 交换机)是交换机融合了OVS(Openflow vswitch)原生代码,集传统和Openflow 技术于一体的转发系统.主要解决纯Openflow 基于 ...

  6. SDN学习之Mininet验证OpenFlow协议版本

    最近学习如何使用mininet,但是,刚刚开始时一直无法知道如何查看OpenFlow协议的版本,通过查阅网上的资料,从SDNLAB中,学习到了如何验证,mininet自身基于OpenFlow13版本的 ...

  7. [转]SDN与OpenFlow技术简介

    http://blog.163.com/s_zhchluo/blog/static/15014708201411144727961/ 本文是2012年文章,对Openflow的发展.规范.应用和SDN ...

  8. SDN原理 控制层 Controller控制器

    本文参照SDN原理视频而成:SDN原理 Controller 概念 从上面这个图片,我们能够知道,Controller 是一个非常重要的东西:承上启下,左右拓展. 从整个SDN的架构来看,控制器 处在 ...

  9. 实战录 | 基于openflow协议的抓包分析

    <实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...

随机推荐

  1. linux如何设置用户权限

    linux与用户权限设置: 1.添加用户 首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 ...

  2. PHP获取POST的原始数据的方法

    一般我们都用$_POST或$_REQUEST两个预定义变量来接收POST提交的数据.但如果提交的数据没有变量名,而是直接的字符串,则需要使用其他的方式来接收. 方法一: 使用全局变量$GLOBALS[ ...

  3. tomcat项目快速启动设置

    1.现象:tomcat启动项目时,耗费10几秒的时间 2.(tomcat7)解决:打开$JAVA_HOME/jre/lib/security/java.security这个文件 找到下面的内容:sec ...

  4. angularJS的过滤器!

    angularJS过滤器: filter currency date filter json limitTo lowercase number orderBy uppercase ...... Fil ...

  5. [MongoDB] 机器换IP之后的设置

    组里用的几台机器换了网段,MongoDB需要做重新配置. 查看Replica Set的状态如下: rs.status() { "startupStatus" : 1, " ...

  6. 从零打造在线网盘系统之Hibernate框架起步

    欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...

  7. supervisor安装篇

    服务器环境: [root@kafka60 supervisor-]# uname -a Linux kafka60 -.el6.x86_64 # SMP Tue May :: UTC x86_64 x ...

  8. 解决“The remote certificate is invalid according to the validation procedure”问题

    在用HttpClient发起https请求时,遭遇了“The remote certificate is invalid according to the validation procedure”异 ...

  9. Tfs 2015 代理池配置笔记

    Tfs的构建代理池其实是在代理服务器上开启一个TFSBuild的代理服务,配好相关的Tfs地址后,就能在Tfs管理界面看到了. 如果是Tfs服务和发布代理是同一台服务器,具体操作详见: 安装TFS20 ...

  10. Mixed Content: The page at 'https://a.t.com/login' was loaded over HTTPS, but requested an insecure stylesheet 非全站https

    Mixed Content: The page at 'https://a.t.com/login' was loaded over HTTPS, but requested an insecure ...