前言

最近纠结于控制器如何发现拓扑,于是就翻起了OpenFlow 1.3进行查看,以及一些相关协议

OF 1.3 安全通道,即交互消息

OpenFlow Switch Specification 1.3.0

1、消息类型

  • controller-to-switch

    消息由控制器初始化,用来直接管理或监视交换机状态

  • asynchronous

    消息由交换机初始化,用来更新控制器的网络事件以及记录交换机状态

  • symmetric

    消息可以被控制器或交换机初始化

2、通信基础机制

  • 建立TCP连接

    交换机主动与控制器3次握手建立TCP连接

  • 互发Hello消息

    沟通彼此之间的OpenFlow版本号

  • 配置交互消息

    交换机把所有的消息发送给控制器,控制器把回复消息并配置交换机

  • Packet-in,Packet-out

    交换机不知道怎么做,向控制器发出Packet-in,控制器回复Packet-out下发流表

抓包实验[0a63c32b4b06de923e7886ec8d3085b8]

拓扑发现

提高SDN控制器的拓扑发现性能

LLDP(Link Layer Discovery Protocol)链路发现协议

1、背景

随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息。 

LLDP就为此而生,LLDP协议使得接入网络的一台设备可以将其主要的能力,管理地址,设备标识,接口标识等信息发送给接入同一个局域网络的其它设备。

2、LLDP报文

其中灰色的就为LLDP的字段

  • chassis ID TLV

    交换机标识符,全网唯一

  • Port ID TLV

    端口号

  • Time to live TLV

    TTL,只有一跳

  • Opt. TLVs

    可选的标识符

  • End of LLDPDU TLV

    结束标识

3、运行机制

触发条件

  • 定时
  • 维护拓扑的MIB信息库发生改变
  • 新的设备接入

只要LLDP数据包被邻居节点解析之后,就可以知道了这条链路的源目的交换机以及源目的端口。

4、SDN控制器的拓扑发现

使用协议:OFDP(OpenFow Discovery Protocol)利用的还是LLDP

以上图为例,以单台S1为例子

  1. 控制器构造Packet-Out消息,并以S1交换机的端口个数为例子,将LLDP的chassis ID 以及 Port ID 置为交换机dpid 以及 端口号;
  2. 控制器向S1发送流表,使把从控制器接收到的LLDP报文从对应的端口转发出去;
  3. 控制器向S2发送流表,使把非控制器接受到的LLDP报文发送给控制器;
  4. 控制器解析该LLDP报文,则可知道该条链路的源交换机,接口,目的交换机和目的接口。

Next step

解剖RYU

OpenFlow 1.3 控制器与交换机的交互,以及拓扑发现的更多相关文章

  1. openflow控制器和交换机之间的消息

    openflow控制器和交换机之间的消息 消息格式 openflow消息由64bit,8个字节组成 Openflow协议数据包由Openflow Header和Openflow Message两部分组 ...

  2. 提高SDN控制器拓扑发现性能

    原文由我发表在sdnlab.com.原文链接:http://www.sdnlab.com/15425.html SDN网络的一大特点就是资源由控制器集中管理,控制器管理网络,最基本的当然需要知道网络的 ...

  3. OpenFlow协议中如何提高交换机流表的匹配成功率

    写在前面 这段时间一直在研究如何提高流表空间的利用率.一直没能想到好的idea.有一篇文献中比较了现有研究中提到的手段,在这里记录一下都有哪些类型的手段以及这些手段存在的不足.这些手段不仅局限于如何提 ...

  4. SDN学习之OpenFlow协议分析

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

  5. OpenFlow协议1.0及1.3版本分析

    OpenFlow是SDN控制器和交换之间交流的协议,在SDN领域有着十分重要的地位. OpenFlow协议发展到现在已经经过了1.0.1.3.1.4等版本.其中1.0和1.3版本使用的是最为广泛的. ...

  6. openflow 和 sdn (软件定义网络) 原理和教程

    OpenFlow概述 OpenFlow简介 通俗的讲,OpenFlow是使用类似于API进程配置网络交换机的协议.OpenFlow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTa ...

  7. SDN原理 OpenFlow协议 -4

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

  8. OpenFlow技术白皮书-V1.0

    1.  概述 OpenFlow是由斯坦福大学的Nick McKeown教授在2008年4月ACM Communications Review上发表的一篇论文OpenFlow: enabling inn ...

  9. OpenFlow和SDN的历史和原理介绍

    OpenFlow相关的历史.新闻:http://blog.csdn.net/jincm13/article/details/7825754起源与发展[https://36kr.com/p/503598 ...

随机推荐

  1. BZOJ2580:[USACO]Video Game(AC自动机,DP)

    Description Bessie is playing a video game! In the game, the three letters 'A', 'B', and 'C' are the ...

  2. Jenkins忘记密码解决办法

    1.进入 如果安装的war包,路劲如下: C:\Users\LENOVO\.jenkins\ 2.打开config.xml  ->将useSecurity设置为false 3.进入系统管理的管理 ...

  3. mysql常用备份命令和shell备份脚本

    备份多个数据库可以使用如下命令:mysqldump -uroot -p123456 --databases test1 test2 test3 > /home/test/dump.sql; 恢复 ...

  4. 爬虫header和cookie

    def on_start(self): self.crawl('http://bbs.byr.cn/board/Python', headers={'X-Requested-With': 'XMLHt ...

  5. PAT B1050 螺旋矩阵 (25 分)

    本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”.所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N:m ...

  6. js基础知识整理

    一.javaScript,也称之为js,是专为网页交互设计的脚本语言.主要由以下三部分组成: 1)ECMAScript  由ECMA-262定义,提供核心语言功能. 2)DOM对象(document ...

  7. echarts 中文API

    http://echarts.baidu.com/echarts2/doc/doc.html#Toolbox

  8. 六,ESP8266 TCP Client(基于Lua脚本语言)

    今天不知道是不是让我姐挺失望.......很多时候都不知道自己努力的方向对不对,,以后能不能带给家人最美好的期盼...... Init.lua 没啥改变,,就改了一下加载Client.lua gpio ...

  9. 关于Altium Designer 提示发送错误报告解决方法

    提示是这样子,,,,,, 稍微有点问题就提示,,,复制也提示,,,,移动也提示,,,,,,算是服了这个软件了.......真是忍无可忍,那就无需再忍,解决掉 以前是安装上一个虚拟的打印机就好了,,,其 ...

  10. 例子:照片的OCR识别

    来自ng的ml-003中 18_XVIII._Application_Example-_Photo_OCR 这是ng2013年在coursera上最后的一课了.这一系列的几个视频还是相比前面有些难懂, ...