Skip to content

Commit

Permalink
New device: Cisco IOSv layer-2 image (#1302)
Browse files Browse the repository at this point in the history
* Added IOSvL2 device (copy settings from IOSv, use the same configuration template)
* Adapt the interface naming (interface #4 is Gigabit1/0)
* Add 'no switchport' to initial interface configuration
* Remove IPv6 addresses from 'ip host' command
* Add 'ipv6 mtu' to 'ip mtu' interface configuration commands
* Configure MAC addresses on VLAN interfaces (otherwise all IOSvL2 devices use the same MAC address)
* Completely rework the VLAN configuration (from VLAN database and 'switchport' command to VLAN interfaces)
* Add a device quirk that prevents VLANs 1002..1005 from being used
  • Loading branch information
ipspace authored Sep 1, 2024
1 parent 215a888 commit 48eb36b
Show file tree
Hide file tree
Showing 30 changed files with 236 additions and 34 deletions.
3 changes: 2 additions & 1 deletion docs/caveats.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,14 @@ See also [CSR 1000v](caveats-csr) and [Cisco IOSv](caveats-iosv) caveats.
See also [Cisco IOSv](caveats-iosv) SSH, OSPF, RIPng, and BGP caveats.

(caveats-iosv)=
## Cisco IOSv
## Cisco IOSv and IOSvL2

* Cisco IOSv release 15.x does not support unnumbered interfaces. Use Cisco CSR 1000v.
* BGP configuration is optimized for reasonable convergence times under lab conditions. Do not use the same settings in a production network.
* Multiple OSPFv2 processes on Cisco IOS cannot have the same OSPF router ID. By default, _netlab_ generates the same router ID for global and VRF OSPF processes, resulting in non-fatal configuration errors that Ansible silently ignores.
* It's impossible to configure RIPv2 on individual subnets on Cisco IOS. RIPv2 might be running on more interfaces than intended. _netlab_ configures those interfaces to be *passive*.
* Cisco IOS does not support passive interfaces in RIPng.
* You cannot use VLANs 1002 through 1005 with Cisco IOSvL2 image

(cisco-iosv-ssh)=
### SSH Access to Cisco IOSv
Expand Down
22 changes: 22 additions & 0 deletions docs/labs/iosvl2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
(build-iosvl2)=
# Building a Cisco IOSv Layer-2 Vagrant Libvirt Box

Cisco [IOSvL2](https://developer.cisco.com/docs/modeling-labs/iosvl2/#iosvl2) is supported by the **netlab libvirt package** command. To build an IOSvL2 box:

* Create an empty directory on a Ubuntu machine with *libvirt* and *Vagrant*.
* Copy the IOSvL2 disk image (`.vmdk` or `.qcow` file) into that directory. The image name should start with `vios_l2` or you might not have an IOSv Layer-2 image.
* Execute **netlab libvirt package iosvl2 _virtual-disk-file-name_** and follow the instructions

```{warning}
* The Cisco IOSv layer-2 image uses slightly different configuration commands and system defaults than the IOSv image and must be built as a separate Vagrant box.
* If you're using a *‌netlab* release older than 1.8.2, or if you're using a Linux distribution other than Ubuntu, please [read the box-building caveats first](libvirt-box-caveats.md).
```

## Initial Device Configuration

During the box-building process (inspired by [this recipe](https://codingpackets.com/blog/cisco-iosv-vagrant-libvirt-box-install/)) you'll have to copy-paste initial device configuration. **netlab libvirt config iosvl2** command displays the build recipe:

```{eval-rst}
.. include:: iosvl2.txt
:literal:
```
1 change: 1 addition & 0 deletions docs/labs/iosvl2.txt
4 changes: 3 additions & 1 deletion docs/labs/libvirt.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ You have to use the following box names when installing or building the Vagrant
| Cisco Catalyst 8000v | cisco/cat8000v |
| Cisco CRS 1000v | cisco/csr1000v |
| Cisco IOSv | cisco/iosv |
| Cisco IOSvL2 | cisco/iosvl2 |
| Cisco IOS XR | cisco/iosxr |
| Cisco Nexus 9300v | cisco/nexus9300v |
| Dell OS10 | dell/os10 |
Expand Down Expand Up @@ -78,7 +79,7 @@ These documents contain box-building recipes using the **netlab libvirt** utilit
* [Cisco ASAv](asav.md)
* [Cisco Catalyst 8000v](cat8000v.md)
* [Cisco CSR 1000v](csr.md)
* [Cisco IOSv](iosv.md)
* Cisco [IOSv](iosv.md) and [IOSvL2](iosvl2.md)
* [Cisco IOS XR](iosxr.md)
* [Cisco Nexus OS](nxos.md)
* [Dell OS10](dellos10.md) by [Stefano Sasso](http://stefano.dscnet.org)
Expand Down Expand Up @@ -286,6 +287,7 @@ providers.libvirt.probe: []
cat8000v.md
csr.md
iosv.md
iosvl2.md
iosxr.md
nxos.md
dellos10.md
Expand Down
2 changes: 1 addition & 1 deletion docs/module/bgp.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ The following features are only supported on a subset of platforms:
See [BGP Integration Tests Results](https://release.netlab.tools/_html/coverage.bgp) for more details.
```

[^18v]: Includes Cisco IOSv, Cisco CSR 1000v and Cisco Catalyst 8000v
[^18v]: Includes Cisco IOSv, IOSvL2, Cisco CSR 1000v and Cisco Catalyst 8000v

[^INTv4]: IPv4 address family activated on an EBGP session established between IPv6 LLA interfaces and using IPv6 next hop for IPv4 prefixes according to RFC 8950

Expand Down
6 changes: 3 additions & 3 deletions docs/module/dhcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ DHCP clients are supported on these platforms:
| Operating system | IPv4 | IPv6 | Default<br>route | Routing over<br>DHCP interfaces |
| --------------------- | :-: | :-: | :-: | :-: |
| Arista EOS |[](caveats-eos) |||[](caveats-eos) |
| Cisco IOSv |||||
| Cisco IOSv/IOSvL2 |||||
| Cisco IOS XE[^18v] |||||
| Cumulus Linux |||||
| Linux (Ubuntu VM only)|||||
Expand All @@ -30,7 +30,7 @@ DHCP servers are supported on these platforms:
| Operating system | IPv4 | IPv6 | VRF-aware |
| --------------------- | :-: | :-: | :-: |
| Arista EOS ||||
| Cisco IOSv ||||
| Cisco IOSv/IOSvL2 ||||
| Cisco IOS XE[^18v] ||||
| dnsmasq ||||
| Linux (Ubuntu VM only)||||
Expand All @@ -40,7 +40,7 @@ DHCP relays are supported on these platforms:
| Operating system | IPv4 | IPv6 | VRF-aware |
| --------------------- | :-: | :-: | :-:
| Arista EOS |||[](caveats-eos) |
| Cisco IOSv ||||
| Cisco IOSv/IOSvL2 ||||
| Cisco IOS XE[^18v] ||||
| Cumulus Linux |[](linux-dhcp-relay) |||
| Linux (Ubuntu VM only)|[](linux-dhcp-relay) |||
Expand Down
2 changes: 1 addition & 1 deletion docs/module/eigrp.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# EIGRP Configuration Module

This configuration module configures the EIGRP routing process on Cisco IOS, Cisco IOS-XE (CSR 1000v and Catalyst 8000v), and Cisco Nexus-OS.
This configuration module configures the EIGRP routing process on Cisco IOSv, Cisco IOS-XE (CSR 1000v and Catalyst 8000v), and Cisco Nexus-OS.

Supported features:

Expand Down
2 changes: 1 addition & 1 deletion docs/module/gateway.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ The module is supported on these platforms:
| Aruba AOS-CX ||||
| Cisco Catalyst 8000v ||||
| Cisco CSR 1000v ||||
| Cisco IOSv ||||
| Cisco IOSv/IOSvL2 ||||
| Cisco Nexus OS ||||
| Cumulus Linux ||||
| Dell OS10 |[](caveats-os10) |[](caveats-os10) |[](caveats-os10) |
Expand Down
2 changes: 1 addition & 1 deletion docs/module/isis.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ The following table describes per-platform support of individual IS-IS features:
| ------------------ | :-: | :-: | :-: | :-: | :-: | :-: |
| Arista EOS |||||||
| Cisco ASAv |||||||
| Cisco IOS |||||||
| Cisco IOSv/IOSvL2 |||||||
| Cisco IOS XE[^18v] |||||||
| Cisco IOS XRv |||||||
| Cisco Nexus OS |||||||
Expand Down
2 changes: 1 addition & 1 deletion docs/module/ospf.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ The following table describes per-platform support of individual router-level OS
| ------------------------ |:-:|:-:|:-:|:-:|:-:|
| Arista EOS ||||||
| Aruba AOS-CX ||||||
| Cisco IOS ||||||
| Cisco IOSv/IOSvL2 ||||||
| Cisco IOS XRv ||||||
| Cisco IOS XE[^18v] ||||||
| Cisco Nexus OS ||||||
Expand Down
2 changes: 1 addition & 1 deletion docs/module/ripv2.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ The following table describes per-platform support of individual RIPv2/RIPng fea
| Operating system | IPv4<br>(RIPv2) | IPv6<br>(RIPng) | Passive<br>interfaces |
| ------------------ | :-: | :-: | :-: |
| Arista EOS ||||
| Cisco IOS |||[](caveats-iosv) |
| Cisco IOSv/IOSvL2 |||[](caveats-iosv) |
| Cisco IOS XE[^18v] |||[](caveats-iosv) |
| Cumulus Linux ||||
| FRR ||||
Expand Down
8 changes: 4 additions & 4 deletions docs/module/routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ The following table describes high-level per-platform support of generic routing
| ------------------ | :-: | :-: | :-: |:-: | :-: |
| Arista EOS |||||
| Aruba AOS-CX |||||
| Cisco IOSv |||||
| Cisco IOSv/IOSvL2 |||||
| Cisco IOS-XE[^18v] |||||
| Cumulus Linux |||||
| FRR |||||
Expand Down Expand Up @@ -101,7 +101,7 @@ You can use these routing policy **match** parameters on devices supported by th
|---------------------|:--:|:--:|:--:|:--:|
| Arista EOS |||||
| Aruba AOS-CX |||||
| Cisco IOSv |||||
| Cisco IOSv/IOSvL2 |||||
| Cisco IOS-XE[^18v] |||||
| Cumulus Linux |||||
| FRR |||||
Expand All @@ -113,7 +113,7 @@ You can use these routing policy **set** parameters on devices supported by the
|---------------------|:--:|:--:|:--:|:--:| :--:|
| Arista EOS ||||||
| Aruba AOS-CX ||||||
| Cisco IOSv ||||||
| Cisco IOSv/IOSvL2 ||||||
| Cisco IOS-XE[^18v] ||||||
| Cumulus Linux ||||||
| FRR ||||||
Expand All @@ -127,7 +127,7 @@ The **set.community** attribute can be used to set these BGP communities on supp
|---------------------|:--:|:--:|:--:|:--:|:--:|
| Arista EOS ||||||
| Aruba AOS-CX ||||||
| Cisco IOSv ||||||
| Cisco IOSv/IOSvL2 ||||||
| Cisco IOS-XE[^18v] ||||||
| Cumulus Linux ||||||
| FRR ||||||
Expand Down
1 change: 1 addition & 0 deletions docs/module/vlan.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ VLANs are supported on these platforms:
| Arista EOS ||||||
| Aruba AOS-CX ||||||
| Cisco IOSv ||||||
| Cisco IOSvL2 ||||||
| Cisco Catalyst 8000v |||[](caveats-csr) |||
| Cisco CSR 1000v |||[](caveats-csr) |||
| Cisco Nexus OS ||||||
Expand Down
2 changes: 1 addition & 1 deletion docs/module/vrf.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ These platforms support routing protocols in VRFs:
| --------------------- | :-: | :-: | :-: |
| Arista EOS ||||
| Aruba AOS-CX ||||
| Cisco IOS |[](caveats-iosv) |||
| Cisco IOS/IOSvL2 |[](caveats-iosv) |||
| Cisco IOS XE[^18v] |[](caveats-csr) |||
| Cisco Nexus OS ||||
| Cumulus Linux ||||
Expand Down
19 changes: 11 additions & 8 deletions docs/platforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
| Cisco Catalyst 8000v [](caveats-cat8000v) | cat8000v |
| Cisco CSR 1000v [](caveats-csr) | csr |
| Cisco IOSv [](caveats-iosv) | iosv |
| [Cisco IOSvL2](https://developer.cisco.com/docs/modeling-labs/iosvl2/#iosvl2) [](caveats-iosv) | iosvl2 |
| Cisco IOS XRv [](caveats-iosxr) | iosxr |
| Cisco Nexus 9300v [](caveats-nxos) | nxos |
| Cumulus Linux 4.x/5.x [](caveats-cumulus) | cumulus |
Expand Down Expand Up @@ -73,8 +74,9 @@ You cannot use all supported network devices with all virtualization providers.
| Cisco ASAv | [](build-asav) |||
| Cisco Catalyst 8000v | [](build-cat8000v) ||[](clab-vrnetlab) |
| Cisco CSR 1000v | [](build-csr) ||[](clab-vrnetlab) |
| Cisco IOSv | [](build-iosxr) |||
| Cisco IOS XRv | [](build-iosv) |||
| Cisco IOSv | [](build-iosv) |||
| Cisco IOSvL2 | [](build-iosvl2)|||
| Cisco IOS XRv | [](build-iosxr) |||
| Cisco Nexus 9300v | [](build-nxos) ||[](clab-vrnetlab) |
| Cumulus Linux |||[](caveats-cumulus) |
| Cumulus Linux 5.0 (NVUE) |||[](caveats-cumulus) |
Expand Down Expand Up @@ -107,6 +109,7 @@ Configuration files for Virtualbox and KVM/libvirt environments specify the numb
| Cisco Catalyst 8000v | cat8000v | 2 | 4096 | virtio |
| Cisco CSR 1000v | csr | 2 | 4096 | virtio |
| Cisco IOSv | iosv | 1 | 512 | e1000 |
| Cisco IOSvL2 | iosvl2 | 1 | 1024 | e1000 |
| Cisco IOS XRv | iosxr | 2 | 8192 | e1000 |
| Cisco Nexus 9300v | nxos | 2 | 6144 [](caveats-nxos)| e1000 |
| Cumulus Linux | cumulus | 2 | 1024 | virtio |
Expand Down Expand Up @@ -216,7 +219,7 @@ The following interface addresses are supported on various platforms:
| Arista EOS ||||
| Aruba AOS-CX ||||
| Cisco ASAv ||||
| Cisco IOSv ||||
| Cisco IOSv/IOSvL2 ||||
| Cisco IOS XE[^18v] ||||
| Cisco IOS XRv ||||
| Cisco Nexus OS ||||
Expand Down Expand Up @@ -250,7 +253,7 @@ Routing protocol [configuration modules](module-reference.md) are supported on t
| Arista EOS ||||||
| Aruba AOS-CX ||||||
| Cisco ASAv ||||||
| Cisco IOSv ||||||
| Cisco IOSv/IOSvL2 ||||||
| Cisco IOS XE[^18v] ||||||
| Cisco IOS XRv ||||||
| Cisco Nexus OS ||||||
Expand Down Expand Up @@ -281,7 +284,7 @@ These devices support additional control-plane protocols or BGP address families
| Aruba AOS-CX |||||
| Cisco CSR 1000v |||||
| Cisco Catalyst 8000v |||||
| Cisco IOSv |||||
| Cisco IOSv/IOSvL2 |||||
| Cisco Nexus OS |||||
| Cumulus Linux |||||
| Dell OS10 |||||
Expand Down Expand Up @@ -312,7 +315,7 @@ The data plane [configuration modules](module-reference.md) are supported on the
| Aruba AOS-CX |||[](caveats-aruba) | [](caveats-aruba) |||
| Cisco Catalyst 8000v |||||||
| Cisco CSR 1000v |||||||
| Cisco IOSv |||||||
| Cisco IOSv/IOSvL2 |||||||
| Cisco Nexus OS |||||||
| Cumulus Linux |||||||
| Cumulus Linux 5.0 (NVUE) ||[](module-vrf-platform-support)|||||
Expand All @@ -335,7 +338,7 @@ Network services [configuration modules](module-reference.md) are supported on t
| --------------------- | :--: | :--: |
| Arista EOS |||
| Cisco CSR 1000v |||
| Cisco IOSv |||
| Cisco IOSv/IOSvL2 |||
| Cumulus Linux |||

Network services [configuration modules](module-reference.md) are also supported on these daemons:
Expand All @@ -353,7 +356,7 @@ Core *netlab* functionality and all multi-protocol routing protocol configuratio
| Arista EOS |||||||
| Aruba AOS-CX |||||||
| Cisco ASAv |||||||
| Cisco IOSv |||||||
| Cisco IOSv/IOSvL2 |||||||
| Cisco IOS XE[^18v] |||||||
| Cisco Nexus OS |||||||
| Cumulus Linux |||||||
Expand Down
2 changes: 1 addition & 1 deletion docs/plugins/bgp.policy.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ The plugin implements BGP routing policies and individual BGP policy attributes
|---------------------|:----:|:----:|:----:|:----:|:-----:|:----:|
| Arista EOS |||||||
| Aruba AOS-CX |||||||
| Cisco IOSv ||||||[](caveats-iosv) |
| Cisco IOSv/IOSvL2 ||||||[](caveats-iosv) |
| Cisco IOS-XE[^18v] ||||||[](caveats-iosv) |
| Cumulus Linux |||||||
| FRR |||||||
Expand Down
8 changes: 4 additions & 4 deletions docs/plugins/bgp.session.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ The plugin implements generic BGP session features for the following platforms:
| ------------------- | :--: | :--: | :--: | :--: |
| Arista EOS |||||
| Aruba AOS-CX |||||
| Cisco IOSv |||||
| Cisco IOSv/IOSvL2 |||||
| Cisco IOS-XE[^18v] |||||
| Cisco Nexus OS |||||
| Cumulus Linux |||||
Expand All @@ -83,7 +83,7 @@ BGP session security features are available on these platforms:
| ------------------- | :------: | :-: | :-: |
| Arista EOS ||||
| Aruba AOS-CX ||||
| Cisco IOSv ||||
| Cisco IOSv/IOSvL2 ||||
| Cisco IOS-XE[^18v] ||||
| Cisco Nexus OS ||||
| Cumulus Linux ||||
Expand All @@ -107,7 +107,7 @@ The plugin implements AS-path-mangling nerd knobs for the following platforms:
| Arista EOS ||||||
| Aruba AOS-CX ||||||
| Bird ||||||
| Cisco IOSv ||||||
| Cisco IOSv/IOSvL2 ||||||
| Cisco IOS-XE[^18v] ||||||
| Cisco Nexus OS ||||||
| Cumulus Linux ||||||
Expand Down Expand Up @@ -176,7 +176,7 @@ The implementations of the **neighbor remove-private-as** command vary widely ac
| Operating system | on | all | replace | ingress | ingress-replace |
| ------------------- | :--: | :--: | :--: | :--: | :--: |
| Arista EOS ||||||
| Cisco IOSv ||||||
| Cisco IOSv/IOSvL2 ||||||
| Cisco IOS-XE ||||||
| Cumulus Linux ||||||
| FRR ||||||
Expand Down
Loading

0 comments on commit 48eb36b

Please sign in to comment.