Skip to content

Cisco c8000v#

The Cisco Catalyst 8000V is identified with cisco_c8000v kind in the topology file.

Cisco c8000v is a successor of Cisco CSR1000v and is a different product from Cisco 8000 platform emulator.

Hardware resource requirements#

Each c8000v node is started with 1vCPU and 4GB of RAM by default.

Managing c8000v nodes#

Note

Cisco c8000v boots process takes around 5 minutes. To monitor boot progress:

docker logs -f <container-name/id>

Wait for Startup complete in: <time> message.

ssh admin@<node-name>
Password: admin

to connect to a bash shell of a running c8000v container:

docker exec -it <container-name/id> bash

Note

Default credentials: admin:admin

Interface naming#

You can use interfaces names in the topology file like they appear in Cisco Catalyst 8000V.

The interface naming convention is: GigabitEthernetX (or GiX), where X is the port number.

With that naming convention in mind:

  • Gi2 - first data port available
  • Gi3 - second data port, and so on...

Warning

Data port numbering starts at 2, as Gi1 is reserved for management connectivity. Attempting to use Gi1 in a containerlab topology will result in an error.

The example ports above would be mapped to the following Linux interfaces inside the container running the Cisco Catalyst 8000V VM:

  • eth0 - management interface connected to the containerlab management network (rendered as GigabitEthernet1 in the CLI)
  • eth1 - first data interface, mapped to the first data port of the VM (rendered as GigabitEthernet2)
  • eth2+ - second and subsequent data interfaces, mapped to the second and subsequent data ports of the VM (rendered as GigabitEthernet3 and so on)

When containerlab launches Cisco Catalyst 8000V node the GigabitEthernet1 interface of the VM gets assigned 10.0.0.15/24 address from the QEMU DHCP server. This interface is transparently stitched with container's eth0 interface such that users can reach the management plane of the Cisco Catalyst 8000V using containerlab's assigned IP.

Data interfaces GigabitEthernet2+ need to be configured with IP addressing manually using CLI or other available management interfaces and will appear unset in the CLI:

node1#sh ip int br
Interface              IP-Address      OK? Method Status                Protocol
GigabitEthernet1       10.0.0.15       YES manual up                    up      
GigabitEthernet2       unassigned      YES unset  administratively down down

Features and options#

Default node configuration#

It is possible to launch nodes of cisco_c8000v 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, the node will boot with a factory config

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:

name: c8000v
topology:
  nodes:
    c8000:
      kind: cisco_c8000v
      startup-config: r1.cfg

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.

Lab examples#

name: c8000v
topology:
  nodes:
    node1:
      kind: cisco_c8000v
      image: vrnetlab/vr-c8000v:17.11.01a
    node2:
      kind: cisco_c8000v
      image: vrnetlab/vr-c8000v:17.11.01a

  links:
    - endpoints: ["node1:Gi2", "node2:Gi2"]

  1. if startup config needs to be enforced, either deploy a lab with --reconfigure flag, or use enforce-startup-config setting.