Cisco 8000#
Cisco 8000 platform emulator is identified with c8000
or cisco_c8000
kind in the topology file.
The 8000 emulator is an enhanced KVM hypervisor that emulates Cisco boards and chassis. The 8000 emulator VM is launched inside a container for ease of integration with ContainerLab.
Getting Cisco 8000 ContainerLab docker images#
Cisco customers can contact their Cisco account team to get access to Cisco 8000 ContainerLab docker images.
The obtained image archive can be loaded to local docker image store with (example):
Supported platforms#
- Fixed form platforms
8101-32H, 8102-64H, 8201-32FH, 8201, 8202-32FH-M - Modular chassis (8808 and 8804)
8800-LC-36FH, 8800-LC-48H, 8800-LC-36FH-M
Additional platforms will be supported on "as needed" basis.
Host server requirements#
- Open vSwitch
- KVM
- Limit
/proc/sys/kernel/pid_max
to 1048575
sysctl -w kernel.pid_max=1048575
Hardware resource requirements#
Memory and cpu usage depends on XR features enabled and control/data plane traffic
-
Fixed form platforms
Recommended 20GB memory and 4 cores per router -
Modular chassis
Recommended 64GB memory and 8 cores per router
Managing c8000 nodes#
Info
Cisco 8000 nodes may take a few minutes to come to XR prompt. To monitor boot progress:
Wait forRouter up
message. ssh cisco@<node-mgmt-address>
Password: cisco123
Info
Default credentials: cisco:cisco123
Interface naming convention#
c8000 container uses the following naming convention for its management and data interfaces:
eth0
- management interface connected to the containerlab management networkHu0_0_0_X
- 100G data interface mapped toHundredGigE0/0/0/X
internal interface.FH0_0_0_X
- 400G data interface mapped toFourHundredGigE0/0/0/X
internal interface.
When containerlab launches c8000 node, it will set IPv4 address as assigned by docker to the eth0
interface and c8000 node will boot with this address configured for its MgmtEth0
.
RP/0/RP0/CPU0:r1#sh ip int br
Wed Dec 21 12:04:13.049 UTC
Interface IP-Address Status Protocol Vrf-Name
MgmtEth0/RP0/CPU0/0 172.20.20.5 Up Up default
Features and options#
Node configuration#
Default node configuration#
It is possible to launch nodes of cisco_c8000
kind with a basic config or to provide a custom config file that will be used as a startup config instead.
When a node is defined without startup-config
statement present, containerlab will generate an empty config from this template and copy it to the config directory of the node.
User defined config#
With a startup-config
property a user sets the path to the config file that will be mounted to a container and used as a startup-config:
When a config file is passed via startup-config
parameter it will be used during an initial lab deployment. However, a config file that might be in the lab directory of a node takes precedence over the startup-config1.
With such topology file containerlab is instructed to take a file r1.cfg
from the current working directory and copy it to the lab directory for that specific node under the /first-boot.cfg
name. This will result in this config acting as a startup-config for the node.
To provide a user-defined config, take the default configuration template and add the necessary configuration commands without changing the rest of the file. This will result in proper automatic assignment of IP addresses to the management interface, as well as applying user-defined commands.
Lab examples#
name: test
topology:
nodes:
Cisco8201-1:
kind: cisco_c8000
image: 8201-32fh-clab:7.9.1
image-pull-policy: Never
Cisco8201-2:
kind: cisco_c8000
image: 8201-32fh-clab:7.9.1
image-pull-policy: Never
links:
- endpoints: ["Cisco8201-1:FH0_0_0_0", "Cisco8201-2:FH0_0_0_0"]
-
if startup config needs to be enforced, either deploy a lab with
--reconfigure
flag, or useenforce-startup-config
setting. ↩