- Navigational Tricks
- Troubleshooting Tips
- Related references to check out
Arista’s Extensible Operating System has several small features that make life in the CLI simpler, quicker, neater, and all-around just easier. Here are a few common practices which Arista’s Architects and TAC Engineers use with frequency.
While a plethora of different tricks and methods exist that make life simpler for network engineers, too many exist to completely cover in this document. If you want a more comprehensive read on the subject, check out Arista Warrior, 2nd Edition by Gary A. Donahue.
Arista TAC’s Operational Runbook is a much more extensive guide than this introductory article and a perfect start to troubleshoot the most common network problems. Please let your account team know if you cannot locate your copy and they can get you another copy of the Operational Runbook.
Show Active and Show Active All
- Verifies the configuration in the current hierarchy. Use this to check existing configurations without going through a show run.
switch(config-router-bgp)#address-family ipv4 switch(config-router-bgp-af)#show active router bgp 65000 address-family ipv4 neighbor border activate no neighbor 172.16.13.1 activate no neighbor 172.16.13.3 activate no neighbor 172.16.13.5 activate no neighbor 172.16.13.7 activate neighbor 172.16.254.25 activate neighbor 172.16.254.27 activate neighbor 172.16.254.29 activate neighbor 172.16.254.31 activate network 172.16.0.103/32
In EOS, adding the all command displays both the configured and default configurations.
switch(config-router-bgp-af)#show active all router bgp 65000 address-family ipv4 no bgp additional-paths install no bgp next-hop address-family ipv6 no bgp skip rib-install bestpath-selection no bgp missing-policy direction in action no bgp missing-policy direction out action bgp additional-paths receive no bgp additional-paths send any no bgp next-hop-unchanged no bgp route install-map no next-hop resolution disabled ***snipped***
Using “conf” at Any Hierarchical Level
Configuration or simply conf is not just for entering global configuration mode. Use conf to return to the global configuration level without entering exit multiple times.
Acceptance of CIDR Notation
EOS accepts CIDRs, removing the burden of figuring out subnet and wildcard masks.
Router ospf 1 Network 192.168.1.0/24 area 0
If you want to put in the extra work, you may but why? Time is a commodity and thus it is wise to save time where possible.
switch#(config-if-Et1-3)#router ospf 1 switch#(config-router-ospf)#network 192.168.1.0/24 area 0 switch#(config-router-ospf)#network 192.168.2.0 0.0.0.255 area 0.0.0.0 switch#(config-router-ospf)#show active router ospf 1 network 192.168.1.0/24 area 0.0.0.0 network 192.168.2.0/24 area 0.0.0.0 max-lsa 12000 switch#(config-router-ospf)#
Using the Tab key will auto-complete custom-built names created such as VRF Instances, ACLs, and BGP Peer Groups. EVPN_Overlay is the custom name created below. Tabbing is also done without a carriage return which gives you a cleaner output.
switch#(config)#router bgp 65010 switch#(config-router-bgp)#neighbor EVPN_Overlay remote-as 650011 switch#(config-router-bgp)#neighbor EVPN_Overlay ebgp-multihop 3 <- tabbed at the underscore “_” to complete the peer name
switch#(config)#router bgp 65010 switch#(config-router-bgp)#neighbor EVPN_Overlay <--tabbed at the “_” and no extra line appeared switch#(config-router-bgp)#
No “do” is needed in config mode
In EOS, the “do” parameter is optional for exec-level commands while in configuration mode.
Switch(config)#router bgp 65031 Switch(config-router-bgp)#show ip int brief Address Interface IP Address Status Protocol MTU Owner ------------------- ----------------------- ------------ -------------------- ----------- ------- Ethernet49/1 10.139.226.2/31 up up 8000 Loopback0 10.139.227.228/32 up up 65535 Management1 172.28.160.181/22 up up 1500 Port-Channel1 10.139.226.0/31 down lowerlayerdown 1500 Vlan30 188.8.131.52/24 up up 1500
Adding “all” to your Show Run
This command will display the running configuration, including any default configurations . Caution: do not execute a show run all unless you also use the | more so that you can control the scroll rate: show run all | more.
switch#show running all | more ! Command: show running-config all ! device: <removed> (CCS-720XP-24ZY4, EOS-4.27.0F) ! ! boot system flash:/EOS-4.27.0F.swi ! no enable password aaa root secret 5 <removed> aaa authentication policy local allow-nopasssword-remote-login no username root ssh principal no aaa authorization policy local default-role ! username <removed> privilege 15 role network-admin <removed> username <removed> privilege 15 role network-admin secret 5 <removed> username <removed> privilege 15 role network-admin secret 5 <removed> username <removed> privilege 15 role network-admin secret 5 <removed> ! no hardware access-list ipv4 egress resource sharing routed-interfaces ! default hardware access-list ipv6 implicit-permit icmpv6 ! --More--
Watch Differential – what an amazing tool. It is frustrating and time-consuming to run a show command, run the command a second time, then have to “stare and compare” to see if anything changed. EOS has a feature known as Watch Diff. By placing watch diff before any show command, the feature will highlight changes in the output.
When debugging, Arista Engineers will often open up a separate CLI session to the same device and deploy watch diff for monitoring outputs during testing.
Figure 1. Watch Diff Show Interface Ethernet3 Counters | NZ
Figure 2. Watch Diff Show CPU Counters Queue
Isolating the most recent syslogs
Depending on how your logging is configured, your logging buffer may contain thousands of entries. EOS helps you display more recent events based upon how far back you wish to display syslogs.
switch#show logging last 2 ? days Show messages in last <N> days hours Show messages in last <N> hours minutes Show messages in last <N> minutes seconds Show messages in last <N> seconds
Network Visibility Analyzer or LANZ
Microbursts can result in hard to resolve packet loss. Being able to diagnose the source of microbursts becomes vital in environments where even the smallest packet loss impacts network performance. Arista can not only track the traffic patterns but has been doing this well for many years. Here is a link to understanding LANZ and what it can do for you.
EOS opens up the Linux beneath to be used in a host of ways that could take years to master. For starters, combining some Linux searches with the CLI is powerful. Here PIM enabled port-channels and interfaces were being searched for.
switch#show run all | grep -e 'Port-Channel\|pim\|Ethernet' default snmp-server enable traps pim default snmp-server enable traps pim neighbor-loss interface Ethernet1 ip dhcp relay information option circuit-id Ethernet1 no pim ipv4 sparse-mode no pim ipv4 bidirectional no pim ipv4 border-router pim ipv4 hello interval 30 pim ipv4 hello count 3.5 pim ipv4 dr-priority 1 pim ipv4 join-prune interval 60 pim ipv4 join-prune count 3.5 no pim ipv4 neighbor filter default pim ipv4 bfd no pim ipv4 join-prune transport sctp no pim ipv4 local-interface no pim ipv4 non-dr install-oifs no pim ipv6 sparse-mode no pim ipv6 border-router pim ipv6 hello interval 30 pim ipv6 hello count 3.5 pim ipv6 dr-priority 1 pim ipv6 join-prune interval 60 pim ipv6 join-prune count 3.5 no pim ipv6 neighbor filter default pim ipv6 bfd no pim bsr ipv4 border
Linux access and Historical Show Techs
Unless otherwise configured, all Arista devices utilize the underlying Linux to archive a show tech every hour for 100hrs. Using Linux and not the EOS to run this operation saves both active memory space and CPU cycles. It is lightweight and unnoticeable in terms of device resources used.
switch#(config)schedule tech-support interval 60 timeout 30 max-log-files 100 command show tech-support
Use of Linux to Help Debug
Arista allows full access to the Linux kernel, and all the native features for debugging are still present. Below is a very basic search through the saved show tech files. All this is may be done on a live device with no impact to the data or control planes!
switch#bash Arista Networks EOS shell [admin@switch ~]$ cd /mnt/flash/schedule/tech-support/ [admin@switch tech-support]$ (zgrep provides the same functionality as grep but does it for zipped files) [switch tech-support]$ [switch tech-support]$ zgrep -A 2000 -i "show version detail" *.gz | grep -i "aboot-norcal" switch_tech-support_2021-10-03.1210.log.gz:Aboot Aboot-norcal6-6.1.7-13531819 switch_tech-support_2021-10-03.1310.log.gz:Aboot Aboot-norcal6-6.1.7-13531819 switch_tech-support_2021-10-03.1410.log.gz:Aboot Aboot-norcal6-6.1.7-13531819 switch_tech-support_2021-10-03.1510.log.gz:Aboot Aboot-norcal6-6.1.7-13531819 switch_tech-support_2021-10-03.1610.log.gz:Aboot Aboot-norcal6-6.1.7-13531819 switch_tech-support_2021-10-03.1710.log.gz:Aboot Aboot-norcal6-6.1.7-13531819
A feature that allows you to monitor changes impacting your network that are seemingly random in nature, making catching the event an automated process. More granular details can be found here.
Related references to check out