Skip to content

giros-dit/network-inventory

Repository files navigation

network-inventory

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.

Requirements

  • Docker (tested with 20.10.12)
  • docker-compose (tested with 1.29.1)
  • Arista cEOS 2.47.4M (more details below)
  • Postman

Arista cEOS routers

Before starting the docker-compose scenario, the Arista cEOS image must be downloaded and imported in the system.

  1. Download Arista cEOS 2.47.4M image from arista.com.

  2. Import image in Docker:

    docker import cEOS64-lab-4.27.4M.tar.xz ceos-image:4.27.4M

Network Topology

The scenario deploys the network inventory along with a network topology as depicted below:

topology

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.

Quick Start

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.

Stop the scenario

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

Clean slate scenario

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

Postman Collection

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.

About

Prototype implementation of the Network Inventory

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages