# Terms

This section lists the basic terms used when creating a .yml topology file. Overall, the structure is intuitive if you're familiar with Infrastructure-as-Code (IaC) tools, so feel free to skip ahead and revisit this section later if anything seems unclear.

**provider** — defines the virtualization backend used to deploy network nodes. Available options include  clab (Containerlab) — container-based lab environments, libvirt — QEMU/KVM-based virtual machines,  external — pseudo-provider for integrating external devices,  virtualbox — legacy support; partially functional and no longer actively maintained. Due to platform constraints, all labs in this project were deployed using [Containerlab](https://containerlab.dev/).

**module** —  configuration template used during device setup. Modules define protocol-specific behavior and automation logic. Examples include bgp, ospf, lacp etc.

**plugin** — dynamic templates designed to simplify the creation of topology files. Plugins encapsulate reusable logic and patterns, reducing boilerplate and improving consistency across lab definitions. Netlab includes a set of [built-in plugins](https://netlab.tools/plugins/) for common use cases, such as automatic interface naming, address allocation, and protocol-specific enhancements.

**group** — logical grouping of nodes that share common attributes such as platform type, configuration modules or protocol settings.

[**components**](https://netlab.tools/components/)  — a structural construct used to define reusable and consistent elements within the topology file.&#x20;

**node** —  network device instantiated within the lab topology. Each node represents a virtual router, switch, or host that participates in the emulated network scenario.

**device** — specifies the type of network appliance to be instantiated within the lab. [Device support](https://netlab.tools/platforms/#supported-virtual-network-devices)

**image** — specifies the container or VM image used to instantiate the device.

**links** — network connections&#x20;

[**tools**](https://aeangel.gitbook.io/netlab_for_otus/en-docs/netlab-workaround/07_extra_tools) — auxiliary utilities or services that can be integrated into the lab environment

Network-specific terms such as vrf, lacp, bgp, etc. are intentionally omitted, as this documentation is intended for network engineers rather than DevOps practitioners.
