OpenFlow 1.3 控制器与交换机的交互,以及拓扑发现
前言
最近纠结于控制器如何发现拓扑,于是就翻起了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]

拓扑发现
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为例子
- 控制器构造Packet-Out消息,并以S1交换机的端口个数为例子,将LLDP的chassis ID 以及 Port ID 置为交换机dpid 以及 端口号;
- 控制器向S1发送流表,使把从控制器接收到的LLDP报文从对应的端口转发出去;
- 控制器向S2发送流表,使把非控制器接受到的LLDP报文发送给控制器;
- 控制器解析该LLDP报文,则可知道该条链路的源交换机,接口,目的交换机和目的接口。
Next step
解剖RYU
OpenFlow 1.3 控制器与交换机的交互,以及拓扑发现的更多相关文章
- openflow控制器和交换机之间的消息
openflow控制器和交换机之间的消息 消息格式 openflow消息由64bit,8个字节组成 Openflow协议数据包由Openflow Header和Openflow Message两部分组 ...
- 提高SDN控制器拓扑发现性能
原文由我发表在sdnlab.com.原文链接:http://www.sdnlab.com/15425.html SDN网络的一大特点就是资源由控制器集中管理,控制器管理网络,最基本的当然需要知道网络的 ...
- OpenFlow协议中如何提高交换机流表的匹配成功率
写在前面 这段时间一直在研究如何提高流表空间的利用率.一直没能想到好的idea.有一篇文献中比较了现有研究中提到的手段,在这里记录一下都有哪些类型的手段以及这些手段存在的不足.这些手段不仅局限于如何提 ...
- SDN学习之OpenFlow协议分析
学习SDN相关的学习也已经有快半年了,期间从一无所知到懵懵懂懂,再到现在的有所熟悉,经历了许多,也走了不少弯路,其中,最为忌讳的便是,我在学习过程中,尚未搞明白OpenFlow协议的情况下,便开始对S ...
- OpenFlow协议1.0及1.3版本分析
OpenFlow是SDN控制器和交换之间交流的协议,在SDN领域有着十分重要的地位. OpenFlow协议发展到现在已经经过了1.0.1.3.1.4等版本.其中1.0和1.3版本使用的是最为广泛的. ...
- openflow 和 sdn (软件定义网络) 原理和教程
OpenFlow概述 OpenFlow简介 通俗的讲,OpenFlow是使用类似于API进程配置网络交换机的协议.OpenFlow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTa ...
- SDN原理 OpenFlow协议 -4
通道 Channel 在前面的OpenFlow的内容中,我们提到了在交换层所采用的流表是控制层的Controller下发的,那么Controller是如何下发流表的呢?中间经过了哪些的流程和步骤?控制 ...
- OpenFlow技术白皮书-V1.0
1. 概述 OpenFlow是由斯坦福大学的Nick McKeown教授在2008年4月ACM Communications Review上发表的一篇论文OpenFlow: enabling inn ...
- OpenFlow和SDN的历史和原理介绍
OpenFlow相关的历史.新闻:http://blog.csdn.net/jincm13/article/details/7825754起源与发展[https://36kr.com/p/503598 ...
随机推荐
- word怎样从第三页开始设置页码
一般的文件都是有封面,目录.然后才是正文.所以基本上第一页的封面,第二页是目录,第三页才是正文的开始.但是默认的页码会从第一页开始的,封面上海有页码这会很难看,今天和小编一起来看看怎样将页码从第三页开 ...
- day1-课堂笔记
venv 执行方法: 1,pycharm执行 2,cmd命令窗口执行:python D:\PyCharmProjects\MyProject\day1.py 回车 java原理: HW.jav ...
- 爬虫header和cookie
def on_start(self): self.crawl('http://bbs.byr.cn/board/Python', headers={'X-Requested-With': 'XMLHt ...
- UPF Usage
在 multi-voltage design 中,当涉及到多个power supply 时,需要 upf 文件来描述power细节,现将 upf 中的基本概念和使用方法记录如下: upf 中的基本概念 ...
- ubuntu系统中Qt creator 编辑和应用使用中文输入法
在ubuntu系统的GUI开发过程中遇到在编辑器里面不能使用中文输入法,前提我已经安装了搜狗输入法,但是还是不能使用,原因是QT的库里没有最新fcix的库,. 没有安装搜狗的输入法的 https:// ...
- Android 绘图时实现双缓冲
一.双缓冲技术原理: 在内存中创建一片内存区域,把将要绘制的图片预先绘制到内存中,在绘制显示的时候直接获取缓冲区的图片进行绘制.更具体一点来说:先通过setBitmap方法将要绘制的所有的图形绘制到一 ...
- 三,ESP8266 SPI(基于Lua脚本语言)
https://www.cnblogs.com/yangfengwu/p/7520260.html 重点是说SPI通信协议,,,, 不要害怕协议因为协议是人规定的,,刚好我也是人......规定的协议 ...
- 20155316 Exp1 PC平台逆向破解(5)M
前绪 实验收获与感想 初步从三个途径了解了什么是缓冲区溢出以及如何简单实现它,对汇编与反汇编有更直观的了解. 什么是漏洞?漏洞有什么危害? 漏洞是指机器体制设计时所没有顾及到的.可以被利用的bug,放 ...
- 20155328 《网络对抗》 实验八:Web基础
20155328 <网络对抗> 实验八:Web基础 实验内容及过程记录 一.Web前端HTML 我们的kali是默认安装好了apache的.首先输入netstat -tupln |grep ...
- python 回溯法 子集树模板 系列 —— 12、选排问题
问题 从n个元素中挑选m个元素进行排列,每个元素最多可重复r次.其中m∈[2,n],r∈[1,m]. 如:从4个元素中挑选3个元素进行排列,每个元素最多可重复r次. 分析 解x的长度是固定的,为m. ...