ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CML网络仿真入门-4:Cisco Modeling Labs 节点与镜像定义指南

CML网络仿真入门-4:Cisco Modeling Labs 节点与镜像定义指南 引言IntroductionCisco Modeling Labs 平台内置了一组节点定义node definitions每个节点定义都对应一个镜像定义image definition可让你立即启动建模实验。若要使实验中的设备版本与真实网络中使用的版本一致有时需要上传额外的虚拟机VM镜像、创建新的镜像定义并将其关联到现有的节点定义从而确保实验中的设备版本与真实网络完全匹配。在更高级的场景中你可能需要创建全新的节点例如默认未捆绑的第三方 VM 镜像如 Windows VM为此必须先创建新的节点定义再创建对应的镜像定义最后将两者关联。补充资源如需参考平台未包含的镜像和 YAML 文件等额外资源可查阅 CiscoDevNet/cml-community (https://github.com/CiscoDevNet/cml-community)项目。 本课程将教授如何导入和管理镜像与节点定义掌握该技能后你将能够在实验中模拟各种 Cisco 及其他网络设备。 节点定义Node Definitions在 Cisco Modeling Labs 中节点定义代表一种虚拟设备类型实验中的每个节点都有一个关联的节点定义用于描述该节点及其属性例如可用接口数量、接口名称以及启动 VM 所需的其他关键参数。理解节点定义代表的是一个虚拟设备系列/类型而非某个特定的 VM 镜像这一点至关重要。Introduction - Cisco Modeling Labs v2.10 - Cisco DevNet 添加新节点的流程向 Cisco Modeling Labs 添加新节点时必须按以下顺序操作首先创建节点定义然后创建对应的镜像定义。 节点定义的作用节点定义详细列出了使 Cisco Modeling Labs 能够启动与该节点关联的 VM 的所有属性。创建新节点定义有两种方式上传该节点对应的 YAML 文件从头手动创建。若选择从头创建新节点定义你需要熟悉虚拟化技术以及该类型设备的相关细节。注意创建新节点定义时请参考官方开发者文档中的指南为自定义节点定义选择正确的参数值。该指南需结合虚拟设备的安装和配置文档一同使用。cml-community/node-definitions at master · CiscoDevNet/cml-community · GitHub 节点与镜像定义关系示意图[VM镜像] [VM镜像] [VM镜像] [VM镜像] ↕ ↕ ↕ ↕ [镜像定义] [镜像定义] [镜像定义] [镜像定义] ↕ ↕ ↕ ↕ └─────────┬─────────┘ ↕ [节点定义] ↕ ┌───────┴──────────┐ │ 实验中的设备实例 │ └──────────────────┘ - 一个节点定义可以对应多个镜像定义即同一设备类型的不同软件版本 - 每个镜像定义对应一个具体的 VM 镜像文件 - 实验中实际运行的设备实例由节点定义和对应的镜像定义共同生成 --- ### 镜像定义Image Definitions - 在 Cisco Modeling Labs 中**镜像定义**代表 VM 镜像与节点之间的链接关系。 - 例如镜像定义可以将 CSR 1000V 节点关联到特定的 Cisco IOS XE 软件镜像。 - 通常情况下一个节点定义对应一种设备类型但同一节点下可以挂载多个镜像定义对应不同的软件版本。 - 通过这种方式你可以在 Cisco Modeling Labs 实验中为该节点选择使用不同版本的镜像。 **注意** 创建新的镜像定义时需要将其与一个已有的节点定义相关联。你可以为现有节点定义添加新的软件版本而节点定义本身已经存在。 但是如果你想要添加一个完全全新的节点类型则必须先为该设备创建节点定义。 --- ### 导入节点定义Import Node Definitions - 在 Cisco Modeling Labs 中你会找到一个参考平台库其中包含各种 Cisco 网络设备、Linux 服务器镜像、流量生成器、非托管设备等可直接在你的实验中使用。 - 但有时你可能需要使用参考平台中未包含的设备拓扑常见场景包括 - 你需要某个特定设备的不同版本例如生产网络中运行的是 CSR 1000 的旧版本 - 你想要使用完全不同类型的设备 - 实现方式你可以将自己版本的镜像导入 Cisco Modeling Labs并将其与现有的 CSR 1000V 节点定义关联或者为你的设备版本创建一个全新的节点定义。 - 本实验将教授如何使用节点定义。 #### 实验环境说明 - 你使用的是美式英语键盘布局实验初始化后该布局无法更改。 - 如需了解如何更改操作系统键盘布局和屏幕分辨率请查看“设备帮助”。 - 开始初始化实验后你可以离开此页面设备准备就绪后你会收到通知。 --- ### 使用镜像定义Work with Image Definitions - 有时你可能想要在 Cisco Modeling Labs 拓扑中使用参考平台未包含的设备原因可能包括 - 你需要某个特定设备的不同版本 - 你运行的是生产网络中某设备的不同版本例如旧版 CSR 1000 - 你想要使用完全不同类型的设备 - 实现方式你可以将自己版本的镜像导入 Cisco Modeling Labs并将其与现有节点定义关联或者与你导入的节点定义关联。 - 本实验将教授如何使用镜像定义。 #### 实验活动目标 - 在本次活动中你将创建一个新的镜像定义并将其与一个现有的节点定义相关联。 #### 实验环境说明 - 你使用的是美式英语键盘布局实验初始化后该布局无法更改。 - 如需了解如何更改操作系统键盘布局和屏幕分辨率请查看“设备帮助”。 - 开始初始化实验后你可以离开此页面设备准备就绪后你会收到通知。 --- ### 总结Summary - 除了内置的参考平台外Cisco Modeling Labs 还支持“自带镜像”bring your own image模式支持集成任何基于 KVM 的镜像。 - 虽然 Cisco 和社区可以提供第三方节点和镜像定义的示例 YAML 文件但实际的 QCOW 镜像文件需要从各自的平台所有者处获取适当的许可和权限。 - 用户必须基于自己的许可协议自行提供这些镜像。 - 你可以使用 Cisco Modeling Labs 的 YAML 文件定义这些定义已建立用于支持各种平台包括 Cisco 和其他第三方供应商。 #### 节点定义文件夹 - 位置CiscoDevNet/cml-community 项目的 node-definitions 目录 - 内容包含 Cisco Modeling Labs 节点的 YAML 文件定义例如 CPU、RAM、网络适配器等配置信息。 #### Virl Base Images 文件夹 - 位置CiscoDevNet/cml-community 项目的 virl-base-images 目录 - 内容包含每个新增平台磁盘镜像对应的文件夹每个平台文件夹中都有一个 YAML 文件引用该平台的特定磁盘镜像文件。 **注意** 你需要自行从供应商处下载磁盘镜像文件。cml-community/virl-base-images at master · CiscoDevNet/cml-community · GitHub课堂实验1在CML中你将找到一个参考平台库涵盖各种思科网络设备、Linux服务器镜像、流量生成器、非托管设备可供你在实验室使用依此类推。然而有时你的生产网络中也可能已经拥有其他需要使用的设备比如旧版的CSR或ASA这些设备是你希望在CML中复制的。在这种情况下你可以上传图像版本并将其连接到新的或现有的节点定义上请查看如何添加节点定义的步骤。注意默认情况下会选择“节点定义”选项卡。仔细观察数值。关注“可用图像定义”字段。如果有多个图像定义与此节点定义链接你将在此处看到它们。选择任意将引导你进入图像定义编辑器。注意在删除节点时请确保该节点未被用于任何实验中这样才能成功删除该节点。id: Custom_csr1000v configuration: generator: driver: csr1000v provisioning: volume_name: disk media_type: iso files: - name: iosxe_config.txt content: |- hostname inserthostname-here end editable: true inherited: image: ram: true cpus: true cpu_limit: true data_volume: false boot_disk_size: false node: ram: true cpus: true cpu_limit: true data_volume: false boot_disk_size: false device: interfaces: has_loopback_zero: true default_count: 4 loopback: - Loopback0 physical: - GigabitEthernet1 - GigabitEthernet2 - GigabitEthernet3 - GigabitEthernet4 - GigabitEthernet5 - GigabitEthernet6 - GigabitEthernet7 - GigabitEthernet8 - GigabitEthernet9 - GigabitEthernet10 - GigabitEthernet11 - GigabitEthernet12 - GigabitEthernet13 - GigabitEthernet14 - GigabitEthernet15 - GigabitEthernet16 - GigabitEthernet17 - GigabitEthernet18 - GigabitEthernet19 - GigabitEthernet20 - GigabitEthernet21 - GigabitEthernet22 - GigabitEthernet23 - GigabitEthernet24 - GigabitEthernet25 - GigabitEthernet26 serial_ports: 2 general: description: Custom Cloud Services Router 1000V nature: router read_only: true schema_version: 0.0.1 sim: linux_native: cpus: 1 disk_driver: virtio driver: csr1000v libvirt_domain_driver: kvm nic_driver: vmxnet3 ram: 3072 cpu_limit: 100 boot: timeout: 250 completed: - Would you like to enter the initial configuration dialog? - Press RETURN to get started! - %CVAC-4-CONFIG_DONE: pyats: os: iosxe series: csr1000v config_extract_command: show run ui: description: |- Custom Cloud Services Router 1000V 3 GB DRAM, 1 vCPU [CCO Link](https://www.cisco.com/c/en/us/support/routers/cloud-services-router-1000v-series/tsd-products-support-series-home.html) [Release Notes](https://www.cisco.com/c/en/us/td/docs/routers/csr1000/release/notes/xe-16/csr1000v-rn-16-6-book.html) group: Cisco icon: router label: CSR1000v label_prefix: csr1000v- visible: true注意你可以创建没有关联图像定义的节点定义但不能反过来做。现在你已经成功导入了一个节点定义。要在实验室中使用它你还需要将其与图像定义相关联。课堂实验2在本活动中你将创建一个新的映像定义并将其与现有的节点定义相关联。PS默认情况下CML附带了一组参考映像但并不包括所有Cisco映像。根据客户的许可证授权可能会向客户提供额外的图像。有关其他思科和第三方设备镜像和YAML定义文件请参见GitHub - CiscoDevNet/cml-community: Community Contributed Content and Resources for Cisco Modeling Labs · GitHub你已经成功创建了新的图像定义。如果你返回到步骤6并观察上传图像的列表该列表应该是空的。这是因为你上传的图像现在与你创建的图像定义相关联因此不能进一步使用。如果你想要创建另一个映像定义你需要上传另一个虚拟机映像或删除你的映像定义。在这种情况下以前上传的文件将再次可用。PS另一种方案也可以通过SCP将虚拟机镜像上传到CML服务器上。该服务器专门设置了22号端口用于接收虚拟机镜像的上传。请使用用于访问CML用户界面的登录凭据来进行操作——例如以管理员身份登录而非系统管理员身份。由于SCP连接仅用于上传镜像文件因此需将根目录指定为SCP命令的目标路径。例如以下演示了如何将ASAv 9.12(2).qcow2文件上传到地址为172.16.0.10的CML服务器上scp asav9-12-2.qcow2 admin172.16.0.10:/
返回列表