zoukankan      html  css  js  c++  java
  • 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]

    拓扑发现

    提高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

  • 相关阅读:
    04_数字信号滤波Matlab代码_常见操作
    03_FIR滤波器的设计
    CH340 USB to TTL connect to STM32F207 TTL UART
    linux内核中如果内存越界破坏了semphore同样会导致RCU STALL
    Build自己的kernel header
    事实证明,PHY Identify在外部电路异常情况下也是会发生变化的。
    vim配置参考
    技术经典图书(附电子版下载地址)
    转:linux内核源代码分析方法
    定期保存2017-04-19
  • 原文地址:https://www.cnblogs.com/wpqwpq/p/6443727.html
Copyright © 2011-2022 走看看