软件定义网络北向应用的可编程实验设计
2019-09-09朱丹红张栋何斌杰
朱丹红 张栋 何斌杰
摘 要 针对软件定义网络(Software Defined Network,SDN)
的可编程重要特性,以控制平面北向应用开发为主要内容,设计实验方案。该方案基于负载均衡的SDN应用场景,对Open-Daylight控制器北向接口采用Python编程并部署实现。一方面可以加强SDN的场景认知,为学习北向应用开发提供有意义的实践指导;另一方面能够促进学生深入理解SDN的可编程内涵,掌握SDN灵活部署网络新业务的架构优势,从而提升网络应用的实践创新能力。
关键词 软件定义网络;北向接口;网络课程;实验教学;负载均衡
中图分类号:G642.423 文献标识码:B
文章编号:1671-489X(2019)04-0121-03
Abstract This paper briefly introduces the programmable fea-tures of Software Defined Network (SDN), and puts forward the experiment for the northbound application development of con-trol plane. The experiment teaching scheme is designed with app-lication scenario of load balance, and is deployed on the north-bound interface of OpenDaylight controller by Python progra-mming. It not only provides meaningful practical guidance for learning northbound application but also promotes students un-derstanding of the programmable connotation of SDN. And the experiment is helpful to master the SDN architectural advantagesfor deployment of new services, so the practical innovation abi-lity of network applications can be enhanced.
Key words software defined network; northbound interface; net-work course; experiment teaching; load balance
1 引言
伴随着互联网规模的不断扩大与爆炸式增长,网络结构越来越复杂,网络上部署的应用也越来越多。由于传统网络架构的灵活性和可控性较差,增加部署协议或规则太为烦琐,严重阻碍了网络的进一步发展[1]。软件定义网络(Software Defined Network,SDN)正是为解决传统网络面临的问题与限制而提出的新型网络架构[2]。SDN将控制平面与数据平面分离,网络设备的所有控制逻辑集中在SDN控制器。控制器拥有网络的全局视图以及下层设备信息,并通过开放的北向API(Application Programming Inter-face,应用编程接口)为开发者提供软件编程的方式调用网络资源与编排网络业务,从而快速实现负载均衡、防火墙等网络新应用部署。因此,SDN控制平面北向接口的可编程特性,能够极大地推动网络业务创新,繁荣网络应用,成为SDN的核心特性之一[3]。
自SDN提出后,相关研究和产业化应用迅速展开,将SDN引入网络课程体系,是提高课程先进性与前瞻性的必然趋势[4]。作為网络新型架构,SDN技术新颖,学生在学习中往往存在一些问题,例如:SDN的理论知识前沿且抽象,缺少可借鉴的配套实践内容;对SDN应用场景的认知不足,很难理解SDN的可编程特性;无法准确把握SDN用于网络业务开发的架构优势,局限了网络创新能力培养。
针对上述问题,本文提出以SDN控制平面北向API的程序开发为主要内容,基于负载均衡的网络应用场景,对实验教学进行设计,并引导学生加以部署实现。该实验方案能够促进学生掌握SDN架构下编程实现网络新应用的基本方法,加强对SDN可编程内涵与网络业务快速部署的深入理解,有助于提升学生网络应用的实践创新能力。
2 重要知识点分析
负载均衡是一种服务器或网络设备的集群技术,将特定的网络业务(如网络服务或网络流量等)分担给多个服务器或网络设备,从而提高业务处理能力,保证业务的高可用性。在传统网络中部署负载均衡器成本较高,过程较为繁杂;但在SDN网络架构中,控制器拥有全局网络信息,能够对业务需求灵活调配。因此,负载均衡成为SDN的“杀手级”应用。
SDN北向接口是控制器为应用提供的API编程接口。编程者无须关注底层设备细节,就可以通过北向接口访问控制器管理的网络资源,设计网络策略并与网络进行交互,充分利用SDN的网络可编程优点。本实验以多路径的链路负载均衡为应用场景,通过对控制器开放的北向接口编程,及时获取底层设备的负载信息,并将数据分配到多条路径传输,从而快速灵活地部署并实现负载均衡应用。
3 实验方案展示
实验仿真环境搭建 基于链路负载均衡的应用场景,对控制平面北向API进行程序开发,旨在促进学生掌握SDN架构下编程实现网络应用的基本方法,理解SDN网络可编程的重要特性。利用开源控制器与软件交换机等虚拟化技术,能够在普通的实验室环境中轻松部署SDN控制平面北向应用开发所需的实验环境[5]。首先,利用虚拟仿真平台Mininet部署由终端虚拟主机、OpenvSwitch软件交换机、开源控制器构建的SDN仿真网络,效果可与真实网络环境相媲美。其次,在控制平面采用著名的开源通用SDN控制器OpenDaylight(ODL)。ODL提供一套基于SDN开发的模块化、可扩展、可升级、支持多协议的控制器框架,被行业普遍使用。其北向应用接口REST API的可扩展性很强,且简单易学,适用于浅层应用开发。学生仅需了解一些ODL提供的Python或Java API,就可以编程实现简单的SDN网络应用,省去了初学阶段理解控制器繁杂内部运行机制的麻烦,非常有利于实验教学展开。