# ONES Orchestration

## 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.&#x20;

{% hint style="warning" %}
{% code overflow="wrap" %}

```
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.

```

{% endcode %}

#### Configuration Commands:

* Save Config:

  <pre><code><strong>sudo config save -y
  </strong></code></pre>
* Copy to File:

  <pre><code><strong>sudo cp /etc/sonic/config_db.json /host/backup_config_db.json
  </strong></code></pre>
* Restore Config: //If needed only

  <pre><code><strong>sudo config reload /host/backup_config_db_json -y
  </strong><strong>
  </strong></code></pre>

{% endhint %}

{% hint style="warning" %}
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:

Update Speed:

<pre><code><strong>sudo config interface speed Ethernet0 10000
</strong></code></pre>

{% endhint %}

#### Configuration Commands:

* Save Config:

  <pre><code><strong>sudo config save -y
  </strong></code></pre>
* Copy to File:

  <pre><code><strong>sudo cp /etc/sonic/config_db.json /host/backup_config_db.json
  </strong></code></pre>
* Restore Config: //If needed only

  <pre><code><strong>sudo config reload /host/backup_config_db_json -y
  </strong></code></pre>

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

<details>

<summary>Device Details</summary>

Username - Device User-Name

Management IP - Device IP for management

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

</details>

<details>

<summary>BGP ASN (Autonomous System Number)</summary>

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

</details>

<details>

<summary>Subnet Details</summary>

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 &#x20;

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

</details>

<details>

<summary>Connectivity</summary>

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

Link Type (Access Trunk)

Layer-2 / Layer3 - interface type&#x20;

</details>

<details>

<summary>MCLAG Details</summary>

VLAN - VLAN to b used for interfaces&#x20;

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

</details>

<details>

<summary>Host Interface</summary>

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

</details>

<details>

<summary>Network Service Address</summary>

NTP server - NTP server a user wants to add&#x20;

Syslog - Syslog server IP address&#x20;

SNMP - SNMP Server address a user wants to add

</details>

<details>

<summary>VXLAN</summary>

VLAN Range - VLAN range a user wants to use for VXLAN **Ex. 200-205**&#x20;

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

</details>

{% hint style="info" %}
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.
{% endhint %}

## Configuration Overview

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

* Navigate to <mark style="color:blue;">**Configurations >> Devices**</mark>&#x20;

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/E5wCB57ESXEmzPztoM0e/Screenshot%202023-11-24%20at%202.55.17%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

* Click on the <mark style="color:blue;">**Configure Devices**</mark> 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 <mark style="color:blue;">**Download YAML**</mark> button, provided at the bottom of the above screen, make new changes and upload the YAML file using <mark style="color:blue;">**Upload**</mark> <mark style="color:blue;">**YAML**</mark> button.

|                                                        |                                                                      |
| ------------------------------------------------------ | -------------------------------------------------------------------- |
| <mark style="color:blue;">**Configure Devices**</mark> | Allows to make the config changes directly in the in-built UI editor |
| <mark style="color:blue;">**Download YAML**</mark>     | Download the sample YAML file and make the required changes          |
| <mark style="color:blue;">**Upload YAML**</mark>       | Upload the modified YAML file                                        |

## 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.

* ```yaml
  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**: 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 AS number to use
5. **Device Credentials**: Username & Password.&#x20;
6. **MCLAG**: Multichassis Link Aggregation
7. **Links**: links connected with another device

* ```yaml
  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**: Specify if you want to enable regular BGP peering or BGP unnumbered peering.

* ```yaml
  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:** Enable or disable FEC and change the MTU settings on all the links being configured.

* ```yaml
  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:** 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.&#x20;

* ```yaml
  ASN:
    SSpine: 10000-20000
    Spine: 21000-50000
    Leaf: 51000-60000
    Tor: 61000-70000
  ```

**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&#x20;
* Loopbacks
* Host interfaces
* To configure BGP neighborship
* ONES automatically advertises these subnets in BGP
  * ```yaml
    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
    ```

**IPv6Pool**: Assign IPv6 subnet.

ONES application uses:

* IPv6 subnet for interfaces
* Subnets to configure BGP neighborship
* Automatically advertise these subnets in BGP
  * ```yaml
    IPv6Pool:
      LeafSpine:   #Define IPv6 Pool 
      LeafTor:     #Define IPv6 Pool
      Host:        #Define IPv6 Pool
    ```

{% hint style="info" %}
Note\* IPv6 loopback is not supported
{% endhint %}

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

* ```yaml
  NTP:
    server: 128.138.141.172
    timezone: Asia/Kolkata
  ```

<details>

<summary>Supported Time Zone</summary>

Africa/Abidjan

Africa/Accra

Africa/Addis\_Ababa

Africa/Algiers

Africa/Asmara

Africa/Asmera

Africa/Bamako

Africa/Bangui

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

</details>

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

* ```yaml
  SYSLOG:
    server: 10.1.1.11

  ```

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

* ```yaml
  SNMP:
    trapserver: 10.1.1.11
  ```

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

* ```yaml
  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 
  ```

## Creating Configuration

* Navigate to <mark style="color:blue;">**Configurations >> Devices >> Configure Devices**</mark>

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/Nvj3lcLRHVav3Bpj6CLK/image.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/qtqpnHqQMEPr5Pkbsxhs/image.png" alt=""><figcaption></figcaption></figure>

## Applying Configuration

Click on <mark style="color:blue;">**Apply Configs**</mark> 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.

<figure><img src="https://lh5.googleusercontent.com/VLClfajDFPrawhAHIWBtR6yiBusGwMsKGAmNEpj2qM0mPMRUn7ymx2h6-R0ArDLx0sLVnSOtoYuveDYuU_HAjBiiweAWOs8udLrCGe5Cd8bcYcApZrgmkhCRVf0l4RiWzFx0zfpouIKjGEdYrapibnhawLTCwmexnzP_YrAjfxKx6T4PaDwJLNcvdYpUsOY" alt="" width="563"><figcaption><p>Device configurations in progress</p></figcaption></figure>

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

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/KELQuF3KoHuzNM0sHY5l/Screenshot%202023-11-27%20at%208.30.46%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

### FRR config Issue

{% hint style="warning" %}
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
{% endhint %}

* Go inside BGP Container & Open docker\_init.sh

  {% code lineNumbers="true" %}

  ```
  root@Leaf-1:/# vi /usr/bin/docker_init.sh
  ```

  {% endcode %}

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

  {% code lineNumbers="true" %}

  ```
  elif [ "$CONFIG_TYPE" == "split" ]; then
      #echo "no service integrated-vtysh-config" > /etc/frr/vtysh.conf
      rm -f /etc/frr/frr.conf
  ```

  {% endcode %}

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

  {% code lineNumbers="true" %}

  ```
  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
  ```

  {% endcode %}

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

  {% code lineNumbers="true" %}

  ```
  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
  ```

  {% endcode %}

* Commit the **docker Changes**

  {% code lineNumbers="true" %}

  ```
  root@Leaf-1:/home/admin# docker commit bgp
  sha256:c67656393b902cf7bf514094a219eb75f5bf45340023848be51e26632344caa3
  ```

  {% endcode %}

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

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/5AQLWrT6orkPC3DAZmAJ/image.png" alt=""><figcaption></figcaption></figure>

| ​![](https://lh5.googleusercontent.com/03u_WNS1uEiQTHGZujyE_t4zloPXqxKXURPhHIAKJ5Skss9IvRCr0tBqFP_WCTCKjVwK0kJRciGz9UtNb18v6zdR9VUDyE04vwAZ8zHlBfegshocxbLHklSWll60uVEsI_CaX26zeDD87T9vsWhQ3GMSPiSeR_OGPpx60BtniXy9uc2m7JqBYdT1mA)​ | <p></p><ul><li>Device configuration is not yet started</li><li>In case of the user has not applied any feature like (VXLAN, MCLAG and so on..)</li></ul> |
| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------: |
|                                           ​![](https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/byHtkoYaT6F8AUyQOuBr/Screenshot%202023-11-27%20at%208.31.27%E2%80%AFPM.png)​                                          |                                                            Device configuration is in progress                                                           |
|                                           ​![](https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/5NW3pvN586KgYZdpE9d6/Screenshot%202023-11-27%20at%208.32.59%E2%80%AFPM.png)​                                          |                            The device configuration has failed. Move the cursor to the failed option to see the Error message.                           |
|                                           ​![](https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/cZVFqcVA9ypf8QiFpsiZ/Screenshot%202023-11-27%20at%208.33.12%E2%80%AFPM.png)​                                          |                                                      Device configuration is completed successfully                                                      |
|                                               ![](https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/NtQGYLkRrWZ3uFnTCGz2/Screenshot%202023-04-05%20at%208.36.39%20AM.png)                                              |                      Host Logs shows the exact configuration loaded on the device and the overview of the config loaded as per YAML                      |
| ​![](https://lh3.googleusercontent.com/kl86ewhyLK01fQs51scCKhaINWeRIYzavkAX8UE78hprWHskv5HjT5gXaLTV9ol3c-Q2wxPsebJ6v6kxVBSAB6heEAKUjvNvZM_npKbrTzc7gA3GqjICytJ1vG_YBLoQ47SJde37lvKvlBHs_konU26yYJqU8NFk1lIU34fUSPnmXJaQjvfMGv_ONg)​ |                        is used to configure or modify a configuration when we need to add several other devices with the same file                       |
|                                              ![](https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/UJNMNZbLALfpp9Milk2q/Screenshot%202023-08-11%20at%2011.43.40%20AM.png)                                              |                  Backup & Restore Configs: using this user can take device config backup and can use later to restore the configuration                  |
|                          <img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/pDGdlnaqM2y8oT5gHnvw/Screenshot%202023-11-27%20at%208.34.51%E2%80%AFPM.png" alt="" data-size="original">                          |                                                     This option is used to connect to device via SSH                                                     |
|                          <img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/Fkd25aNW3ymCJ2fxq2Pw/Screenshot%202023-11-27%20at%208.35.08%E2%80%AFPM.png" alt="" data-size="original">                          |                                                here user can get the console logs of the particular device                                               |
|                          <img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/HSc2i4RQqnt9cM1BirED/Screenshot%202023-11-27%20at%208.35.30%E2%80%AFPM.png" alt="" data-size="original">                          |                          using this option user can get the details on the applied config and the intended config of the device                          |
|                          <img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/9tI528rmoWQxPh95Pt3n/Screenshot%202023-11-27%20at%208.35.52%E2%80%AFPM.png" alt="" data-size="original">                          |                        Compare the applied config vs running config on the selected device and highlight the diff changes, if any                        |

## Connect

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

<mark style="color:blue;">**Navigate >> Configurations >> Devices >> Connect**</mark>

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/igjlxYBS1UmTpyWV7pcO/Screenshot%202024-04-22%20at%201.22.12%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/jbuFcnFTh1O9SOlJ0Maq/Screenshot%202024-04-22%20at%201.23.00%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

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

<mark style="color:blue;">**Navigate >> Configurations >> Devices >> Console Logs**</mark>

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/sYnzwwSk870A8TA4EaTi/image.png" alt=""><figcaption></figcaption></figure>

* Click on the Console Log of the device&#x20;

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/HaoJZcLMwGT75K0Y1sVz/Screenshot%202024-04-22%20at%201.14.40%E2%80%AFPM.png" alt=""><figcaption><p>It will open in new window</p></figcaption></figure>

## Config

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

<mark style="color:blue;">**Navigate >> Configurations >> Devices >>  Config**</mark>

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/LkMceZiV0AGhM0ypKpLF/image.png" alt=""><figcaption></figcaption></figure>

* **Click on Config**

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/l9lo9QtIyEaJzN6sl66T/Screenshot%202024-04-22%20at%201.16.02%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

## Compare Configuration

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

<mark style="color:blue;">**Navigate >> Configurations >> Devices >> Compare Configs**</mark>

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/meRe3q4qzxbRsGCNIGkI/image.png" alt=""><figcaption></figcaption></figure>

* **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​​

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/sZZG245KcrbTMiwZzVqu/Screenshot%202023-11-27%20at%208.52.39%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

## Backup & Configuration

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

<mark style="color:blue;">**Navigate >> Configurations >> Devices >> Backup & Restore Configs**</mark>

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/9ucqOi9fTLgsU70O6Mlb/image.png" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/ZGD2EdWaTsLuTWmk6kyz/Screenshot%202023-11-27%20at%208.45.00%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

* Give a Tag Name to the device & Select the device, the device you want to take a backup config
* Submit the task

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/yuMD2Tqa8QyrjjNso15M/Screenshot%202023-11-27%20at%208.46.29%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

* 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

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/WprsTaoLzUH9gqGCSM8q/image.png" alt=""><figcaption></figcaption></figure>

* Select **Backup & Restore Configs**
* Select **Restore Config**

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/OBLbPmsj6fVsqap0nbR6/Screenshot%202023-11-27%20at%208.47.36%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/h5ttzeUaRJC53JdbZ1Kd/Screenshot%202023-11-27%20at%208.48.05%E2%80%AFPM.png" alt=""><figcaption></figcaption></figure>

* Select the **backup** a user wants to restore from the **Backups Available** list
* Then **Submit** the backup & Click on Yes to confirm

<figure><img src="https://content.gitbook.com/content/PfHBjTcBLMXuJNIK9YDj/blobs/mavdDWbzV87iLSlIYHhd/Screenshot%202023-08-11%20at%2012.15.45%20PM.png" alt=""><figcaption></figcaption></figure>
