Skip to content
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ But, of course, containerlab is perfectly capable of wiring up any typical linux
* TLS certificates can be generated automatically for every node of a lab.
* The lab topology can be graphically visualized with [graphviz](https://graphviz.org) tool (WIP).

<script type="text/javascript" src="https://viewer.diagrams.net/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/hellt/drawio-js@main/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio" async></script>
32 changes: 32 additions & 0 deletions docs/lab-examples/ext-bridge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
| | |
| ----------------------------- | -------------------------------------------------------------------- |
| **Description** | Connecting nodes via linux bridges |
| **Components** | [Nokia SR Linux][srl] |
| **Resource requirements**[^1] | :fontawesome-solid-microchip: 1 <br/>:fontawesome-solid-memory: 2 GB |
| **Topology file** | [br01.yml][topofile] |
| **Prefix** | br01 |

## Description
This lab consists of three Nokia SR Linux nodes connected to a linux bridge.

<center><div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&quot;page&quot;:8,&quot;zoom&quot;:1.5,&quot;highlight&quot;:&quot;#0000ff&quot;,&quot;nav&quot;:true,&quot;check-visible-state&quot;:true,&quot;resize&quot;:true,&quot;url&quot;:&quot;https://raw.githubusercontent.com/srl-wim/containerlab-diagrams/main/containerlab.drawio&quot;}"></div></center>

!!!note
`containerlab` **will not** create/remove the bridge interface on your behalf.

bridge element must be part of the lab nodes. Consult with the [topology file][topofile] to see how to reference a bridge.

## Use cases
By introducing a link of `bridge` type to the containerlab topology, we are opening ourselves to some additional scenarios:

* interconnect nodes via a broadcast domain
* connect multiple fabrics together
* connect containerlab nodes to the applications/nodes running outside of the lab host


[srl]: https://www.nokia.com/networks/products/service-router-linux-NOS/
[topofile]: https://github.com/srl-wim/container-lab/tree/master/lab-examples/br01/br01.yml

[^1]: Resource requirements are provisional. Consult with SR Linux Software Installation guide for additional information.

<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/hellt/drawio-js@main/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio" async></script>
15 changes: 15 additions & 0 deletions docs/lab-examples/lab-examples.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<center><div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&quot;page&quot;:4,&quot;zoom&quot;:1.5,&quot;highlight&quot;:&quot;#0000ff&quot;,&quot;nav&quot;:true,&quot;check-visible-state&quot;:true,&quot;resize&quot;:true,&quot;url&quot;:&quot;https://raw.githubusercontent.com/srl-wim/containerlab-diagrams/main/containerlab.drawio&quot;}"></div></center>
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/hellt/drawio-js@main/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio" async></script>

`containerlab` aims to provide a simple, intuitive and yet customizable way to run container based labs. To help our users to get from an "I have a bare VM" point to a running and functional lab we ship some essential lab topologies inside the `containerlab` package.

These lab examples are meant to be used as-is or as a base layer to a more customized or elaborated lab scenario. Once `containerlab` is installed, you will find the lab examples directories by the `/etc/containerlab/lab-examples` path. Copy those directories over to your working directory to start using the provided labs.

!!!note "Container images versions"
The provided lab examples use the images without a tag, i.e. `image: srlinux`. This means that the image with a `latest` tag must exist. A user needs to tag the image themselves if the `latest` tag is missing.

For example: `docker tag srlinux:20.6.1-286 srlinux:latest`

The source code of the lab examples is contained within the [containerlab repo](https://github.com/srl-wim/container-lab/tree/master/lab-examples); any questions or issues regarding the provided examples can be addressed via [Github issues](https://github.com/srl-wim/container-lab/issues).

Each lab comes with a definitive description that can be found in this documentation section.
27 changes: 27 additions & 0 deletions docs/lab-examples/min-5clos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
| | |
| ----------------------------- | -------------------------------------------------------------------- |
| **Description** | A 5-stage CLOS topology based on Nokia SR Linux |
| **Components** | [Nokia SR Linux][srl] |
| **Resource requirements**[^1] | :fontawesome-solid-microchip: 4 <br/>:fontawesome-solid-memory: 8 GB |
| **Topology file** | [clos02.yml][topofile] |
| **Prefix** | clos02 |

## Description
This labs provides a lightweight folded 5-stage CLOS fabric with Super Spine level bridging two PODs.

<center><div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&quot;page&quot;:8,&quot;zoom&quot;:1.5,&quot;highlight&quot;:&quot;#0000ff&quot;,&quot;nav&quot;:true,&quot;check-visible-state&quot;:true,&quot;resize&quot;:true,&quot;url&quot;:&quot;https://raw.githubusercontent.com/srl-wim/containerlab-diagrams/main/containerlab.drawio&quot;}"></div></center>

The topology is additionally equipped with the Linux containers connected to leaves to facilitate use cases which require access side emulation.

## Use cases
With this lightweight CLOS topology a user can exhibit the following scenarios:

* perform configuration tasks applied to the 5-stage CLOS fabric
* demonstrate fabric behavior leveraging the user-emulating linux containers attached to the leaves

[srl]: https://www.nokia.com/networks/products/service-router-linux-NOS/
[topofile]: https://github.com/srl-wim/container-lab/tree/master/lab-examples/clos02/clos02.yml

[^1]: Resource requirements are provisional. Consult with SR Linux Software Installation guide for additional information.

<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/hellt/drawio-js@main/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio" async></script>
27 changes: 27 additions & 0 deletions docs/lab-examples/min-clos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
| | |
| ----------------------------- | ---------------------------------------------------------------------- |
| **Description** | A minimal CLOS topology with two leafs and a spine |
| **Components** | [Nokia SR Linux][srl] |
| **Resource requirements**[^1] | :fontawesome-solid-microchip: 1.5 <br/>:fontawesome-solid-memory: 3 GB |
| **Topology file** | [clos01.yml][topofile] |
| **Prefix** | clos01 |

## Description
This labs provides a lightweight folded CLOS fabric topology using a minimal set of nodes: two leaves and a single spine.

<center><div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&quot;page&quot;:5,&quot;zoom&quot;:1.5,&quot;highlight&quot;:&quot;#0000ff&quot;,&quot;nav&quot;:true,&quot;check-visible-state&quot;:true,&quot;resize&quot;:true,&quot;url&quot;:&quot;https://raw.githubusercontent.com/srl-wim/containerlab-diagrams/main/containerlab.drawio&quot;}"></div></center>

The topology is additionally equipped with the Linux containers connected to leaves to facilitate use cases which require access side emulation.

## Use cases
With this lightweight CLOS topology a user can exhibit the following scenarios:

* perform configuration tasks applied to the 3-stage CLOS fabric
* demonstrate fabric behavior leveraging the user-emulating linux containers attached to the leaves

[srl]: https://www.nokia.com/networks/products/service-router-linux-NOS/
[topofile]: https://github.com/srl-wim/container-lab/tree/master/lab-examples/clos01/clos01.yml

[^1]: Resource requirements are provisional. Consult with SR Linux Software Installation guide for additional information.

<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/hellt/drawio-js@main/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio" async></script>
31 changes: 31 additions & 0 deletions docs/lab-examples/single-srl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
| | |
| ----------------------------- | ---------------------------------------------------------------------- |
| **Description** | a single Nokia SR Linux node |
| **Components** | [Nokia SR Linux][srl] |
| **Resource requirements**[^1] | :fontawesome-solid-microchip: 0.5 <br/>:fontawesome-solid-memory: 1 GB |
| **Topology file** | [srl01.yml][topofile] |
| **Prefix** | srl01 |

## Description
A lab consists of a single SR Linux container equipped with a single interface - its management interface. No other network/data interfaces are created.

<center><div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&quot;page&quot;:2,&quot;zoom&quot;:1.5,&quot;highlight&quot;:&quot;#0000ff&quot;,&quot;nav&quot;:true,&quot;check-visible-state&quot;:true,&quot;resize&quot;:true,&quot;url&quot;:&quot;https://raw.githubusercontent.com/srl-wim/containerlab-diagrams/main/containerlab.drawio&quot;}"></div></center>

The SR Linux's `mgmt` interface is connected to the `containerlab` docker network that is created as part of the lab deployment process. The `mgmt` interface of SRL will get IPv4/6 address information via DHCP service provided by docker daemon.

## Use cases
This lightweight lab enables the users to perform the following exercises:

* get familiar with SR Linux architecture
* explore SR Linux extensible CLI
* navigate the SR Linux YANG tree
* play with gNMI[^2] and JSON-RPC programmable interfaces
* write/debug/manage custom apps built for SR Linux NDK

[srl]: https://www.nokia.com/networks/products/service-router-linux-NOS/
[topofile]: https://github.com/srl-wim/container-lab/tree/master/lab-examples/srl01/srl01.yml

[^1]: Resource requirements are provisional. Consult with SR Linux Software Installation guide for additional information.
[^2]: Check out [gnmic](https://gnmic.kmrd.dev) gNMI client to interact with SR Linux gNMI server.

<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/hellt/drawio-js@main/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio" async></script>
23 changes: 23 additions & 0 deletions docs/lab-examples/srl-ceos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
| | |
| ----------------------------- | -------------------------------------------------------------------- |
| **Description** | A Nokia SR Linux connected back-to-back with Arista cEOS |
| **Components** | [Nokia SR Linux][srl], [Arista cEOS][ceos] |
| **Resource requirements**[^1] | :fontawesome-solid-microchip: 1 <br/>:fontawesome-solid-memory: 2 GB |
| **Topology file** | [srlceos01.yml][topofile] |
| **Prefix** | srlceos01 |

## Description
A lab consists of an SR Linux node connected with Arista cEOS via a point-to-point ethernet link. Both nodes are also connected with their management interfaces to the `containerlab` docker network.

<center><div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&quot;page&quot;:6,&quot;zoom&quot;:1.5,&quot;highlight&quot;:&quot;#0000ff&quot;,&quot;nav&quot;:true,&quot;check-visible-state&quot;:true,&quot;resize&quot;:true,&quot;url&quot;:&quot;https://raw.githubusercontent.com/srl-wim/containerlab-diagrams/main/containerlab.drawio&quot;}"></div></center>

## Use cases
This lab allows users to launch basic interoperability scenarios between Nokia SR Linux and Arista cEOS operating systems.

[srl]: https://www.nokia.com/networks/products/service-router-linux-NOS/
[ceos]: https://www.arista.com/en/products/software-controlled-container-networking
[topofile]: https://github.com/srl-wim/container-lab/tree/master/lab-examples/srlceos01/srlceos01.yml

[^1]: Resource requirements are provisional. Consult with the installation guides for additional information.

<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/hellt/drawio-js@main/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio" async></script>
26 changes: 26 additions & 0 deletions docs/lab-examples/two-srls.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
| | |
| ----------------------------- | -------------------------------------------------------------------- |
| **Description** | Two Nokia SR Linux nodes |
| **Components** | [Nokia SR Linux][srl] |
| **Resource requirements**[^1] | :fontawesome-solid-microchip: 1 <br/>:fontawesome-solid-memory: 2 GB |
| **Topology file** | [srl02.yml][topofile] |
| **Prefix** | srl02 |

## Description
A lab consists of two SR Linux nodes connected with each other via a point-to-point link over `e1-1` interfaces. Both nodes are also connected with their management interfaces to the `containerlab` docker network.

<center><div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&quot;page&quot;:3,&quot;zoom&quot;:1.5,&quot;highlight&quot;:&quot;#0000ff&quot;,&quot;nav&quot;:true,&quot;check-visible-state&quot;:true,&quot;resize&quot;:true,&quot;url&quot;:&quot;https://raw.githubusercontent.com/srl-wim/containerlab-diagrams/main/containerlab.drawio&quot;}"></div></center>

## Use cases
This lab, besides having the same objectives as [srl01](single-srl.md) lab, also enables the following scenarios:

* get to know protocols and services configuration
* verify basic control plane and data plane operations
* explore SR Linux state datastore for the paths which reflect control plane operation metrics or dataplane counters

[srl]: https://www.nokia.com/networks/products/service-router-linux-NOS/
[topofile]: https://github.com/srl-wim/container-lab/tree/master/lab-examples/srl02/srl02.yml

[^1]: Resource requirements are provisional. Consult with SR Linux Software Installation guide for additional information.

<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/hellt/drawio-js@main/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio" async></script>
25 changes: 25 additions & 0 deletions docs/lab-examples/wan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
| | |
| ----------------------------- | -------------------------------------------------------------------- |
| **Description** | WAN emulating topology |
| **Components** | [Nokia SR Linux][srl] |
| **Resource requirements**[^1] | :fontawesome-solid-microchip: 1 <br/>:fontawesome-solid-memory: 3 GB |
| **Topology file** | [srl03.yml][topofile] |
| **Prefix** | srl03 |

## Description
Nokia SR Linux while focusing on the data center deployments in the first releases, will also be suitable for WAN deployments. In this lab users presented with a small WAN topology of four interconnected SR Linux nodes with multiple p2p interfaces between them.

<center><div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&quot;page&quot;:9,&quot;zoom&quot;:1.5,&quot;highlight&quot;:&quot;#0000ff&quot;,&quot;nav&quot;:true,&quot;check-visible-state&quot;:true,&quot;resize&quot;:true,&quot;url&quot;:&quot;https://raw.githubusercontent.com/srl-wim/containerlab-diagrams/main/containerlab.drawio&quot;}"></div></center>

## Use cases
The WAN-centric scenarios can be tested with this lab:

* Link aggregation
* WAN protocols and features

[srl]: https://www.nokia.com/networks/products/service-router-linux-NOS/
[topofile]: https://github.com/srl-wim/container-lab/tree/master/lab-examples/srl03/srl03.yml

[^1]: Resource requirements are provisional. Consult with SR Linux Software Installation guide for additional information.

<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/hellt/drawio-js@main/embed2.js?&fetch=https%3A%2F%2Fraw.githubusercontent.com%2Fsrl-wim%2Fcontainerlab-diagrams%2Fmain%2Fcontainerlab.drawio" async></script>
28 changes: 0 additions & 28 deletions lab-examples/arista-topo.yml

This file was deleted.

23 changes: 23 additions & 0 deletions lab-examples/br01/br01.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# topology documentation: http://containerlab.srlinux.dev/lab-examples/ext-bridge/
Prefix: br01

Duts:
kind_defaults:
srl:
type: ixrd1
image: srlinux
license: license.key
dut_specifics:
srl1:
kind: srl
srl2:
kind: srl
srl3:
kind: srl
br-clab:
kind: bridge

Links:
- endpoints: ["srl1:e1-1", "br-clab:eth1"]
- endpoints: ["srl2:e1-1", "br-clab:eth2"]
- endpoints: ["srl3:e1-1", "br-clab:eth3"]
Loading