基础设施 · 2026年5月24日 · VirtLab
Cisco Modeling Labs (CML) 实战:从入门到精通
深入介绍 Cisco Modeling Labs 企业级网络仿真平台的功能、架构和使用技巧,帮助企业网络工程师提升实验效率。
Cisco Modeling Labs(CML)是思科官方发布的企业级网络仿真平台,提供高可靠性、高可扩展性的网络实验环境。本文将全面介绍 CML 的使用方法和最佳实践。
CML 概述
CML 是 Cisco Modeling Labs 的缩写,是思科官方企业级网络建模和仿真解决方案。
版本对比
| 版本 | 节点限制 | 使用场景 | 价格 |
|---|---|---|---|
| CML Personal | 20 节点 | 个人学习 | 免费 |
| CML Lab | 100 节点 | 小型团队 | 订阅制 |
| CML Enterprise | 无限制 | 企业部署 | 定制报价 |
核心优势
- 官方支持:思科官方产品,技术支持有保障
- 真实 IOS-XE:运行真实的思科操作系统
- 图形化界面:直观的拓扑设计和管理
- REST API:支持自动化和集成
架构解析
系统架构
┌─────────────────────────────────────────────────┐
│ CML Web UI (浏览器) │
├─────────────────────────────────────────────────┤
│ CML Controller (控制器) │
│ ┌─────────┐ ┌─────────┐ ┌─────────────────┐ │
│ │ 节点管理 │ │ 拓扑管理 │ │ 实验管理 │ │
│ └─────────┘ └─────────┘ └─────────────────┘ │
├─────────────────────────────────────────────────┤
│ Libvirt/KVM 虚拟化层 │
├─────────────────────────────────────────────────┤
│ 虚拟网络设备(路由器、交换机等) │
└─────────────────────────────────────────────────┘
设备支持
CML 支持丰富的虚拟设备:
| 设备类型 | 示例 | 用途 |
|---|---|---|
| 路由器 | ISR 4000, CSR1000v, IOS-XE | 路由实验 |
| 交换机 | Catalyst 9000, NX-OS | 交换实验 |
| 防火墙 | ASA, FTD | 安全实验 |
| 无线 | AIR-AP, WLC | 无线实验 |
| 其他 | Linux VM, Server | 综合实验 |
安装部署
硬件要求(虚拟机版)
| 资源 | 最小配置 | 推荐配置 |
|---|---|---|
| CPU | 8 核 | 16 核 |
| 内存 | 16 GB | 32 GB |
| 存储 | 200 GB | 500 GB SSD |
| 网络 | 1 Gbps | 10 Gbps |
安装步骤
-
下载 CML 镜像
- 访问 Cisco Software Central
- 下载 CML ISO 或 OVA 文件
-
导入虚拟机
# VMware vSphere 导入 govc import.ova cml-vm-2.4.0.ova # VirtualBox 导入 VBoxManage import cml-vm-2.4.0.ova -
初始化配置
# 访问 Web 界面 https://<cml-ip-address> # 默认登录信息 Username: admin Password: admin
实验室创建
创建第一个实验
-
登录 CML Web 界面
-
创建新实验室
- 点击 ”+ New Lab”
- 输入实验室名称
- 选择拓扑模板(可选)
-
添加设备
- 从左侧面板拖拽设备到画布
- 双击启动设备 Console
典型实验拓扑
┌─────────┐
│ ISP │
└────┬────┘
│
┌────┴────┐
│ GW │
│ Router │
└────┬────┘
│
┌─────────────┴─────────────┐
│ │
┌────┴────┐ ┌────┴────┐
│ Core │ │ Dist │
│ Switch │ │ Switch │
└────┬────┘ └────┬────┘
│ │
┌─────┴─────┐ ┌─────┴─────┐
│ │ │ │
┌──┴──┐ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐
│ Vlan │ │ Vlan │ │ Vlan │ │ Vlan │
│ 10 │ │ 20 │ │ 30 │ │ 40 │
└──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘
设备配置示例
核心路由器配置
! 进入全局配置模式
configure terminal
! 配置主机名
hostname GW-Router
! 配置接口
interface GigabitEthernet0/0/0
description WAN Interface
ip address 203.0.113.1 255.255.255.252
no shutdown
interface GigabitEthernet0/0/1
description LAN Interface
ip address 192.168.0.1 255.255.255.0
no shutdown
! 配置 DHCP
ip dhcp pool LAN-POOL
network 192.168.0.0 255.255.255.0
default-router 192.168.0.1
dns-server 8.8.8.8
! 配置 NAT
ip nat inside source list 1 interface GigabitEthernet0/0/0 overload
access-list 1 permit 192.168.0.0 0.0.0.255
! 保存配置
end
write memory
核心交换机配置
configure terminal
hostname Core-SW
! 创建 VLAN
vlan 10
name DATA
vlan 20
name VOICE
vlan 30
name MGMT
! 配置 VLAN 接口
interface Vlan10
ip address 192.168.10.1 255.255.255.0
no shutdown
! 配置端口
interface GigabitEthernet0/0/1
switchport mode trunk
switchport trunk allowed vlan 10,20,30
! 配置 STP
spanning-tree mode rapid-pvst
end
write memory
高级功能
1. 拓扑即代码
CML 支持 YAML 格式的拓扑定义:
# topology.yaml
topology:
nodes:
router1:
type: iosv
connections:
- router2:0/0
router2:
type: iosv
connections:
- router1:0/0
- router3:0/0
links:
- router1:0/0
- router2:0/0
2. REST API 集成
import requests
import json
# CML API 基本使用
CML_HOST = "https://cml.example.com"
AUTH = ("admin", "password")
def get_labs():
response = requests.get(
f"{CML_HOST}/api/v0/labs",
auth=AUTH,
verify=False
)
return response.json()
def create_node(lab_id, node_type):
payload = {
"label": "New Router",
"node_type": node_type,
"template": "iosv"
}
response = requests.post(
f"{CML_HOST}/api/v0/labs/{lab_id}/nodes",
json=payload,
auth=AUTH
)
return response.json()
3. 场景和故障模拟
# 模拟链路故障
def simulate_link_failure(lab_id, link_id):
payload = {
"action": "down",
"link_id": link_id
}
response = requests.post(
f"{CML_HOST}/api/v0/labs/{lab_id}/links/{link_id}",
json=payload,
auth=AUTH
)
return response.status_code == 200
最佳实践
实验管理
-
使用标签组织实验
标签格式:年份-课程-实验号 示例:2026-CCNP-001 -
配置版本控制
# 导出配置 curl -k -u admin:pass https://cml/api/v0/labs/{id}/export # 备份到 Git git add configs/ git commit -m "Update lab configs" -
定期快照
- 实验前创建快照
- 关键步骤保存快照
性能优化
| 优化项 | 方法 | 效果 |
|---|---|---|
| 内存限制 | 设置合理的 RAM 分配 | 降低资源占用 |
| CPU 亲和性 | 绑定 CPU 核心 | 提高性能 |
| 磁盘 I/O | 使用 SSD 存储 | 加快启动 |
| 网络类型 | 使用 virtio | 提升网络性能 |
适用场景
CML 适用于以下场景:
| 场景 | 说明 |
|---|---|
| CCIE/CCNP 备考 | 模拟真实考试环境 |
| 企业培训 | 团队网络技能培训 |
| 方案验证 | 新方案上线前测试 |
| 原型验证 | 网络架构概念验证 |
| 故障演练 | 模拟网络故障场景 |
总结
Cisco Modeling Labs 是企业级网络仿真的首选平台,虽然需要付费授权,但其稳定性、官方支持和丰富的设备支持使其成为专业网络工程师的利器。配合 EVE-NG 和 GNS3 使用,可以构建完整的网络学习和工作环境。
#CML
#Cisco
#建模
#仿真
#企业网络