专栏首页时间之外沉浮事模拟仿真|思科建模实验室Cisco Modeling Labs 浅析

模拟仿真|思科建模实验室Cisco Modeling Labs 浅析

一、前言


在属于思科的黄金时代,全球的路由器、交换机等网络设备市场几乎都由思科公司控制。《浪潮之巅》一书中,曾经这样形容思科在内的传统科技公司:“近一百多年来,总有一些公司很幸运地、有意识或者无意识地站在技术革命的浪尖之上。即使不做任何事,也可以随着波浪顺顺当当地向前漂个十年甚至更长的时间。它们代表着科技的浪潮,都极度辉煌过,直到下一波浪潮的来临。”随着云的兴起,思科毫无疑问的跌落了,但是在思科的黄金十年中,很多技术人视思科CCIE的认证为职业生涯上的皇冠、荣耀与价值激励。

作为模拟真机实训的思科模拟器,陪伴了大部分网络人员的学习生涯。针对思科设备的模拟器有许多种,有民间高人基于思科设备特性功能开发的纯软件模拟仿真,比如Dynamips等。也有思科官方基于自身设备操作系统IOS的虚拟化编译版本(网元)和纯软件模拟仿真版本,比如Cisco Virtual Internet Routing Lab(VIRL)和Cisco Packet Tracer。最早的网络仿真模拟器是思科公司推出的BosonNetSim Network Simulator(Boson),Boson是一个模拟Cisco系统网络硬件和软件的应用程序,旨在帮助用户学习Cisco IOS命令结构,用户更多的使用该软件程序来进行CCNP、CCNA的实验。随后思科才基于Boson推出了Cisco Packet Tracer,后续又基于虚拟化技术推出IOS虚拟机版本的虚拟网络路由实验(VIRL)。Boson和PacketTracer属于纯软件模拟仿真,仅支持有限的功能,比如模拟Cisco IOS的命令;针对设备操作系统IOS的虚拟化编译版本(网元)则支持到真实设备的90%的功能特性,因此IOS虚拟化版本(网元)更受广大网络爱好者的喜爱。

在相当长的一段时间内,思科并未开放IOS的网元版本,其仅仅在Cisco Education内部通过一款名为虚拟网络路由实验(VIRL)的产品来使用(通过内部缴纳年费的方式使用)。因此在大部分时间内,广大网络爱好者使用的都是从思科官方泄露的IOS网元版本。后来才逐渐开放了虚拟网络路由实验(VIRL)的个人收费版本,主要用于思科认证培训和产品功能测试。但是个人版存在的问题是限制实验室中可以使用的对象数量,并且只用于模拟Cisco操作系统。

因为闭源导致的使用成本,那些开发了Dynamips等模拟器的大神们(Christophe Fillot、Jeremy Grossmann和Julien Duponchelle等)集合起来,开发了一个GNS3的开源产品。GNS3是一款运行在Windows、OS X和Linux上的跨平台图形网络模拟器。GNS3通过对运行在真实网络操作系统(如Cisco IOS)和模拟操作系统(如NX-OSv)上的模拟硬件设备的组合,以及对跨多台计算机资源的分享能力,为网络组网设计提供了最大的灵活性。因此迅速在网络领域流行起来,成为网络模拟仿真学习的标杆性产品。

随着网络规模越来越大,华为、新华三以及微软等均先后开发系列网络模拟仿真产品,一是用于自家产品的实训仿真培训,二是通过模拟器对网络设计和环境进行仿真测试和验证。此外,网络规模的仿真测试与培训也扩展到客户的企业网络,逐渐产生网络仿真测试与培训需求,因此包括微软{CrystalNet(ONE)网络仿真技术实现解读}、思科等均在逐步开发类似企业级网络模拟仿真产品,以满足客户在这一方面的仿真测试验证与培训应用。思科建模实验室–企业版(CML- Enterprise)也应运而生。

二、思科建模实验室(CML)


2.1.虚拟网络路由实验(VIRL)

思科建模实验室(CML)是基于虚拟网络路由实验(VIRL)新一代更新和高度可扩展的变体。虚拟网络路由实验(VIRL)是面向教育机构和个人的思科专有虚拟网络仿真器。思科建模实验室(CML)则是专为中型和大型企业设计和仿真企业网络而构建的。虚拟网络路由实验(VIRL)和GNS3一样,最开始在客户端/服务器模型中运行。在思科建模实验室(CML)中基于Web UI的B/S架构,而GNS3也进行了类似的改造。虚拟网络路由实验(VIRL)界面如下图所示:

虚拟网络路由实验(VIRL)作为付费网络仿真器有一些好处,包括:

(1)软件映像访问权限。安装虚拟网络路由实验(VIRL)服务器后,可以通过合法许可访问各种思科软件映像,包括IOSv(L3和L2),IOS-XRv,NX-OSv,CSR1000v和ASAv。可以从虚拟网络路由实验(VIRL)服务器中提取这些软件映像,并将其安装在其他网络仿真器中,例如GNS3。因此,许多虚拟网络路由实验(VIRL)用户实际上并不使用虚拟网络路由实验(VIRL)服务器来测试网络拓扑,因为他们倾向于使用其他网络仿真器,比如GNS3。与之相反的情况是,这些用户将虚拟网络路由实验(VIRL)订阅视为获取思科最新软件映像的合法方法。

(2)网络拓扑可移植性。如果要共享网络拓扑或在另一台虚拟网络路由实验(VIRL)服务器上执行该网络拓扑,虚拟网络路由实验(VIRL)导出网络拓扑很容易。尤其是网络拓扑全部都是思科镜像的时候,更是非常的方便。

(3)高级自动化能力。虚拟网络路由实验(VIRL)包含一个称为AutoNetKit的功能,该功能允许在整个网络拓扑中自动填充节点上功能的基本配置。AutoNetkit可以在节点启动时自动为它们分配IP地址,它甚至可以为用户设置一些基本的路由协议。启动配置后,即可为用户提供一个完全融合的网络。用户可以直接使用这些功能,并专注于要测试的内容。对于想要设置一次性临时环境来查找命令并测试某些功能的用户来说,这是一项很酷的功能。如果用户需要快速测试特定技术的行为或快速地重建现有网络,这种应用场景一般在快速复现企业网络架构拓扑的情况下非常有用。

除了优点,虚拟网络路由实验(VIRL)由于架构设计的原因,也有许多缺点,比如不支持串口、不支持拓扑热添加节点和链接、仿真资源消耗太大、仿真规模有限等。此外,虚拟网络路由实验(VIRL)除了支持KVM、VMware等虚拟化平台,还支持OpenStack。

典型的虚拟网络路由实验(VIRL)的OpenStack网络拓扑场景编排流程如下图所示:

在底层,虚拟网络路由实验(VIRL)是基于OpenStack的平台,可在内置虚拟机管理程序上运行IOSv,IOSvL2,IOS XRv,NX-OSv,CSR1000v和ASAv软件映像。虚拟网络路由实验(VIRL)使用VM Maestro前端提供了可移植、可扩展的网络设计和仿真环境。虚拟网络路由实验(VIRL)还具有与第三方供应商虚拟机(如Juniper,Palo Alto Networks,Fortinet,F5 BigIP,Extreme Networks,Arista,Alcatel,Citrix等)集成的强大功能。

OpenStack对于底层的重量级也导致虚拟网络路由实验(VIRL)的编排支持过重,维护和使用升级变得十分困难。因此思科在基于用户需求上,寻求构建虚拟网络路由实验(VIRL)2.0版本。

2.2.思科建模实验室2.0(CML 2.0)

思科建模实验室(CML)2.0使用KVM、VMware等作为管理程序来运行相同的网络操作系统OS虚拟机(VM)映像,这一点和之前的虚拟网络路由实验(VIRL)类似,实际上GNS3也是类似的做法和思路。区别在于,思科建模实验室(CML)2.0将1.0版本的GUI从C/S架构替换为基于HTML5浏览器的用户界面(UI)的B/S架构。思科建模实验室(CML)2.0也重新设计了网络编排和运行模拟仿真软件的模式,比如采用KSM技术减少内存的资源占用等优化措施。此外,针对网络拓扑设计支持了热连接修改和数据持久性支持,热连接修改即在不停机状态下动态增删改网络节点和网络链路;数据持久性支持即在开机关机以及迁移等情况下不会丢失网络节点的配置信息和状态内容。最后,思科建模实验室(CML)2.0构建了一个基于REST的Web API服务,用户可以使用这些RESTfull API以编程方式创建实验室和驱动整个仿真生命周期。

2.3.CML2.0典型技术架构

思科建模实验室(CML)2.0典型技术架构如下图所示:

思科建模实验室(CML)2.0从技术架构上,包括以下部分:

Web UI:提供基于HTML5的Web UI交互界面,为用户提供可视化的实验拓扑和仿真的全生命周期图形操作。其中包括网络拓扑创建、编辑和删除等操作的交互和显示。

CLI:提供一个基于命令行模式的执行程序,通过提供Shell操作命令来实现实验拓扑和仿真的全生命周期交互。

API:一组基于REST的Web服务API,可以通过API进行自动化实验拓扑和仿真的全生命周期交互。

此外在该表示层中,思科建模实验室(CML)2.0基于网络拓扑构建拓扑文件。将网络拓扑作为标准的文件格式进行规范化存储和保存是保障实现该网络拓扑可移植和灵活性的关键。

Controller:控制器包含Core服务和Driver。Core服务负责解析网络拓生成的拓扑文件,并学习有关拓扑中每个节点和每个链路的信息。同时负责管理仿真会话及负责联调各Driver实现对应功能。比如调用KVM的Driver实现虚拟机模板生成虚拟机以及网络设备环境。此后,Core服务调用创建进度接口及状态向上层传送对应进度参数及状态信息。Driver可实现对KVM、VMware以及VirtualBox的虚拟化仿真操作。

2.4.CML2.0 Web UI交互界面

思科建模实验室(CML)2.0 Web UI网络拓扑交互界面预览:

网络拓扑预览:

网络拓扑节点连线:

网络节点交互界面控制台:

三、总结


本文梳理总结思科的网络仿真模拟器。在国外,网络仿真技术的相关产品最初是由Cisco公司推出的Boson,之后发展到PacketTracer、VIRL和CML2.0。

在国内,华为和新华三也都开发了自己的网络仿真技术平台,分别是VBR 与 Comware。而为了用户学习使用自己的网络操作系统并熟悉设备的命令,华为和新华三借鉴GNS3的工作,使用前后端的理念以及虚拟化技术,开发出了华为和新华三的网络设备模拟软件,分别是华为的eNSP 与华三的HCL,二者系统结构简单,都是网络操作系统 + Linux系统 + Virtualbox虚拟机的结构。

从网络靶场的角度看,网络靶场使用的网络仿真技术很大程度上依赖以上述网络仿真技术及产品的经验及网元。为了更加真实的模拟仿真现实网络环境,类似思科、华为和新华三的网元设备也是网络靶场需要兼容考虑的重要一环,因此不可避免的需要了解和实现上述网络仿真模拟器的网元、结构对接或集成。在网络靶场的构建上,针对网元的编排和虚拟机及容器的编排类似,区别在于网元会增加网络配置及全局结构拓扑的自动化内容。

本文分享自微信公众号 - 时间之外沉浮事(tasnrh),作者:陶菘

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 美国家网络空间靶场(NCR)2

    上述小节简要描述了美国《国家网络空间靶场》(NCR)【以下简称NCR】的一些背景信息,了解到了NCR是基于美国《国家网络安全综合倡议》(CNCI)下的一个实施部...

    时间之外沉浮事
  • CrystalNet(ONE)网络仿真技术实现解读

    论文《CrystalNet: Faithfully Emulating LargeProduction Networks》【中文翻译版 CrystalNet:超...

    时间之外沉浮事
  • 靶场发展态势④美国家网络空间靶场(NCR)1

    美《国家网络空间靶场》(NCR)和美国防部建设的JIOR以及JCOR等纯军事靶场不同,美《国家网络空间靶场》(NCR)是DARPA为美国《国家网络安全综合倡议》...

    时间之外沉浮事
  • 游戏基础课程-游戏开发平台

    每部循环在不停的执行游戏渲染,我们手机CPU处于高频率的状态,耗电就比较多 以渲染为主开发的游戏,帧率如果小,我们会觉得卡

    雷潮
  • TAF 必修课(五):Client 端调用

    本节对 Taf-Client 如何发起远程调用进行解析,包括初始化过程、路由查询、以及目前支持的同步、异步和 Future 调用方式。

    serena
  • tomcat启动分析(5)Lifecycle、设计模式

    StandardServer直接继承了抽象父类LifecycleMBeanBase,从而间接继承了LifecycleBase,我们在LifecycleBase中...

    平凡的学生族
  • 30秒了解尾递归和尾递归优化

    之前提到过尾调用,尾调用就是函数的最后一步调用另外一个函数。那么递归就是调用自身,尾递归就是再函数的最后一步调用自身。?

    JS菌
  • 你知道自己的代码在线上有多少问题吗?

    笔者负责的是京喜的前端某业务,长期受到大量异常的困扰,又常常找不到原因。有时异常一下暴涨,又降了回去,定位不到问题,深受其扰。经过长时间的沉淀,分析总结出了一套...

    WecTeam
  • 黑石服务器安全组配置案例

    用户在一台黑石服务器(10.11.7.4)上部署区块链业务,由于业务需求本机需要访问自身业务,需要连接 10.11.7.4 的 8053 端口通,

    romywang
  • js 将json字符串转换为json对象的方法解析

    将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符...

    小柒2012

扫码关注云+社区

领取腾讯云代金券