APP下载

支持SDN的高校计算机网络实验室设计与实现

2018-09-26汤中运李传煌

计算机应用与软件 2018年9期
关键词:交换机架构服务器

汤中运 金 蓉 李传煌

1(浙江工商大学信息与电子工程学院 浙江 杭州 310018)2(浙江工商大学网络信息中心 浙江 杭州 310018)

0 引 言

传统的网络架构已渐渐无法支持大量增长的新型计算机网络应用,因此需要一个开放可编程的新型网络体系架构来满足各种类型的网络业务请求。软件定义网络SDN是利用可编程软件形式将网络中的控制面与数据转发面分离,实现集中控制灵活管理,从而使各类新型的计算机网络应用可以在这样的平台上进行各种发展和创新。

而在大部分高校中的计算机网络实验室仅仅支持传统网络实验,不支持SDN相关实验。计算机等网络相关专业的教学均停留在传统网络教学,无法提升学生对SDN网络的实际操作能力,导致无法适应基于SDN的计算机应用开发和研究。本文阐述了SDN新型网络架构的趋势,提出建设支持SDN网络实验室的重要性,设计了网络实验室进行支持SDN实验的改进方案,进行了传统网络实验和SDN网络实验的对比,体现SDN的优势。

1 SDN及其实验室意义

1.1 SDN背景与意义

网络中的各类业务应用与日俱增,各行各业都朝着新型信息化、智能化方向发展,传统的网络架构及其基础设施已经渐渐开始无法承担当前用户、企业以及运营商的需求。网络业务中的大数据大规模频繁转移,已经完全超出了现有网络架构的承载能力[1]。若仅仅提高网络中数据处理的速度已经无法满足上述需求,无法从本质上解决问题。只有打破现有的封闭式的网络结构[2],寻找一种高可用的、灵活的新型开放网络架构[3],使网络设备中的处理数据单元可编程化,才能满足各种大量新型的网络应用需求。美国自然科学基金GENI支撑的以OpenFlow技术为核心[4]的“GENI Enterprise”[5]项目成为最具影响力的计划。OpenFlow技术定义了网络的转发流表,并将对其的控制开放给用户,从而提供了自定义编程的功能,进而初步构建了一个开放可编程的通信网络。

开放可编程网络思想是构建新型网络架构的核心所在。同时,OpenFlow技术在校园网络取得了实验创新,在这样的影响下,软件定义网络(SDN)[6]概念被提出。成立于2011年的ONF[7]在最先提出基于OpenFlow技术的SDN之后,开始开展相关标准的制定及推广工作,例如OpenFlow标准、SDN的白皮书,极大地推进了SDN和OpenFlow标准化的工作,从而使其成为全球新型网络架构研究的热点[8]。同时,ONF还在白皮书[9]中首次明确了SDN的典型框架[10]。如图1所示,SDN的典型框架分为三层:基础设施层(或称为数据层)、控制层(或称为服务层)和应用层(或称为业务层)。在这样三层分离的网络架构中,上层通过接口对下层下发控制命令或者数据,下层通过接口反馈结果给上层。这样的架构分离了控制平面与数据转发平面,实现了集中管理和控制,ONF对分离之后两层之间通信的南向接口进行了定义,规定利用OpenFlow等技术通信[11]。

图1 SDN典型框架

1.2 SDN实验室的意义

在ONF发布白皮书之后,基于OpenFlow的SDN完成了从试验平台到业务网络部署的跨越。这个架构已在谷歌、微软等数据中心内部骨干网上发挥了前所未有的作用[12],国内外主流网络厂商推出了多种OpenFlow交换机[13]。由于SDN的必然趋势与强大优势,运营商已经开始在某些区域部署SDN网络,很多学校、医院、企业的内部网络也开始尝试改造成SDN架构,传统网络架构已经开始渐渐向SDN架构转变。2012年著名的Google公司发布了大型的商用SDN案例B4[14],B4充分利用了SDN的优点,取得了很大的成功。2014年北京电信与华为技术有限公司合作完成全球首个运营商SDN商用部署,中国移动携手华为推出全球首个SPTN SDN商用部署,四川联通与华为一起完成全球首个SDN IPRAN商用部署。金融方面,中国工商银行于2017年联合华为实现了工行SDN云网架构,并成功运行了七大互联网金融业务。通信设备商方面,华为、华三、锐捷、盛科等公司都发布了一系列的关于SDN的软硬件产品。高校和科研机构方面,清华大学、北京邮电大学等一批高校的有关团队在近些年也在专注于SDN研究。早在2011年,清华大学与盛科就合作一起部署了一个校内SDN网络,北京邮电大学泛网无线通信实验室也在部署一个校园SDN网络用于研究和测试。

未来的各类计算机应用都将运行在SDN网络架构上,计算机及网络相关专业的学生在毕业后从事相关工作势必会接触SDN相关内容。因此,SDN相关的技术的教学是培养网络专业人才的必修课,也给网络技术相关的课程理论与实验教学的改革指出了新的研究方向。目前大部分高校基本没有支持SDN的计算机网络实验室,无法进行相关教学与实验,学生毕业之后对SDN相关内容一无所知,仅仅只能从事传统网络的相关工作,从而失去了网络行业的竞争力。因此,在传统网络的基础上,建设支持SDN的计算机网络实验室是高校计算机及网络相关专业教学上的必然趋势。同时,在SDN网络教学中要注重理论和实践相结合,培养具有扎实SDN理论基础,较强SDN技术动手实践能力的专业网络人才,为今后从事SDN架构开发与研究打下坚实基础。

2 Open vSwitch

2.1 Open vSwitch介绍

Open vSwitch是一款遵循Apache 2.0许可证的开源多层软件交换机,它的目标是实现一个能同时支持多种标准的管理接口和协议的高质量软件交换机平台,并且可通过开放编程进行功能的扩展和控制。Open vSwitch作为一款软件交换机,它的主要功能特别适用于虚拟化平台环境。除了向虚拟网络层公开标准控制和可见性接口外,它还被设计用于支持跨多个物理服务器的分布。Open vSwitch支持多种基于Linux的虚拟化技术,包括Xen/Xenserver、KVM和VirtualBox。在某一物理机器的虚拟化环境中,vSwitch主要有两个作用:传递虚拟机之间的流量、实现虚拟机和外部网络的通信[15]。Open vSwitch的大部分代码都是通过C语言的独立平台编写的,并且很容易移植到其他环境中。它的当前版本支持以下特性:

(1) 标准的802.1Q的Vlan模型,包括access口和trunk口。

(2) 在上联交换机网卡上可选择是否启用LACP协议。

(3) 用NetFlow、sFlow和镜像来提升可见度。

(4) QoS配置与流量管控。

(5) Geneve,GRE,VXLAN,STT和LISP隧道。

(6) 802.1ag连接容错管理。

(7) OpenFlow 1.0及其更多的扩展。

(8) 基于C与Python的交互型可配置数据库。

(9) 使用Linux内核模块的高性能转发。

在没有内核模块的帮助下,Open vSwitch也可以在用户空间中运行。这个用户空间实现比基于内核的交换机更容易移植。Open vSwitch的组成结构如图2所示。除了Open vSwitch以外其他的虚拟交换机,包括VMware vNetwork distributed switch以及思科的Cisco Nexus 1000V等,它们提供的是一个集中式的控制方式。而Open vSwitch则是一个独立的vSwitch,它运行在每个实现虚拟化的物理机器上,并提供远程管理,提供了在虚拟化环境中远程管理的协议[16]。Open vSwitch还可以利用OpenFlow的流表远程管理交换机的行为。

图2 Open vSwitch的组成结构

2.2 Open vSwitch与SDN

OpenFlow是目前实现SDN的最成熟的技术手段,而普通的OpenFlow交换机目前仅有较少厂家生产,且价格高昂,使用硬件进行学生实验也有着数量不足、灵活性差等缺点。而Open vSwitch作为一款完全支持OpenFlow的虚拟软件交换机,可以和SDN中OpenFlow控制器对接,不仅可以完全满足SDN的相关实验,还可以使学生在虚拟化技术的相关方面得到锻炼。

OpenFlow是用于管理交换机流表的协议,ovs-ofctl则是Open vSwitch提供的命令行工具。在没有配置OpenFlow控制器的模式下,用户可以使用ovs-ofctl命令通过OpenFlow协议去连接Open vSwitch,创建、修改或删除Open vSwitch中的流表项,并对Open vSwitch的运行状况进行动态监控。当数据包进入Open vSwitch后,会将数据包和流表中的流表项进行匹配,如果发现了匹配的流表项,则执行该流表项中的指令集。相反,如果数据包在流表中没有发现任何匹配,Open vSwitch会通过控制通道把数据包发到OpenFlow控制器中。因此,在Open vSwitch支持OpenFlow的前提下,它完全可以作为OpenFlow交换机,并且可以与大部分OpenFlow控制器对接,从而实现SDN[17]。

3 SDN的计算机网络实验室设计

支持SDN实验的计算机网络实验室是开展SDN教学的前提。因此,需对传统的网络实验室进行改进,增加支持SDN的网络设备,从而为学生提供SDN网络实验。Open vSwitch是较为适合学生进行SDN实验的软件工具。

3.1 计算机网络实验室改进

传统网络实验室的网络结构分为两部分:学生实验用PC机与网络设备,网络设备主要为路由器和交换机。将学生PC机分组,每组配置对应若干不同型号的交换机与路由器。学生进行实验时,根据实验的网络拓扑,在机柜的配线架上进行PC机、交换机与路由器之间物理配线连接。连接结束后,根据实验要求,对交换机和路由器进行命令配置。

支持SDN的网络实验室是将网络设备软件化、可编程化。因此在实验室中需配备若干服务器,在服务器上安装实现网络交换路由功能的软件,使服务器成为一台软件化的网络设备。本文采用的是Open vSwitch软件,将该软件安装至实验室的服务器中,使服务器成为一台支持OpenFlow的虚拟交换机。同时在服务器上安装POX软件作为SDN控制器,并与OpenFlow交换机对接。学生实验时,将按照实验要求,在软件中对网络进行配置,从而使学生在实验室中真实感受到虚拟软件交换机与原硬件交换机、SDN网络设备与普通网络设备的区别,从而掌握SDN技术。

本文实验室原有实验设备机柜中是传统交换机和路由器,为了支持SDN,在每组机柜上增加服务器,用于安装Open vSwitch作为OpenFlow交换机,同时在实验室核心交换机上接入服务器安装POX作为SDN控制器。本文实验室拓扑如图3所示,图中虚线部分为SDN相关设备。

图3 基于SDN的实验室改进拓扑图

3.2 Open vSwitch配置

本文安装Open vSwitch采用的操作系统为Linux,在实验室的所有服务器中安装Ubuntu 12.04,在该系统上直接在线安装Open vSwitch即可,本文的实验室安装的是Open vSwitch 2.3.0版本。启动Open vSwitch后创建的网桥就相当于一台交换机,然后根据实验要求对网桥进行配置,如在网桥上增加端口,一个端口就是一个物理网卡,将端口加入到网桥之后,就相当于给这台交换机增加端口,这个端口与普通交换机上端口的工作类型相似。同时,学生实验中也可以输入帮助命令来查看Open vSwitch支持的所有相关操作。其中包括了Open vSwitch对网桥和网络接口的相关操作命令,同时还有与SDN控制器相关的命令,如连接控制器等。

3.3 SDN控制器对接Open vSwitch

本文采用的SDN控制器POX是一款使用Python开发的基于OpenFlow协议的SDN控制器,其优点是简洁、扩展性好,从而得到了广泛的应用。它和Open vSwitch之间可以通过OpenFlow协议进行交互,Open vSwitch作为OpenFlow交换机与POX控制器对接。

在一台服务器上直接下载安装POX并启动。在Open vSwitch上创建好一个网桥之后,输入连接控制器命令,再输入显示网桥状态的命令,若与控制器连接成功,则会显示is_connected=true,如图4所示。同时控制器端也会显示已连接的OpenFlow交换的MAC地址。接下去就可以进行控制器对OpenFlow交换机下发流表等相关SDN的实验。

图4 Open vSwitch与POX对接成功图

4 SDN的计算机网络实验实例

SDN的特性主要体现在两方面:(1) 将网络软件化;(2) 实现网络中控制面与转发面分离。本文先以计算机网络实验课程中较为重要的VLAN配置实验为例,主张教学时让学生先进行普通交换机VLAN配置功能的实验,再使用Open vSwitch进行实现同样功能的实验。让学生进行了实验过程的对比,从而使学生掌握虚拟网络技术的基本原理和实现方法,同时感受传统网络实验和SDN网络实验在实现相同功能下的区别,更深入了解网络虚拟化的本质与特点。再以控制器下发流表至Open vSwitch的实验为例,使学生掌握SDN网络中转发与控制分离的特点,感受SDN对网络控制层面的区别,同时理解SDN实现方式中的OpenFlow协议。本节将介绍在本实验室进行上述两个实验的过程,从而证明本文所提出实验室改进方案可以实现支持SDN特性的实验。

4.1 SDN中虚拟交换机的对比性实验实例

学生进行网络实验时,需先明确实验拓扑,普通交换机VLAN配置实验拓扑如图5所示,图中网络设备为普通二层交换机。Open vSwitch 的VLAN配置实验拓扑如图6所示,图中的网络设备为安装了Open vSwitch的服务器。两个实验本质上仅仅只是将普通二层交换机换成一台安装Open vSwitch的服务器,设置了唯一变量,从而突出区别,增强对比性。

图5 普通交换机VLAN配置实验拓扑图

图6 Open vSwitch的VLAN配置实验拓扑图

(1) 普通交换机配置物理机VLAN实验 学生在进行传统网络实验的VLAN配置实验时,是在普通交换机的端口上进行划分VLAN的配置命令。按照图5中的实验要求,先对实验PC机配置IP地址,再将交换机上与PC1连接的端口配置为VLAN 2,与PC2连接的端口配置为VLAN 2,与PC3连接的端口配置为VLAN 3。配置完成后,同一个VLAN内的PC之间可以互相通信,即PC1与PC2之间可以互相通信。不同VLAN之间无法通信,即PC1和PC2均无法与PC3通信,从而实现了网络中VLAN的功能。

(2) Open vSwitch配置物理机VLAN实验 学生在完成普通交换机配置VLAN实验后,继续使用Open vSwitch来对物理机配置VLAN实验。实验时PC的IP不变,再将服务器当作一台交换机,将PC1与服务器的第二块网卡(eth1)连接,将PC2与服务器的第三块网卡(eth2)连接,将PC3与服务器的第三块网卡(eth3)连接。

进入服务器启动Open vSwitch之后,先建立一个名为br0的网桥,再将三张实验所用的网卡都加入这个网桥中,查看网桥的具体信息,发现br0中已存在了上述3个端口。此时,三台PC机已经相当于通过Open vSwitch中的br0这个虚拟交换机连接,三台PC机之间可以互相ping通。

与传统实验中配置VLAN相同,给每一个端口配置实验要求的对应的VLAN,其实就是给每个端口打上标签,按照Open vSwitch的命令为eth1配置VLAN2,为eth2配置VLAN2,为eth3配置VLAN3,如图7所示。此时,实验结果验证与传统实验一致,因此使用Open vSwitch也实现了VLAN隔离的功能。

图7 Open vSwitch中端口划分VLAN

由于Open vSwitch实际是一个安装在Ubuntu系统服务器下的一个软件,是用软件实现的虚拟交换机。因此在该服务器上还可以利用虚拟机软件虚拟多个主机,用虚拟主机进行上述实验。这些虚拟机也可以接入Open vSwitch,将虚拟机的虚拟网卡接入Open vSwitch的网桥就可以并通过Open vSwitch实现所需的网络功能,包括上述实验的对虚拟机的VLAN实现配置。

根据上述实验结果,Open vSwitch作为一款软件化的虚拟交换机,既可以实现在网络拓扑中对物理主机的网络配置,也可以实现对虚拟主机的网络配置。同时,对虚拟主机和物理主机相连的混合网络也可以进行同时配置,而一般传统网络交换机只能与物理主机连接,无法实现对虚拟机网络配置的功能。虽然也有一些其他虚拟化软件本身支持对虚拟机的VLAN划分等其他虚拟机网络配置功能,但是它们只是集成在软件中,仅支持本软件的虚拟机,既不是一个开源软件,也不支持SDN。

4.2 SDN中控制与转发分离实验实例

SDN转发与控制分离的网络实验可根据实验目的设计实验拓扑。本文中提出的SDN实验室设计方案是以POX作为SDN控制器,Open vSwitch作为OpenFlow交换机的实验环境,本节实例的实验拓扑如图8所示。

图8 SDN控制器下发流表实验拓扑图

上述实验拓扑在SDN实验中应用较广,可支持大部分SDN中控制器与OpenFlow交换机之间的实验,也可在本实验室中进行其他自定义的实验拓扑。按照拓扑图在本文的实验室中连接好实验设备后,在Open vSwitch终端输入连接控制器的命令,如图9所示,控制器显示与OpenFlow交换机连接成功,如图10所示。此时OpenFlow交换机会自动生成默认流表,默认流表的动作是将报文上传至控制器,再将两台PC之间进行互相ping的操作,此时OpenFlow交换机中会出现由控制器自动下发的流表。

图9 查看OpenFlow交换机中的流表

图10 POX控制器下发流表

为了使实验中控制器对OpenFlow交换机的控制效果更明显,本节主要举例在没有默认流表的情况下,手动配置流表的实验。将控制器与OpenFlow连接机连接后,暂不连接PC,此时OpenFlow交换机中没有流表,如图9所示。打开控制器终端,输入导入核心模块的命令,并命名为of,再获取OpenFlow交换机对应的Key,如图10所示。接下去开始手工设置流表的操作,图10设置了“从1号端口流入的流量从2号端口流出”的流表。通过输入OpenFlow交换机的Key将该流表下发之后,在OpenFlow交换机上再次输入查看流表的命令,如图9所示,出现了刚才设置的流表,表示实验成功。

5 结 语

本文通过SDN特点与发展趋势,阐述了建设支持SDN的高校计算机网络实验室的重要性,并设计了SDN网络实验室建设方案,包括将Open vSwitch软件作为OpenFlow交换机与POX软件的SDN控制器对接。在进行同一个实验的前提下,对普通交换机和SDN交换机实现方法分别进行了说明,对比了两种方法的不同之处,体现了SDN中软件化虚拟网络的优势。同时,还进行了SDN中控制器对OpenFlow交换机下发流表的实验,体现SDN中控制面与转发面分离,实现网络统一管理的特性,从而让学生在新型SDN实验室中,切实体验SDN网络的特点,深入理解网络趋势。

本文提出的计算机网络实验室设计与实现方案能支持大部分SDN网络实验,除本文举例的实验外,支持多样化自主设计实验,使学生对SDN有更全面的认知,提升对SDN网络的实际操作能力。同时还可使学生在同一个实验室中体会到传统网络与SDN网络的区别,更深入了解SDN的特性。

猜你喜欢

交换机架构服务器
基于FPGA的RNN硬件加速架构
面向未来网络的白盒交换机体系综述
功能架构在电子电气架构开发中的应用和实践
局域网交换机管理IP的规划与配置方案的探讨
构建富有活力和效率的社会治理架构
PowerTCP Server Tool
BlackJumboDog
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
2018年全球服务器市场将保持温和增长