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.
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:
Save Config:
sudo config save -y
Copy to File:
sudo cp /etc/sonic/config_db.json /host/backup_config_db.json
Restore Config: //If needed only
sudo config reload /host/backup_config_db_json -y
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:
sudo config interface speed Ethernet0 10000
Configuration Commands:
Save Config:
sudo config save -y
Copy to File:
sudo cp /etc/sonic/config_db.json /host/backup_config_db.json
Restore Config: //If needed only
sudo config reload /host/backup_config_db_json -y
You need to provide the following inputs to configure the devices:
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.
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
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.
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:
Device switch ID: unique ID for every device, required to correctly render the topology
Switch name: hostname of the device
IP address: management address of the device
Autonomous System Number (ASN): BGP AS number to use
Device Credentials: Username & Password.
MCLAG: Multichassis Link Aggregation
Links: links connected with another device
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.
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.
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.
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
Loopbacks
Host interfaces
To configure BGP neighborship
ONES automatically advertises these subnets in BGP
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
IPv6Pool: LeafSpine: #Define IPv6 Pool LeafTor: #Define IPv6 Pool Host: #Define IPv6 Pool
NTP: Provide the NTP server address, to enable NTP. You can choose your desired timezone.
NTP: server: 128.138.141.172 timezone: Asia/Kolkata
SYSLOG: Provide the SYSLOG server address, to enable SYSLOG.
SYSLOG: server: 10.1.1.11
SNMP: Provide the SNMP server address, to enable SNMP.
SNMP: trapserver: 10.1.1.11
Parameters: Provide user the ability to enable VXLAN and related Parameters.
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 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
root@Leaf-1:/# vi /usr/bin/docker_init.sh
Look for "Split" Keyword & Comment out the statemets inside that with if conditions
elif [ "$CONFIG_TYPE" == "split" ]; then #echo "no service integrated-vtysh-config" > /etc/frr/vtysh.conf rm -f /etc/frr/frr.conf
Add a new line which writes Service integrated in vtysh.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
Comment rm -f /etc/frr/frr.conf & save the changes
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
Commit the docker Changes
root@Leaf-1:/home/admin# docker commit bgp sha256:c67656393b902cf7bf514094a219eb75f5bf45340023848be51e26632344caa3
Various fields shown in the top right corner of the above slide are explained below:

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

Click on Host Logs

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
