System-Engineering | 6 min read
Arista EOS (Extensible Operating System)

To celebrate the Arista Elite Partner status, ngworx will present a series of articles introducing the Arista philosophy which is behind the world-class networking solution represented by a new category of products.
We will start by introducing the Extensible Operative System (EOS) – a powerful yet familiar environment to control and monitor Arista networking appliances. We will then describe the NetDB as a concept to provide stability and control over the system processes governing the switch. Lastly, we will convey how these two components provide the building blocks for a new approach to networking monitoring and automation based on Arista’s own solution: CloudVision.
Follow us on these new articles and contact ngworx for a Demo on how Arista products can simplify the everyday networking needs of your company.
Introduction
In this first article, we will introduce the Arista EOS as the powerful Operative System to control and monitor Arista switches. The original idea was to provide a familiar environment to Networking Engineers approaching this new category of appliances for the first time, while providing an easy access to a new concept. Arista EOS is one of the fundamental components behind Arista’s holistic approach represented by CloudVision.
The Arista Extensible Operating System
Like other network appliances, switches operate on top of a specific Operating System. In case of Arista, this is called the Extensible Operating System (EOS). Arista EOS includes the underlaying functionalities for hardware management, system processes and networking services, while also allowing multiple ways to manage the switch, including the EOS CLI.
The first impression when working with EOS is similar to a standard CLI, such as Cisco IOS.
Some examples below show how familiar the EOS CLI would be to an experienced user:
Hostname configuration
localhost> localhost>enable localhost#conf localhost(config)#hostname AristaSW AristaSW(config)#exit AristaSW#write mem Copy completed successfully. AristaSW#
Interface configuration
AristaSW# AristaSW#conf AristaSW(config)#interface ethernet1 AristaSW(config-if-Et1)#ip address 10.0.0.1 255.255.255.0 AristaSW(config-if-Et1)#description Link to SW2 AristaSW(config-if-Et1)#no shutdown AristaSW(config-if-Et1)#
Show ip interface brief
AristaSW#sh ip interface brief Address Interface IP Address Status Protocol MTU Owner ---------------- ----------------- ----------- ------------- ---------- Ethernet1 10.0.0.1/24 up up 9214 Loopback0 1.1.1.102/32 up up 65535 Loopback1 2.2.2.1/32 up up 65535 Management1 unassigned up up 1500
Show interfaces
AristaSW#show interfaces Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 5000.00d5.5dc0 Description: Link to SW2 Internet address is 10.0.0.1/24 Broadcast address is 255.255.255.255 IP MTU 9214 bytes Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 53 minutes, 53 seconds Loopback Mode : None 2 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (- with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (- with framing overhead), 0 packets/sec 596 packets input, 48537 bytes Received 294 broadcasts, 109 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 3164 packets output, 358740 bytes Sent 985 broadcasts, 1683 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2 is up, line protocol is up (connected) Hardware is Ethernet, address is 5000.0003.0002 (bia 5000.0003.0002) Ethernet MTU 9214 bytes
EOS LINUX CORE
The examples above show one of the advantages of working with an Arista switch, that is, an environment already familiar to an experienced Network Engineer. However, this is just the beginning of where the power of an Arista Switch lays.
The appliance is, in fact, powered by a full Fedora Linux Core, accessible via Bash shell, and providing unrestricted Linux experience and functionalities. The underlying EOS is also expandable with additional packages and libraries just like a standard Linux server. In fact, Arista documentation often refers to their appliances as Linux Servers with additional gear and customization that turns them into high-performance network devices.
The presence of both CLI and Bash Shell allows for two ways of managing the switch. With CLI we have a complete set of commands to operate the appliance. A Network Engineer more comfortable in a traditional CLI could fully manage the switch within this environment. In addition, for those familiar with Linux, Bash Shell provides an environment to integrate powerful administration tools and embedding Python code into the platform.
Besides using one environment or the other, more functionalities are available by seamlessly combining these two features together. It is, in fact, possible to execute CLI commands from within the Bash shell and running Bash commands from within the CLI.
The examples below which are taken directly from the Arista documentation show how incredibly flexible their usage is and how to unleash additional capabilities in scripting and customization when combining these two aspects.
Example 1
We can use the power of awk to reformat the output of a show command as we prefer, for example, to show just the mac address associated with each interface:
AristaSW#show int | awk '/^[A-Z]/ {intf=$1} /, address is/{print intf, $6}' Ethernet1 5000.0003.0001 Ethernet2 5000.0003.0002 Ethernet3 5000.0003.0003 Ethernet4 5000.0003.0004 Ethernet5 5000.0003.0005 Ethernet6 5000.0003.0006 Ethernet7 5000.0003.0007 Management1 5000.0003.0000
Example 2
Combining the usage of tools such as more, grep and tail to the CLI show commands we re-use some familiar commands to manipulate the long output for some verbose show commands:
AristaSW#show logging | tail Oct 7 07:26:15 localhost Lldp: %LLDP-5-NEIGHBOR_NEW: LLDP neighbor with chassisId 5000.0015.f4e8 and portId "Ethernet1" added on interface Ethernet1 Oct 7 07:26:42 localhost Stp: %SPANTREE-6-STABLE_CHANGE: Stp state is now stable Oct 7 07:28:04 localhost SuperServer: %SYS-5-SYSTEM_RESTARTED: System restarted Oct 7 07:28:04 localhost SuperServer: %SYS-6-SYSTEM_INFO: Software image version: 4.25.0FX-LDP-RSVP Oct 7 07:28:04 localhost SuperServer: %SYS-6-SYSTEM_INFO: Model: vEOS Oct 7 07:28:04 localhost SuperServer: %SYS-6-SYSTEM_INFO: Serial number: Oct 7 07:28:54 localhost SuperServer: %SYS-5-CLI_SCHEDULER_ENABLED: CliScheduler is enabled, continuing its execution of scheduled CLI jobs. Oct 7 07:35:31 localhost ReloadCauseAgent: %SYS-6-SYSTEM_INFO: Reload Cause 1: Unknown Oct 7 07:56:06 localhost ConfigAgent: %SYS-5-CONFIG_E: Enter configuration mode from console by admin on con0 (0.0.0.0) Oct 7 07:56:17 AristaSW ConfigAgent: %SYS-5-CONFIG_I: Configured from console by admin on con0 (0.0.0.0)
As with every Linux shell, commands can also be concatenated such as:
AristaSW#show logging | tail | grep restarted Oct 7 07:28:04 localhost SuperServer: %SYS-5-SYSTEM_RESTARTED: System restarted
And if we want to save the output in a file:
AristaSW#show logging | tail | grep restarted > /mnt/flash/log1.txt AristaSW#dir flash:log1.txt Directory of flash:/log1.txt -rw- 81 Oct 7 08:04 log1.txt 4093313024 bytes total (3136253952 bytes free)
Example 3
One additional example, uses a Python script running in EOS, to autoconfigure the switch based on the interface number of the uplink-management-network:
https://github.com/GADify/ZTP-Scripts/blob/master/BaseConfig.py
Conclusion
The choice of Arista, to base their EOS on a full Linux Core and to provide complete access to the underlying OS, shows their commitment to empowering users to do with the appliance whatever they consider possible. While building up knowledge and digging into the core of Arista EOS to develop the best solution for them, Arista also provides a comfortable and familiar CLI environment from where to operate the switch.
But beside CLI and Bash Shell, Arista switches offer additional ways for management and control based on API and EOS API (eAPI) allowing third-party software, as well as the very own Arista CloudVision, to add complex automation, sophisticated monitoring, continuous telemetry and orchestration….but this is a topic for another upcoming blog.
Leave a Comment
