Cisco Modeling Labs 2 安装&使用

一、CML2概述

1、CML2介绍

CML2全称Cisco Modeling Labs 2,是思科推出的基于Ubuntu操作系统的网络仿真实验平台。CML2用途广泛,例如通过使用虚拟化的设备模拟思科和非思科网络进行协议学习、特性学习、网络自动化学习、SD-WAN学习、POC测试、网络设计、故障排除等。

CML2可以安装在工作站和服务器上,高级版本的License可以支持集群部署,使得CML2具备更高的可扩展性和可靠性。CML2同时能够支持思科官方提供的IOSv、IOSvL2、NX-OS、IOS XRv、IOS XE 、ASAv等镜像,相比较EVE-NG上的使用的镜像,CML2上的镜像能够更加稳定的运行,一旦出现问题根据License的类型获取对应的技术支持。

CML2高级版本的License支持多用户同时登录并进行实验。

2、CML2优势

CML2不同于其他模拟器的一些优点:

  • 支持热拔插

  • 支持设置链路条件(包括带宽、延迟、抖动、丢包率)和链路模拟(connect或disconnect)

  • 支持自动配置链路描述

  • 更低的硬件资源占用、镜像已用硬件资源展示更加方便

  • 集成抓包工具

  • 支持外部远程连接工具、集成web console和VNC

  • 实验导入和导出、配置的导入和导出、预配置更加方便

  • 清晰的物理拓扑展示

  • 满足实验可用的官方镜像、支持第三方镜像(必须是qcow2格式)

  • 支持更多的实验场景:网络自动化、SD-WAN

在使用EVE-NG的过程中发现了一些bug,包括但不限于vPC BUG、Port-Channel BUG、HSRP & STP BUG。

3、CML2镜像

Cisco Modeling Labs不管是Personal还是Personal Plus所支持的官方镜像和集成第三方镜像都是一样的。CML2还支持其他的第三方镜像,但是第三方镜像格式必须是qcow/qcow2为后缀的文件。思科在cml-community repository提供了其他的官方镜像,例如SD-WAN(vManage,vSmart,vBond and vEdge)、FTDv、FMCv、vWLC、IOS-XE(Catalyst 9800)。

CML2集成的官方镜像如下(refplat-20220211-fcs-iso.zip):

  • IOSv and IOSvL2

  • NX-OSv and NX-OS 9000v

  • IOS XRv and IOS XRv 9000

  • IOS XE (CSR1000v)

  • ASAv

CML2集成的第三方镜像如下(refplat-20220211-fcs-iso.zip):

  • Linux VM with Cisco's Trex packet generator

  • A WAN Emulator for creating WAN-like delay, jitter, and loss effects on links

  • Desktop Alpine Linux image that provides a graphical, Xfce interface

  • Tiny Core Linux server image

  • Full-featured Ubuntu server image using cloud-init YAML configuration

  • CoreOS Linux container-focused OS using cloud-init YAML configuration

二、CML2安装

1、文件下载

使用CML2前需要下载系统和镜像两个文件。

2、许可购买

Cisco Modeling Labs需要提前购买License。仅Enterprise和Higher Education的license支持集群部署。CML2的License如下:

CML2 License购买链接

3、许可导入

CML2的License的形式是Smart License,Smart License则是需要联网激活。

Step 1. 访问Smart License Account。

Step 2. 查看License。

image.png

Step 3. 获取Registration Token并在CML2中注册。

image-1676984703702.pngimage-1676984710908.png

Step 4. 检查System Health Issue-Licensing是否注册成功。

image-1676984718527.pngimage-1676984767290.png

4、镜像导入

思科将部分Image Definations和Node Definations打包到了refplat-20220211-fcs-iso.zip中。通过System Administration Cockpit中的Copy refplat ISO将这些镜像解压到CML2中,以实现image和node自动导入。

image-1676984879224.png

Step 1. 解压refplat-xxx.zip并重命名为refplat_images.iso。

通过SCP命令将refplat_images.iso上传至CML2_server,admin用户默认传输到/var/local/virl2/dropfolder/。

scp your_refplat-file_path admin@your_cml2-server_ip:refplat_images.iso 

image-1677074837906.png

如果你直接上传了refplat-20220211-fcs-iso.zip,那你需要使用sysadmin用户进入该目录并对文件名进行修改,默认sysadmin无法进入该目录,需要将该目录的权限修改成777。

image-1677074881377.png

Step 2. 重启CML2。

image-1677074909525.png

Step 3. Copy refplat ISO

image-1677074935665.pngimage-1677075009780.pngimage-1677074935665.png

1、点击Copy refplat ISO,此时系统将会把Node definitions和Image definitions从refplat ISO中拷贝复制进入磁盘。跳出弹框,在点击Copy前,需要关闭所有正在进行的实验和镜像,否则会造成服务宕机或数据损坏。
2、等待复制完成即可,复制完成后自动删除/var/local/virl2/dropfolder/refplat_images.iso文件。

Step 4. 检查System Health Issue-Image是否导入成功。

image-1677075041842.pngimage-1677075063392.png

三、CML2管理

1、管理地址修改

重新进入网卡配置初始化界面,网卡修改完成后建议重启。

sudo HOME=/var/local/virl2/ /usr/local/bin/virl2-initial-setup.py --ipconfig

2、根目录扩容

默认CML2的内存和磁盘空间并不是特别大,特别是内存,当开启资源消耗量较大的镜像时会报错(Insufficient HW resources),镜像无法启动。磁盘空间太小不利于后期手动添加第三方镜像,所以我们需要对磁盘进行手动扩容。手动扩容的基础操作前提是需要了解LVM、fdisk、resize2fs的使用。

image-1677074362950.png

Step 1. ESXi扩容磁盘。

将CML2的硬盘1容量扩容至200G。

image-1677074393306.png

Step 2. 查看已挂载的磁盘。

lsblk
sudo pvdisplay

image-1677074426030.pngsda共200G,sda2一共用了31.5G。

Step 3. 创建PV。

sudo fdisk /dev/sda 
n     新建分区
Enter 分区号为3
Enter 扇区大小67108864
w     保存
p     查看分区

sudo pvcreate /dev/sda3 创建pv
sudo pvdisplay          查看pv

image-1677074484913.pngimage-1677074501348.pngimage-1677074525060.png

Step 4. 扩容VG。

sudo vgextend vg00 /dev/sda3  扩容名为vg00的卷组
sudo vgdisplay                查看VG

image-1677074541102.png

Step 5. 扩容LV&文件系统,并检查。

sudo lvextend -L 160G /dev/vg00/lv_root  扩容名为lv_root的逻辑卷容量至160G
sudo lvdisplay                           查看LV
sudo resize2fs /dev/mapper/vg00-lv_root  动态扩容lv_root的文件系统
df -h                                    查看文件系统空间利用率

image-1677074578400.png

Step 6. 重启服务器

3、主内存扩容

CML2主内存扩容非常简单,ESXi编辑并扩容内存至64G(需要在虚拟机关机的情况下进行扩容操作)。

image-1677074618523.png

4、集成SecureCRT

CML2集成外部命令行终端,这里以SecureCRT为例。。

Step 1. Breakout Tool下载。

image-1677074689119.png

Step 2. Windows本地调用CMD并执行Breakout Tool.exe。

breakout-windows-amd64.exe ui

image-1677074707890.png

Step 3. 集成breakout tool。

image-1677074735831.png

Step 4. 启动实验并测试SecureCRT访问设备。

image-1677074759715.png

image-1677074775181.png

SecureCRT的安装并不在本教程范围内。

5、CML升级

CML升级步骤简单分为:

  1. 下载pkg升级包(zip包压缩)

  2. 停用CML2 Network Simulation System服务

  3. 软件更新

  4. 重启CML Server

  5. 本地解压zip包

  6. 登录CML Server UI,上传pkg升级包并进行系统升级

下面开始执行CML升级操作:

登录个人账户,选择My Account,可以查询以往的购买记录。

image-1676984703702.png

点击Download进入软件下载中心,选择下载带有(upgrade)字样的pkg升级包。

使用sysadmin账户登录System Administration Cockpit。

选择Service-Target,筛选出virl2.target,双击进入该服务(即CML2 Network Simulation System)。

点击Stop停止运行该服务。状态处于Not Running时表示该服务已经停止。

选择Software Update,并进行软件更新(选择安装所有更新)。该过程可能稍长,这和CML Server到Ubuntu镜像站的网速有关。

完成软件更新后,重启CML Server。CML2 Network Simulation System会在重启后自动运行,方便进入CML server UI进行系统升级。

使用admin账户登录进入CML server UI,选择Tools-System Upgrade,选择Upload Image上传系统镜像。

上传完系统镜像后,选择Tools-System Administration,开启维护模式(System Maintenance)以及下线计算主机(Compute hosts)。

完成所有前置工作后,使用sysadmin账户登录System Administration Cockpit。CML 2 System Maintenance Controls中选择Software Upgrade,点击Upgrade即可。

升级完成后会自动重启,届时重新登录即可。关闭维护模式以及上线计算主机。

Compute Hosts状态建议先改为Online,该状态会检查系统健康状况,等待健康检查显示OK后,改为READY即可。

点击右下角系统可以查阅当前的版本已经升级至最新。

至此,CML的系统升级已经完成。

6、自定义镜像

参阅文章CML2 Node Definitions

参考文档:

CML2 Installation Guide

CML2 User Guide

CML2 Aministration Guide