SDN控制器基础知识SDN落地,测试先行。足以说明测试在SDN技术发展中起着举足轻重的作用。那么如何测试SDN,测好SDN,这就要求我们对SDN有一个很深的认识,对SDN的功能有一个全面的了解。本文将从SDN发展背景及其核心架构开始,逐步分篇给大家介绍一下SDN控制器相关技术,以及如何测试与评估SDN控制器。1SDN产生的背景互联网作为人类历史上最重要的发明之一,自发明以来已经深入到了人类生活的各个方面,包括工作、学习和生活方式。到目前为止互联网已经成为世界上规模最大、覆盖范围最广的基础设施。但是,由于互联网的设计初衷并不是为了只是如此大规模的应用,其体系架构在可扩展性、安全性、移动性、服务质量保障等方面问题随着网络规模的增长逐渐凸显。针对当前的网络架构的种种问题,无论是采用渐进式或者颠覆式进行网络架构/协议创新,其最大的问题在于无法进行现网大规模的验证。软件定义网络(SDN)概念为网络创建带来了新的契机,它最初是由美国斯坦福大学CLeanslate研究组提出的一种新型的网络架构,设计初衷是为了解决无法利用现有网络中的大规模真实流量和丰富应用进行试验,以便研究如何提高网络的速度、可靠性、能效和安全性等问题。其基本思想是把当前IP网络互连节点中决定报文如何转发的复杂控制逻辑从交换机/路由器分离出来,以便通过软件编程实现硬件对数据转发规则的控制,最终达到对流量进行自由操控的目的。2SDN的基本架构SDN是一种新型的网络架构,它的设计理念是将网络的控制平面与数据转发平面进行分离,并实现可编程化控制。SDN网络的架构定义如下:图1.SDN网络体系架构图其中,应用层包括各种不同的业务和应用;控制层主要负责处理数据平面自有的编排,维护网络拓扑,状态信息等;基础设施层(数据转发层)负责基于流表的数据处理、转发和状态收集。3SDN控制器在SDN的架构中,控制器可以说是SDN的核心。它是连接底层交互设备与上层应用桥梁。一方面,控制器通过南向接口协议对底层网络交换设备进行集中管理,状态监测、转发决策以及处理和调度数据平面的流量;另一方面,控制器通过北向接口向上层应用开放多个层次的可编程能力,允许网络用户根据特定的应用场景灵活地制定各种网络策略。其层次化的体系架构如下图所示:图2.SDN控制器体系架构图从实现上看,控制器设计主要分三个层面来考虑,南向接口技术,北向接口技术以及东西向的可扩展性能力。下面逐一描述。3.1南向技术南向网络控制技术主要包括通过南向接口协议进行链路发现、拓扑管理、策略制定、表项下发等。链路发现和拓扑管理主要是控制器利用交换机上报的信息进行统一管理(上行),而策略制定和表项下发则是控制器向交换机发送控制信息从而实现统一控制(上行)。3.1.1链路发现SDN控制器主要使用LLDP(LinkLayerDiscoveryProtocol,链路层发现协议)作为链路发现协议。该协议可将设备的能力、管理地址以及设备标识等一系列信息组织成一系列的TLV(Type/Length/Value),并将其封装为LLDPDU报文(LinkLayerDiscoveryProtocolDataUnit)发布给自己的直连邻居,邻居收到这些信息后会以MIB(ManagementInformationBase)的形式保存,以供网络管理系统查询机判断链路的通信状况。而在SDN架构中,发送LLDP数据包的工作由控制器来完成。如下图所示,控制器首先会发送一个Packet_out消息向所有直连的交换机发送LLDP数据包,而交换机接收到LLDP数据包后,也会继续转发给它的邻居。普通的交换机可以直接处理并转发LLDP数据包,但对于OpenFlow交换机来说,一切操作都与流表相关,此时它会查询流表查找相关操作,匹配的流表项会通过一个Packet_in消息将数据包发送给控制器。而控制器接收到消息后,会对数据包进行分析并保存链路发现表中相关交换机的链接记录。基于LLDP的链路发现只能对与控制器直连的OpenFlow交换机进行链路发现。对于存在非直连的OpenFlow交换机情况,直连的OpenFlow交换机在收到Packet_out后还会发送一个广播包,非直连的OpenFlow交换机收到广播包后也会发送Packet_in给控制器,从而达到链路发现的目的。3.1.2拓扑管理拓扑管理作用是为了随时监控和采集网络中SDN交换机的信息,及时反馈网络的设备工作...