CAT 8000V
Overview
The CAT 8000V is Cisco's Catalyst 8000V Edge Software, a virtual-form-factor software router. It is the same VM image that Cisco licenses for use as a production virtual router in public and private cloud environments. The Catalyst 8000V is the successor to the CSR 1000v, which is nearing end-of-life. In CML, the Catalyst 8000V image runs in demo mode without any additional licensing. Use the Catalyst 8000V image when you want to simulate a platform that runs Cisco IOS-XE.
For more details about Catalyst 8000V, refer to the following resources:
- Cisco Catalyst 8000V Edge Software Product Page
- Cisco Catalyst 8000V Edge Software Release Notes
- Documentation for the corresponding version of Cisco IOS XE, such as Cisco IOS XE 17.6.1, for details on configuring the router
Limitations
The Catalyst 8000V is performance limited when forwarding traffic. Achieved throughputs are ~ 11.1 Mbits/sec when passing traffic through one Catalyst 8000V device and ~10.8 Mbits/sec when chained over two Catalyst 8000V devices. Baseline throughput was 648 Mbits/sec.
The serial, non-EFI image for Catalyst 8000V should be used. There are 8GB and 16GB versions available, and CML uses the 8GB image in its default Image Definition.
Features Tested with CML
Each CML release is tested with the bundled version of Catalyst 8000V. The tests validate the following features:
Test Name | Result |
---|---|
CDP | Pass |
ping | Pass |
OSPF single-area | Pass |
NAT - static | Pass |
HSRP | Pass |
DHCP | Pass |
Routed subinterface | Pass |
Restconf | Pass |
Netconf | Pass |
The lab used for the tests is Catalyst 8000v Feature Tests, which is one of the sample labs included with CML on the Tools > Sample Labs page.
CDP
- peer device is detected on the interface and listed in the CDP table.
- Neighbor types: Catalyst 8000V, IOSvL2
cat8000v-3#show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
cat8000v-1 Gig 2 155 R S I C8000V Gig 3
cat8000v-2 Gig 1 174 R S I C8000V Gig 1
iosvl2-0 Gig 3 157 R S I Gig 0/2
Ping test
- Sending ICMP Echo packets to the neighbor IP
- Direct reachability and reachability via routing
cat8000v-3#ping 192.168.255.6
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.255.6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
DHCP
- DHCP pool configured on a router
Sep 7 11:46:16 ubuntu systemd-networkd[545]: ens2: DHCPv4 address 192.168.253.16/24 via 192.168.253.1
- Ubuntu VM connected to the router successfully obtains IP address
cat8000v-3#show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type State Interface
Hardware address/
User name
192.168.253.16 ff32.39f9.b500.0200. Sep 09 2021 08:33 AM Automatic Active GigabitEthernet3
00ab.118e.f1c3.e9af.
4407.d8
OSPF Single-Area
- loopback interfaces configured
- point-to-point networks configured on links between routers
- all interfaces in area 0
- OSPF establishes connectivity
- Can ping loopback interfaces on different routers
cat8000v-3#ping 172.31.255.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.31.255.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
HSRP
- Two CAT 8000V devices, interconnected by a IOSvL2 switch
- VM connected to the switch
- HSRP configured on both CAT 8000V devices
cat8000v-3#show standby brief
P indicates configured to preempt.
|
Interface Grp Pri P State Active Standby Virtual IP
Gi3 1 95 P Standby 192.168.253.3 local 192.168.253.1
- VM can successfully ping the HSRP IP address
- Verification: Failover test
cisco@ubuntu:~$ ping 192.168.253.1
PING 192.168.253.1 (192.168.253.1) 56(84) bytes of data.
64 bytes from 192.168.253.1: icmp_seq=1 ttl=255 time=9.86 ms
64 bytes from 192.168.253.1: icmp_seq=2 ttl=255 time=3.09 ms
64 bytes from 192.168.253.1: icmp_seq=3 ttl=255 time=3.09 ms
64 bytes from 192.168.253.1: icmp_seq=4 ttl=255 time=3.02 ms
NAT: Static
- Alpine Linux VM connected to the router, static IP address configured on VM and on router interface
- static NAT configured on a router
- Loopback interface configured on router to advertise the subnet with the translated address in OSPF.
cat8000v-3#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 172.31.254.2 192.168.254.2 --- ---
Total number of translations: 1
- ping of the untranslated VM IP from the router
- ping of the translated VM IP from outside
cisco@ubuntu:~$ ping 172.31.254.2
PING 172.31.254.2 (172.31.254.2) 56(84) bytes of data.
64 bytes from 172.31.254.2: icmp_seq=1 ttl=63 time=3.94 ms
64 bytes from 172.31.254.2: icmp_seq=2 ttl=63 time=4.16 ms
64 bytes from 172.31.254.2: icmp_seq=3 ttl=63 time=4.09 ms
Routed subinterface
- created routed subinterface on two Catalyst 8000V routers
- Interconnected them over the IOSvL2 switch; configured interfaces as trunks; configured VLANs on IOSvL2
- Configured an IP on the SVI for that VLAN on IOSvL2
Restconf
- Restconf enabled on cat8000v-3
- Successfully fetching configuration data by sending GET request from VM
cisco@ubuntu:~$ curl -k --user 'cisco:cisco' --request GET 'https://192.168.253.2:443/restconf/data/ietf-interfaces:interfaces/interface=GigabitEthernet1' --header 'Accept: application/yang-data+json'
{
"ietf-interfaces:interface": {
"name": "GigabitEthernet1",
"type": "iana-if-type:ethernetCsmacd",
"enabled": true,
"ietf-ip:ipv4": {
"address": [
{
"ip": "192.168.255.1",
"netmask": "255.255.255.252"
}
]
},
"ietf-ip:ipv6": {
}
}
}
Netconf
- Netconf enabled on cat8000v-3
- Ubuntu VM successfully starts netconf session and device responds with the capabilities
cisco@ubuntu:~$ ssh -p 830 -s cisco@192.168.253.2 netconf
cisco@192.168.253.2's password:
<?xml version="1.0" encoding="UTF-8"?>
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<capabilities>
<capability>urn:ietf:params:netconf:base:1.0</capability>
<capability>urn:ietf:params:netconf:base:1.1</capability>
<capability>urn:ietf:params:netconf:capability:writable-running:1.0</capability>
<capability>urn:ietf:params:netconf:capability:rollback-on-error:1.0</capability>
<capability>urn:ietf:params:netconf:capability:validate:1.0</capability>
<capability>urn:ietf:params:netconf:capability:validate:1.1</capability>
<capability>urn:ietf:params:netconf:capability:xpath:1.0</capability>
<capability>urn:ietf:params:netconf:capability:notification:1.0</capability>
<capability>urn:ietf:params:netconf:capability:interleave:1.0</capability>
<capability>urn:ietf:params:netconf:capability:with-defaults:1.0?basic-mode=explicit&also-supported=report-all-tagged,report-all</capability>
<capability>urn:ietf:params:netconf:capability:yang-library:1.0?revision=2016-06-21&module-set-id=62fce412ef7ae70741dbc9b96d64dda6</capability>
<capability>http://tail-f.com/ns/netconf/actions/1.0</capability>
<-- output omitted -->