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.
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 UploadYAML 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 intent 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.
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
QoS: Provide user the ability to enable RoCE related configuration.
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