OpenFlow交换机远程配置管理系统

2019-10-08 07:45常甫郑世慧孙斌
软件 2019年1期
关键词:计算机

常甫 郑世慧 孙斌

摘  要: 随着SDN的广泛应用,OpenFlow交换机逐渐增多,如何方便快捷地配置和管理OpenFlow交换机成为一个值得关注的问题。对此,本文提出了远程配置和管理OpenFlow交换机的系统。该系统基于Web架构,使用OF-CONFIG协议和命令行两种方式,并实现了配置文件的自动生成和配置命令的自动下发。在本文最后,使用虚拟机搭建环境,对系统进行了测试。结果表明,本系统的各个模块实现了设计的功能,管理员可以使用本系统在远程完成对交换机的配置管理工作。此外,本系统使管理员免于登录到交换机进行操作,并使用模板减少了管理员的输入工作量,有助于提高管理员的工作效率。

关键词: 计算机;SDN;OpenFlow;OF-CONFIG;交换机配置

中图分类号: TP393.07    文獻标识码: A    DOI:10.3969/j.issn.1003-6970.2019.01.001

【Abstract】: Software Defined Networking (SDN) became popular in many situations, such as data center. One of the most widely used forwarding devices in SDN is OpenFlow switch. However, administrators usually need to log in every switch, or type in entire configuration files to manage them. This paper presents a system to configurate and manage OpenFlow switches remotely. It is based on B/S structure, using OF-CONFIG protocol and command-line scripts to configure OpenFlow switches. Furthermore, configuration files can be generated with a few necessary parameters, and be sent to switches automatically. At the end of this paper, the system is tested in a virtual environment. The results show that each module works well. Furthermore, in comparison with, the system helps administrators to avoid logging in each switch for operation, and configure switches at one point. Besides, the system reduces the workload of typing in the entire configuration files, which helps to improve productivity.

【Key words】: Computer; SDN; OpenFlow; OF-CONFIG; Switch configuration

0  引言

近年来,随着云计算和虚拟化的快速兴起,传统网络在网络的可扩展性、动态性、网络管理的灵活性等方面暴露出难以克服的问题。在此背景下,基于OpenFlow[1]为网络带来的可编程特性,诞生了软件定义网络(SDN)的网络设计思想,其核心是通过分离转发和管理,让传统的交换机和路由器只负责转发数据包,数据包的转发策略和规则都由集中式的控制器来进行管理。SDN在很大程度上屏蔽了底层网络设备的异构性,并通过API的方式开放网络功能,不仅能够快速满足用户的网络交付、网络扩容等需求,也可以为网络服务提供商(ISP)管理网络设备提供极大的便利[2]。随着SDN在众多领域得到应用,OpenFlow交换机设备也越来越多。如何对众多的OpenFlow交换机方便有效地进行配置,逐渐成为一个有待研究的问题[3]。

按照OpenFlow协议[4]的规定,OpenFlow交换机需要首先进行配置,才能和控制器进行通信。为了对OpenFlow交换机进行配置和管理,可以采用命令行(CLI)和OF-CONFIG协议[5]两种方式。其中命令行方式的配置步骤较为繁琐,并且配置步骤之间缺少逻辑性和整体性。而OF-CONFIG协议虽然步骤简洁,但是仍然需要输入正确完整的配置文件,所以人工配置的效率和正确率依赖于管理员对交换机YANG模型[6]的熟练程度。

对于交换机的配置问题,研究者在传统结构网络中就已经进行了相关研究[7]。提出了基于Web的NETCONF管理系统,实现了NETCONF协议中的配置操作,但是用户需要自行输入完整的配置文件(XML格式),并且该系统缺少YANG建模语言定义的数据模型[8]。提出了为不同的交换机设备建立一个配置模板库,每种模板可以匹配一种支持NETCONF协议的交换机,从而方便交换机的配置工作。Vijay [9]提出了利用NETCONF协议的灵活性对家庭物联网(IoT)网络配置和管理。

在SDN兴起后,对交换机配置的研究集中在OF-CONFIG协议和YANG建模语言。Manzanares[10]利用OF-CONFIG协议配置交换机的队列,从而实现基于流的服务质量(QoS)管理。Majstorovi?[11]提出了在特定环境中创建YANG模型,并编写相应的模块,用以监控和配置网络设备。刘建琪[12]使用OF-CONFIG代理实现了对Open vSwitch交换机的配置,但其代理使用的YANG模型过于简单,仅能实现少数配置功能,不能满足OF-CONFIG协议的要求,所以缺少对其他OpenFlow交换机的通用性。Cejka [13]针对流行的OpenFlow虚拟交换机Open vSwitch不能原生支持OF-CONFIG协议的问题,设计并实现了可用于该交换机的OF-CONFIG组件,使该交换机能够具备更好的兼容性。

本文提出的OpenFlow交换机远程配置与管理系统,采用OF-CONFIG协议和CLI方式相结合的方式,自动生成符合交换机YANG模型的配置文件,并自动下发到交换机实现配置。系统基于Web架构,不仅配置步骤简洁,而且实现了一定程度的自动化,加快了配置的速度,可以减少人工配置造成的错误。此外,由于OF-CONFIG协议的目标是成为OpenFlow交换机的标准配置协议,因此本系统在今后也将具备良好的通用性。

本文的其余部分安排如下:第1节简要介绍SDN的整体架构和OpenFlow交换机配置管理的研究现状;第2节介绍我们设计的OpenFlow交换机远程配置管理系统;第3节分析我们系统的分析测试情况;第4节总结了主要工作和发现的不足。

1  OpenFlow交换机远程配置管理系统

1.1  系统简介

OF-CONFIG协议与OpenFlow协议的关系如图1所示。本系统将作为OF-CONFIG配置点,对OpenFlow交换机的资源进行配置。

本系統使用B/S架构,对支持OF-CONFIG协议的OpenFlow交换机,可以实现常见功能的配置,包括配置逻辑交换机,交换机端口,交换机与控制器连接,交换机配置备份与恢复,以及交换机批量配置。系统使用符合OF-CONFIG协议的YANG模型,描述交换机配置的相关选项。此外,系统可以根据用户选择的功能模块,以及用户输入的少量参数,自动生成配置文件,并选择相应的配置命令,自动完成对交换机的配置,加快了配置效率,并减少手工配置导致的配置错误。

如图2所示,系统的总体结构分为3个部分:Web页面、服务器和OpenFlow交换机。用户通过浏览器进入并使用系统的功能。服务器包括Web服务器和配置管理系统,配置管理系统通过SSH方式连接到交换机的OF-CONFIG服务器。交换机中的OF-CONFIG服务器用于接收和处理服务器发送的命令,并返回响应消息。此外,对于少数涉及交换机的宿主机的操作,配置管理系统将直接通过SSH连接到宿主机并进行配置。

1.2  系统功能模块划分与流程

如图3所示,系统包含逻辑交换机(也称网桥)配置模块,端口配置模块,控制器连接配置模块和交换机配置备份与恢复模块。

用户在使用本系统时,首先需要通过浏览器登录服务器,进入管理界面。用户在管理界面选择相应的功能模块,然后根据配置的需要,输入相应的

配置参数,如交换机的IP和逻辑交换机的ID等。系统会检查所需参数是否完整和合法,并检查交换机的连接性,确认无误后则调用模板生成相应的配置文件,并将配置文件下发到交换机,完成相应的配置。交换机完成配置后返回响应消息,服务器处理响应消息并发送响应给浏览器,浏览器根据响应生成响应的显示给用户。用户可以继续选择功能模块进行配置,也可以选择退出管理系统。系统的工作流程如图4所示。

系统使用了OF-CONFIG协议和命令行(CLI)这两种方式对OpenFlow交换机进行配置,具体如下所述。

(1)交换机相关参数的配置,需要使用OF- CONFIG协议。

a)使用connect命令连接到OpenFlow交换机。

b)通过edit-config命令,将xml格式的配置文件发送给OpenFlow交换机,完成相应配置。

c)配置完成后,使用disconnect命令断开连接。

(2)与交换机所在主机有关的配置,需要使用命令行。

a)使用SSH连接到OpenFlow交换机所在的主机。

b)通过CLI方式,进行相应配置。

c)配置完成后,使用exit命令断开SSH连接。

1.3  系统子模块介绍

本节对系统各个子模块的功能和所需参数进行详细介绍。其中,逻辑交换机配置模块,端口配置模块和控制器连接配置模块均使用模板生成配置文件,并通过OF-CONFIG协议进行配置,此外端口配置模块的VxLAN配置功能还使用了CLI命令。

(1)逻辑交换机配置模块

本模块可以配置交换机中的逻辑交换机,包括创建、修改、移除等功能。以创建逻辑交换机的功能为例,该功能使用的模板如图5所示。其中必需的参数为交换机IP,逻辑交换机id(即图中的BRIDGE_ID变量),其他可选参数为逻辑交换机的datapath-id和失去连接后的表现。

(2)端口配置模块

本模块可以配置交换机中逻辑交换机的端口,包括添加、修改、移除端口,VxLAN隧道配置和队列配置等功能。

其中添加、修改、移除端口功能的必需参数为交换机IP,逻辑交换机的id与资源项的名称。其他可选参数包括资源项的requested-number和confi guration等。

创建、修改和移除队列功能的必需参数为交换机的IP,逻辑交换机的id,以及资源项的相关参数。

创建、修改和移除VxLAN隧道的必需参数为交换机的IP,逻辑交换机的id,以及资源项的相关参数,如VxLAN隧道近端和远端IP等。此外,VxLAN的配置过程,还需要将端口绑定至宿主机网卡,该功能使用命令行方式实现,必需参数为交换机的IP,以及交换机宿主机的网卡名称。

图6为添加VxLAN隧道的模板,该模板包含了端口配置模块中的大部分参数。

在VxLAN的配置过程中,需要使用CLI方式,实现将端口绑定至宿主机网卡和增加路由的功能。该功能需要使用ifconfig命令,实现虚拟交换机端口和宿主机网卡的绑定,并使用route add命令,加入VxLAN隧道对应的路由。

(3)控制器连接配置模块

本模块可以将Open vSwitch交换机连接至指定控制器,并可修改和移除已连接的控制器。连接、修改和移除控制器的必需参数包括交换机的IP,逻辑交换机的id,以及控制器的id,IP地址,端口和连接协议。

以控制器连接功能为例,该功能的模板如图7所示,其中必需参数为逻辑交换机id,控制器id,控制器IP,控制器端口。

(4)交换机配置备份与恢复模块

本模块可以对Open vSwitch交换机的配置进行备份和恢复,并可以使用已保存的交换机配置对其他交换机进行批量配置。

备份交换机配置功能的必需参数为交换机IP,恢复交换机配置的必需参数为交换机IP和备份id。

交换机批量配置功能的必需参数为交换机IP和相关功能的必需参数,系统使用参数生成相关的配置文件configuration.xml,然后对交换机进行批量配置。图8为批量配置功能的相关代码,使用循环实现对多个交换机的批量配置。其中config.sh使用IP地址和配置文件作為参数,逐个实现对交换机的配置。

2  分析测试

2.1  测试环境

测试环境中,OpenFlow交换机选择OpenFlow vSwitch v2.3.1(以下简称OVS)。由于OVS自身并不支持OF-CONFIG协议,而是使用OVSDB协议进行配置,所以需要额外安装OF-CONFIG组件,从而可以支持OF-CONFIG协议1.2版本中规定的大部分功能。

每台OVS交换机分别安装在一台Ubuntu 14.04 64位系统的虚拟机中,而Web服务器和管理系统则安装在一台额外的Ubuntu 14.04 64位系统的虚拟机中。用户通过可以连接到Web服务器的浏览器进行操作。

测试之前,需要配置服务器免密钥SSH登录到OVS所在主机。使用服务器生成RSA密钥对,并将公钥添加至OVS所在主机的~/.ssh/authorized_ keys文件中,从而实现SSH公钥免密码登录,避免后续配置过程因SSH登录时需要密码而被中断。

测试过程中,用户使用浏览器进入配置管理系统,选择相应的功能模块,输入必要的参数,对目标交换机进行功能测试。

2.2  逻辑交换机配置模块功能验证

本节以交换机配置模块中的创建逻辑交换机功能为例进行验证。本验证实例的目的是,为OVS交换机添加2台逻辑交换机,并分别命名为br0和br1。

测试环境如图9所示,虚拟机为OVS交换机的宿主机。

配置完成后,OVS交换机显示的配置结果如图10所示。可见OVS交换机中已经成功添加逻辑交换机br0和br1。

2.3  端口配置模块功能验证

本节以端口配置模块中的VxLAN隧道配置功能为例进行验证。该实例包括了创建逻辑交换机端口,添加VxLAN隧道,以及将逻辑交换机端口绑定到宿主机网卡等操作,可以充分验证本模块的功能是否得到实现。

测试环境如图11所示,虚拟机为OVS交换机的宿主机。由于在实际SDN网络中,配置网络和数据通信网络通常为独立分开的,所以虚拟机具有eth0和eth1两块网卡,其中eth0用于和配置管理系统连接,eth1用于和另一台虚拟机进行通信。

本验证实例的目的是,对交换机OVS-1和OVS-2进行配置,并在两台交换机之间搭建VxLAN隧道,实现不同网段之间的通信。VxLAN隧道两端为br0网桥,2个网桥的IP分别为192.168.233.1/24和192.168.234.1/24,分别处于不同的网段。管理系统通过局域网192.168.136.0/24连接到OVS交换机,即为配置网络。OVS交换机之间使用通信网络进行通信,通信网络两端为br1网桥,而br1网桥需要绑定宿主机的eth1网卡,并使用eth1的IP地址。以上配置过程中,需要使用Linux系统的ifconfig命令和route命令,由管理系统通过SSH连接到宿主机,使用CLI命令的方式进行配置。

配置完成后,两台OVS交换机显示的配置结果如图12所示,可以看到交换机的两个网桥br0和br1均实现了相关配置。

2.4  控制器连接配置模块功能验证

本节以控制器连接配置模块中的连接到控制器功能为例进行验证。本验证实例的目的是,将OVS交换机中的逻辑交换机br0连接到控制器。

测试环境如图13所示,虚拟机为OVS交换机的宿主机,控制器为一台Floodlight控制器。

配置完成后,OVS交换机显示的配置结果如图14所示,Floodlight控制器显示的配置结果如图15所示。

2.5  交换机配置备份与恢复模块功能验证

本节以交换机备份与恢复模块中的批量配置功能为例进行验证。本验证实例的目的是,对4台OVS交换机进行批量配置,为每台交换机添加2个逻辑交换机br0和br1,为br0添加端口port0,并将逻辑交换机br0连接到控制器。

测试环境如图16所示,虚拟机为OVS交换机的宿主机。

配置完成后,4台OVS交换机显示的配置结果如图17所示,控制器显示的配置结果如图18所示。

3  结论和展望

本文提出了针对OpenFlow交换机的远程配置和管理系统。通过测试和分析,我们认为本系统实现了预先设计的功能,可以在远程对OpenFlow交换机进行配置管理。此外,系统使用功能模板的方式,减少了管理员在配置过程中的工作量,降低了交换机配置管理工作对管理员自身能力的依赖程度,并且提供了批量配置功能,加快了配置速度。除了系统已经实现的配置功能,未来的工作还要加入对OF-CONFIG协议中YANG模型更好的展示和交互方式,从而使用户可以不拘泥于当前系统中固定的功能模块,在一次配置中自由组合各个功能,使配置过程更加灵活。

参考文献

MCKEOWN N, ANDERSON T, BALAKRISHNAN H, et al. OpenFlow: enabling innovation in campus networks[J]. ACM SIGCOMM Computer Communication Review, 2008, 38(2): 69-74.

MORADI M, ZHANG Y, MAO Z M, et al. Dragon: Scalable, Flexible, and Efficient Traffic Engineering in Software Defined ISP Networks[J]. IEEE Journal on Selected Areas in Communications, 2018, 36(12): 2744-2756.

陆华兴. 对基于OpenFlow的SDN技术分析[J]. 通讯世界, 2018, 25(12): 23-24.

LU H X. Analysis of OpenFlow based SDN technology[J]. TelecomWorld, 2018, 25(12): 23-24.

Open Networking Foundation. OpenFlow Switch Specifi cation Version 1. 5. 1. (2015-03-26). https: //www. Opennet working. org/wp-content/uploads/2014/10/openflow-switch- v1.5.1.pdf

Open Networking Foundation. OpenFlow Management and Configuration Protocol 1. 2. (2014). https: //www. Open networking. org/images/stories/downloads/sdn-resources/onf-specifications/openflow-config/of-config-1. 2. pdf

BJORKLUND M. The YANG 1. 1 Data Modeling Language[R]. IETF-RFC-7950, August 2016. https: //tools. ietf. org/html/rfc7950.

蔣东旭. 基于B/S架构的NETCONF网管系统的研究与实现[D]. 西安电子科技大学, 2015.

JIANG D X. Research and Implementation of NETCONF Network Management System Based on the B/S Archi tecture[D]. Xidian University, 2015

LIU M. Network Configuration Access: U. S. Patent Appli cation 15/122, 283[P]. 2016-12-22.

VIJAY S, BANGA M K. Management of IoT Devices in Home Network via Intelligent Home Gateway Using NET CONF[C]. International Conference on Ubiquitous Communications and Network Computing. Springer, Cham, 2017: 196-207.

MANZANARES J F G, de la Cruz A P, MOLINA J M M. Performance of QoS Policies in Software-Defined Networks[C]. 2018 IEEE 10th Latin-American Conference on Communica tions (LATINCOM). IEEE, 2018: 1-6.

MAJSTOROVIC B, VULETA M, MILIC B, et al. Using YANG module for monitoring and configuration of network devices[C]. Telecommunication Forum (TELFOR), 2017 25th. IEEE, 2017: 1-4.

刘建琪. 基于YANG数据模型的SDN转发设备自动配置的设计与实现[D]. 内蒙古大学, 2017.

LIU J Q. Design and Implementation of Automatic Confi guration of SDN Forwarding Equipment Based on YANG[D]. Inner Mongolia University, 2017

?EJKA T, KREJCI R. Configuration of open vSwitch using OF-CONFIG[C]. Network Operations and Management Symposium (NOMS), 2016 IEEE/IFIP. IEEE, 2016: 883-888.

猜你喜欢
计算机
计算机操作系统
穿裙子的“计算机”
基于计算机自然语言处理的机器翻译技术应用与简介
计算机多媒体技术应用初探
信息系统审计中计算机审计的应用
Fresnel衍射的计算机模拟演示