2014-12-17 00:00:00
来 源
SDNlab
SDN
SDN落地,测试先行.如何做好SDN测试,这就要求我们对SDN功能有一个全面的了解.该篇文章从SDN发展背景及其核心架构开始,介绍SDN控制器相关技术,为后续如何测试与评估SDN控制器做好准备.

前言

SDN落地,测试先行。足以说明测试在SDN技术发展中起着举足轻重的作用。那么如何测试SDN,测好SDN,这就要求我们对SDN有一个很深的认识,对SDN的功能有一个全面的了解。该篇文章将从SDN发展背景及其核心架构开始,逐步分篇给大家介绍一下SDN 控制器相关技术,以及如何测试与评估SDN控制器。

SDN控制器测试专题一:基础知识篇

1 SDN产生的背景

互联网作为人类历史上最重要的发明之一,自发明以来已经深入到了人类生活的各个方面,包括工作、学习和生活方式。到目前为止互联网已经成为世界上规模最大、覆盖范围最广的基础设施。但是,由于互联网的设计初衷并不是为了只是如此大规模的应用,其体系架构在可扩展性、安全性、移动性、服务质量保障等方面问题随着网络规模的增长逐渐凸显。针对当前的网络架构的种种问题,无论是采用渐进式或者颠覆式进行网络架构/协议创新,其最大的问题在于无法进行现网大规模的验证。

软件定义网络(SDN)概念为网络创建带来了新的契机,它最初是由美国斯坦福大学CLeanslate研究组提出的一种新型的网络架构,设计初衷是为了解决无法利用现有网络中的大规模真实流量和丰富应用进行试验,以便研究如何提高网络的速度、可靠性、能效和安全性等问题。其基本思想是把当前IP网络互连节点中决定报文如何转发的复杂控制逻辑从交换机/路由器分离出来,以便通过软件编程实现硬件对数据转发规则的控制,最终达到对流量进行自由操控的目的。

2 SDN的基本架构

SDN是一种新型的网络架构,它的设计理念是将网络的控制平面与数据转发平面进行分离,并实现可编程化控制。SDN网络的架构定义如下:

SDN控制器测试一:图1 SDN网络体系架构

图 1. SDN网络体系架构图

其中,应用层包括各种不同的业务和应用;控制层主要负责处理数据平面自有的编排,维护网络拓扑,状态信息等;基础设施层(数据转发层)负责基于流表的数据处理、转发和状态收集。

3 SDN控制器

在SDN的架构中,控制器可以说是SDN的核心。它是连接底层交互设备与上层应用桥梁。一方面,控制器通过南向接口协议对底层网络交换设备进行集中管理,状态监测、转发决策以及处理和调度数据平面的流量;另一方面,控制器通过北向接口向上层应用开放多个层次的可编程能力,允许网络用户根据特定的应用场景灵活地制定各种网络策略。其层次化的体系架构如下图所示:

SDN控制器测试一:图2 SDN控制器体系架构

图 2. SDN控制器体系架构图

从实现上看,控制器设计主要分三个层面来考虑,南向接口技术,北向接口技术以及东西向的可扩展性能力。下面逐一描述。

3.1 南向技术

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

3.1.1 链路发现

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

SDN控制器测试一:图3 链路发现

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

3.1.2 拓扑管理

拓扑管理作用是为了随时监控和采集网络中SDN交换机的信息,及时反馈网络的设备工作状态和链路链接状态。控制器一般通过发生packet_out消息来获取SDN交换机的链路状态信息。

3.1.3 策略制定

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

3.1.4表项下发

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

3.2 北向技术

SDN北向接口是通过控制器向上层应用开放的接口,其目的是使得应用能够便利地调用底层的网络资源。通过北向接口,网络业务的开发者能以软件编程的形式调用各种网络资源;同时上层的网络资源管理系统可以通过控制器的北向接口全局把控整个网络的资源状态,并对资源进行统一调度。因为北向接口是直接为业务应用服务的,因此其设计需要密切联系业务应用需求,具有多样化的特征。同时,北向接口的设计是否合理、便捷,以便能被业务应用广泛调用,会直接影响到SDN控制器厂商的市场前景。

3.3 东西向扩展

控制器负责整个SDN网络的集中化控制,对于把握全网资源视图、改善网络资源交付都具有非常重要的作用。但控制能力的集中化,也意味着控制器的安全性和性能成为全网的瓶颈。另外,单一的控制器也无法应对跨多个地域的 SDN网络问题,基于SDN控制器组成的分布式集群,可以避免单一的控制器节点在可靠性、扩展性、性能方面的问题。

如下图所示,采用分布式控制器的方式,每个控制器控制一定数量的交换机。而主控制器将汇总所有控制器的信息形成整个网络的全局视图。几个关键技术要点是:主控制器选举、集群虚拟地址(控制器间的负载均衡)、全网拓扑获取和控制器失效应对。

SDN控制器测试一:图4 东西向扩展

4 总结

通过对控制器基础知识的学习,基本能够确定控制器测试的大方向,后续将以南向、北向以及东西接口为主题,构建测试环境,仔细分析并测试控制器的各个功能及性能。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。