[谭绍锋 王为亮 邱帆]
近年,随着SDN 技术的兴起,基于SDN 的PTN 设备如SPTN[1]设备越来越多被使用。由于SPTN 设备的生产成本和生产周期因素,无论是需要少量SPTN 设备还是需要大量SPTN 设备进行研究与实验,使用SPTN 仿真软件能大幅度降低成本和周期,特别是针对大规模SPTN 设备组网实验,采用网络仿真软件通常是一种比较方便的解决方案。
由于各厂家设备的复杂性和差异性,目前流行的网络仿真软件如NS2[2],OMNET++[3]、SensorSim[4]等软件并不能针对厂家的设备进行仿真,同时也无法实现仿真软件与SPTN 实物设备的融合组网。本文提出了一种既能实现大规模组网仿真又能与实物设备融合进行大规模组网的方案,并且通过基于该方案实现的平台软件进行了实验,实验结果满足要求。本文提出的基于KVM[5]虚拟化技术大规模仿真组网是一种通用化设计方案,需要将设备软件移植到KVM 平台上来,通过开发基于仿真节点管理软件即可实现大规模组网仿真。仿真规模的大小与计算资源的规模和实物设备的模拟能力有关。
虽然近年SDN 技术快速发展,但是基于SDN 的通用设备仿真软件目前暂未发现。由于云计算和虚拟化技术的成熟,基于虚拟化技术的设备仿真成为了一种技术方案。目前KVM 技术已经发展成熟并得到较为广泛的应用。采用设备软件移植到KVM 虚拟机的方式实现单台设备仿真与普通模拟仿真软件相比,更接近实际设备。当然,具体移植方案取决于各设备软件的技术实现细节。本文设备基于SPTN 设备软件进行移植,通过平台软件管控大规模SPTN 虚拟机节点实现与实际设备基本功能一样的SPTN组网。
针对SPTN 大规模仿真组网,仿真平台应该具备以下基本功能:
(1)具备较大规模组网仿真功能。通过增加计算资源来扩大仿真网络规模。SPTN 网络仿真软件的协议和基本功能与实际设备保持一致。
(2)具备实物组网与仿真组网相互融合。SPTN 仿真节点能与PTN 实物设备融合组网,保持业务和协议相通。同时SDN 控制器能统一管控仿真节点与SPTN 实物设备节点。既能快速开通仿真节点的SPTN 业务,也能快速开通SPTN 实物设备的业务。做到实物组网和仿真组网相融合。
(3)具备良好的用户交互功能。仿真平台需要具备良好的用户交互能力,能够快速搭建用户需要的网络拓扑。在较大网络规模节点的基础上快速实现SPTN 业务的发放与回收,同时具备良好的持久化能力。
SPTN 仿真平台由仿真宿主机、仿真控制平台、SPTN网管与SDN 控制器、PTN 设备构成。用户通过Web 浏览器登录仿真控制平台,通过仿真控制平台管理仿真宿主机,仿真控制平台提供可视化界面让用户按照需求快速创建仿真网络拓扑。用户也可以根据需要加入PTN 设备进行融合组网,通过SPTN 网管统一管控各节点。仿真平台架构如图1 所示。
图1 大规模组网仿真平台架构图
在SPTN 设备软件的基础上将PTN 协议栈功能迁移到x86 平台,交换芯片功能采用x86 芯片来模拟(数据交换处理能力变弱)。PTN x86 镜像使用Qemu-kvm[6]虚拟机加载,迁移项如表1 所示。PTN 虚拟机端口与PC 端口采用桥接模式进行连接,PTN 虚拟设备链路采用网桥和VXLAN 技术实现。这样通过kvm 虚拟机承载的方式实现了PTN 仿真功能,由于PTN 协议栈(包括L2、L3、MPLS 协议等)与实际设备一致,因此仿真设备完全模拟实体设备的通信协议,所以具备实物和仿真融合组网能力。由于Qemu-KVM 实现了对计算资源的虚拟化,因此可以通过增加计算资源来扩大节点规模。理论上计算资源越多,KVM 节点规模越大。KVM 虚拟机部署于宿主机上,因此仿真宿主机一般采用工作站或者服务器来充当。当一台宿主机的计算资源耗尽时,需要增加宿主机的数量来进一步扩大网络规模。
表1 PTN 仿真设备与SPTN 设备迁移对比
由于PTN 仿真虚拟机与SPTN 设备的协议栈一致,因此二者可以进行联合组网,SPTN 设备使用电口与宿主机网卡进行连接,同时将PTN 仿真节点的端口桥接到宿主机网卡,SPTN 设备电口与PTN 仿真虚拟端口通过DCN 协议建立三层链路,形成虚拟设备与实物设备的交互通道,从而实现实物与仿真融合组网,连接方式如图2所示。
图2 SPTN 设备与PTN 仿真连接图
当使用纯仿真网络时,SPTN 的SDN 控制器需要单独部署来管控SPTN 仿真网络,此时需要接入SPTN 网管来管理整个网络,包括后续接入的SPTN 设备,其中SDN控制器与SPTN(包括SPTN 仿真节点和SPTN 设备)交互的南向接口协议使用主流的NetConf 协议,如图3 所示。用户可以通过SPTN 网管快速发放和回收SPTN 业务,SDN 控制器与网管交互的北向接口协议使用主流的RESTFul 协议。
图3 SDN 控制器与SPTN 交互协议
仿真控制平台是SPTN 仿真组网的控制核心。主要功能模块包括Web 服务层、核心调度模块、仿真宿主机分布式节点管理模块、网络规划模块、KVM 虚拟机管理模块、数据持久化层。功能结构如图4 所示。
图4 仿真控制平台软件功能结构图
(1)Web 服务层。提供Web 人际交互界面。用户可以通过可视化界面规划拓扑、管理仿真宿主机和KVM 虚拟机。
(2)核心调度模块。是仿真控制平台的核心服务模块。主要处理Web 服务层的业务请求,调度下层业务模块处理业务逻辑。
(3)仿真宿主机分布式节点管理。该模块集中管理仿真宿主机资源,包括KVM 虚拟机资源分配和调度,各宿主机的业务状态等。
(4)网络规划模块。该模块根据用户的需求创建网络拓扑。网络规划完成后,核心调度模块根据拓扑需求分配宿主机资源来创建KVM 虚拟机节点和链路,从而完成仿真组网。
(5)KVM 虚拟机管理模块。管理虚拟机的生命周期,包括虚拟机的创建、删除、查找等功能。
(6)数据持久化层。持久化拓扑数据、KVM 虚拟机数据和用户数据等信息。平台掉电重启后能恢复正常。
经测试,每个运行仿真镜像的qemu-kvm 虚拟机需要分配至少1vcpu,2G 内存。基于现有硬件条件,使用2 台工作站搭建50 个仿真节点,实验网络拓扑如图5 所示。使用SPTN 网管对仿真设备发放业务,业务状态正常,LSP 路径和LSP 状态如图6 和图7 所示。
图5 全仿真实验拓扑
图6 网管呈现的LSP 路径
图7 仿真设备中LSP 状态
在全仿真实验的基础上,通过两台工作站网卡接入50 台SPTN 实物设备,组成100 个节点的网络,实验网络拓扑如图8 所示,上面50 台设备是仿真设备,下面50台设备是实物设备。使用SPTN 网管对仿真设备发放。当LSP 路径通过仿真网络时业务状态正常。LSP 路径和LSP状态如图9 和图10 所示。
图8 实物与仿真实验拓扑
图9 网管呈现的LSP 路径和状态
图10 仿真设备中LSP 状态
本文提出了一种大规模组网仿真平台设计方案并进行了实现,通过移植SPTN 设备软件到KVM 虚拟机的方式来创建仿真设备节点,使用仿真控制平台软件来搭建和管理仿真网络拓扑,实现了大规模仿真组网和实物与仿真融合组网。为设备开发、网络学习、网络研究以及网络方案验证提供了方便,同时也可以节约用户成本。下一步我们将研究SPTN 网络与云平台网络虚拟化技术相融合,使SPTN 大规模组网仿真平台在云平台底层解藕,以便部署在私有云或公有云平台上方便提供给多用户并发使用或协同学习研究。