All pages
Powered by GitBook
Couldn't generate the PDF for 141 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

ONES Application

Overview

Below are the primary components of ONES Application

  • ONES Telemetry Collector(s) for Network Visibility

  • ONES Rule Engine

  • ONES Orchestrator for Fabric Configuration

  • ONES Supportability

  • ONES Security

  • ONE DL (DataLake)

ONES Time Scale Metric Calculation

Overview

ONES Agent pushes all the telemetry at every 20 seconds to the ONES Collector, so DB will have the values of every 20sec, Further as per time series selection ONES-UI plots the Graph with different average values.

Below are the Average values Calculated by ONES-UI as per Time-Scale:

ONES Orchestration

Why do we need Network Orchestration?

Orchestration refers to tasks or actions required to achieve a set of objectives for your Network Infrastructure operations

A centralized application like ONES translates these objectives into a network configuration template, applies and monitors to validate the operational efficiency and functionality

Automated tasks are performed on your Network Fabric in a purposeful order and each step is verified for success before moving to the next

12Hours

5Minutes

180

1Day

10Minutes

180

1Week

1Hour 10Minutes

180

2Weeks

2Hours 20Minutes

180

Time Series

Average between 2 data points

Data Points

Reference

1Hour

30sec

120

2Hours

40sec

180

4Hours

1Minute 20sec

180

ONES Orchestration - Overview

ONES Orchestration function, referred to as Fabric Manager (FM), lets you compose, deploy, and validate network configurations across any SONiC, be it a Community version or a Vendor distro.

As part of the initial release, ONES Orchestration supports to

  • Create and configure CLOS topology for ToR, Leaf, Spine, and Super-Spine layers

  • Apply and validate configurations pre- and post-deployment

  • Compare running configs against applied configs at any point

  • Upgrade devices with a single click via ZTP or custom NOS images

  • Restore & Backup configuration feature

  • Yaml-based config for VXLAN, MCLAG, BGP IP CLOS & EVPN(L2VPN), EVPN Multihoming, L3 EVPN Symmetric IRB, L3EVPN symmetric IRB with MCLAG.

  • Automate Configuration of interfaces, layer 3 interfaces, BGP-unnumbered and Common Services like NTP, SNMP, SYSLOG etc.

ONES Orchestration use cases are configured using a set of pre-defined YAML-based templates on ONES Web User Interface

FMCLI

Fabric Manager CLI

FMCLI is an Industry standard Command Line Interface

Once the user installs Orchestrator Agent (Fabric Manager Agent) on the device, it enables FMCLI

FMCLI provides a user interface to configure all the open standard protocols and is user-friendly

To use FMCLI, the user can run fmcli command on the device to enter in the configuration mode and can configure the protocols or any other required feature

Example of BGP config using fmcli

Supported FMCLI Features
  • Zero Touch Provisioning

  • Image Management

  • Configuration Management

  • Interface Management

  • VLAN's

  • Spanning Tree Protocol

  • VXLAN

  • L2 Forwarding Database

  • LLDP

  • LACP

  • DHCP Relay

  • IP Management

  • ARP

  • PING

  • Traceroute

  • Routing

  • BGP*

  • NTP

  • SYSLOG

  • Platform Details

  • SFLOW

  • NAT

  • Forward Error Correction

  • BFD

  • SNMP

  • VRF

  • AAA & TACACS

  • Drop Counters

  • ERSPAN

  • IP Based ACL

  • Prefix-list

  • EVPN Multihoming

  • Route-map

NetOps API

NetOps API can be used to integrate into customer-running applications, and can be used to perform the Day 1 and Day N configuration, Using NetOps API a user can do all the configurations and can also perform the Partial Configuration

Few Operations can be done By NetOps API

  • Day-1 Operations: intent upload

  • SONiC NOS upgrade

  • Device Reboot

  • Difference between the Golden Config and running configuration //running & applied configuration

  • Backup Running Configuration

  • Replace Config

    • If config is done by the ONES then only the user can use this replace option to modify the config.

  • ZTP Upgrade

For more Details on NetOps API check OVD.ai

Open Networking Enterprise Suite (ONES)

Introduction and Overview

Open Networking Enterprise Suite (ONES) is a Network Orchestration, Visibility, and Assurance solution for multi-vendor and multi-NOS operated Network Infrastructure. ONES provides a one-stop solution from delivering deep visibility into your datacenter networks to extending 24x7 support functions for SONiC. It also hosts a powerful analytics engine that assists users to identify network issues and troubleshoot their networks, in case of common network anomalies and disruptions.

ONES uses Auto-discovery for SONiC devices and a YAML or CSV-based template for adding non-SONiC devices during the onboarding process and continuously collects streaming telemetry data from them to provide insights on;

  • Data Center Inventory

  • Network State

  • Platform and System Health

  • Control and Data Plane resource Utilisation

ONES monitors various control and data plane metrics to provide these insights.

Rule Engine

ONESv2.1 application has the capability to trigger notifications via Slack app notifications when certain user-defined threshold values are breached.

In data centre operations, a rule engine with alerts for various metrics is essential for proactive monitoring and management of critical components and services. Rule Engine pushes the configured rule notification in case any device breaches the threshold value configured under the rule to SLACK Channel & Zendesk Support page.

Let's see the different types of rule engine metrics for specific Entity/features in a data centre environment

  1. CPU and Memory Utilisation

  2. Fan and PSU LED status

  3. Traffic Bandwidth

  4. ASIC Routes

ONES Orchestration

ONES orchestration provide network admins to automate the fabric configuration using configuration templates for provisioning physical interfaces, layer 3 configuration for building IP-CLOS fabric using

  • BGP as a routing protocol including BGP-unnumbered

  • Symmetric/Asymmetric IRB

  • BGP Peering with PO

  • L2/L3 MC-LAG

ONES orchestration not only configures the fabric but also make sure the Fabric is operational by doing verifying the configuration at every stage.

ONES provides north bound API access for configurations originating from external orchestration tools.

Data Lake

A data lake is a centralized repository that allows you to store vast amounts of structured, semi-structured, and unstructured data in its raw format. Unlike traditional data warehouses where data is stored in a structured manner, a data lake retains the data in its native format until it's needed for analysis or processing. ONES provide the capability to store the RAW data of all the Metrics to Cloud and then user will be able to use that RAW data for any deployment or any other use cases.

Here are key components and characteristics of a ONE DL.

  1. Storage of Diverse Data Types: A data lake can store various types of data, including structured data (like relational databases), semi-structured data (like JSON, XML), and unstructured data (like documents, images, videos). This flexibility allows organizations to ingest and store data from different sources without the need for extensive preprocessing.

  2. Scalable and Cost-Effective Storage: Data lakes are typically built on scalable storage systems, such as cloud-based object storage (e.g., Amazon S3, Azure Data Lake Storage) or Splunk . These systems can efficiently handle large volumes of data and offer cost-effective storage solutions.

  3. Schema-on-Read Approach: In contrast to traditional data warehouses that use a schema-on-write approach (where data must be structured and conform to a predefined schema before storage), data lakes adopt a schema-on-read approach. This means that data is stored in its original form, and the schema is applied at the time of data retrieval or analysis. This flexibility allows users to apply different schemas and interpretations to the same dataset based on their analytical needs.

In summary, ONE DL provides a flexible and scalable platform for storing, managing, and analyzing diverse data types at scale. By leveraging a schema-on-read approach and supporting various analytics tools, ONES DL facilitate advanced data analytics and enable organizations to derive valuable insights from their data assets. However, proper governance, security, and metadata management are crucial to ensure the usability, reliability, and integrity of data lakes.

admin@fmcli:~$ fmcli
fmcli# configure terminal 
fmcli(config)# router bgp 1001
fmcli(config-router)# neighbor 10.10.10.1 remote-as 100
...
...

Traffic Utilisation

  • Software Compliance

  • Health Services

  • Traffic Errors and Discard Counters

  • BGP Neighbours flapping notification

  • Device down status

  • Link flap status

  • Device SSD Memory Utilization, Health and Temperature

  • ROCE Counters

  • EVPN MultiHoming

  • Layer2 Leaf-Spine (L2/L3 Mode)

  • Rack-to-Rack Deployment

  • BGP Peering over MC-LAG PeerLink

  • BGP Peering using separate Link between MC-LAG Peers

  • SFLOW

  • DHCP Relay

  • SAG / SVI

  • NTP, SNMP, SYSLOG

  • Incremental Config update for L2VNI/L3VNI

  • Enhanced backup and restore options via UI

  • Enhanced API support - Config Replace

  • Support for Big Data Processing and Analytics: Data lakes serve as a foundational component for big data analytics and processing. Users can perform various analytics tasks, including exploratory data analysis, data mining, machine learning, and real-time analytics, directly on the data lake. Tools like Apache Spark, Apache Hive, and Presto are commonly used for querying and processing data stored in data lakes.

  • Support for Data Discovery and Self-Service Analytics: Data lakes enable data discovery and self-service analytics, empowering users to explore and analyze data without extensive dependencies on IT teams. Data scientists, analysts, and business users can access relevant data directly from the data lake, speeding up insights generation and decision-making processes.

  • ONES Security

    ONES is a support application for SONiC stack. It is designed for customer's engineering team such as SRE’s, HW and SW engineering teams for their daily network diagnosis and troubleshooting needs. In addition to that ONES exposes the API to integrate with external tools or customer homegrown applications.

    This section describes how ONES authenticates users and secures communication.

    Features
    ONES Support

    RBAC: Role-Based Access Control

    Secure Access to the Application

    ONES application provides HTTPs over standard port 443 supporting both self-signed and CA signed certificates.

    • HTTPS Support CA Signed

    • HTTPS Self Signed

    Secure Access to the switch*

    ONES utilizes gRPC infrastructure to communicate with switch agents. TLS (Transport Layer Security) is the primary security protocol used by gRPC to secure communication between the client and the server. TLS provides authentication, confidentiality, and integrity of data. Authentication is achieved using digital certificates, which verify the identity of the client and the server.

    With an added extra layer of security, ONESv2.1 support Certificate based communication between switches and ONES Controller, and all the metrics will be streamed using the certificate-based encryption

    Agent Based Deployment with TLS certificate

    Transport Layer Security (TLS) is a crucial protocol that ensures secure communication between ONES Controller and Agent, Whenever Agent will register to ONES server and further it will start sending the update it will encapsulate all the metrics and will do the encryption based on certificate provided at the time of installation, by using this all the communication will be encrypted between ONES agent and ONES controller TLS relies on digital certificates issued by trusted Certificate Authorities (CAs) to authenticate servers and sometimes clients. These certificates validate the identity of the entities involved in the communication and establish trust in the encrypted connection.

    Role Based Access

    ONES provide RBAC support for creating dedicated user accounts. it has a superadmin account which can manage these user accounts for control and permissions

    Secure Access to Application

    ONES Application provides HTTPS over standard port 443 supporting both self-signed and CA-signed certificates

    Secure Access to switches

    Auto-discovery communication between Agent and collector using a secure channel(SSL/TLS) with certificates (self-signed and CA-signed certificates

    API Access

    ONES Application provides HTTPS over standard port 443 supporting both self-signed and CA-signed certificates, the API is available via time-bound authentication tokens.

    Click to get more details on RBAC

    What's new?

    ONES Package

    • Installation Allow user to add DataLake end point

    • Agent installation Allow user to add one more controller IP without reinstallation of ONES-Agent

    ONES UI

    • New Topology Page with more filters

    • Device SSD Details

      • Temperature

      • Health

    ONES Telemetry

    • SSD Resource Check

      • Temperature

      • Health

      • Memory

    ONES Orchestration

    • Yaml Config Illustrator

    • Multivendor SONiC Support

    • Improved Session Management

    • Seamless Copy-Paste Functionality

    ONES Rule-Engine

    • SSD Temperature

    • SSD Health

    • SSD Memory

    • Device Down

    ONE DL 1.0.0

    • Integration of Splunk

    • Integration of Amazon S3

    Used Memory

  • Total Memory

  • Device Reachability status

  • Cloud Service (DataLake)

    • Splunk

    • Amazone S3

  • License Page modification

  • CISCO NXOS (GRPC)

    Enhanced Deployment Readiness
  • Over 70 Pre-Validated Templates for Streamlined Network Operations

  • Interface flap
  • PFC Counters

  • Queue Transmit Counters

  • ONES Installation

    Subscription

    ONES provides the following subscriptions to manage and monitor the devices.

    Subscription Type
    Details

    8

    Support up to 8 devices

    16

    Support up to 16 devices

    32

    Support up to 32 devices

    64

    • SONiC Trail License

    • SONiC Support

    • SONiC NetOps (Includes SONiC Support)

    For Trail License Engineer needs to contact to AVIZ support Team.

    Installation Pre-requisites

    Installation Overview

    ONES Installation follows the below steps in the order sequence of:

    • License Readiness

    • Preparing and Installing ONES Application machine

    • Installing ONES Agents on SONiC Switches for Orchestrator and Telemetry

    • Enabling OpenConfig on non-SONiC Switches for Telemetry

    License Readiness

    After installation of ONES application user needs to contact AVIZ support to generate a trail license, trail license works for 8 devices and upto 30 days a customer can use.

    • ONES Application License (As per device count)

    Trail license support feature

    • Telemetry Visibility (Monitor, inventory, analytics)

    • Add/remove Non-SONiC devices via YAML or CSV

    • Support (Zendesk)- Ability to open a ticket with inventory dump

    • Syslog access, Console/SSH access for device

    To obtain a license, contact support@aviznetworks.com providing the below details;

    • License Duration - In Years (1-5)

    • Devices Count - 8, 16, 32, 64, 128, 256, 512 or 1024

    • ONES installation ID

    • Email ID: (For Account creation)

    Users can get the ONES installation ID on the ONES-UI Login page after the installation

    System Hardware Requirements – ONES Application

    In the current release, ONES can support managing up to 1024 devices. For ONES Application Installation, the system hardware requirements vary based on the number of devices to manage;

    Devices
    Processor and Cores
    RAM
    Storage

    System Software Requirements - ONES Application

    OS
    Libraries
    Task
    Command
    Validation

    ONES Application package will take care of this prerequisite at the time of installation, Package verify the availability of the dependencies first then execute the application scripts

    Note* Script do not take care about the update to latest version of ubuntu

    Customer Firewall Configuration (Ports to be opened)

    Ports to be open from Agent(Source) to ONES controller(Destination)

    These ports has to be enable on ONES Controller

    ONES Service
    Port Numbers

    Ports to be open from ONES controller(source) to Agent(Destination)

    These ports has to be enable on Device(Switch)

    ONES Service
    Port Numbers

    Ports to be open on ONES Server for ONES Services

    ONES Service
    Port Numbers

    Ports to be open for HTTPS Access

    HTTPS port has to be enable if a firewall is present in between User-machine and ONES-Controller

    ONES Service
    Port Numbers

    These port numbers should be available to use and all ports must be allowed in the firewall if the Database server and devices are in the different DMZ zone

    sudo iptables -L // This command can be used to verify the used ports

    Network Switch (Managed Node) Configuration Requirement

    • SSH is enabled

    • Network Reachability from ONES Application

    • OpenConfig feature is enabled (for non-SONiC Switches)

    Browser Requirements for ONES Web User Interface access

    • Google Chrome version 107 or later

    • Mozilla Firefox version 106 or later

    Support up to 64 devices

    128

    Support up to 128 devices

    256

    Support up to 256 devices

    512

    Support up to 512 devices

    1024

    Support up to 1024 devices

    Free(30 Days Trial)

    Support up to 8 devices

    Contact Aviz support team for subscription details
    License Module Subscription

    128GB

    6 TB or more

    512

    x86/x64 based,

    32-core CPU

    256GB

    12 TB or more

    1024

    x86/x64 based,

    64-core CPU

    512GB

    20 TB or more

    sudo apt-get install docker-compose

    docker-compose version​

    Install Python3

    sudo apt-get install python3

    python3 –-version

    Install Python3-pip

    sudo apt-get install python3-pip

    pip3 –-version

    Install Paramiko

    sudo apt-get install python3-paramiko

    ​pip show paramiko

    Install SCP-Client

    sudo pip3 install scp

    pip show scp

    8080

    stream-processer

    8093

    ksqldb-server

    8088

    kafka-connect

    8083

    schema-registry

    8081

    broker

    29092, 9101, 9092

    Zookeeper

    2181

    ONES Collector

    50053

    8/16/32/64

    x86/x64 based,

    16-core CPU

    32GB

    160GB/320GB/640GB/1.2 TB

    128

    x86/x64 based,

    16-core CPU

    64GB

    3 TB or more

    256

    Ubuntu 18.0 or later

    docker, docker-compose

    python3, python3-pip

    paramiko

    scp

    Ubuntu Server

    Installer file (Version 18 or higher)

    lsb_release -a

    Update to latest packages

    sudo apt-get update

    NA​

    Install Docker

    sudo apt-get install docker.io

    ​docker ps​

    ONES Collector

    50053

    Switch Access over SSH

    22

    ONES Monitoring

    50052

    gNMI Gateway (Telemetry)

    9339

    ONES Telemetry Database

    5432

    ONES Orchestrator

    8787

    ONES Orchestrator Database

    2345

    pty-server

    8885

    ONES Web GUI

    443

    x86/x64 based,

    32-core CPU

    Install Docker-compose

    API-Server

    ONE-DL cloud Deployment

    Using this section user can install ONES-DL backend AWS

    Provisioning an EC2 Instance

    AWS EC2 Instance Sizing for Event Ingestion

    For efficient event ingestion, it's crucial to select the right EC2 instance type based on your event volume:

    • 200K events/sec: Start with a minimum of an m5.4xlarge instance.

    • Up to 400K events/sec: Scale up to an m5.8xlarge instance.

    • Up to 600K events/sec: Opt for an m5.12xlarge instance.

    • For higher volumes: Continue scaling in similar increments.

    Install Docker

    Install Docker Compose

    Install ONE-DL

    • Copy the ONE-DL package to AWS Instance

    • Untar the ONE-DL package

    • Modify the .env file with given input

    • Run ./one-dl-multitenant-installer.sh

    Document the `instance_id`, `vpc_id`, `region`, and `security_group_id` of the provisioned instance.
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ tar -xvf one-dl.tar.gz
    docker-compose.yml
    one-dl-multitenant-installer.sh
    .env
    ZOOKEEPER_SERVER_VALUE=    //Public DNS
    KAFKA_SERVER_VALUE=        //Public DNS
    SCHEMA_REGISTRY_SERVER_VALUE=    
    INSTANCE_ID=               //Instance ID
    VPC_ID=                    //VPC ID
    REGION=                    //REGION ID
    SG_ID=                     //SG ID
    sudo apt update
    
    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt update
    
    apt-cache policy docker-ce
    
    sudo apt install docker-ce
    
    mkdir -p ~/.docker/cli-plugins/
    curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
    
    chmod +x ~/.docker/cli-plugins/docker-compose
    
    docker compose version
    
    aviz@aviz % ssh -i ones-dl-qa.pem ubuntu@34.215.5.89
    Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 6.2.0-1018-aws x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/pro
    
      System information as of Thu Mar  7 06:17:12 UTC 2024
    
      System load:  0.01513671875      Processes:                224
      Usage of /:   1.0% of 247.92GB   Users logged in:          1
    ZOOKEEPER_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    KAFKA_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    SCHEMA_REGISTRY_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    INSTANCE_ID=i-06e36f82c35173cc9
    VPC_ID=vpc-09a64a3439e9c1022
    REGION=us-west-2
    SG_ID=sg-0057cdb5b97e1d218
    ~
    ".env" 7L, 323B                                                                                                                                     1,1           All
      Memory usage: 0%                 IPv4 address for docker0: 172.17.0.1
      Swap usage:   0%                 IPv4 address for ens5:    172.31.28.5
    
    
    Expanded Security Maintenance for Applications is not enabled.
    
    39 updates can be applied immediately.
    25 of these updates are standard security updates.
    To see these additional updates run: apt list --upgradable
    
    7 additional security updates can be applied with ESM Apps.
    Learn more about enabling ESM Apps service at https://ubuntu.com/esm
    
    
    Last login: Thu Mar  7 06:10:37 2024 from 18.237.140.163
    ubuntu@ip-172-31-28-5:~$
    ubuntu@ip-172-31-28-5:~$ pwd
    /home/ubuntu
    ubuntu@ip-172-31-28-5:~$ cd ONES-DL-CLOUD/
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ pwd
    /home/ubuntu/ONES-DL-CLOUD
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ ls
    one-dl.tar.gz
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ tar -xvf one-dl.tar.gz
    docker-compose.yml
    one-dl-multitenant-installer.sh
    .env
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ vi .env
    ZOOKEEPER_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    KAFKA_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    SCHEMA_REGISTRY_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    INSTANCE_ID=i-06e36f82c35173cc9
    VPC_ID=vpc-09a64a3439e9c1022
    REGION=us-west-2
    SG_ID=sg-0057cdb5b97e1d218
    
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ cat .env
    ZOOKEEPER_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    KAFKA_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    SCHEMA_REGISTRY_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    INSTANCE_ID=i-06e36f82c35173cc9
    VPC_ID=vpc-09a64a3439e9c1022
    REGION=us-west-2
    SG_ID=sg-0057cdb5b97e1d218
    
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ cp .env .env-backup
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ cat .env-backup
    ZOOKEEPER_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    KAFKA_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    SCHEMA_REGISTRY_SERVER_VALUE=ec2-35-93-19-159.us-west-2.compute.amazonaws.com
    INSTANCE_ID=i-06e36f82c35173cc9
    VPC_ID=vpc-09a64a3439e9c1022
    REGION=us-west-2
    SG_ID=sg-0057cdb5b97e1d218
    
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ ls
    docker-compose.yml  one-dl-multitenant-installer.sh  one-dl.tar.gz
    
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ ./one-dl-multitenant-installer.sh
    SHELL=/bin/bash
    REGION=us-west-2
    KAFKA_SERVER_VALUE=ec2-34-215-5-89.us-west-2.compute.amazonaws.com
    PWD=/home/ubuntu/ONES-DL-CLOUD
    LOGNAME=ubuntu
    XDG_SESSION_TYPE=tty
    SCHEMA_REGISTRY_SERVER_VALUE=ec2-34-215-5-89.us-west-2.compute.amazonaws.com
    MOTD_SHOWN=pam
    HOME=/home/ubuntu
    LANG=C.UTF-8
    LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
    VPC_ID=vpc-09a64a3439e9c1022
    LC_TERMINAL=iTerm2
    SSH_CONNECTION=43.224.130.156 61180 172.31.28.5 22
    LESSCLOSE=/usr/bin/lesspipe %s %s
    XDG_SESSION_CLASS=user
    TERM=xterm-256color
    LESSOPEN=| /usr/bin/lesspipe %s
    USER=ubuntu
    SG_ID=sg-04c3752b777d8f77e
    LC_TERMINAL_VERSION=3.4.16
    SHLVL=2
    XDG_SESSION_ID=5
    LC_CTYPE=C.UTF-8
    XDG_RUNTIME_DIR=/run/user/1000
    SSH_CLIENT=43.224.130.156 61180 22
    XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
    ZOOKEEPER_SERVER_VALUE=ec2-34-215-5-89.us-west-2.compute.amazonaws.com
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
    INSTANCE_ID=i-01300eb6edb18273b
    DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
    SSH_TTY=/dev/pts/1
    OLDPWD=/home/ubuntu
    _=/usr/bin/env
    us-west-2 i-01300eb6edb18273b vpc-09a64a3439e9c1022 sg-04c3752b777d8f77e
    Error response from daemon: No such container: zookeeper
    Error response from daemon: No such container: kafka
    Error response from daemon: No such container: schema-registry
    Error response from daemon: No such container: kafka-connect
    Error response from daemon: No such container: zookeeper
    Error response from daemon: No such container: kafka
    Error response from daemon: No such container: schema-registry
    Error response from daemon: No such container: kafka-connect
    {
        "Return": true,
        "SecurityGroupRules": [
            {
                "SecurityGroupRuleId": "sgr-07f887d736a7c773c",
                "GroupId": "sg-04c3752b777d8f77e",
                "GroupOwnerId": "259789323334",
                "IsEgress": false,
                "IpProtocol": "tcp",
                "FromPort": 29092,
                "ToPort": 29092,
                "CidrIpv4": "0.0.0.0/0"
            }
        ]
    }
    {
        "Return": true,
        "SecurityGroupRules": [
            {
                "SecurityGroupRuleId": "sgr-0d446cf43dbf8c55a",
                "GroupId": "sg-04c3752b777d8f77e",
                "GroupOwnerId": "259789323334",
                "IsEgress": false,
                "IpProtocol": "tcp",
                "FromPort": 9092,
                "ToPort": 9092,
                "CidrIpv4": "0.0.0.0/0"
            }
        ]
    }
    {
        "Return": true,
        "SecurityGroupRules": [
            {
                "SecurityGroupRuleId": "sgr-08d752b5cbfea8b1c",
                "GroupId": "sg-04c3752b777d8f77e",
                "GroupOwnerId": "259789323334",
                "IsEgress": false,
                "IpProtocol": "tcp",
                "FromPort": 2181,
                "ToPort": 2181,
                "CidrIpv4": "0.0.0.0/0"
            }
        ]
    }
    {
        "Return": true,
        "SecurityGroupRules": [
            {
                "SecurityGroupRuleId": "sgr-058962812f2650b4e",
                "GroupId": "sg-04c3752b777d8f77e",
                "GroupOwnerId": "259789323334",
                "IsEgress": false,
                "IpProtocol": "tcp",
                "FromPort": 8083,
                "ToPort": 8083,
                "CidrIpv4": "0.0.0.0/0"
            }
        ]
    }
    {
        "Return": true,
        "SecurityGroupRules": [
            {
                "SecurityGroupRuleId": "sgr-03a801549ac17a74d",
                "GroupId": "sg-04c3752b777d8f77e",
                "GroupOwnerId": "259789323334",
                "IsEgress": false,
                "IpProtocol": "tcp",
                "FromPort": 8081,
                "ToPort": 8081,
                "CidrIpv4": "0.0.0.0/0"
            }
        ]
    }
    {
        "Return": true,
        "SecurityGroupRules": [
            {
                "SecurityGroupRuleId": "sgr-01ae4abe9d99c0086",
                "GroupId": "sg-04c3752b777d8f77e",
                "GroupOwnerId": "259789323334",
                "IsEgress": false,
                "IpProtocol": "tcp",
                "FromPort": 8181,
                "ToPort": 8181,
                "CidrIpv4": "0.0.0.0/0"
            }
        ]
    }
    [+] Running 10/10
     ✔ zookeeper 9 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                         5.1s
       ✔ 23828d760c7b Pull complete                                                                                                                                  0.6s
       ✔ e2670537dceb Pull complete                                                                                                                                  0.5s
       ✔ 3c059ccfa418 Pull complete                                                                                                                                  0.6s
       ✔ a23d33d59f2a Pull complete                                                                                                                                  0.7s
       ✔ 842a648f5439 Pull complete                                                                                                                                  0.9s
       ✔ 278244c5561f Pull complete                                                                                                                                  0.9s
       ✔ 0ab51e87b8dc Pull complete                                                                                                                                  1.0s
       ✔ 26ff518a75d1 Pull complete                                                                                                                                  1.4s
       ✔ 050c7bc3a5c4 Pull complete                                                                                                                                  1.1s
    [+] Running 1/1
     ✔ Container zookeeper  Started                                                                                                                                  4.2s
    [+] Running 12/12
     ✔ kafka 11 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                          9.4s
       ✔ fe36fc382320 Pull complete                                                                                                                                  0.7s
       ✔ 4250354b4fb7 Pull complete                                                                                                                                  2.1s
       ✔ c4c5f447179d Pull complete                                                                                                                                  0.3s
       ✔ 17fe3a92262f Pull complete                                                                                                                                  0.6s
       ✔ 5420596c14ab Pull complete                                                                                                                                  1.1s
       ✔ 0e55377ebe37 Pull complete                                                                                                                                  0.9s
       ✔ da7039bb2113 Pull complete                                                                                                                                  1.1s
       ✔ d389b3791c2e Pull complete                                                                                                                                  1.4s
       ✔ c24709eccb2a Pull complete                                                                                                                                  1.4s
       ✔ ad79ffd84e00 Pull complete                                                                                                                                  2.4s
       ✔ 218229bf30d9 Pull complete                                                                                                                                  1.7s
    [+] Running 1/1
     ✔ Container kafka  Started                                                                                                                                      5.7s
    [+] Running 12/12
     ✔ schema-registry 11 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                               17.9s
       ✔ fe36fc382320 Already exists                                                                                                                                 0.0s
       ✔ 4250354b4fb7 Already exists                                                                                                                                 0.0s
       ✔ c4c5f447179d Already exists                                                                                                                                 0.0s
       ✔ 17fe3a92262f Already exists                                                                                                                                 0.0s
       ✔ 5420596c14ab Already exists                                                                                                                                 0.0s
       ✔ 0e55377ebe37 Already exists                                                                                                                                 0.0s
       ✔ da7039bb2113 Already exists                                                                                                                                 0.0s
       ✔ d389b3791c2e Already exists                                                                                                                                 0.0s
       ✔ c24709eccb2a Already exists                                                                                                                                 0.0s
       ✔ e69ded016b1a Pull complete                                                                                                                                  8.9s
       ✔ 83e8ec805f43 Pull complete                                                                                                                                  0.3s
    [+] Running 1/1
     ✔ Container schema-registry  Started                                                                                                                           18.7s
    [+] Running 21/21
     ✔ kafka-connect 20 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                        18.1s
       ✔ a49367d57626 Pull complete                                                                                                                                  0.7s
       ✔ eeec2f37f4a0 Pull complete                                                                                                                                  2.8s
       ✔ ae805807db54 Pull complete                                                                                                                                  1.4s
       ✔ c553584e96cc Pull complete                                                                                                                                  1.1s
       ✔ 28769e081b94 Pull complete                                                                                                                                  2.4s
       ✔ 151cf144f79d Pull complete                                                                                                                                  1.9s
       ✔ 04292bb11042 Pull complete                                                                                                                                  2.3s
       ✔ c2e0c70921ea Pull complete                                                                                                                                  2.7s
       ✔ e8d7f71a6ca4 Pull complete                                                                                                                                  2.9s
       ✔ eb27eb7b8f05 Pull complete                                                                                                                                  4.7s
       ✔ 9bb8b7d5f6a0 Pull complete                                                                                                                                  3.3s
       ✔ 302eaef771e0 Pull complete                                                                                                                                 11.7s
       ✔ 1d0d5b44b6f1 Pull complete                                                                                                                                  3.8s
       ✔ 22df7873ee50 Pull complete                                                                                                                                  4.4s
       ✔ 4f4fb700ef54 Pull complete                                                                                                                                  4.7s
       ✔ 972adc085ab6 Pull complete                                                                                                                                  7.0s
       ✔ c4f994822767 Pull complete                                                                                                                                  6.1s
       ✔ 70547799762d Pull complete                                                                                                                                  7.0s
       ✔ 3f0c034e271c Pull complete                                                                                                                                  7.5s
       ✔ b6195a937e7b Pull complete                                                                                                                                  7.7s
    [+] Running 1/1
     ✔ Container kafka-connect  Started                                                                                                                              4.6s
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$
    ubuntu@ip-172-31-28-5:~/ONES-DL-CLOUD$ sudo su
    root@ip-172-31-28-5:/home/ubuntu/ONES-DL-CLOUD# docker ps
    CONTAINER ID   IMAGE                             COMMAND                  CREATED              STATUS                             PORTS     NAMES
    ab8aa46cc746   avizdock/kafka-connect:latest     "/etc/confluent/dock…"   28 seconds ago       Up 23 seconds (health: starting)             kafka-connect
    346522f4baf5   confluentinc/cp-schema-registry   "/etc/confluent/dock…"   About a minute ago   Up About a minute                            schema-registry
    23c50c44bc5b   confluentinc/cp-kafka:latest      "/etc/confluent/dock…"   2 minutes ago        Up 2 minutes                                 kafka
    633eba10034d   zookeeper                         "/docker-entrypoint.…"   3 minutes ago        Up 3 minutes                                 zookeeper
    root@ip-172-31-28-5:/home/ubuntu/ONES-DL-CLOUD#

    CISCO NXOS (GRPC)

    CISCO NXOS support its own way to stream telemetry data using GRPC, we can enable GRPC and can get offered metrics from the device

    Enable GRPC

    switch-1# configure terminal
    switch-1(config)#
    switch-1# feature grpc
    switch-1(config)#
    switch(config)# grpc use-vrf default

    GRPC Verification

    Show run GRPC

    GRPC Service Statistics

    GRPC Summary

    Supported Telemetry

    switch# show run grpc
    !Command: show running-config grpc
    !Running configuration last done at: Mon Jan 29 13:59:36 2024
    !Time: Mon Jan 29 14:06:27 2024
    version 9.3(9) Bios:version 04.18
    feature grpc
    grpc use-vrf default
    switch# show grpc gnmi service statistics
    =============
    gRPC Endpoint
    =============
    Vrf            : management
    Server address : [::]:50051
    Status         : Running - certificate expired
    Cert notBefore : Jan 10 07:07:03 2024 GMT
    Cert notAfter  : Jan 11 07:07:03 2024 GMT
    Max concurrent calls            :  8
    Listen calls                    :  1
    Active calls                    :  0
    Number of created calls         :  32
    Number of bad calls             :  29
    Subscription stream/once/poll   :  15/0/0
    Max gNMI::Get concurrent        :  5
    Max grpc message size           :  8388608
    gNMI Synchronous calls          :  20496
    gNMI Synchronous errors         :  0
    gNMI Adapter errors             :  0
    gNMI Dtx errors                 :  0
    =============
    gRPC Endpoint
    =============
    Vrf            : default
    Server address : [::]:50051
    Status         : Running - certificate expired
    Cert notBefore : Jan 10 07:07:03 2024 GMT
    Cert notAfter  : Jan 11 07:07:03 2024 GMT
    Max concurrent calls            :  8
    Listen calls                    :  1
    Active calls                    :  0
    Number of created calls         :  1
    Number of bad calls             :  0
    Subscription stream/once/poll   :  0/0/0
    Max gNMI::Get concurrent        :  5
    Max grpc message size           :  8388608
    gNMI Synchronous calls          :  0
    gNMI Synchronous errors         :  0
    gNMI Adapter errors             :  0
    gNMI Dtx errors                 :  0
    
    switch# show grpc gnmi rpc summary
    =============
    gRPC Endpoint
    =============
    Vrf            : management
    Server address : [::]:50051
    Status         : Running - certificate expired
    Cert notBefore : Jan 10 07:07:03 2024 GMT
    Cert notAfter  : Jan 11 07:07:03 2024 GMT
    Capability rpcs    : 20474
    Capability errors  : 0
    Get rpcs           : 22
    Get errors         : 0
    Set rpcs           : 0
    Set errors         : 0
    Resource Exhausted : 0
    Option Unsupported : 0
    Invalid Argument   : 0
    Operation Aborted  : 0
    Internal Error     : 0
    Unknown Error      : 0
    RPC Type        State      Last Activity  Cnt Req    Cnt Resp   Client
    --------------- ---------- -------------- ---------- ---------- ----------------------------------------
    Subscribe       Listen     01/29 08:42:41          0          0
    =============
    gRPC Endpoint
    =============
    Vrf            : default
    Server address : [::]:50051
    Status         : Running - certificate expired
    Cert notBefore : Jan 10 07:07:03 2024 GMT
    Cert notAfter  : Jan 11 07:07:03 2024 GMT
    Capability rpcs    : 0
    Capability errors  : 0
    Get rpcs           : 0
    Get errors         : 0
    Set rpcs           : 0
    Set errors         : 0
    Resource Exhausted : 0
    Option Unsupported : 0
    Invalid Argument   : 0
    Operation Aborted  : 0
    Internal Error     : 0
    Unknown Error      : 0
    RPC Type        State      Last Activity  Cnt Req    Cnt Resp   Client
    --------------- ---------- -------------- ---------- ---------- ----------------------------------------
    Subscribe       Listen     01/10 08:12:32          0          0
    switch#
    switch# show grpc gnmi transactions
    =============
    gRPC Endpoint
    =============
    Vrf            : management
    Server address : [::]:50051
    Status         : Running - certificate expired
    Cert notBefore : Jan 10 07:07:03 2024 GMT
    Cert notAfter  : Jan 11 07:07:03 2024 GMT
    RPC          DataType   Session         Time In              Duration(ms) Status
    ------------ ---------- --------------- -------------------- ------------ ------
    Capabilities -          0               01/29 12:04:07       0            0
    Capabilities -          0               01/29 12:03:47       0            0
    Capabilities -          0               01/29 12:03:35       0            0
    Get          ALL        3698131864      01/29 08:43:34       1186         0
    ...
    ...
    ...
    
    switch# show telemetry yang direct-path cisco-nxos-device
    1) Cisco-NX-OS-device:System/lldp-items
    2) Cisco-NX-OS-device:System/mac-items
    3) Cisco-NX-OS-device:System/intf-items
    4) Cisco-NX-OS-device:System/procsys-items
    5) Cisco-NX-OS-device:System/ipqos-items/queuing-items/policy-items/out-items
    6) Cisco-NX-OS-device:System/ch-items

    KVM ONES Deployment

    QCOW Deployment

    Download Qcow2 Package

    • Work with Aviz Sales/Support contact to create an account on Aviz Networks Support Portal

    • Login to with your account credentials

    • Click on the Downloads section, under ONES, click to download ONES Release 2.1

    • Copy ONES Release 2.1 package (qcow2) to KVM Hypervisor Server

    Create the VM using GUI App virt-manager

    If your host server has Ubuntu Desktop and virt-manager installed you can use it to deploy the VM. Make sure you can start the Virtual Machine Manager and that it connects successfully to the local hypervisor.

    Creating a VM with virt-manager is very straightforward, Use the following steps to deploy the ONES-Application

    • File -> New Virtual Machine -> Import existing disk image -> Forward

    Now the ONES Application is ready to use

    Create the VM using QEMU (XML configuration)

    • Create an XML configuration file from the following template using vi

    • Create a Linux bridge configuration file (bridged-network.xml) for libvirt from the following template

    • Define the Linux bridge for the VM

    • Start the VM

    If you see a permission error run the virsh command with sudo may fix the issue

    • Check the VM status

    Credentials to access ONES QCOW2 VM

    VMware ONES Deployment

    Download OVA Package

    • Work with Aviz Sales/Support contact to create an account on Aviz Networks Support Portal

    • Login to

    with your account credentials
  • Click on the Downloads section, under ONES, and click to download ONES Release 2.1

  • VM Compatibility

    ONES-2.1.0 OVA support below Versions of VMware Family

    Import OVA to ESXI Server

    • Login to ESXI >> Create / Register VM

    • Choose Deploy a virtual machine from an OVF or OVA file >> NEXT

    • Give it a Valid Name >> Click to select Files or drag/drop (upload from the download folder)

    • Choose the downloaded OVA package >> NEXT

    • Choose preferred storage to run ONES-2.1.0 VM >> NEXT

    • Choose a Network Adapter to provide DHCP IP to ONES App (Management interface/Eth0) >> NEXT

    • Verify all the inputs >> FINISH

    After the OVA upload to ESXi is complete and the status indicates "Successful," the user will then be able to use ONESVM.

    • ONES is Ready to use >> Power On the ONES VM

    Credentials to access ONES OVA VM

    Once logging into the server CLI using below credentials, please continue with the next steps that is Ones Agent Installation

    Expand HDD

    vCPU & RAM can be expended without any dependency

    https://support.aviznetworks.com
    https://support.aviznetworks.com

    ONES Web GUI Administration

    ONES User Interface - Features

    • SONiC Devices use auto-discovery

    • Non-SONiC devices needs to add using YAML editor or using CSV file

    Username: aviz
    Password: Aviz@123
    Expanding the HDD
    python3 vm-hdd-expand.py
    vi ones.xml
    <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
      <name>ONES_VM01</name>
      <memory unit='KiB'>4194304</memory>
      <currentMemory unit='KiB'>4194304</currentMemory>
      <vcpu placement='static'>4</vcpu>
      <resource>
        <partition>/machine</partition>
      </resource>
      <os>
        <type arch='x86_64' machine='pc-i440fx-1.5'>hvm</type>
        <boot dev='hd'/>
      </os>
      <features>
        <acpi/>
        <apic/>
      </features>
      <clock offset='utc'/>
      <on_poweroff>destroy</on_poweroff>
      <on_reboot>restart</on_reboot>
      <on_crash>restart</on_crash>
      <devices>
        <emulator>/usr/bin/qemu-system-x86_64</emulator>
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2' cache='writeback'/>
          <source file='/home/oper/taas_vm/ones.qcow2' />
          <target bus='virtio' dev='vda'/>
        </disk>
        <serial type='pty'>
          <source path='/dev/pts/3'/>
          <target port='0'/>
        </serial>
        <!-- Management interface eth0 -->
        <interface type='network'>
    	<model type='e1000' />
            <source network='br0'/>
            <address type='pci' domain='0x0000' bus='0x00' slot='0x00' function='0x0'/>
        </interface>
       <controller type='usb' index='0'/>
        <memballoon model='virtio'>
          <alias name='balloon0'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
        </memballoon>
      </devices>
    </domain>
    User Inputs in XML File
    Line #2   The Name of the VM
    Line #3   The amount of System Memory for the VM
    Line #4   The amount of System Memory for the VM
    Line #5   The number of vCPU Core for the VM
    Line #25  The Path to the qcow2 VM image file
    Line #35  The name of the Linux bridge on the host machine
    vi bridged-network.xml
    <network>
        <name>br0</name>
        <forward mode="bridge" />
        <bridge name="br0" />
    </network>
    User Inputs in XML File
    Line #4 the name of the Linux bridge on the host machine
    #Execute the below command to attach the VM to the Linux Bridge 
    sonic@sonic-39:~$ virsh net-define bridged-network.xml
    sonic@sonic-39:~$ virsh net-start br0
    sonic@sonic-39:~$ virsh net-autostart br0
    sonic@sonic-39:~$ virsh net-list
     Name                 State      Autostart     Persistent
    ----------------------------------------------------------
     br0                  active     yes           yes
    
    sonic@sonic-39:~$ 
    virsh create <VM XML configuration file>
    
    #sonic@sonic-39:~$ virsh create ones.xml 
    #Domain ONES_VM01 created from ones.xml
    #sonic@sonic-39:~$ 
    
    sonic@sonic-39:~$ virsh list
     Id    Name                           State
    ----------------------------------------------------
     8     ONES_VM01                      running
    sonic@sonic-39:~$ 
    Username: aviz
    Password: Aviz@123
  • Deep Telemetry for ASIC and Switch Hardware

  • Device Inventory details on

    • Network Operating System (NOS)

    • Firmware versions - ONIE, BIOS, and CPLD

    • Hardware SKU, Model, ASIC, and Serial Number

    • Platform Components – Fan, PSU, Sensors

    • Link/Interface Health – Speed, Connectivity, Transceivers/Cables

  • Inventory Operations

    • Adding/Removing devices using YAML or CSV file

    • Agent Status Monitoring

  • Device Monitoring

    • Device Up/Down State based on Agent and Agent-less

    • Region and Zone Mapping

    • Device Roles – Access, Leaf-Spine, Super-Spine

  • Device Storage monitoring

    • SSD Temperature

    • SSD health

    • SSD memory

  • Network Compliance with version checks on

    • Telemetry Agent

    • Orchestrator Agent

    • ONIE, NOS, and Linux Distros versions

  • Resource Trends

    • CPU and Memory Utilization

    • PSU and Fan Readings

    • ASIC Capacity for Routes and ACLs

    • Software and Kernel Route capacity

    • Packet Counters – IN/OUT, Errors/Discards

  • Topology View

    • Device Connectivity view across Roles and Location

    • Link/Connectivity Status

    • Device or Component failure count

  • Routing Protocol

    • BGP 2 Byte and 4 Byte AS

    • BGP Neighbors

    • Advertised and Received Prefixes

    • Local AS Number

    • VXLAN

    • MGLAG

    • LACP

    • RoCE

  • Orchestrator Use Cases

    • YAML-based Configuration push

    • Image Management via ZTP

    • BGP Numbered(IPv4 & IPv6) and Unnumbered Configuration

    • BGP Peering with Port-Channel

    • NTP, SNMP, SFLOW, and SYSLOG Configuration

    • VXLAN

    • Symmetric/Asymmetric IRB

    • L2/L3 MC-LAG

    • EVPN MultiHoming

    • Layer2 Leaf-Spine (L2/L3 Mode)

    • Leaf only Deployment

    • BGP Peering over MC-LAG PeerLink

    • BGP Peering using separate Link between MC-LAG Peers

    • DHCP Relay

    • SAG / SVI

  • Licensing

    • Application License

    • Telemetry Agent License

    • Orchestrator Agent License

  • User Management

    • Add/Edit/Delete User

    • Role Management

  • API Access for configurations originating from External Orchestration Tools

  • Rule Engine

    • Slack Channel for push notification

    • Zendesk ticket generation

    • Rules status

  • Cloud Integration for DL

    • Splunk

    • Amazon S3

  • ONES allows users to leverage pre-defined templates, and customize them for Ports, IPv4/IPv6 Routes, BGP-Unnumbered, and Switch Services (NTP, SNMP, SYSLOG, ZTP, etc.) functions

    VMware ESXI

    ESXi 7.0 U2

    ESXi 7.0

    ESXi 6.5

    VMware Fusion

    Fusion 13.x

    Fusion 12.2.x

    Fusion 12.x

    VMware Workstation

    Workstation 17.x

    Workstation 16.2.x

    Workstation 16.x

    Configurations

    • Navigate to Configurations >> Configure Devices

    • Allows you to configure new devices

    • Supports valid YAML files

    • You can download the sample YAML file, edit it, and upload it again with the desired configuration

    YAML Config Illustrator

    While configuring the topology, users can utilize the "Visualize YAML" feature to preview the structure and layout.

    Navigate to Configurations >> Configure Devices >> <Upload Valid YAML> >> Visualize YAML

    NOTE: Follow the to know more about configuration and all the possible use cases.

    ONES Orchestration

    Devices

    This section explains how users can add/manage/remove the devices using ONES.

    Devices

    • Navigate to Inventory >> Devices

    • Using this tab, user can:

      • Onboard the non-sonic(Agent-Less) device to the application using Add devices

      • Syslogs capture

      • Upgrade the device using Custom Upgrade

    The user needs to make sure, The devices have a unique name, otherwise, there will issue while plotting the full topology view(Topology Page).

    Sonic Devices

    • Agent-based devices auto-discover the ONES-App and get registered automatically on the ONES Inventory page

    Add Non-Sonic Devices

    • To Onboard the Agent-Less devices user needs to add them manually

      • Navigate to Inventory

    • This page gives the control to onboard the devices with two options

      1. Add Devices using the YAML Editor

      2. Upload the CSV file containing the device list

    The movement user chooses CSV upload, then the YAML Editor will be disabled

    1. Add Devices using YAML

    • Click on Add Devices

    • Upload Device Inventory using YAML Editor

    • Navigate to Inventory >> Devices >> Add Devices >> Use YAML

    To Identify the device type user needs to mention the platform

    Device Type

    1. Cumulus: cumulus

    2. Arista: arista

    3. Cisco: cisco-nxos

    4. SONiC: sonic

    For SONiC-based devices, the user can also leave the type field empty

    • Make sure to use the correct indentation for the YAML files

    • Click Save & Apply

    • ONES Application is now ready to manage the added devices

    2. Add devices using CSV

    • Click on Add Devices

    • Upload Device Inventory using CSV File

    • Navigate to Inventory >> Devices >> Add Devices >> Use CSV

    • Use the below format to add devices to the application

    • Select CVS file to Upload >> Choose CSV file containing devices entry >>

    • Upload & Add

    Feature Set

    • Role / Region: Shows the device roles and regions

    • SKU / ASIC: Shows the device hardware SKU and ASIC vendor

    • Port / Max Speed

      • Shows the number of ports per device and max port speed on the device

    • PSUs / Fans: Shows the total number of Power supplies and Fans present on a particular device

    • NOS Image: Shows the details of the network operating system running on the device and when it was last updated

    • ONIE Version: Shows which ONIE version is running on the device and when the last reboot time of the device

    • Agent Version / Network OS: Shows the agent version running on the device and the current active OS version on the device

    Remove Devices from the ONES Application

    • Navigate to Inventory >> Devices >> Remove Devices

    • Choose the devices to be removed & confirm

    • once the user clicks on confirm, the Inventory page will remove the device

    If the devices are agent-based they will get added again after some time, if the user wants to remove the agent-based devices, then the user needs to uninstall the agent from the device

    • Now the selected devices have been removed from the ONES application

    Custom Upgrade

    This feature gives the control to upgrade the device to the new version

    An HTTP image link is required to use the custom upgrade

    • Select any of the devices to upgrade to the new version

    • Click on Custom Upgrade

    • put the new Image URL and then Submit

    It will show the status as In Progress

    HTTP image URL should be accessible

    This image will be downloaded to the device and configured as the next boot image and devices will be reloaded

    Once the device comes up with the new image, the ONES application will install Telemetry and Fabric manager agent

    when we upgrade any device that will be locked to do any further changes after a successful upgrade user can again use the same device for another task

    Once the image is loaded, the ONES application will show the last image details and time stamp

    Upgrade via ZTP

    Using this page a user can directly upgrade the box

    • Select any of the devices to upgrade via ZTP

    • Click on Upgrade via ZTP

    • Click on Yes

    when we upgrade any device that will be locked to do any further changes, after a successful upgrade user can again use the same device for another task

    Reboot Device

    • Here we will see how we can reboot a device using

    • We have the option to choose one or multiple devices at a time to reboot

    • Choose one of the devices that we want to reboot

    • Click on Reboot

    • Click on Yes

    While rebooting the device, the device will be locked to do any other task, once the reboot is successful, the lock will be removed and the user can take any new action

    Rule Engine

    Overview

    In data centre operations, a rule engine with alerts for various metrics is essential for proactive monitoring and management of critical components and services. Let's see the different types of rule engine alerts for specific metrics in a data centre environment

    1. CPU and Memory Alerts

    2. Fan and Power Supply Unit Alerts

    3. Traffic Bandwidth

    4. ASIC IPv4 & IPv6 Routes

    5. BGP Neighbour Alerts

    6. Health Services

    7. Device Down Alerts

    8. SSD Health, temperature and memory usage alert

    9. Device Queue counters

    10. PFC counters

    11. Traffic Errors and Discard Counters

    12. frr and syncd services CPU utilization status

    Push Notification

    Rule Engine pushes the configured rule notification in case any device breaches the threshold value configured under the rule to

    1. Slack channel

    2. Zendesk Support ticket

    To use Rule Engine feature User needs to setup first Slack channel integration or Zendesk Support integration

    Upgrade the device using ZTP (Zero Touch Provisioning)
  • Reboot individual devices or multiple devices by selecting them in one click

  • Remove the devices

  • Complete Inventory can be downloaded in CSV format

  • Use the below format to add devices to the application
  • Click on the number of ports to get a detailed view of all the ports on a particular device

  • Agent status / Last contact: Latest status of the Agent and when it was last communicated with that Agent.

  • Connect: Using this feature we directly get the CLI access of the device

    • SSH Connect

    • Console Connect

  • Details: This last option we can again use to get the details of the device

  • Rules Type

    Rules Type

    There are two types of Rule a user can configure

    1. Entity Based

      1. Allow a user to create Rules per device

        1. Allow user to include or exclude the devices from the rule

    2. Entity by Property

      1. Allow a user to create Rules by using HwSKU, Role, OS Version across all the managed devices

    1. Entity Based explained

    Possible Values & Description

    1. Rule Name: The user can choose any related name

    2. For: The user can choose 2 options

    Device: Once the user chooses the rule for Devices it will show the below Metrics
    • ASIC IPv4 Routes

    • ASIC IPv6 Routes

    Interface: Once the user chooses the rule for Interfaces it will show the below Metrics
    • Interface flap

    • Interface PFC Receive Counters

    1. Metrics: Metrics depend on the above (For: Device/Interface) condition

    2. Measure: Metrics are measured in three diff ways

      1. MIN

    Conditions

    1. When Measured Value is: This option allows a user to choose what condition has to match when the measured value is

      1. EQ: Equal to

      2. NEQ: Not Equal to

    Notification

    1. Notify: The user can choose the integrated SLACK Channel

    2. Create Ticker: Zendesk Users can choose this to raise the Zendesk support ticket

    3. Weekly Digest: Slack Users can choose this for Weekly Digest to SLACK Channel

    2. Entity by Property

    Possible Values & Description

    1. Rule Name: The user can choose any related name

    2. Filter: user can filter the rule for all managed devices by

      1. HWSKU

    Device: Once the user chooses the rule for Devices it will show the below Metrics
    • ASIC IPv4 Routes

    • ASIC IPv6 Routes

    Interface: Once the user chooses the rule for Interfaces it will show the below Metrics
    • Interface Flap

    • Interface PFC Counters

    1. Select: this option depends on the Filter category, possible values are

      1. Select HWSKU :

      2. Select ROLE :

    Conditions

    1. When Measured Value is: This option allows a user to choose what condition has to match when the measured value is

      1. EQ: Equal to

      2. NEQ: Not Equal to

    Notification

    1. Notify: The user can choose the integrated SLACK Channel

    2. Create Ticker: Zendesk Users can choose this to raise the Zendesk support ticket

    3. Weekly Digest: Slack Users can choose this for Weekly Digest to SLACK Channel

     inventory:
         - ipAddress: "10.4.4.61"
           layer: "Spine"
           region: "San Jose"
           azId: 1
           brickId: 1
           user: "admin"
           password: "YourPaSsWoRd"
           type: "cumulus"
         - ipAddress: "10.4.4.62"
           layer: "Spine"
           region: "San Jose"
           azId: 1
           brickId: 1
           user: "admin"
           password: "YourPaSsWoRd"
           type: "arista"
         - ipAddress: "10.4.4.63"
           layer: "Spine"
           region: "San Jose"
           azId: 1
           brickId: 1
           user: "admin"
           password: "YourPaSsWoRd"
           type: cisco-nxos
         - ipAddress: "10.4.4.64"
           layer: "Spine"
           region: "San Jose"
           azId: 1
           brickId: 1
           user: "admin"
           password: "YourPaSsWoRd"
           type: "sonic"
    
    BGP Neighbours Down
  • Device CPU Core Temperature

  • Device CPU Utilization

  • Device Down

  • Device Memory Utilization

  • Device Queue Transmit Counter

  • FAN Speed

  • Failed FANs

  • Failed PSUs

  • PSU Temperature

  • SSD Health

  • SSD Temeperature

  • SSD Used Memory Percent

  • frr CPU Utilization

  • syncd CPU Utilization

  • Interface PFC Transmit Counters
  • Interface Queue Transmit Counters

  • Traffic InDiscards

  • Traffic InErrors

  • Traffic OutDiscards

  • Traffic OutErrors

  • Traffic Rx Utilization

  • Traffic Tx Utilization

  • Transceiver Rx Power

  • Transceiver Temperature

  • Transceiver Tx Power

  • Transceiver Voltage

  • AVG
  • MAX

  • Period: Measured metrics can be verified with a buffer of a timer

    1. 5 min

    2. 10 min

    3. 15 min

    4. 30 min

    5. 1 hour

  • GE: Greater than Equal to
  • LE: Less than Equal to

  • GT: Greater than

  • LT: Less than

  • Critical Threshold: The user can set a Critical value on which push notification will be triggered

  • Warning Threshold: The user can set a Warning value on which push notification will be triggered

  • Do not notify if the same alert trigger in: 30min, 1hour, 2hours, 10hours, 24hours
  • Stop notifying after: The user can choose a value of occurrence then it will not trigger the same in the next 24 hours

  • ROLE
  • OS Version

  • For: The user can choose 2 options

  • BGP Neighbours Down
  • Device CPU Core Temperature

  • Device CPU Utilization

  • Device Down

  • Device Memory Utilization

  • Device Queue Counter

  • FAN Speed

  • Failed FANs

  • Failed PSUs

  • PSU Temperature

  • SSD Health

  • SSD Temeperature

  • SSD Used Memory Percent

  • frr CPU Utilization

  • syncd CPU Utilization

  • Interface Queue Counters
  • Traffic InDiscards

  • Traffic InErrors

  • Traffic OutDiscards

  • Traffic OutErrors

  • Traffic Rx Utilization

  • Traffic Tx Utilization

  • Transceiver Rx Power

  • Transceiver Temperature

  • Transceiver Tx Power

  • Transceiver Voltage

  • Select OS VERSION :
  • Metrics: Metrics depend on the above (For: Device/Interface) condition

  • Measure: Metrics are measured in three diff ways

    1. MIN

    2. AVG

    3. MAX

  • Period: Measured metrics can be verified with a buffer of a timer

    1. 5 min

    2. 10 min

    3. 15 min

    4. 30 min

    5. 1 hour

  • GE: Greater than Equal to
  • LE: Less than Equal to

  • GT: Greater than

  • LT: Less than

  • Critical Threshold: The user can set a Critical value on which push notification will be triggered

  • Warning Threshold: The user can set a Warning value on which push notification will be triggered

  • Do not notify if the same alert trigger in 30min, 1hour, 2hours, 10hours, 24hours
  • Stop notifying after: The user can choose a value of occurrence then it will not trigger the same in the next 24 hours

  • Slack Channel Integration

    1. Create a Channel for ONES-App push notification

    2. Generate API for Channel

    login to api.slack.com & choose Your apps

    1. Create an App

    2. Choose From scratch

    3. Provide any App Name and choose the workspace where the user wants to get the push notification & Create App

    4. Choose Incoming Webhook and Activate Incoming Webhooks & Add New Worbhook to workspace

    5. Select the configured Channel & Allow

    6. Copy the newly created webhook link

    7. Open ONES-App and select Integration >> Messaging

    8. Add Channel & Paste the Webhook URL

    9. After saving it will be available to use while creating any rule using Rule Engine feature

    Cloud Services

    DataLake 1.0(Cloud Service)

    ONES2.1 allows the use of DataLake, users can integrate 2 different platforms and ONES provides the capability to store the RAW data of all the Metrics in the Cloud and then the user will be able to use that RAW data for any deployment or any other use cases.

    1. Splunk

    2. Amazon S3

    ONES DL provides a flexible and scalable platform for storing, managing, and analyzing diverse data types at scale. By leveraging a schema-on-read approach and supporting various analytics tools, ONES DL facilitate advanced data analytics and enables organizations to derive valuable insights from their data assets. However, proper governance, security, and metadata management are crucial to ensure the usability, reliability, and integrity of data lakes.

    Alerts

    Overview

    When a user creates a rule, and the threshold value is exceeded, alerts will be generated. These alerts will also be displayed on this page.

    Alerts

    Notifications from the Alerts Page are always sent to:

    • Zendesk Support: Integrated Zendesk Support systems will receive all push notifications.

    • SLACK Channel: If integrated, notifications will also be sent to the configured SLACK channel.

    • Alert Page: It will always display the alerts on ONES Alert page

    Alert Management

    1. Count of alerts related to feature

    2. Alert Name

    3. First seen of the alert

    4. Last seen of the alert

    Expand Option is used to check the payload and total alerts

    Time Scale Alert Updates

    Users can choose the time range to check the more alerts

    Alert Page allows a user to download the report in CSV format with a time range

    Slack Channel Integration

    1. Create a Channel for ONES-App push notification

    2. Generate API for Channel

    login to api.slack.com & choose Your apps

    1. Create an App

    2. Choose From scratch

    3. Provide any App Name and choose the workspace where the user wants to get the push notification & Create App

    4. Choose Incoming Webhook and Activate Incoming Webhooks & Add New Worbhook to workspace

    5. Select the configured Channel & Allow

    6. Copy the newly created webhook link

    7. Open ONES-App and select Integration >> Messaging

    8. Add Channel & Paste the Webhook URL

    9. After saving it will be available to use while creating any rule using Rule Engine feature

    Option to delete the alerts

    ONES Orchestration

    This section explains how large data centers can be designed seamlessly using ONES.

    Configuring Devices

    Most fabric orchestration solutions available today are complex and often difficult to understand. ONES provides simple and effective tools, such as predefined templates (YAML file), to configure data centers at scale. ONES allows a customized way of configuring devices that includes enhancements to the standard configuration.

    Configuration Commands:

    • Save Config:

    • Copy to File:

    • Restore Config: //If needed only

    Speed config for the Host Facing port should be updated before Orchestration if there is any change in the default speed config.

    Ex: Interface speed is 25G, but you can use it with 10G Transceiver. In such cases, user needs to update speed.

    Configuration Commands:

    • Save Config:

    • Copy to File:

    • Restore Config: //If needed only

    You need to provide the following inputs to configure the devices:

    Device Details

    Username - Device User-Name

    Management IP - Device IP for management

    Device Credentials - Login admin user-name & password with write permission

    BGP ASN (Autonomous System Number)

    Local AS number - Local BGP AS number a user wants to use

    Subnet Details

    IPv4 Subnet - IPv4 address range a user wants to use in the domain

    IPv4 Loopback - IPv4 address range to use on the devices only for the loopback address

    IPv6 Subnet - IPv6 address range a user wants to use in the domain

    Connectivity

    Link connectivity between (SuperSpine, Spine, Leaf & TOR)

    Link Type (Access Trunk)

    Layer-2 / Layer3 - interface type

    MCLAG Details

    VLAN - VLAN to b used for interfaces

    PO Group - PortChannel number to be used to bundle the interface

    Keepalive VLAN - VLAN a user wants to use to send keepalive messages

    VRF number - VRF number to be used for MC-LAG

    Host Interface

    L2 Access & VLAN - Host facing interface with Access port & VLAN allocation

    L2 Trunk & VLAN - Host facing interface with trunk port & VLAN allocation

    L3 - Host facing interface with Layer 3 properties

    Network Service Address

    NTP server - NTP server a user wants to add

    Syslog - Syslog server IP address

    SNMP - SNMP Server address a user wants to add

    VXLAN

    VLAN Range - VLAN range a user wants to use for VXLAN Ex. 200-205

    VNI Range - VNI range a user wants to use for VXLAN Ex.20000-20005

    Any-Cast Gateway - Any-cast Gateway Subnet

    Host Per Vlan - Allocation of Host per VLAN

    IRB VLAN Range - IRB VLAN is a separate input and should not overlap with VXLAN VNI

    IRB VNI Range - IRB VNI is separate input and should not overlap with VXLAN VNI

    ONES requires a minimal set of information from the users to configure the devices. The tool is simple to use and allows to configure a large number of devices simultaneously.

    Configuration Overview

    This section explains the device configuration procedures, that gets applied seamlessly across the entire fabric

    • Navigate to Configurations >> Devices

    • Click on the Configure Devices button in the top right corner. This opens a new screen with a sample device configuration. You can edit the configurations directly in the UI to make the desired changes. You can also download the sample YAML file by clicking on Download YAML button, provided at the bottom of the above screen, make new changes and upload the YAML file using Upload YAML button.

    A detailed explanation of all the intend fields

    Inventory: Specify how many devices you want to add in any particular role - Super Spine, Spine, Leaf, and ToR.

    Connectivity: Specify the parameters required to establish link connectivity such as:

    1. Device switch ID: unique ID for every device, required to correctly render the topology

    2. Switch name: hostname of the device

    3. IP address: management address of the device

    4. Autonomous System Number (ASN)

    BGP: Specify if you want to enable regular BGP peering or BGP unnumbered peering.

    PhysicalIfCfg: Enable or disable FEC and change the MTU settings on all the links being configured.

    ASN: Assign a BGP ASN (Autonomous System Number) from the specified pool. Dynamic assigning ASN will be implemented in ONES release 2.0. For release 1.0, you need to specify the ASN under the device configuration, as shown in the sample YAML file.

    IPv4Pool: Assign IP pools to different subnets. ONES automatically divides the subnets according to the number of available links.

    ONES application uses IPv4 subnets for:

    • Interfaces

    • Loopbacks

    • Host interfaces

    • To configure BGP neighborship

    IPv6Pool: Assign IPv6 subnet.

    ONES application uses:

    • IPv6 subnet for interfaces

    • Subnets to configure BGP neighborship

    • Automatically advertise these subnets in BGP

    Note* IPv6 loopback is not supported

    NTP: Provide the NTP server address, to enable NTP. You can choose your desired timezone.

    Supported Time Zone

    Africa/Abidjan

    Africa/Accra

    Africa/Addis_Ababa

    Africa/Algiers

    Africa/Asmara

    Africa/Asmera

    Africa/Bamako

    Africa/Bangui

    SYSLOG: Provide the SYSLOG server address, to enable SYSLOG.

    SNMP: Provide the SNMP server address, to enable SNMP.

    Parameters: Provide user the ability to enable VXLAN and related Parameters.

    Creating Configuration

    • Navigate to Configurations >> Devices >> Configure Devices

    Applying Configuration

    Click on Apply Configs button in the bottom right corner of the above screen, to push the configs across the entire fabric.

    ONES provides real-time updates when the devices are being configured and validates the configurations automatically to ensure the network is ready to use.

    You will see the below screen, after the configurations are successfully verified:

    FRR config Issue

    With Few versions of FRR, when user gives reboot, existing config is erased and default config is pushed to FRR. This will lead to missing the configuration for users. below is the workaround config in this situation

    • Go inside BGP Container & Open docker_init.sh

    • Look for "Split" Keyword & Comment out the statemets inside that with if conditions

    • Add a new line which writes Service integrated in vtysh.conf

    Various fields shown in the top right corner of the above slide are explained below:

    Connect

    Configuration Page allows a user to connect to the device using console access or using SSH method too.

    Navigate >> Configurations >> Devices >> Connect

    User can choose SSH or console option to access the device.

    Console Logs

    Console Logs show the exact configuration loaded on the device and the overview of the config loaded as per YAML & Derived Host IP Range can be viewed from the "Derived_Config:" section

    Navigate >> Configurations >> Devices >> Console Logs

    • Click on the Console Log of the device

    Config

    This section describes the configuration feature of ONES using which you can check the applied and running configurations.

    Navigate >> Configurations >> Devices >> Config

    • Click on Config

    Compare Configuration

    This section describes the compare configuration feature of ONES using which you can compare the applied and running configurations.

    Navigate >> Configurations >> Devices >> Compare Configs

    • Compare Config

    This page allows the user to compare applied configurations to the running configuration of a selected device.

    The user should select only one device from the list and perform 'Compare Config' on this page, it may take several minutes to fetch the running configuration from the device

    YAML Editor will appear with two windows comparing applied and running configurations as depicted in the below picture

    The difference in configuration is highlighted with colour coding in the respective window of the configuration​​

    Backup & Configuration

    This Section describe the use of Backup & Restore Configuration across all the managed devices

    Navigate >> Configurations >> Devices >> Backup & Restore Configs

    Using this feature, a user will be able to take multiple backups and will be able to restore the backup at any time.

    Taking a Backup

    • Select Backup & Restore Configs

    • Give a Tag Name to the device & Select the device, the device you want to take a backup config

    • Submit the task

    • Once submitted the config will backup with the given name & can be used to restore the config at any time in future

    Restoring a Backup

    • Select Backup & Restore Configs

    • Select Restore Config

    • Click on the drop-down button of the device on which the user wants to restore the config

    • Select the backup a user wants to restore from the Backups Available list

    • Then Submit the backup & Click on Yes to confirm

    The device should not have any IP, VLAN, Portchannel, BGP, SAG, or MCLAG config on any of the Interfaces to avoid overlapping during the orchestration and run into cleanup issues.
    Post that, the user needs to save the config to a file, in case of any orchestration failure, or misconfiguration user can rollback to the saved config.
    
    Configuration Commands:

    Update Speed:

    : BGP AS number to use
  • Device Credentials: Username & Password.

  • MCLAG: Multichassis Link Aggregation

  • Links: links connected with another device

  • ONES automatically advertises these subnets in BGP

    Africa/Banjul

    Africa/Bissau

    Africa/Blantyre

    Africa/Brazzaville

    Africa/Bujumbura

    Africa/Cairo

    Africa/Casablanca

    Africa/Ceuta

    Africa/Conakry

    Africa/Dakar

    Africa/Dar_es_Salaam

    Africa/Djibouti

    Africa/Douala

    Africa/El_Aaiun

    Africa/Freetown

    Africa/Gaborone

    Africa/Harare

    Africa/Johannesburg

    Africa/Juba

    Africa/Kampala

    Africa/Khartoum

    Africa/Kigali

    Africa/Kinshasa

    Africa/Lagos

    Africa/Libreville

    Africa/Lome

    Africa/Luanda

    Africa/Lubumbashi

    Africa/Lusaka

    Africa/Malabo

    Africa/Maputo

    Africa/Maseru

    Africa/Mbabane

    Africa/Mogadishu

    Africa/Monrovia

    Africa/Nairobi

    Africa/Ndjamena

    Africa/Niamey

    Africa/Nouakchott

    Africa/Ouagadougou

    Africa/Porto-Novo

    Africa/Sao_Tome

    Africa/Timbuktu

    Africa/Tripoli

    Africa/Tunis

    Africa/Windhoek

    America/Adak

    America/Anchorage

    America/Anguilla

    America/Antigua

    America/Araguaina

    America/Argentina/Buenos_Aires

    America/Argentina/Catamarca

    America/Argentina/ComodRivadavia

    America/Argentina/Cordoba

    America/Argentina/Jujuy

    America/Argentina/La_Rioja

    America/Argentina/Mendoza

    America/Argentina/Rio_Gallegos

    America/Argentina/Salta

    America/Argentina/San_Juan

    America/Argentina/San_Luis

    America/Argentina/Tucuman

    America/Argentina/Ushuaia

    America/Aruba

    America/Asuncion

    America/Atikokan

    America/Atka

    America/Bahia

    America/Bahia_Banderas

    America/Barbados

    America/Belem

    America/Belize

    America/Blanc-Sablon

    America/Boa_Vista

    America/Bogota

    America/Boise

    America/Buenos_Aires

    America/Cambridge_Bay

    America/Campo_Grande

    America/Cancun

    America/Caracas

    America/Catamarca

    America/Cayenne

    America/Cayman

    America/Chicago

    America/Chihuahua

    America/Ciudad_Juarez

    America/Coral_Harbour

    America/Cordoba

    America/Costa_Rica

    America/Creston

    America/Cuiaba

    America/Curacao

    America/Danmarkshavn

    America/Dawson

    America/Dawson_Creek

    America/Denver

    America/Detroit

    America/Dominica

    America/Edmonton

    America/Eirunepe

    America/El_Salvador

    America/Ensenada

    America/Fort_Nelson

    America/Fort_Wayne

    America/Fortaleza

    America/Glace_Bay

    America/Godthab

    America/Goose_Bay

    America/Grand_Turk

    America/Grenada

    America/Guadeloupe

    America/Guatemala

    America/Guayaquil

    America/Guyana

    America/Halifax

    America/Havana

    America/Hermosillo

    America/Indiana/Indianapolis

    America/Indiana/Knox

    America/Indiana/Marengo

    America/Indiana/Petersburg

    America/Indiana/Tell_City

    America/Indiana/Vevay

    America/Indiana/Vincennes

    America/Indiana/Winamac

    America/Indianapolis

    America/Inuvik

    America/Iqaluit

    America/Jamaica

    America/Jujuy

    America/Juneau

    America/Kentucky/Louisville

    America/Kentucky/Monticello

    America/Knox_IN

    America/Kralendijk

    America/La_Paz

    America/Lima

    America/Los_Angeles

    America/Louisville

    America/Lower_Princes

    America/Maceio

    America/Managua

    America/Manaus

    America/Marigot

    America/Martinique

    America/Matamoros

    America/Mazatlan

    America/Mendoza

    America/Menominee

    America/Merida

    America/Metlakatla

    America/Mexico_City

    America/Miquelon

    America/Moncton

    America/Monterrey

    America/Montevideo

    America/Montreal

    America/Montserrat

    America/Nassau

    America/New_York

    America/Nipigon

    America/Nome

    America/Noronha

    America/North_Dakota/Beulah

    America/North_Dakota/Center

    America/North_Dakota/New_Salem

    America/Nuuk

    America/Ojinaga

    America/Panama

    America/Pangnirtung

    America/Paramaribo

    America/Phoenix

    America/Port-au-Prince

    America/Port_of_Spain

    America/Porto_Acre

    America/Porto_Velho

    America/Puerto_Rico

    America/Punta_Arenas

    America/Rainy_River

    America/Rankin_Inlet

    America/Recife

    America/Regina

    America/Resolute

    America/Rio_Branco

    America/Rosario

    America/Santa_Isabel

    America/Santarem

    America/Santiago

    America/Santo_Domingo

    America/Sao_Paulo

    America/Scoresbysund

    America/Shiprock

    America/Sitka

    America/St_Barthelemy

    America/St_Johns

    America/St_Kitts

    America/St_Lucia

    America/St_Thomas

    America/St_Vincent

    America/Swift_Current

    America/Tegucigalpa

    America/Thule

    America/Thunder_Bay

    America/Tijuana

    America/Toronto

    America/Tortola

    America/Vancouver

    America/Virgin

    America/Whitehorse

    America/Winnipeg

    America/Yakutat

    America/Yellowknife

    Antarctica/Casey

    Antarctica/Davis

    Antarctica/DumontDUrville

    Antarctica/Macquarie

    Antarctica/Mawson

    Antarctica/McMurdo

    Antarctica/Palmer

    Antarctica/Rothera

    Antarctica/South_Pole

    Antarctica/Syowa

    Antarctica/Troll

    Antarctica/Vostok

    Arctic/Longyearbyen

    Asia/Aden

    Asia/Almaty

    Asia/Amman

    Asia/Anadyr

    Asia/Aqtau

    Asia/Aqtobe

    Asia/Ashgabat

    Asia/Ashkhabad

    Asia/Atyrau

    Asia/Baghdad

    Asia/Bahrain

    Asia/Baku

    Asia/Bangkok

    Asia/Barnaul

    Asia/Beirut

    Asia/Bishkek

    Asia/Brunei

    Asia/Calcutta

    Asia/Chita

    Asia/Choibalsan

    Asia/Chongqing

    Asia/Chungking

    Asia/Colombo

    Asia/Dacca

    Asia/Damascus

    Asia/Dhaka

    Asia/Dili

    Asia/Dubai

    Asia/Dushanbe

    Asia/Famagusta

    Asia/Gaza

    Asia/Harbin

    Asia/Hebron

    Asia/Ho_Chi_Minh

    Asia/Hong_Kong

    Asia/Hovd

    Asia/Irkutsk

    Asia/Istanbul

    Asia/Jakarta

    Asia/Jayapura

    Asia/Jerusalem

    Asia/Kabul

    Asia/Kamchatka

    Asia/Karachi

    Asia/Kashgar

    Asia/Kathmandu

    Asia/Katmandu

    Asia/Khandyga

    Asia/Kolkata

    Asia/Krasnoyarsk

    Asia/Kuala_Lumpur

    Asia/Kuching

    Asia/Kuwait

    Asia/Macao

    Asia/Macau

    Asia/Magadan

    Asia/Makassar

    Asia/Manila

    Asia/Muscat

    Asia/Nicosia

    Asia/Novokuznetsk

    Asia/Novosibirsk

    Asia/Omsk

    Asia/Oral

    Asia/Phnom_Penh

    Asia/Pontianak

    Asia/Pyongyang

    Asia/Qatar

    Asia/Qostanay

    Asia/Qyzylorda

    Asia/Rangoon

    Asia/Riyadh

    Asia/Saigon

    Asia/Sakhalin

    Asia/Samarkand

    Asia/Seoul

    Asia/Shanghai

    Asia/Singapore

    Asia/Srednekolymsk

    Asia/Taipei

    Asia/Tashkent

    Asia/Tbilisi

    Asia/Tehran

    Asia/Tel_Aviv

    Asia/Thimbu

    Asia/Thimphu

    Asia/Tokyo

    Asia/Tomsk

    Asia/Ujung_Pandang

    Asia/Ulaanbaatar

    Asia/Ulan_Bator

    Asia/Urumqi

    Asia/Ust-Nera

    Asia/Vientiane

    Asia/Vladivostok

    Asia/Yakutsk

    Asia/Yangon

    Asia/Yekaterinburg

    Asia/Yerevan

    Atlantic/Azores

    Atlantic/Bermuda

    Atlantic/Canary

    Atlantic/Cape_Verde

    Atlantic/Faeroe

    Atlantic/Faroe

    Atlantic/Jan_Mayen

    Atlantic/Madeira

    Atlantic/Reykjavik

    Atlantic/South_Georgia

    Atlantic/St_Helena

    Atlantic/Stanley

    Australia/ACT

    Australia/Adelaide

    Australia/Brisbane

    Australia/Broken_Hill

    Australia/Canberra

    Australia/Currie

    Australia/Darwin

    Australia/Eucla

    Australia/Hobart

    Australia/LHI

    Australia/Lindeman

    Australia/Lord_Howe

    Australia/Melbourne

    Australia/NSW

    Australia/North

    Australia/Perth

    Australia/Queensland

    Australia/South

    Australia/Sydney

    Australia/Tasmania

    Australia/Victoria

    Australia/West

    Australia/Yancowinna

    Brazil/Acre

    Brazil/DeNoronha

    Brazil/East

    Brazil/West

    CET

    CST6CDT

    Canada/Atlantic

    Canada/Central

    Canada/Eastern

    Canada/Mountain

    Canada/Newfoundland

    Canada/Pacific

    Canada/Saskatchewan

    Canada/Yukon

    Chile/Continental

    Chile/EasterIsland

    Cuba

    EET

    EST

    EST5EDT

    Egypt

    Eire

    Etc/GMT

    Etc/GMT+0

    Etc/GMT+1

    Etc/GMT+10

    Etc/GMT+11

    Etc/GMT+12

    Etc/GMT+2

    Etc/GMT+3

    Etc/GMT+4

    Etc/GMT+5

    Etc/GMT+6

    Etc/GMT+7

    Etc/GMT+8

    Etc/GMT+9

    Etc/GMT-0

    Etc/GMT-1

    Etc/GMT-10

    Etc/GMT-11

    Etc/GMT-12

    Etc/GMT-13

    Etc/GMT-14

    Etc/GMT-2

    Etc/GMT-3

    Etc/GMT-4

    Etc/GMT-5

    Etc/GMT-6

    Etc/GMT-7

    Etc/GMT-8

    Etc/GMT-9

    Etc/GMT0

    Etc/Greenwich

    Etc/UCT

    Etc/UTC

    Etc/Universal

    Etc/Zulu

    Europe/Amsterdam

    Europe/Andorra

    Europe/Astrakhan

    Europe/Athens

    Europe/Belfast

    Europe/Belgrade

    Europe/Berlin

    Europe/Bratislava

    Europe/Brussels

    Europe/Bucharest

    Europe/Budapest

    Europe/Busingen

    Europe/Chisinau

    Europe/Copenhagen

    Europe/Dublin

    Europe/Gibraltar

    Europe/Guernsey

    Europe/Helsinki

    Europe/Isle_of_Man

    Europe/Istanbul

    Europe/Jersey

    Europe/Kaliningrad

    Europe/Kiev

    Europe/Kirov

    Europe/Kyiv

    Europe/Lisbon

    Europe/Ljubljana

    Europe/London

    Europe/Luxembourg

    Europe/Madrid

    Europe/Malta

    Europe/Mariehamn

    Europe/Minsk

    Europe/Monaco

    Europe/Moscow

    Europe/Nicosia

    Europe/Oslo

    Europe/Paris

    Europe/Podgorica

    Europe/Prague

    Europe/Riga

    Europe/Rome

    Europe/Samara

    Europe/San_Marino

    Europe/Sarajevo

    Europe/Saratov

    Europe/Simferopol

    Europe/Skopje

    Europe/Sofia

    Europe/Stockholm

    Europe/Tallinn

    Europe/Tirane

    Europe/Tiraspol

    Europe/Ulyanovsk

    Europe/Uzhgorod

    Europe/Vaduz

    Europe/Vatican

    Europe/Vienna

    Europe/Vilnius

    Europe/Volgograd

    Europe/Warsaw

    Europe/Zagreb

    Europe/Zaporozhye

    Europe/Zurich

    Factory

    GB

    GB-Eire

    GMT

    GMT+0

    GMT-0

    GMT0

    Greenwich

    HST

    Hongkong

    Iceland

    Indian/Antananarivo

    Indian/Chagos

    Indian/Christmas

    Indian/Cocos

    Indian/Comoro

    Indian/Kerguelen

    Indian/Mahe

    Indian/Maldives

    Indian/Mauritius

    Indian/Mayotte

    Indian/Reunion

    Iran

    Israel

    Jamaica

    Japan

    Kwajalein

    Libya

    MET

    MST

    MST7MDT

    Mexico/BajaNorte

    Mexico/BajaSur

    Mexico/General

    NZ

    NZ-CHAT

    Navajo

    PRC

    PST8PDT

    Pacific/Apia

    Pacific/Auckland

    Pacific/Bougainville

    Pacific/Chatham

    Pacific/Chuuk

    Pacific/Easter

    Pacific/Efate

    Pacific/Enderbury

    Pacific/Fakaofo

    Pacific/Fiji

    Pacific/Funafuti

    Pacific/Galapagos

    Pacific/Gambier

    Pacific/Guadalcanal

    Pacific/Guam

    Pacific/Honolulu

    Pacific/Johnston

    Pacific/Kanton

    Pacific/Kiritimati

    Pacific/Kosrae

    Pacific/Kwajalein

    Pacific/Majuro

    Pacific/Marquesas

    Pacific/Midway

    Pacific/Nauru

    Pacific/Niue

    Pacific/Norfolk

    Pacific/Noumea

    Pacific/Pago_Pago

    Pacific/Palau

    Pacific/Pitcairn

    Pacific/Pohnpei

    Pacific/Ponape

    Pacific/Port_Moresby

    Pacific/Rarotonga

    Pacific/Saipan

    Pacific/Samoa

    Pacific/Tahiti

    Pacific/Tarawa

    Pacific/Tongatapu

    Pacific/Truk

    Pacific/Wake

    Pacific/Wallis

    Pacific/Yap

    Poland

    Portugal

    ROC

    ROK

    Singapore

    SystemV/AST4

    SystemV/AST4ADT

    SystemV/CST6

    SystemV/CST6CDT

    SystemV/EST5

    SystemV/EST5EDT

    SystemV/HST10

    SystemV/MST7

    SystemV/MST7MDT

    SystemV/PST8

    SystemV/PST8PDT

    SystemV/YST9

    SystemV/YST9YDT

    Turkey

    UCT

    US/Alaska

    US/Aleutian

    US/Arizona

    US/Central

    US/East-Indiana

    US/Eastern

    US/Hawaii

    US/Indiana-Starke

    US/Michigan

    US/Mountain

    US/Pacific

    US/Samoa

    UTC

    Universal

    W-SU

    WET

    Zulu

    Comment
    rm -f /etc/frr/frr.conf
    & save the changes

  • Commit the docker Changes

  • Backup & Restore Configs: using this user can take device config backup and can use later to restore the configuration

    This option is used to connect to device via SSH

    here user can get the console logs of the particular device

    using this option user can get the details on the applied config and the intended config of the device

    Compare the applied config vs running config on the selected device and highlight the diff changes, if any

    Configure Devices

    Allows to make the config changes directly in the in-built UI editor

    Download YAML

    Download the sample YAML file and make the required changes

    Upload YAML

    Upload the modified YAML file

    ​​

    • Device configuration is not yet started

    • In case of the user has not applied any feature like (VXLAN, MCLAG and so on..)

    ​​

    Device configuration is in progress

    ​​

    The device configuration has failed. Move the cursor to the failed option to see the Error message.

    ​​

    Device configuration is completed successfully

    Host Logs shows the exact configuration loaded on the device and the overview of the config loaded as per YAML

    ​​

    is used to configure or modify a configuration when we need to add several other devices with the same file

    Device configurations in progress
    It will open in new window

    IPv4Pool:
      Loopback: 19.168.10.0/24
      LeafSpine: 20.168.10.0/24
      LeafTor: 30.168.10.0/24
      Host: 49.0.0.0/24
    root@Leaf-1:/home/admin# docker commit bgp
    sha256:c67656393b902cf7bf514094a219eb75f5bf45340023848be51e26632344caa3
    sudo config save -y
    sudo cp /etc/sonic/config_db.json /host/backup_config_db.json
    sudo config reload /host/backup_config_db_json -y
    
    sudo config save -y
    sudo cp /etc/sonic/config_db.json /host/backup_config_db.json
    sudo config reload /host/backup_config_db_json -y
    Inventory:
      SSpines: 2      #Define the count of devices in the SuperSpine role
      Spines: 2       #Define the count of devices in the Spine role
      Leafs: 2        #Define the count of devices in the Leaf role
      Tors: 1         #Define the count of devices in the Tor role
    Connectivity:
      SSpine: []      #A role that does not have any device, presented as []
      Spine:          #Delcare all details, the device needs to update.
        - switchId: 1              #Every device we define for a given Role should have an ID that is unique to that Role.
          switchName: EC01         #Use the hostname of the switch
          ipAddress: 10.4.4.61     #Management IP address of the device to connect
          ASN: 1001                #BGP Local AS number
          Credentials:             #User needs to enter device credentials
            user: admin
            password: YourPaSsWoRd
          mclag:                    #used to create multichassis link aggregation
            enabled: True            #used to activate mclag property
            peer: L2                 #Neighbor Device ID (Leaf Switch 2), Peer can be Spine or Leaf device
            keepalive_vlan: 10       #Vlan to use for Keepalive messages
            isoverl3: true           #for L2 MCLAG use false, For L3 MCLAG use true
            
          Links:      #The links between all the devices we manage
                      #SS indicates SuperSpine Role
                      #S indicates Spine Role
                      #L indicates Leaf Role
                      #T indicates Tor Role
                      #H indicates Host port
                      #The next number is device's unique ID from the same respective Role
                      #Then interface name and number
            - link: S1_Ethernet96 | L1_Ethernet96  
                      #S1_Ethernet96 : Spine Role, Switch ID 1 with Interface Ethernet 96
                                                  is connected to
                      #L1_Ethernet96 : Leaf Role, Switch ID 1 with Interface Ethernet 96
              staticLink: True  #True indicates the status is up
              properties:       #This indicates the use of link properties
                mode: 
                    #L2-Trunk  #Used as Layer-2 Trunk
                      #vlan: 200       #Vlan used for mclag 
                      #mc_po_group: 200  #Po number for mclag
                      #vrf: 1          #VRF to be used for mclag, vrf is mendate in symmetric IRB
                    #L2-Access  #Used as Layer-2 Access
                      #vlan: 200       #Vlan used for mclag 
                    #L3-V4            #Only with Host peer
                      #mc_po_group: 201 #Po number to be used
                    #L3-V6            #Only with Host peer
                      #mc_po_group: 201 #Po number to be used
                    #MC-LAG           #Only when we need MC-LAG between links
                    #MC-LAG-BGP       #BGP Neighbourship between MC-Lag Peers using Peer Link
    BGP:  
        #BGP_U If set to False, this configures regular BGP peering.
        #BGP_U If set to True, this configures BGP unnumbered peering
        #ND_RA is reserved for future development
      BGP_U: False
      ND_RA: 30    
    PhysicalIfCfg:
      FEC: On    #Possible values are On or Off
      MTU: 8000  #MTU value a user wants to change
      AdminStatus: Up #Set the status UP 
    ASN:
      SSpine: 10000-20000
      Spine: 21000-50000
      Leaf: 51000-60000
      Tor: 61000-70000
    IPv6Pool:
      LeafSpine:   #Define IPv6 Pool 
      LeafTor:     #Define IPv6 Pool
      Host:        #Define IPv6 Pool
    NTP:
      server: 128.138.141.172
      timezone: Asia/Kolkata
    SYSLOG:
      server: 10.1.1.11
    
    SNMP:
      trapserver: 10.1.1.11
    Parameters:
      vlan: 200-205
      vni: 20000-20005
      anycast_gateway: 100.10.0.0/23
      anycast_mac: 00:11:22:33:44:55
      hosts_per_vlan: 10
      routing_symmetric: True # True / False to indicate its symmetric routing or asymmetric routing
      irb_vlan: 300-305 # irb vlan is separate input and should not overlap with vxlan vni
      irb_vni: 30000-30005 # irb vni is separate input and should not overlap with vxlan vni  
      sag: False # True for Anycast Gateway otherwise False 
    root@Leaf-1:/# vi /usr/bin/docker_init.sh
    elif [ "$CONFIG_TYPE" == "split" ]; then
        #echo "no service integrated-vtysh-config" > /etc/frr/vtysh.conf
        rm -f /etc/frr/frr.conf
    elif [ "$CONFIG_TYPE" == "split" ]; then
        #echo "no service integrated-vtysh-config" > /etc/frr/vtysh.conf
        echo "service integrated-vtysh-config" > /etc/frr/vtysh.conf
        rm -f /etc/frr/frr.conf
    sudo config interface speed Ethernet0 10000
    elif [ "$CONFIG_TYPE" == "split" ]; then
        #echo "no service integrated-vtysh-config" > /etc/frr/vtysh.conf
        echo "service integrated-vtysh-config" > /etc/frr/vtysh.conf
        #rm -f /etc/frr/frr.conf

    VXLAN-SVI

    VXLAN-SAG

    VXLAN-Asymmetric

    MCLAG

    Scalability

    ONES Function

    Device/Switch Count

    Telemetry for Visibility

    1024

    Orchestration

    1024

    ONES GA v2.1