This repository contains a prototype implementation of a network inventory. The components of the prototype are developed as Docker containers and deployed using docker-compose.
- Docker (tested with 20.10.12)
- docker-compose (tested with 1.29.1)
- Arista cEOS 2.47.4M (more details below)
- Postman
Before starting the docker-compose scenario, the Arista cEOS image must be downloaded and imported in the system.
-
Download Arista cEOS 2.47.4M image from arista.com.
-
Import image in Docker:
docker import cEOS64-lab-4.27.4M.tar.xz ceos-image:4.27.4M
The scenario deploys the network inventory along with a network topology as depicted below:
Two Arista cEOS routers, r1
and r2
, are deployed and interconnected through a point-to-point link. Additionally, the vm1
and vm2
containers emulate servers connected to each Arista router. These servers will help at testing end-to-end connectivity in the scenario.
The Arista routers also include a management interface in a default
virtual network. This network will also be used the components of the network inventory to communicate with the routers.
Deploy the scenario with docker-compose (execute with daemon flag to send logs to background):
docker-compose up -d
The first time you run this command it will take a couple of minutes. The reason to this is that docker-compose will build images for the network inventory components that were developed, namely, catalog-connector and platform-registry.
Once Docker images are successfully built, the network inventory is deployed and the network topology is configured. At startup, the catalog-connector
will connect to the YANG Catalog API and load all metadata. This process takes 30 minutes approximately.
You can destroy the scenario by running:
docker-compose stop
This command will just stop all Docker containers. The docker-compose scenario has been configured to persist the context information that was stored in the NGSI-LD Context Broker. Thus, you can continue where you left off by simply starting the scenario again.
docker-compose up -d
In case you want start with a clean slate scenario, remove the docker volume for the Contex Broker:
docker volume remove network-inventory_scorpio-postgres-storage
Now you are ready to start the scenario as if it was the first time:
docker-compose up -d
This repository includes a Postman collection to facilate the interactions with the Context Broker through the NGSI-LD API as described in the paper.
The collection is divided in two main folders:
-
Platform Registry: Contains a request to register router
r1
through the Platform Registry REST API. This is a preliminary step in the case study as this registration request triggers in the Platform Registry the discovery of capabilities of this particular Arista router. -
Catalog Connector: Contains a set of queries to the NGSI-LD API of the Context Broker. These queries are to be executed in order as covered in the paper.