查看: 66|回复: 0

Containerlab 简介

377

主题

881

回帖

985万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9850517

推广达人宣传达人突出贡献优秀版主论坛元老

QQ

1 Containerlab

1.1

随着容器化网络操作系统数量的不断增加,用户对在自定义、灵活的实验室拓扑中轻松运行这些系统的需求也日益增长。

遗憾的是,像 docker-compose这样的容器编排工具并不太适合这个目的,因为它们不便于用户在定义拓扑的容器之间轻松创建连接。

Containerlab提供了一个命令行界面(CLI),用于编排和管理基于容器的网络实验室。它可以启动容器,在容器之间构建虚拟连接以创建用户选择的实验室拓扑,并管理实验室的生命周期。

Containerlab专注于通常用于测试网络功能和设计的容器化网络操作系统,例如:

  • 诺基亚SR Linux
  • Arista cEOS
  • 思科XRd
  • SONiC
  • 瞻博网络cRPD
  • Cumulus VX
  • 是德科技IXIA-C
  • RARE/freeRtr
  • Ostinato

除了原生的容器化网络操作系统,Containerlab还可以通过集成 vrnetlabboxen来启动基于传统虚拟机的路由器:

  • 诺基亚虚拟SR OS(vSim/VSR)
  • 瞻博网络vMX
  • 瞻博网络vQFX
  • 瞻博网络vSRX
  • 瞻博网络vJunos-router
  • 瞻博网络vJunos-switch
  • 瞻博网络vJunos Evolved
  • 思科IOS XRv9k
  • 思科Catalyst 9000v
  • 思科Nexus 9000v
  • 思科c8000v
  • 思科CSR 1000v
  • 思科FTDv
  • 戴尔FTOS10v
  • Arista vEOS
  • 帕洛阿尔托PAN
  • IPInfusion OcNOS
  • Check Point Cloudguard
  • 飞塔Fortigate
  • 阿鲁巴AOS-CX
  • 华为VRP
  • OpenBSD
  • FreeBSD
  • SONiC

当然,Containerlab完全能够连接任意的Linux容器,这些容器可以承载网络应用程序、虚拟功能,或者仅仅作为测试客户端。通过这些功能,Containerlab提供了一个单一的基础设施即代码(IaC)接口,来管理涵盖所有所需节点类型的实验室:

这个短视频简要演示了Containerlab的功能并解释了其用途:
https://youtu.be/xdi7rwdJgkg

1.2 功能

  1. 实验室即代码(IaC)方法:通过拓扑定义 clab文件以声明式的方式定义实验室。
  2. 以网络操作系统为中心:专注于容器化网络操作系统。各种网络操作系统容器复杂的启动要求通过“种类(kinds)”进行了抽象,使用户能够专注于用例,而不是被基础设施障碍所困扰。
  3. 对基于VM的节点友好:通过集成 vrnetlab,可以实现两全其美——以相同的IaC方法和工作流程运行虚拟化和容器化节点。
  4. 多供应商和开源支持:尽管Containerlab由诺基亚工程师发起,但它并不偏袒任何一方,支持来自其他供应商和开源项目的网络操作系统。
  5. 实验室编排:启动容器并将它们连接起来已经很不错了,但Containerlab还提供了更多功能,如管理实验室的生命周期:部署、销毁、保存、检查、图形操作等。
  6. 规模化实验室生成器:借助Containerlab的 generate功能,可以定义/启动任意规模的基于CLOS的拓扑。只需说明需要多少层以及每层的规模,其余的将在瞬间完成。
  7. 简单便捷:从轻松的安装和升级功能,到幕后的链路连接机制,Containerlab竭尽全力让用户享受使用该工具的过程。
  8. 快速:在任何安装了Docker的Linux系统上,都能以极快的速度创建基于容器的实验室。
  9. 自动TLS证书配置:需要TLS证书的节点在启动时将自动获取证书。
  10. 文档优先:我们提供完整、简洁、清晰的文档,不让用户自行猜测。
  11. 实验室目录:“最受欢迎”的实验室拓扑已记录在案,并随Containerlab安装一起提供。基于这个精选列表,你可以开始构建满足自己需求的实验室。

1.3 用例

  1. 实验室和演示:Containerlab旨在成为一个用于配置由容器构建的网络实验室的工具。它免费、开源且无处不在。除了Docker之外,无需其他软件!与任何实验室环境一样,它允许用户验证功能、拓扑,进行互操作性测试、数据路径测试等。它也是你下一次演示的完美助手。快速部署实验室,所有配置都以代码形式存储,完成后销毁即可。
  2. 测试和持续集成(CI):由于Containerlab采用单二进制文件打包和基于代码的实验室定义文件,为CI搭建测试平台从未如此简单。Gitlab CI、Github Actions以及几乎任何CI系统都可以通过一个简单的命令启动Containerlab拓扑。
  3. 遥测验证:将现代遥测堆栈与Containerlab实验室相结合,非常适合遥测用例的验证。启动一个带有容器化网络功能且配置了遥测的实验室,然后运行全面的遥测用例。
不忘初心
回复

使用道具 举报

本版积分规则

Copyright   ©2015-2024  EmulatedLab  Powered by Discuz!©   ( 浙ICP备2021010423号-1 )
快速回复 返回列表 返回顶部