Disclaimer: The information contained in this blog is for informational purposes only and should not be considered as official documentation on any subject matter. The postings on this blog are my own and do not necessarily represent the opinions of my current and previous employers.
6/08/2022
Vlan translation on Arista EOS
2/21/2022
EVPN VxLAN Centralized Routing: redistribute VARP MAC to prevent unnecessary flooded traffic
https://www.arista.com/en/um-eos/eos-evpn-vxlan-single-gateway-centralized-routing
In the below EVPN VxLAN Centralized Routing topology
1/13/2022
Arista EOS: traffic tool on Linux
https://eos.arista.com/traffic-generator-on-arista/
- iperf
- but seeing time out error? iptables issue? need to check later
- ethxmit
12/03/2021
Arista EOS - CoppSystemEgressTrap drop
Aggregate CPU counters:
This indicates the sum of port-dependent queue counters across all input ports.
CoPP Class Pkts Octets DropPkts DropOctets
Aggregate
-------------------------------------------------------------------------------------------------------
CoppSystemBgp 14358 1141461 0 0
CoppSystemEgressTrap 10688 97079104 228017 2071078411
10/19/2021
Arista MLAG vs unstable STP
Before reloading an MLAG peer switch to perform an upgrade/downgrade, one of the key check-ups is to make sure the STP is restartable. Otherwise, traffic loss is expected.
8/12/2021
EOS device boots into a weird state - [PyServer ar.Aaa not responding, still trying -- is it running?]
Arista Networks EOS 4.22.4M
localhost login: admin
[PyServer ar.Aaa not responding, still trying -- is it running?]
[PyServer ar.Aaa not responding, still trying -- is it running?]
6/13/2021
MPLS Hashing: Control Word and Entropy Label
- MPLS Lable doesn't have encapsulated protocol information. So after the bottom label, 2 possibilities:
- IPv4/v6 packets if L3VPN, the 1st 4-bit is ipVersion, 4=ipv4, 6=ipv6
- Ethernet frames if L2VPN, the 1st 48-bit is dstMAC
- Along the LSP, if P routers like to do ECMP by hashing, it has to guess like above to do hashing the 5-tuple fields (src/dstAddr, src/dstPort, protoNum)
- So the problem happens if the dstMac starts with 4 or 6
- Arista EOS 4.21.3F: Configurable L2 EVPN MPLS control word
- mpls evpn; label-stack control-word
- Arista EOS 4.22.1F: Control Word support on LDP Pseudowire
- mpls ldp; pseudowire <name>; control-word
- Increase the label stack by 2: 1 for ELI (entropy label indicator = 7), 1 for EL (entropy label)
- Aristea EOS 4.26.0F: LDP Entropy Label Support
- 4.25.2F: LSR support
- 4.26.0F: LER support
- mpls ldp; entropy-label
- This feature has a limitation: PHP LSR can't pop ELI + EL labels, so has to rely on LER to pop up [ELI, ELI, VPN] labels.
- mpls ldp; pseudowire; pseudowire <name>; label flow
5/27/2021
Troubleshooting Arista EOS EVPN VPWS (1)
- Status: CLI conflict
- Status: Admin down
- Status: Interface unavailable
- Status: No remote
- Status: Unprogrammed local connector
RR1-PE5-wa465.11:42:56#sh patch panel
Patch Connector Status
---------------------------- ------------------------------------------------------- ------
pbVpws-PE5:e471--PE1:e1312 1: BGP VPWS custAB Pseudowire PE5:e471--PE1:e1312 Down
2: Ethernet47/1
- Ethernet side:
- Status: CLI conflict
- Possible reason: duplicated patch panel entries for the same ethernet interface
- Status: Admin down
- Check the interface status, to make sure is up
- Pseudowire side:
- Status: Interface unavailable
- Possible reason: make sure "no switchport" under interface
5/20/2021
"Pending BGP Convergence" and invalid on MPLS/SR/EVPN BGP RR
RR1.12:01:04#sh bgp evpn
BGP routing table information for VRF default
Router identifier 100.250.250.5, local AS number 65000
Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP
S - Stale, c - Contributing to ECMP, b - backup
% - Pending BGP convergence
Origin codes: i - IGP, e - EGP, ? - incomplete
AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop
Network Next Hop Metric LocPref Weight Path
% RD: 100.250.250.11:100 auto-discovery 110100 0000:0000:0000:0000:0000
100.250.250.11 - 100 0 i
% RD: 100.250.250.12:100 auto-discovery 120100 0000:0000:0000:0000:0000
100.250.250.12 - 100 0 i
1/18/2021
Arista EOS: RSVP related features
References:
- https://eos.arista.com/eos-4-25-1f/rsvp-te-ler/
- https://eos.arista.com/eos-4-23-2f/rsvp-te-lsr/
- https://eos.arista.com/eos-4-23-1f/bgp-nexthop-resolution-ribs-evpn-and-ipv4-6-labeled-unicast-support/
- https://eos.arista.com/eos-4-22-1f/bgp-nexthop-resolution-ribs-mpls-vpn-support/
- https://eos.arista.com/eos-4-22-0f/user-defined-tunnel-ribs/
1/12/2021
Arista EOS: %ETH-4-ERRDISABLE: no-internal-vlan error detected
If you are seeing the following error message
And the output of "show interface status" indicates some ethernet ports are error-disabled like
Port Name Status Reason
----------- ---------------- ----------------- ----------------
Et81 errdisabled no-internal-vlan
Et82 errdisabled no-internal-vlan
The reason for the above error is that EOS running out of internal VLAN for routed ports. The EOS needs to assign an internal VLAN for the none switching ports. If you have the following 2 lines of configuration, you may hit this error
vlan internal order descending range 4001 4080 <<< but only 80 VLANs assigned
So the solution is to remove the internal VLAN range.
1/02/2021
Why unprotected ISIS segment routing prefix with TiLFA enabled
12/30/2020
12/29/2020
Arista EOS: how to ping link local address under VRF
Here is the subinterface configuration:
interface Ethernet34.4007
description =>v7:Sp4-ck478
mtu 9214
encapsulation dot1q vlan 4007
vrf cust
ipv6 address fe80::1/64 link-local
To ping the remote link-local address, we could use
PING fe80::(fe80::) from fe80::1%et34.4007 et34.4007: 72 data bytes
80 bytes from fe80::1%et31.4007: icmp_seq=1 ttl=64 time=0.076 ms
80 bytes from fe80::1%et31.4007: icmp_seq=2 ttl=64 time=0.029 ms
80 bytes from fe80::1%et31.4007: icmp_seq=3 ttl=64 time=0.027 ms
80 bytes from fe80::1%et31.4007: icmp_seq=4 ttl=64 time=0.027 ms
80 bytes from fe80::1%et31.4007: icmp_seq=5 ttl=64 time=0.032 ms
12/02/2020
Arista EOS: % - Pending BGP convergence when "show bgp evpn"
BGP summary information for VRF default
Router identifier 100.250.250.30, local AS number 65000
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
100.250.250.11 4 65000 500 487 0 0 00:02:15 Estab 4 4
100.250.250.12 4 65000 504 488 0 0 00:02:15 Estab 4 4
10/30/2020
BFD flaps in scale environment
In a lab scenario, says between 2 routers, there are hundreds of sub-interfaces and a BGP session with BFD on each subinterface. Then BFD flaps is seen. The scale information is as followed:
- 256 subinterfaces
- 256 ebgp session enabled with BFD
- BFD timers are 50ms x 3
From the above output, you can see 17 of 256 sessions are not up. And HW BFD is enabled (by default in Eos), but no helps.
ghb289#show bfd hardware utilization
Chip Name Number Of HW Sessions* Maximum Number Of HW Sessions*
--------------- ---------------------------- ------------------------------
Jericho0 0 200
Jericho1 128 200
Jericho2 128 200
CoppSystemBfd Et51/2 783529888 57981211712 3985376 294917824
9/30/2020
Arista EOS Lag/ECMP Hashing Features
References/Manual:
- EOS 4.24.2F TOI - Support for dynamic load balancing on ECMP groups (Trident Only)
- EOS 4.22.1F TOI - ECMP Load Balance Profile Support (Sand/Jericho Only)
- EOS 4.21.3F TOI - Symmetric header selection in LAG load-balancing profiles (Jericho Only)
- EOS 4.21.0F TOI - UDF flex hashing improvements (Trident Only)
- EOS 4.20.6F TOI - LAG hashing enhancement for configuring member-selection method (Jericho Only)
- EOS 4.20.5F TOI - LAG hashing on Ingress Interface
- EOS 4.20.5F TOI - Lag Hashing Key Shift
- EOS 4.20.5F TOI - VxLAN over MPLS LAG hashing optimizations for Bridged ports
- EOS 4.20.1F TOI - LAG and ECMP selectable hashing fields (Jericho Only)
- EOS 4.18.0F TOI - Hardware load-balancing for ingress/egress and fabric/egress replication
- EOS 4.17.2F TOI - Configurable field selection for ECMP hash, (Trident Only)
- EOS 4.17.2F TOI - Disable usage of ingress interface in ECMP hashing
- EOS 4.17.1F TOI - Inner IP hashing for MPLSoGRE
- EOS 4.17.0F TOI - Global LAG Hashing Profiles (Jericho Only)
- EOS 4.17.0F TOI - ECMP Hash Visibility
- EOS 4.15.2F TOI - GRE in LAG hash
- EOS 4.15.2F TOI - LAG/ECMP hashing on TTL/Hop Limit
- EOS 4.15.0F TOI - Dynamic and symmetric LAG hashing
- EOS 4.15.0F TOI - Tap aggregation enhancements
9/23/2020
Understanding the output of "show qos interface eth#"
In this post, I like to explain the output of the EOS command - "show qos interface eth#" based on my understanding from EOS document.
wa461.00:58:25#sh qos interfaces e17/1
Ethernet17/1:
Trust Mode: DSCP
Default COS: 0
Default DSCP: 0
Port shaping rate: disabled
Burst-size: disabled
Tx Bandwidth Shape Rate Burst-Size Priority ECN/WRED
Queue (percent) (units) (units)
------------------------------------------------------------------------------------------
7 - / - - / - ( - ) - / - SP / SP D
6 - / - - / - ( - ) - / - SP / SP D
5 - / - - / - ( - ) - / - SP / SP D
4 - / - - / - ( - ) - / - SP / SP D
3 - / - - / - ( - ) - / - SP / SP D
2 20 / 20 1.2 / 1.0 (Gbps) 2048 KB / 2048 KB RR / RR D
1 30 / 30 - / - ( - ) - / - RR / SP D
0 50 / 50 - / - ( - ) - / - RR / SP D
Note: Values are displayed as Operational/Configured
Legend:
RR -> Round Robin
SP -> Strict Priority
- -> Not Applicable / Not Configured
% -> Percentage of line rate
- Values are displayed as Operational/Configured, like RR/SP which means this Q is configured as strict priority but operational as round-robin.
- If one queue is configured as no priority (RR), then all the lower queues are changed to RR.
- In this example, Q 2 is RR, then 0 and 1 are automatically changed to RR.
- And Q 0 and 1 are RR/SP, which means their configuration are SP by default, but operational mode is RR.
- If both interface and tx-queue are configured with shape, which is effective?
- From EOS manual chapter 27.5 - Enabling port shaping on an FM6000 interface disables queue shaping internally. Disabling port shaping restores queue shaping as specified in running-config.
speed forced 10000full
!
tx-queue 0
bandwidth percent 50
!
tx-queue 1
bandwidth percent 30
!
tx-queue 2
no priority
bandwidth percent 20
shape rate 1000000
- Bandwidth vs shape.
- Bandwidth% is the b/w percent this RR queue can get. Says the above configuration:
- In the sample below, the interface 17/1 is 10 Gbps interface
- Q3-7 are the strict priority and, say use total 2 Gbps traffic, which left 8Gbps for Q0-2
- The tx-Q 2 can have 20% of left-over capacity which is 1.6Gbps
- But the shape rate is 1.2Gbps
- So the maximum throughput of tx-Q 2 is 1.2 Gbps, even it is assigned with 1.6Gbps.
EOS: A simple Qos design example
This article - "A Simple Quality of Service Design Example" is a very good starting point for understanding the EOS Qos architecture and starting a Qos design.
Some points:
- 3 ways in the ingress points to map packets to Tx queues:
- qos cos trust + cos-tc map
- qos dscp trust + dscp-tc map
- service-policy + policy-map
- 3 big categories of traffic:
- network-control = control plane
- latency/jitter sensitive traffic
- best-efforts = scavenger traffic
- qos profile =
- policy-map for input
- tx-queue set for output
- "no priority" in a tx-queue, all lower queues become RR
9/22/2020
Support for CPU traffic policy
The default EOS Copp only provides protocol level traffic policy, for example, the maximum throughput of bgp traffic destined to the cpu. But there is no granularity of source address. So this feature - Support for CPU traffic policy is for this purpose.
Set DSCP value for CPU outbound packets
In Arista EOS, the following protocol packets are able to set a DSCP value other than the default value 0:
- RADIUS, TACACS, SNMP, SSH, and sFlow (feature supported from 4.18.1F)
- NTP, DNS, Syslog, Traceroute, OSPF, and OSPF3 protocols (from 4.22.1F)
Notes:
- The setting must be done individually and under the protocol section
- hostname is not supported.
9/13/2020
EOS: % Not supported when show bgp summary
If you see the error message with EOS command - show bgp <AF> summary, it is probably caused the routing mode. To be more specific, you are probably running ribd mode and the CLI - "show bgp <AF> summary" is only supported in multi-agent mode
ghs259#show bgp ipv6 unicast summary
% Not supported
ghs259-CIN-DPA2.23:32:18#show ip route summary
Operating routing protocol model: ribd
Configured routing protocol model: multi-agent (will apply after next reboot)
8/19/2020
Arista EOS - BGP Selective Route Download
In this post, I will share my experience with a relatively old (was released back in 2015) but very useful Arista EOS feature - BGP Selective Route Download (SRD).
The use cases are quite straightforward:
- Program the necessary routes on the routers with small hardware resources. In the above TOI link, only 30K prefixes of 520K (back in 2015) cover 99% traffic. The left small traffic can be directed by the default route.
- Another useful case (for me) is to control what routes be programmed, or even not installed at all. At meanwhile the BGP runs transparently, which processes, receives and advertises the BGP prefixes. A good example is the RR which is not in the data path. Or hardness router in the lab, it just sends bgp updates. The traffic can be handled by a couple of static routes.


