• Category : Tech Tips

 
 

Managing Containers on EOS – container-manager

Containers on EOS Container-based deployments make creating cloud portable applications extremely easy. An application can be written on normal build infrastructure, that in turn can be run on a EOS switch or any Linux device that runs docker run time engine. So the same applications that are ran on a server for microservices can be run on switch with Arista EOS. Since Arista extensible operating system is simply linux (CentOS at this time – 2021) we are able to integrate docker run time engine into the operating system. Containers give us the agility and control to run any application without...
Continue reading →

Extending EVPN and VXLAN to the Host

Overview VxLAN provides a highly scalable, standards based approach for constructing L2 overlays on top of routed networks. It is defined in RFC7348, and encapsulates the original host Ethernet frame in a UDP + IP + Ethernet frame. BGP EVPN (RFC 7432 and RFC 8365 for its application to VXLAN) is a standards based control protocol to efficiently discover other endpoints (VTEPs) and distribute reachability information (MAC addresses). This post assumes the reader is already familiar with configuration and operations of EVPN and VXLAN for Arista. Goals The use case here is the extension of a L2 overlay south of the TOR/Leaf...
Continue reading →

Recommended Configurations for Multicast Using Anycast-RP

Overview Multicast is a means of sending data from one source to many receivers.  To understand what one to many looks like no further than a TV streaming service and or a paging system which calls only certain phones.  Unlike broadcast which multicast may act like depending on the design, typically multicast packets are not meant for the whole network but to a set of end points for a specific group.  Sending to a group is achieved by sending data to a multicast IP whose range is from 224.0.0.1 to 239.255.255.255.   For data to flow from its publisher or source,...
Continue reading →

Using the CloudVision API with Service Accounts

Description With the release of CloudVision Portal 2020.3, you have the ability to create Service Accounts. I won’t show you how to create a Service Account, but you can go to this TOI to read about that. This article will show you how to use Service Account Tokens in Python and cURL for API calls. Platform Compatibility This applies to both CVaaS and on-premise installations. How To Using a Service Account Token allows you to bypass the standard authentication process when making API calls. It also allows you to create a local “account” on CloudVision that doesn’t depend on outside authentication...
Continue reading →

Basic Campus Quality of Service (QoS) design

Introduction Quality of Service (QoS) is the ability to provide different priorities to different applications, users, or data flows, or to guarantee a certain level of performance to a data flow. QoS processes apply to traffic that flows through Ethernet ports and control planes. These processes can modify data fields (Class of Service (CoS) or Differentiated Services Code Point (DSCP)) or assign data streams to traffic classes for prioritised handling. In this document we will be implementing a basic enterprise QoS model. Consider the following topology for the following examples:   What do we want to achieve In this example,...
Continue reading →

Configure and Troubleshoot DNS on EOS

What is DNS? The Domain Name Server (DNS) maps FQDN labels to IP addresses and provides addresses for network devices. How to install it on EOS switch? EOS has a pre-installed DNSmasq service that can be used as a lightweight DNS server. The switch can be used in the recursive mode to take the local and external requests and forward them to an upstream DNS server.  Each network requires at least one server to resolve addresses. The configuration file can list a maximum of three server addresses. Configuration Step 1: In EOS CLI configure a name-server: ip name-server vrf default...
Continue reading →

Understanding interface breakout modes on Arista switches

Arista switches have the capability to break out QSFP and OSFP interfaces to multiple lanes of smaller speeds. This can be very useful for high density deployments that require a minimal RU footprint by maximizing the ports available on various Arista platforms. With QSFP interfaces, whether it be for 40G or 100G speeds, these are implemented as 4 lanes that can be independently controlled & configured. With 40G interfaces, these interfaces can operate in 4x10G speeds and for 100G interfaces can operate in 4x25G or 2x50G speeds .        As an example, with the Arista 7280CR2A-30 switch which comes with 30...
Continue reading →

Pushing a Python Script to Devices Using CVP (SWIX)

Introduction In a previous article, I discussed how to push a simple Python script to managed devices with CVP through a configlet. In this article, I will show how to create and install an extension with the same python hello script through an image bundle in CVP. This method is useful if the script is very long and/or has dependencies.   Packaging the Script Into an RPM First, we will need to build an RPM to package the python script. We can do this from a linux host with RPMBuild. I also highly recommend taking a look at this guide...
Continue reading →

Pushing a Python Script to Devices Using CVP (Configlet)

Introduction This method is useful for pushing simple scripts to managed devices in CVP. This is not suitable for long scripts or scripts with dependencies. It may work, but creating extensions is a far more structured approach which I talk about here.   Creating the Configlet We will use an event-handler to assist us in creating the script on the switch due to its ability to execute multiple line bash commands. We are not able to use bash commands natively in  CVP configlets. To start the simple method, create the configlet based on the below example from Provisionsing>Configlets. event-handler hello...
Continue reading →

TerminAttr most commonly used flags and sample configurations

TerminAttr is the EOS state streaming telemetry agent running as a single binary that can stream to both CloudVision and 3rd party applications using gNMI. It has been bundled with every EOS release from 4.17.0F and above and it’s also available as a SWIX extension which can be used to upgrade TerminAttr to the latest version. It is recommended to check the release notes for the latest recommended stable version and compatibility between EOS releases. As the release notes say, the minimum supported TerminAttr version on each EOS release, is the one that comes pre-bundled with it, which can be...
Continue reading →

Create a CloudEOS IP Fabric in a Cloud Provider Using Terraform and CloudVision as-a-Service

Objective The goal of this document is to guide you through the setup of CloudEOS in AWS and/or Azure using CloudVision as-a-Service and the Terraform CloudEOS examples in the Arista GitHub repository. Obtain a CloudVision as-a-Service Account Work with an Arista account team member to procure a CloudVision as-a-Service account. Download and Install Terraform From www.terraform.io, download Terraform 13 or above.  It is best to place the terraform binary file in the PATH of your workstation for ease of use. Download and Install Cloud Provider CLI For AWS Cloud Deployment For an AWS demonstration environment, download and install AWS CLI...
Continue reading →

gNMIReverse Examples

Introduction gNMIReverse is a Dial-Out gRPC service (available on our Github page) that reverses the direction of the dial for gNMI Subscriptions, where the gNMIReverse client (running along with gNMI target) on the switch sends data to the gNMIReverse Server. This article contains steps on how to build the gNMIReverse client and server binaries and examples on how to configure the daemon to run the gNMIReverse client on EOS. Prerequisite The following tools are required to proceed with this setup including cloning the repository and compiling client binary for EOS. Go Git Installing and configuring gNMIReverse client Building the client...
Continue reading →

Understanding and Interpreting SNMP outputs for switch entities

This article provides an overview on how to interpret the values returned by SNMP on polling certain MIB objects related to physical entities such as sensor values of different components from a switch. Overview of Entity MIBS To provide a quick overview, Arista supports the following standard MIBs:  ENTITY-MIB (RFC4133) ENTITY-SENSOR-MIB (RFC4268) ENTITY-STATE-MIB (RFC3433) ..and also a proprietary MIB: ARISTA-ENTITY-SENSOR-MIB ENTITY-MIB describes a set of MIB objects that can be used to poll information regarding physical entities in a networking equipment such as entity name, class (if the unit is a sensor, module, fan, power supply, container etc), hardware /...
Continue reading →

Understanding Table Sizes on the 7050QX-32

A common question asked about Arista switches is “how many routes can they handle”, and unfortunately, this is never an easy question to answer. Dedicated switch ASIC hardware is required to program each route so that when a packet arrives with a certain destination address, the switch can look up the destination and route the packet to the correct interface at line-rate across all the ports. The part that makes it hard is that there is practically never a 1:1 mapping between hardware resources on a switch and the number of routes that can be programmed into them, and under...
Continue reading →

Curl’ing with EOS and third party devices

Perhaps you’re aware that EOS is based on Linux, which comes with many powerful & useful built-in utilities. I recently wrote an EOS Central article on sed. Even if you are not a pure networking person (perhaps you’re a server person), many of the familiar Linux tools you have used in your past exist on EOS natively today. One of my customers recently shared an experience with me that made me smile because they had now started to embrace the Linux underpinnings & power of EOS after running into a configuration challenge with a 3rd party (television) broadcast IP/SDI gateway...
Continue reading →

A simple GNU sed example on EOS

Hopefully by now you are aware that Arista EOS (Extensible Operating System), which is the operating system that runs on Arista switches, is based on Linux. From the CLI you can drop to the Bash shell by just typing bash. Given that EOS is based on Linux you already have access to many of the helpful utilities seen in many Linux distributions. Let’s pretend that you have a configuration file that was copied over from another very similar configuration and that the only thing that needs to change is every occurrence of IP addresses that look like 10.0.x.y. This is...
Continue reading →

CloudVision Event Guide

Overview This article identifies some of the common CloudVision Events and provides information regarding the events themselves or references to troubleshoot the underlying cause of the events. CVP Events BUGALERTS_CVE_EXPOSED Explanation: CVP detected a potential CVE on the switches. For more information, please visit https://www.arista.com/en/support/advisories-notices. CONNECTIVITY_MONITOR_ANOMALY Explanation: The cloudtracer latency anomaly event monitors the latency metric between devices and configured hosts. CVP detected a deviation in these metrics from the historical bounds. For more information, please visit https://eos.arista.com/toi/cvp-2020-1-0/events/#CloudTracer_Latency_Anomaly_Events. LOW_DEVICE_DISK_SPACE Explanation: CVP detected that the filesystem space on a device is below the set threshold. To debug  possible causes for the...
Continue reading →

Troubleshooting Egress Queue drops on 7280/7500 devices

Aggregate VoQ drops on 7280/7500 devices On 7280/7500 devices, the platform architecture uses Virtual Output Queuing (VoQ) between the ingress and egress chips to forward known unicast traffic. Whenever a packet is to be transmitted, the ingress chip requests for credit from the egress. Once the credits are issued/granted, the packet is dequeued to the egress chip. While the packets are awaiting the credit, they are enqueued on the ingress chip buffers, in the Virtual Output Queue (VoQ) for the corresponding egress port. Accordingly, in the output of “show interfaces counters queue detail” on these devices, we see two sections:...
Continue reading →

Operation of the Route-Map ‘continue’ feature with CLI outputs

Supported Platforms The Route-Map ‘continue’ feature is supported on all platforms and is hence platform-independent. The support for this feature in Multi-agent model has been added since EOS-4.21.0, and the support for this feature in Single-agent model  is supported since EOS-4.10.2 Background of the default operation of a route-map A given route-map can have a number of sequence statements each of which contain optional match and/or set rules. When a route is advertised to a BGP neighbor or received from a BGP neighbor, that route is evaluated against each sequence statement of the route-map that’s applied to the concerned neighbor,...
Continue reading →

Onboarding a switch in CVP

Description This article will talk about how to onboard a switch in CVP 2019.1.x/2020.1.x and will deep-dive into the process involved during the registration process. In addition, we will also include the troubleshooting steps that can be taken in case the registration process fails.  Platform compatibility This feature is supported on all platforms. Configuration On the Switch: To enable the onboarding process, we will need to first enable command-api on the switch so that the switch is able to communicate with CVP via eAPI. This can be done in the following way: Arista#configure Arista(config)#management api http-commands Arista(config-mgmt-api-http-cmds)#no shut Arista(config-mgmt-api-http-cmds)#show active...
Continue reading →

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: