|
| 1 | +# Caveats |
| 2 | + |
| 3 | +## Vendor / Image Caveats |
| 4 | + |
| 5 | +### Cisco<a name="cisco"></a> |
| 6 | + |
| 7 | +* It's possible to run Cisco IOSv/CSR under Virtualbox if you build your own Vagrant boxes. |
| 8 | +* After building Vagrant boxes, edit **devices** section of **topology-defaults.yml** file to add Virtualbox support for individual network devices. |
| 9 | + |
| 10 | +### Cumulus Linux<a name="cumulus"></a> |
| 11 | + |
| 12 | +#### ContainerLab |
| 13 | + |
| 14 | +* *containerlab* could run Cumulus Linux as a container or as a micro-VM with *firecracker* (default, requires KVM). To run Cumulus VX as a pure container, add **runtime: docker** parameter to node data. |
| 15 | +* *netsim-tools* uses Cumulus VX containers created by Michael Kashin and downloaded from his Docker Hub account. Once Nvidia releases an official container image, change the container name with **defaults.providers.clab.devices.cumulus.image.clab** parameter (or by editing the `topology-defaults.yml` file included with *netsim-tools*). |
| 16 | + |
| 17 | +### Fortinet FortiOS<a name="fortinet"></a> |
| 18 | + |
| 19 | +* *FortiOS* VM images by default have a 15 day evaluation license. The VM has [limited capabilities](https://docs.fortinet.com/document/fortigate-private-cloud/6.0.0/fortigate-vm-on-kvm/504166/fortigate-vm-virtual-appliance-evaluation-license) without a license file. It will work for 15 days from first boot, at which point you must install a license file or recreate the vagrant box completely from scratch. |
| 20 | +* Ansible automation of FortiOS requires the installation of the [FortiOS Ansible Collection 2.1.3 or greater](https://galaxy.ansible.com/fortinet/fortios) and a FortiOS version > 6.0. |
| 21 | +* Ansible configuration of OSPF is currently broken due to a [suspected bug](https://github.com/fortinet-ansible-dev/ansible-galaxy-fortios-collection/issues/150) in the FortiOS Ansible Collection. To work around this issue, you must manually configure a OSPF network statement by logging in to the device after initial provisioning. For example: |
| 22 | + |
| 23 | +```bash |
| 24 | +vagrant ssh fw |
| 25 | +config router ospf |
| 26 | +config network |
| 27 | +edit 1 |
| 28 | +set area 0.0.0.1 |
| 29 | +set prefix 0.0.0.0/0 |
| 30 | +end |
| 31 | +end |
| 32 | +``` |
| 33 | + |
| 34 | +### FRR<a name="frr"></a> |
| 35 | + |
| 36 | +* *containerlab* FRR containers run FRR release 7.5.0 -- the latest release that survives FRR daemon restart during the initial configuration process. |
| 37 | +* FRR project does not create usable Ubuntu packages. Use Cumulus Linux if you'd like to run FRR within a VM. |
| 38 | + |
| 39 | +### Generic Linux<a name="linux"></a> |
| 40 | + |
| 41 | +* *Generic Linux device* is a Linux VM running Ubuntu 20.04 or an Alpine/Python container. To use any other Linux distribution, add **image** attribute with the name of Vagrant box or Docker container to the node data[^1]; the only requirements are working Python environment (to support Ansible playbooks used in **netlab initial** command) and the presence of **ip** command used in initial device configuration. See also [host routing](#host-routing). |
| 42 | + |
| 43 | +[^1]: You can also set the **defaults.devices.linux.image._provider_** attribute to change the Vagrant box for all Linux hosts in your lab. |
| 44 | + |
| 45 | +#### Host Routing |
| 46 | + |
| 47 | +Generic Linux device is an IP host that does not support IP forwarding or IP routing protocols. It uses static routes set up as follows: |
| 48 | + |
| 49 | +* IPv4 default route points to Vagrant management interface (set by Vagrant/DHCP). |
| 50 | +* IPv6 default route points to whichever adjacent device is sending IPv6 Route Advertisement messages (default Linux behavior). |
| 51 | +* IPv4 static routes for all IPv4 address pools defined in lab topology point to the first neighbor on the first non-management interface. |
| 52 | + |
| 53 | +**Corollary:** Linux devices SHOULD have a single P2P link to an adjacent network device. If you encounter problems using any other lab topology, please submit a Pull Request fixing it instead of complaining ;) |
| 54 | + |
| 55 | +#### LLDP |
| 56 | + |
| 57 | +* LLDP on Generic Linux is started in Ubuntu VMs but not in Alpine containers. |
| 58 | + |
| 59 | +### Juniper vSRX<a name="juniper_srx"></a> |
| 60 | + |
| 61 | +* It's possible to run Juniper vSRX under Virtualbox if you build your own Vagrant boxes. |
| 62 | +* After building Vagrant boxes, edit **devices** section of **topology-defaults.yml** file to add Virtualbox support for individual network devices. |
| 63 | + |
| 64 | +### Mikrotik CHR RouterOS<a name="mikrotik"></a> |
| 65 | + |
| 66 | +* LLDP on Mikrotik CHR RouterOS is enabled on all the interfaces. |
0 commit comments