zoukankan      html  css  js  c++  java
  • 《SDN核心技术剖析和实战指南》3.1控制器核心技术读书笔记

      在SDN的架构中,控制器可以说是SDN的核心,它负责对底层转发设备的控制以及向上层应用提供可编程性的北向接口。从实现上看,主要分三个层面来考虑,南向接口技术,北向接口技术以及东西向的可扩展性能力。下面逐一描述。

      南向网络控制技术主要包括通过南向接口协议进行链路发现、拓扑管理、策略制定、表项下发等。链路发现和拓扑管理主要是控制器利用交换机上报的信息进行同一管理(上行),而策略制定和表项下发则是控制器向交换机发送控制信息从而实施同一控制(上行)。

      SDN控制器主要使用LLDP(Link Layer Discovery Protocol,链路层发现协议)作为链路发现协议。该协议可将设备的能力、管理地址以及设备标识等一系列信息组织成一系列的TLV(Type/Length/Value),并将其封装为LLDPU报文(Link Layer Discovery Protocol Data Unit)发布给自己的直连邻居,邻居收到这些信息后会以MIB(Management Information Base)的形式保存,以供后续使用。而在SDN架构中,发送LLDP数据包的工作由控制器来完成。如下图所示,控制器首先会发送一个Packet_out消息向所有直连的交换机发送LLDP数据包,而交换机接收到LLDP数据包后,也会继续转发给它的邻居。普通的交换机可以直接处理并转发LLDP数据包,但对于OpenFlow交换机来说,一切操作都与流表相关,此时它会查询流表查找相关操作,匹配的流表项会通过一个Packet_in消息将数据包发送给控制器。而控制器接收到消息后,会对数据包进行分析并保存链路发现表中相关交换机的链接记录。

    (参考:http://network.51cto.com/art/201312/424022.htm)

      基于LLDP的链路发现只能对与控制器直连的OpenFlow交换机进行链路发现。对于存在非直连的OpenFlow交换机情况,直连的OpenFlow交换机在收到Packet_out后还会发送一个广播包,非直连的OpenFlow交换机收到广播包后也会发送Packet_in给控制器,从而达到链路发现的目的。

      拓扑管理主要是指监控和管理网络上的动态变化,只需控制器定时发送Packet_out包做链路发现即可。

      策略需要针对特定的网络传输需求进行制定,控制器制定策略后会将相应的转发策略生成对应的流表项下发给交换机。SDN的优势在于可以拥有全局的网络资源视图,更容易制定出更好的策略。

      表项下发有主动和被动两种模式。主动的表项下发(静态)是指在传输数据前就下发了流表项,因此当数据包到达时,交换机就知道该如何转发了;被动的流表下发(动态)是指当交换机接收到第一个数据包时,因为不存在相关的流表项,会将数据包发送给控制器处理。当控制器确定了相应的处理方式后,就会将相关流表项下发到交换机,交换机在下一次就可以直接转发了。

      个人认为,由于流是动态变化的,一般来说,大多数情况下都会采取被动表项下发的模式,但这样会增加控制器的负担。而对于一些具有基本特征的流转发,控制器可以事先下发流表项,采用合适的通配符来满足转发要求。两种模式的结合应用,效果会比单一模式好。

      接下来说北向业务的支撑技术,这主要是指通过北向接口向上层业务提供灵活的网络资源抽象。与南向接口不同,北向接口并没有标准化的趋势,因为这是业务相关的,具体情况具体实现。从现在来看,REST API比较多人应用。

      而东西向控制器扩展技术主要是指,在SDN架构中,控制能力集中到控制器,其性能问题将成为整个网络的瓶颈。而且,单一的控制器无法解决跨越地域问题的SDN部署。基于控制器集群的SDN架构可以解决这方面的问题。如下图所示,采用分布式控制器的方式,每个控制器控制一定数量的交换机。而主控制器将汇总所有控制器的信息形成整个网络的全局视图。几个关键技术要点是:主控制器选举、集群虚拟地址(控制器间的负载均衡)、全网拓扑获取和控制器失效应对。

    (参考:http://network.51cto.com/art/201312/424040.htm)

      另外,对于分布式的控制器模式,最经典的可能是Google的B4网络。这是一个基于Onix模式的OpenFlow的SDN架构。具体为就不说了。下面贴个架构图。

  • 相关阅读:
    201521123088《JAVA程序设计》第8周学习总结
    201521123088《Java程序设计》第七周学习总结
    201521123088《Java程序设计》第6周学习总结
    201521123088《JAVA程序设计》第5周学习总结
    网络15软工个人作业5——软件工程总结
    alpha阶段个人总结
    软件工程网络15个人作业3--案例分析
    结对编程 201521123027
    软件工程网络15个人阅读作业2--提出问题(201521123027 陈龙)
    软件工程网络15个人阅读作业1(201521123027 陈龙)
  • 原文地址:https://www.cnblogs.com/7hat/p/3595918.html
Copyright © 2011-2022 走看看