前言

最近纠结于控制器如何发现拓扑,于是就翻起了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. 【转】给网站添加X-UA-Compatible标签

    X-UA-Compatible是神马? X-UA-Compatible是IE8的一个专有<meta>属性,它告诉IE8采用何种IE版本去渲染网页,在html的<head>标签中 ...

  2. Spark项目之电商用户行为分析大数据平台之(九)表的设计

    一.概述 数据设计,往往包含两个环节: 第一个:就是我们的上游数据,就是数据调研环节看到的项目基于的基础数据,是否要针对其开发一些Hive ETL,对数据进行进一步的处理和转换,从而让我们能够更加方便 ...

  3. Hibernate-validator校验框架使用

    可以有两种使用方法: 第一种:在要检验的Dto对象之前加@Valid注解,这种方法必须配合BindingResult参数一起使用,否则验证不通过就会返回400,并且抛出"org.spring ...

  4. springbatch入门练习(第一篇)

    先搞懂几个概念 Job Respository: 作业仓库,负责Job.Step执行过程中的状态保存 Job launcher: 作业调度器,提供执行Job的入口 Job:作业,由多个step组成,封 ...

  5. Android 调用手机上第三方百度地图并传值给地图

    //移动APP调起Android百度地图方式举例 Intent intent = null; try { // intent = Intent.getIntent("intent://map ...

  6. POJ 3660 Cow Contest(Floyd求传递闭包(可达矩阵))

    Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16341   Accepted: 9146 Desc ...

  7. 阿里云代金券 - 双12疯了~~~ 4核8G 3M带宽只要1890元/3年

    阿里云双12大促简直疯了,4核8G 3M带宽只要1890元/3年,比双11疯狂多了,双11没有上车的赶快来买吧!!! 前去阿里云双12活动页面 截图如下: 从截图中可以看出,不仅4核8G降到了地板,1 ...

  8. Wannafly挑战赛26-F-msc的棋盘[最小割转化dp]

    题意 一个大小为 \(n*m\) 的棋盘,知道每一列放了多少棋子,求有多少摆放方案满足要求. \(n,m\leq 50\) . 分析 如果是求是否有方案的话可以考虑网络流,行列连边,列容量为 \(b_ ...

  9. Asp.net中汉字转换成为拼音

    1.应用场景 将汉字转换为拼音(eg:"我爱你"--->"WOAINI") 取各个汉字的首字母(eg:"我是中国人"--->&q ...

  10. 前端示例MVC网站

    前端示例MVC网站 ASP.NET Zero 包含了一个公共web站点的前端页面和一个登陆页面.当您第一次运行项目的时候可以看到,如下图所示: 该前端网站有两个页面,一个是主页和关于我们.这些页面的内 ...