# IPv4 Arista switches support Internet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6) for routing packets across network boundaries. This section describes Arista’s implementation of IPv4 and includes these topics: - IPv4 Addressing - IPv4 Routing - IPv4 Multicast Counters - Route Management - IPv4 Route Scale - IP Source Guard - DHCP Server - DHCP Relay Global Configuration Mode - DHCP Relay Across VRF - DHCP Relay in VXLAN EVPN - DHCP Snooping with Bridging - TCP MSS Clamping - IPv4 GRE Tunneling - GRE Tunneling Support - BfRuntime to Use Non-default VRFs - IPv4 Commands ## IPv4 Addressing Each IPv4 network device is assigned a 32-bit IP address that identifies its network location. These sections describe IPv4 address formats, data structures, configuration tasks, and display options: - IPv4 Address Formats - IPv4 Address Configuration - Address Resolution Protocol (ARP) - Displaying ARP Entries ### IPv4 Address Formats IPv4 addresses are composed of 32 bits, expressed in dotted decimal notation by four decimal numbers, each ranging from **0** to **255**. A subnet is identified by an IP address and an address space defined by a routing prefix. The switch supports the following subnet formats: - **IP address and subnet mask:** The subnet mask is a 32-bit number (dotted decimal notation) that specifies the subnet address space. The subnet address space is calculated by performing an AND operation between the IP address and subnet mask. - **IP address and wildcard mask:** The wildcard mask is a 32-bit number (dotted decimal notation) that specifies the subnet address space. Wildcard masks differ from subnet masks in that the bits are inverted. Some commands use wildcard masks instead of subnet masks. - **CIDR notation:** CIDR notation specifies the scope of the subnet space by using a decimal number to identify the number of leading ones in the routing prefix. When referring to wildcard notation, CIDR notation specifies the number of leading zeros in the routing prefix. **Examples** - These subnets (subnet mask and CIDR notation) are calculated identically: ``` `10.24.154.13 255.255.255.0 10.24.154.13/24` ``` - The defined space includes all addresses between **10.24.154.0** and **10.24.154.255**. These subnets (wildcard mask and CIDR notation) are calculated identically: ``` `124.17.3.142 0.0.0.15 124.17.3.142/28` ``` The defined space includes all addresses between **124.17.3.128** and **124.17.3.143**. ### IPv4 Address Configuration #### Assigning an IPv4 Address to an Interface The [ip address](/um-eos/eos-data-plane-security#xx1144036) command specifies the IPv4 address of an interface and the mask for the subnet to which the interface is connected. **Example**These commands configure an IPv4 address with subnet mask for **VLAN 200**: ``` `switch(config)# **interface vlan 200** switch(config-if-Vl200)# **ip address 10.0.0.1/24** switch(config-if-Vl200)#` ``` #### Assigning an IPv4 Class E Address to an Interface The ipvr routable 240.0.0.0/4command assigns a class E addresses to an interface. When configured, the class E address traffic are routed through BGP, OSPF, ISIS, RIP, static routes and programmed to the FIB and kernel. By default, this command is disabled. **Example** - These commands configure an IPv4 Class E (**240/4**) address to an interface. ``` `switch(config)# **router general** switch(config-router-general)# **ipv4 routable 240.0.0.0/4**` ``` #### Assigning a Secondary IPv4 Address to an Interface The [**ip address secondary**](/um-eos/eos-data-plane-security#xx1144036) command assigns a secondary IPv4 address to an interface. Each interface can have multiple secondary IPv4 addresses assigned to it. **Example** - Use the following commands to enter Ethernet Interface Configuration Mode and add a secondary IP address, 192.168.168.25/32, to Ethernet interface, Ethernet7/30/2: ``` `switch(config)# **interface Ethernet7/30/2** switch(config-if-Et7/30/2)# **ip address 192.168.168.25/32 secondary** switch(config-if-Et7/30/2)#` ``` #### Detecting Duplicate IP Addresses on an Interface The **ip address duplicate detection disabled** command detects any duplicate IP address on the interface. When the switch detects the duplicate IP address, EOS generates a syslog message. It helps the network operator to identify IP addresses misconfiguration. By default, this feature is enabled. Note: This feature supports detecting duplicate virtual IP, VARP, and VRRP addresses. **Examples** - This command disables the feature on the switch. ``` `switch(config)# **ip address duplicate detection disabled**` ``` - This command enables the feature. ``` `switch(config)# **ip address duplicate detection logging**` ``` Note: Use the commands in global configuration mode and not per VRF. This is an example of a Syslog message, when a duplicate IP address is detected. ``` `Mar 24 16:41:57 cd290 Arp: %INTF-4-DUPLICATE_ADDRESS_WITH_HOST: IP address 100.1.1.2 configured on interface Ethernet1/1 is in use by a host with MAC address 00:00:01:01:00:00 on interface Ethernet1/1 in VRF default` ``` ### Address Resolution Protocol (ARP) Address Resolution Protocol (ARP) maps IP addresses to MAC addresses recognized by the local network devices. The ARP cache consists of a table that stores the correlated addresses of the devices that the router facilitates data transmissions. After receiving a packet, routers use ARP to find the device MAC address assigned to the packet destination IP address. If the ARP cache contains both addresses, the router sends the packet to the specified port. If the ARP cache does not contain the addresses, ARP broadcasts a request packet to all devices in the subnet. The device at the requested IP address responds and provides its MAC address. ARP updates the ARP cache with a dynamic entry and forwards the packet to the responding device. Add static ARP entries to the cache using the CLI. #### Proxy ARP Proxy ARP enables a network device (proxy) to respond to ARP requests for network addresses on a different network with its MAC address. Traffic to the destination directs to the proxy device which then routes the traffic toward the ultimate destination. #### Configuring ARP The switch uses ARP cache entries to correlate 32-bit IP addresses to 48-bit hardware addresses. The arp aging timeout command specifies the duration of dynamic address entries in the Address Resolution Protocol (ARP) cache for addresses learned through the Layer 3 interface. The default duration is **14400** seconds (four hours). Entries refresh and expire at a random time within the range of **80%-100%** of the cache expiry time. The refresh attempts three times at an interval of **2%** of the configured timeout. Static ARP entries never time out and must be removed from the table manually. **Example** This command specifies an ARP cache duration of **7200** seconds (two hours) for dynamic addresses added to the ARP cache learned through **VLAN 200**. ``` `switch(config)# **interface vlan 200** switch(config-if-Vl200)# **arp aging timeout 7200** switch(config-if-Vl200)# **show active** interface Vlan200 arp aging timeout 7200 switch(config-if-Vl200)#` ``` The **arp** command adds a static entry to an Address Resolution Protocol (ARP) cache. **Example** This command adds a static entry to the ARP cache in the default VRF. ``` `switch(config)# **arp 172.22.30.52 0025.900e.c63c arpa** switch(config)#` ``` The arp proxy max-delay command enables delaying proxy ARP requests on the configuration mode interface. EOS disables Proxy ARP by default. When enabled, the switch responds to all ARP requests, including gratuitous ARP requests, with target IP addresses that match a route in the routing table. When a switch receives a proxy ARP request, EOS performs a check to send the response immediately or delay the response based on the configured maximum delay in milliseconds (ms). **Example** Use the following command to set a delay of *500ms* before returning a response to a proxy ARP request. ``` `switch(config)# **arp proxy max-delay 500ms**` ``` #### Gratuitous ARP EOS broadcasts gratuitous ARP packets using a device in response to an internal change rather than as a response to an ARP request. The gratuitous ARP packet consists of a request packet (no reply expected) that supplies an unrequested update of ARP information. In a gratuitous ARP packet, both the source and destination IP addresses use the IP of the sender, and the destination MAC address uses the broadcast address (**ff:ff:ff:ff:ff:ff**). Gratuitous ARP packets generate to update ARP tables after an IPv4 address or a MAC address change occurs. ##### Configuring Gratuitous ARP By default, Arista switch interfaces reject gratuitous ARP request packets. The arp gratuitous accept command configures an L3 interface to accept the gratuitous ARP request packets sent from a different device in the network and add the mappings to the ARP table. Gratuitous ARP can be configured on Ethernet interfaces, VLANs/SVI, or L3 port channels, but has no effect on L2 interfaces. **Example** These commands enable gratuitous ARP packet acceptance on **interface ethernet 2/1**. ``` `switch (config)# **interface ethernet 2/1** switch (config-if-Et2/1)# **arp gratuitous accept**` ``` ### Displaying ARP Entries The show ip arp command displays ARP cache entries that map an IP address to a corresponding MAC address. The table displays addresses by their host names when the command includes the **resolve** argument. **Examples** - This command displays ARP cache entries that map MAC addresses to IPv4 addresses. ``` `switch> **show ip arp** Address Age (min) Hardware Addr Interface 172.25.0.2 0  004c.6211.021e Vlan101, Port-Channel2 172.22.0.1 0  004c.6214.3699 Vlan1000, Port-Channel1 172.22.0.2 0  004c.6219.a0f3 Vlan1000, Port-Channel1 172.22.0.3 0  0045.4942.a32c Vlan1000, Ethernet33 172.22.0.5 0  f012.3118.c09d Vlan1000, Port-Channel1 172.22.0.6 0  00e1.d11a.a1eb Vlan1000, Ethernet5 172.22.0.7 0  004f.e320.cd23 Vlan1000, Ethernet6 172.22.0.8 0  0032.48da.f9d9 Vlan1000, Ethernet37 172.22.0.9 0  0018.910a.1fc5 Vlan1000, Ethernet29 172.22.0.11 0  0056.cbe9.8510 Vlan1000, Ethernet26 switch>` ``` - This command displays ARP cache entries that map MAC addresses to IPv4 addresses. The output displays host names assigned to IP addresses in place of the address. ``` `switch> **show ip arp resolve** Address Age (min) Hardware Addr Interface green-vl101.new         0  004c.6211.021e Vlan101, Port-Channel2 172.22.0.1 0  004c.6214.3699 Vlan1000, Port-Channel1 orange-vl1000.n         0  004c.6219.a0f3 Vlan1000, Port-Channel1 172.22.0.3 0  0045.4942.a32c Vlan1000, Ethernet33 purple.newcompa         0  f012.3118.c09d Vlan1000, Port-Channel1 pink.newcompany         0  00e1.d11a.a1eb Vlan1000, Ethernet5 yellow.newcompa         0  004f.e320.cd23 Vlan1000, Ethernet6 172.22.0.8 0  0032.48da.f9d9 Vlan1000, Ethernet37 royalblue.newco         0  0018.910a.1fc5 Vlan1000, Ethernet29 172.22.0.11 0  0056.cbe9.8510 Vlan1000, Ethernet26 switch>` ``` #### ARP Inspection The Address Resolution Protocol (ARP) inspection command ip arp inspection vlan activates a security feature that protects the network from ARP spoofing. EOS intercepts ARP requests and responses on untrusted interfaces on specified VLANs and verifies intercepted packets to ensure valid IP-MAC address bindings. On trusted interfaces, all incoming ARP packets process and forward without verification, and all invalid ARP packets are dropped. ##### Enabling and Disabling ARP Inspection By default, EOS disables ARP inspection on all VLANs. **Examples** - This command enables ARP inspection on VLANs **1** through **150**. ``` `switch(config)# **ip arp inspection vlan 1 - 150** switch(config)#` ``` - This command disables ARP inspection on VLANs **1** through **150**. ``` `switch(config)# **no ip arp inspection vlan 1 - 150** switch(config)#` ``` - This command sets the ARP inspection default to VLANs **1** through **150**. ``` `switch(config)# **default ip arp inspection vlan 1 - 150** switch(config)#` ``` - This command enable ARP inspection on multiple VLANs **1** through **150** and **200** through **250**. ``` `switch(config)# **ip arp inspection vlan 1-150,200-250** switch(config)#` ``` ##### Syslog for Invalid ARP Packets Dropped After dropping an invalid ARP packet, EOS displays the following syslog message appears. The log severity level can be set higher if required. ``` `%SECURITY-4-ARP_PACKET_DROPPED: Dropped ARP packet on interface Ethernet28/1 Vlan 2121 because invalid mac and ip binding. Received: 00:0a:00:bc:00:de/1.1.1.1.` ``` ##### Displaying ARP Inspection States The command show ip arp inspection vlan displays the configuration and operation state of ARP inspection. For a VLAN range specified by **show ip arp inspection vlan**displays only VLANs with ARP inspection enabled. If you do not specify a VLAN, the output displays all VLANs with ARP inspection enabled. The operation state turns to **Active** when the hardware traps ARP packets for inspection. **Example** This command displays the configuration and operation state of ARP inspection for VLANs **1** through **150**. ``` `switch(config)# **show ip arp inspection vlan 1 - 150** VLAN 1 ---------- Configuration : Enabled Operation State : Active VLAN 2 ---------- Configuration : Enabled Operation State : Active {...} VLAN 150 ---------- Configuration : Enabled Operation State : Active switch(config)#` ``` ##### Displaying ARP Inspection Statistics The command show ip arp inspection statistics displays the statistics of inspected ARP packets. For a VLAN specified by **show ip arp inspection vlan**, the output displays only VLANs with ARP inspection. If you do not specify a VLAN, the output displays all VLANs with ARP inspection enabled. The command clear arp inspection statistics clears ARP inspection. **Examples** - This command displays ARP inspection statistics for **VLAN 1**. ``` `switch(config)# **show ip arp inspection statistics vlan 2** Vlan : 2 ------------ ARP Req Forwarded = 20 ARP Res Forwarded = 20 ARP Req Dropped = 1 ARP Res Dropped = 1 Last invalid ARP: Time: 10:20:30 ( 5 minutes ago ) Reason: Bad IP/Mac match Received on: Ethernet 3/1 Packet:   Source MAC: 00:01:00:01:00:01   Dest MAC: 00:02:00:02:00:02   ARP Type: Request   ARP Sender MAC: 00:01:00:01:00:01   ARP Sender IP: 1.1.1 switch(config)#` ``` - This command displays ARP inspection statistics for **ethernet interface 3/1**. ``` `switch(config)# **show ip arp inspection statistics ethernet interface 3/1** Interface : 3/1 -------- ARP Req Forwarded = 10 ARP Res Forwarded = 10 ARP Req Dropped = 1 ARP Res Dropped = 1 Last invalid ARP: Time: 10:20:30 ( 5 minutes ago ) Reason: Bad IP/Mac match Received on: VLAN 10 Packet:   Source MAC: 00:01:00:01:00:01   Dest MAC: 00:02:00:02:00:02   ARP Type: Request   ARP Sender MAC: 00:01:00:01:00:01   ARP Sender IP: 1.1.1 switch(config)#` ``` - This command clears ARP inspection statistics. ``` `switch(config)# **clear arp inspection statistics** switch(config)#` ``` ##### Configuring Trust Interface By default, all interfaces are untrusted. The command ip arp inspection trust configures the trust state of an interface. **Examples** - This command configures the trust state of an interface. ``` `switch(config)# **ip arp inspection trust** switch(config)#` ``` - This command configures the trust state of an interface to untrusted. ``` `switch(config)# **no ip arp inspection trust** switch(config)#` ``` - This command configures the trust state of an interface to the default. ``` `switch(config)# **default ip arp inspection trust** switch(config)#` ``` ##### Configuring Rate Limit After enabling ARP inspection, EOS traps ARP packets to the CPU. When the incoming ARP rate exceeds expectations, two actions can be taken. For notification purposes, the command ip arp inspection logging enables logging of incoming ARP packets. The command ip arp inspection limit disables the interfaces and prevents a denial-of-service attack.. **Examples** - This command enables logging of incoming ARP packets when the rate exceeds the configured value and sets the rate to **2048**, the upper limit for the number of invalid ARP packets allowed per second. Then, it sets the burst consecutive interval to monitor interface for a high ARP rate to **15** seconds. ``` `switch(config)# **ip arp inspection logging rate 2048 burst interval 15** switch(config)#` ``` - This command configures the rate limit of incoming ARP packets to disable the interface when the incoming ARP rate exceeds the configured value, and sets the rate to **512**, the upper limit for the number of invalid ARP packets allowed per second. Then sets the burst consecutive interval to monitor the interface for a high ARP rate to **11** seconds. ``` `switch(config)# **ip arp inspection limit rate 512 burst interval 11** switch(config)#` ``` - This command displays verification of the interface specific configuration. ``` `switch(config)# **interface ethernet 3/1** switch(config)# **ip arp inspection limit rate 20 burst interval 5** switch(config)# **interface Ethernet 3/3** switch(config)# **ip arp inspection trust** switch(config)# **show ip arp inspection interfaces**  Interface      Trust State  Rate (pps) Burst Interval  -------------  -----------  ---------- --------------  Et3/1          Untrusted    20         5  Et3/3          Trusted      None       N/A switch(config)#` ``` ##### Disabling Errors Caused by ARP Inspection If the incoming ARP packet rate on an interface exceeds the configured rate limit in burst interval, EOS disables the interface by default. If errdisabled, the interface remains in this state until you intervene with the command **errdisable detect cause arp-inspection**. For example, after you perform a **shutdown** or **no shutdown** of the interface or it automatically recovers after a certain time period. The command **errdisable recovery cause arp-inspection** enables auto recovery. The command **errdisable recovery interval** enables sharing the auto recovery interval among all disabled interfaces. See the chapter [Data Transfer Introduction](/um-eos/eos-data-transfer#xx1133499) for information on all **errdisable** commands. **Examples** - This command enables errdisable caused by an ARP inspection violation. ``` `switch(config)# **errdisable detect cause arp-inspection** switch(config)#` ``` - This command disables errdisable caused by an ARP inspection violation. ``` `switch(config)# **no errdisable detect cause arp-inspection** switch(config)#` ``` - This command enables auto recovery. ``` `switch(config)# **errdisable recovery cause arp-inspection** switch(config)#` ``` - This command disables auto recovery. ``` `switch(config)# **no errdisable recovery cause arp-inspection** switch(config)#` ``` - This command enables sharing the auto recovery interval of **10** seconds among all errdisable interfaces. ``` `switch(config)# **errdisable recovery interval 10** switch(config)#` ``` - This command disables sharing the auto recovery interval of **10** seconds among all errdisable interfaces. ``` `switch(config)# **no errdisable recovery interval 10** switch(config)#` ``` - This command displays the reason for a port entering the errdisable state. ``` `switch(config)# **show interfaces status errdisabled** Port         Name         Status       Reason ------------ ------------ ------------ --------------- Et3/2                    errdisabled  arp-inspection switch(config)#` ``` ##### Configuring Static IP MAC Binding The ARP inspection command ip source binding allows you to add static IP-MAC binding. If enabled, ARP inspection verifies incoming ARP packets based on the configured IP-MAC bindings. The static IP-MAC binding entry can only be configured on Layer 2 ports. By default, there is no binding entry on the system. **Examples** - This command configures static IP-MAC binding for IP address **127.0.0.1,** MAC address **0001.0001.0001**, **vlan 1**, and Ethernet interface **slot 4** and **port 1**. ``` `switch(config)# **ip source binding 127.0.0.1 0001.0001.0001 vlan 1 interface ethernet 4/1** switch(config)#` ``` - This command configures static IP-MAC binding for IP address **127.0.0.1**, MAC address **0001.0001.0001**, **vlan 1**, and **port-channel interface 20**. ``` `switch(config)# **ip source binding 127.0.0.1 0001.0001.0001 vlan 1 interface port-channel 20** switch(config)#` ``` - This command displays the configured IP-MAC binding entries. Note that the Lease column displays dynamic DHCP snooping binding entries. For static binding entries, lease time displays as infinite. ``` `switch(config)# **show ip source binding 127.0.0.1 0001.0001.0001 static vlan 1 interface port-channel 20** MacAddress      IpAddress   Lease(sec)  Type   VLAN  Interface --------------- ----------- ----------- ------ ----- -------------- 0001.0001.0001  127.0.0.1  infinite    static 1     Port-Channel20 switch(config)#` ``` ## IPv4 Routing Internet Protocol version 4 (IPv4) is a communications protocol used for relaying network packets across a set of connected networks using the Internet Protocol suite. Routing transmits network layer data packets over connected independent subnets. Each subnet is assigned an IP address range, and each device on the subnet is assigned an IP address from that range. The connected subnets have IP address ranges that do not overlap. A router is a network device that connects multiple subnets. Routers forward inbound packets to the subnet whose address range includes the packets’ destination address. IPv4 and IPv6 are internet layer protocols that define packet-switched internetworking, including source-to-destination datagram transmission across multiple networks. These sections describe IPv4 routing and route creation options: - Enabling IPv4 Routing - Static and Default IPv4 Routes - Dynamic IPv4 Routes - Viewing IPv4 Routes and Network Components ### Enabling IPv4 Routing When IPv4 routing is enabled, the switch attempts to deliver inbound packets to destination IPv4 addresses by forwarding them to interfaces or next-hop addresses specified by the forwarding table. The ip routing command enables IPv4 routing. **Example** This command enables IP routing: ``` `switch(config)# **ip routing** switch(config)#` ``` ### Static and Default IPv4 Routes Static routes are entered through the CLI and are typically used when dynamic protocols cannot establish routes to a specified destination prefix. Static routes are also useful when dynamic routing protocols are not available or appropriate. Creating a static route associates a destination IP address with a local interface. The routing table refers to these routes as connected routes available for redistribution into routing domains defined by dynamic routing protocols. The ip route command creates a static route. The destination is a network segment; the next-hop is either an IP address or a routable interface port. When multiple routes exist to a destination prefix, the route with the lowest administrative distance takes precedence. By default, the administrative distance assigned to static routes is **1**. Assigning a higher administrative distance to a static route configures it to be overridden by dynamic routing data. For example, a static route with a distance value of **200** is overridden by OSPF intra-area routes, which have a default distance of **110**. A route tag is a 32-bit number that is attached to a route. Route maps use tags to filter routes. Static routes have a default tag value of **0**. **Example** This command creates a static route: ``` `switch(config)#**ip route 172.17.252.0/24 vlan 500** switch(config)#` ``` #### Creating Default IPv4 Routes The default route denotes the packet forwarding rule that takes effect when no other route is configured for a specified IPv4 address. All packets with destinations that are not established in the routing table are sent to the destination specified by the default route. The IPv4 destination prefix is **0.0.0.0/0**, and the next-hop is the default gateway. **Example** This command creates a default route and establishes **192.14.0.4** as the default gateway address: ``` `switch(config)#**ip route 0.0.0.0/0 192.14.0.4** switch(config)#` ``` #### Resolution RIB Profiles for Static Routes Specify a Resolution RIB Profile as a system-connected per next-hop for a static route. System-connected describes a static route that only resolves if the next hop can be reached over a connected route. If you do not specify a system-connected route, the static route resolves if the next hop can be reached over any type of route in the FIB, including a connected route or a tunnel RIB. route. **Configuring Resolution RIB Profile for Static Routes** Use the following command to configure a Resolution RIB Profile for static route, 10.0.0.0/24, and 10.1.0.0: ``` `switch(config)#**ip route vrf myVRF 10.0.0.0/24 10.1.0.0 resolution ribs system-connected**` ``` **Displaying Resolution Profiles for Static Routes** Use the **show ip route** command: ``` `switch(config)#**show ip route** interface Ethernet1 mtu 1500 no switchport ip address 10.1.1.1/24 ! interface Ethernet2 no switchport ip address 10.10.10.1/24 ip route 10.100.100.0/24 10.10.10.2 resolution ribs system-connected ! arp 10.1.1.2 00:22:33:44:55:66 arpa arp 10.10.10.2 00:22:33:44:55:67 arpa ! mpls tunnel static st1 10.10.10.2/32 10.1.1.2 Ethernet1 label-stack 9000` ``` ### Dynamic IPv4 Routes Dynamic routing protocols establish dynamic routes. These protocols also maintain the routing table and modify routes to adjust for topology or traffic changes. Routing protocols assist the switch in communicating with other devices to exchange network information, maintaining routing tables, and establishing data paths. The switch supports these dynamic IPv4 routing protocols: - [OSPFv2 Introduction](/um-eos/eos-open-shortest-path-first-version-2#xzx_XvxFOLC7zF) - [Border Gateway Protocol (BGP)](/um-eos/eos-border-gateway-protocol-bgp) - [Routing Information Protocol (RIP)](/um-eos/eos-routing-information-protocol-rip) - [IS-IS](/um-eos/eos-is-is) ### Viewing IPv4 Routes and Network Components #### Displaying the FIB and Routing Table The show ip route command displays routing table entries that are in the forwarding information base (FIB), including static routes, routes to directly connected networks, and dynamically learned routes. Multiple equal-cost paths to the same prefix are displayed contiguously as a block, with the destination prefix displayed only on the first line. The **show running-config** command displays configured commands not in the FIB. The show ip route summary command displays the number of routes, categorized by source, in the routing table. **Examples** - This command displays IP routes learned through BGP. ``` `switch> **show ip route bgp** Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP, R - RIP, A - Aggregate B E 170.44.48.0/23 [20/0] via 170.44.254.78 B E 170.44.50.0/23 [20/0] via 170.44.254.78 B E 170.44.52.0/23 [20/0] via 170.44.254.78 B E 170.44.54.0/23 [20/0] via 170.44.254.78 B E 170.44.254.112/30 [20/0] via 170.44.254.78 B E 170.53.0.34/32 [1/0] via 170.44.254.78 B I 170.53.0.35/32 [1/0] via 170.44.254.2 via 170.44.254.13 via 170.44.254.20 via 170.44.254.67 via 170.44.254.35 via 170.44.254.98 switch>` ``` - This command displays a summary of routing table contents. ``` `switch> **show ip route summary** Route Source Number Of Routes ------------------------------------- connected 15 static 0 ospf 74 Intra-area: 32 Inter-area:33 External-1:0 External-2:9 NSSA External-1:0 NSSA External-2:0 bgp 7 External: 6 Internal: 1 internal 45 attached 18 aggregate 0 switch>` ``` #### Displaying the IP Route Age The show ip route age command displays the time when the route for the specified network was present in the routing table. It does not account for changes in parameters like metrics, next hop etc. **Example:** This command displays the time since the last update to ip route **172.17.0.0/20**. ``` `switch> **show ip route 172.17.0.0/20 age** Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP, R - RIP, I - ISIS, A - Aggregate B E 172.17.0.0/20 via 172.25.0.1, **age 3d01h** switch>` ``` #### Displaying Gateways A gateway is a router that provides access to another network. The gateway of last resort, also known as the default route, is the route that a packet uses when the route to its destination address is unknown. The IPv4 default route in is **0.0.0.0/0**. The show ip route gateway command displays IP addresses of all gateways (next hops) used by active routes. **Example** This command displays next hops used by active routes. ``` `switch> **show ip route gateway** The following gateways are in use: 172.25.0.1 Vlan101 172.17.253.2 Vlan2000 172.17.254.2 Vlan2201 172.17.254.11 Vlan2302 172.17.254.13 Vlan2302 172.17.254.17 Vlan2303 172.17.254.20 Vlan2303 172.17.254.66 Vlan2418 172.17.254.67 Vlan2418 172.17.254.68 Vlan2768 172.17.254.29 Vlan3020 switch>` ``` #### Displaying Host Routes The show ip route host command displays all host routes in the host forwarding table. Host routes are those whose destination prefix is the entire address (mask = **255.255.255.255** or prefix = **/32**). Each displayed host route is labeled with its purpose: - **F**      static routes from the FIB. - **R**     routes defined because the IP address is an interface address. - **B**      broadcast address. - **A**      routes to any neighboring host for which the switch has an ARP entry. **Example** This command displays all host routes in the host forwarding table. ``` `switch# **show ip route host** R - receive B - broadcast F - FIB, A - attached F 127.0.0.1 to cpu B 172.17.252.0 to cpu A 172.17.253.2 on Vlan2000 R 172.17.253.3 to cpu A 172.17.253.10 on Vlan2000 R 172.17.254.1 to cpu A 172.17.254.2 on Vlan2901 B 172.17.254.3 to cpu B 172.17.254.8 to cpu A 172.17.254.11 on Vlan2902 R 172.17.254.12 to cpu F 172.26.0.28 via 172.17.254.20 on Vlan3003 via 172.17.254.67 on Vlan3008 via 172.17.254.98 on Vlan3492 via 172.17.254.86 on Vlan3884 via 172.17.253.2 on Vlan3000 F 172.26.0.29 via 172.25.0.1 on Vlan101 F 172.26.0.30 via 172.17.254.29 on Vlan3910 F 172.26.0.31 via 172.17.254.33 on Vlan3911 F 172.26.0.32 via 172.17.254.105 on Vlan3912 switch#` ``` ## IPv4 Multicast Counters IPv4 multicast counters allow association of IPv4 multicast routes with a packet or byte counter. This chapter contains the following sections. - Multicast Counters Hardware Overview - Multicast Counters iBGP and eBGP Configuration - Configuring IPv4 Multicast Counters ### Multicast Counters Hardware Overview This section describes a hardware overview for multicast counters, and contains the following sections. - Platform Independent Requirements for Counters - Policer Counter Overview - BGP Functions Supported for Arista Switches - Additional Requirements #### Platform Independent Requirements for Counters The following platform independent requirements include: - Enable/Disable counters. - Clear counters. - Show counters. - Configure counter mode for byte (default) or frame mode. #### Policer Counter Overview The switch hardware has two policer banks, each with 4k entries, and each entry has one 32-bit entry1 and one 32-bit entry2, which can be used as either a packet counter or byte counter. In the pipeline, each bank can have one policer index coming from upstream blocks, which means different features cannot update multiple policer entries in the same bank simultaneously. Therefore, different features cannot share entries in the same bank. Each FFU/BST entry points to a corresponding RAM in switch hardware routing. A policer index is saved in the action ram, so when installing a multicast route into hardware, the platform code will get a policer index and save it in the action field. A counter is not added to the action field if a policer index is unavailable. Switch hardware can have multiple features competing for the policer banks. It is desirable to have a platform command to reserve policer banks dedicated to a certain feature. The following command reserves one or two policer banks to be used only by the named feature: **[no] platform fm6000 [nat|acl|qos|multicast] policer banks <1|2>** Available bank(s) are reserved for the feature. Otherwise the command will take effect at the next reboot or FocalPointV2 agent restart. This reservation guarantees the configured number of bank(s) for this feature. However, the feature can still possibly obtain the other policer bank if it needs more, and the other bank is available. If a feature has a pending reservation request which is not fulfilled because of availability, and some other feature frees a bank, the bank will be allocated to the pending feature. #### BGP Functions Supported for Arista Switches Arista switches support these BGP functions: - A single BGP instance - Simultaneous internal (IBGP) and external (EBGP) peering - Multiprotocol BGP - BGP Confederations #### Additional Requirements On switch hardware, the following additional requirements include: - Reservation of policer banks. - Notification of policer bank availability when a policer entry is freed by other features. ### Multicast Counters iBGP and eBGP Configuration This section describes the commands required to configure an iBGP and an eBGP topology, and contains the following sections. - Policer Usage #### Policer Usage There are two types of counters – those created by wildcard creation and by specific creation. When a specific counter is required, and the hardware runs out of policer entries, a wildcard counter is forced to give up its policer entry. Suppose the user configures a specific counter, and the Starter Group (SG) already has a wildcard-created counter. In that case, this counter is upgraded to a specific one, with no change in the hardware policer index. If the user configures both a wildcard counter and a specific counter for this SG and subsequently deletes the specific counter, the counter for this SG is downgraded to a wildcard, with no change in the hardware policer index. However, if another specific counter is pending for a hardware policer index, then this policer entry will be assigned to that counter due to its higher precedence. Even if a counter is configured by the user, in order to conserve the use of hardware resources, do not allocate a policer entry until a real route (G, S) is programmed into the Frame Filtering and Forwarding Unit (FFU). ### Configuring IPv4 Multicast Counters Perform the following CLI steps to configure IPv4 multicast counters on the FM6000 platform: - Execute the global configuration command: - **no****|****default** **ip multicast count** **bytes****|** **packets** Enables wildcard counters. Also used to change bytes/packets mode. When hardware runs of resources, specific creation has priority to preempt counters from wildcard creation. The **bytes****|** **packets** optional keyword enables the counter to be in either bytes mode or packets mode. This mode applies to all counters. All counter values will be reset to zero when the counter mode changes. - **no****|****default** **ip multicast count** ** ** This only takes effect when **ip multicast count** is enabled. Either ** ** or **bytes****|****packets** optional keyword is used. They can not be used concurrently. No | default Commands: (default is same as no) - **`no ip multicast count`** Deletes all multicast counters, including explicit ** ** routes - **`no ip multicast count`** ** ** Removes the config. Do not delete the counter because the wildcard is still active. - If no **** is specified, all multicast routes will have counters unless the hardware runs out of resources. The creation of counters is referred to as “wildcard creation.” - If **** is specified, only **** will get a counter (and no other route). The creation of counters is referred to as “specific creation.” By default, all mcast routes will have counters allocated. This **** configuration is applicable when the hardware runs out of resources. Specific **** creation has priority to preempt counters from wildcard creation. The **byte****|****frame** optional keyword enables the counter to be in either byte mode or frame mode. This mode applies to all counters. When the counter mode changes, all counter values will be reset to zero. Either ****, or **byte****|****frame** optional keywords are used but cannot be used together. All counters are **byte****|****frame**. The **byte****|****frame** mode is global and not applicable on a **** basis. - Execute clear command: ``` `**clear ip multicast count **` ``` - Execute show command: ``` `**show multicast fib ipv4 count**` ``` This command currently exists but does not show anything. This show command is intended to display the following (example): ``` `switch> **show multicast fib ipv4 count** Activity poll time: 60 seconds 225.1.1.1 100.0.0.2 Byte: 123 Vlan100 (iif) Vlan200 Activity 0:00:47 ago` ``` Total counts are the sum of counts from all sources in that group. The count value can be **N/A** if a mroute does not have an associated counter. If the count value for any source in a **G** is **N/A**, then the total counts for **G** will be shown as **N/A**. However, the count values for other sources are still shown. ## Route Management When enabling routing, the switch discovers the best route to a packet destination address by exchanging routing information with other devices. EOS disables IP routing by default. The following sections describes routing features that EOS supports: - Route Redistribution - Equal Cost Multipath Routing (ECMP) and Load Sharing - Unicast Reverse Path Forwarding (uRPF) - Routing Tables / Virtual Routing and Forwarding (VRF) - RIB Route Control ### Route Redistribution Route redistribution advertises connected (static) routes or routes established by other routing protocols into a dynamic routing protocol routing domain. By default, the switch advertises only routes in a routing domain established by the protocol that defined the domain. Route redistribution commands specify the scope of the redistribution action. By default, all routes from a specified protocol, or all static routes, advertise into the routing domain. Commands can filter routes by applying a route map and defining the subset of routes to advertise. ### Equal Cost Multipath Routing (ECMP) and Load Sharing Equal Cost Multi-Path (ECMP) provides a routing strategy to forward traffic over multiple paths with equal routing metric values. #### Configuring ECMP (IPv4) EOS assigns all ECMP paths with the same tag value, and commands that change the tag value of a path also change the tag value of all paths in the ECMP route. In a network topology using ECMP routing, hash polarization may result when all switches perform identical hash calculations. Hash polarization leads to uneven load distribution among the data paths. Switches select different hash seeds to perform hash calculations and avoid hash polarization. The ip load-sharing command provides the hash seed with an algorithm for distributing data streams among multiple equal-cost routes to a specified subnet. **Example** This command sets the IPv4 load sharing hash seed to **20**: ``` `switch(config)# **ip load-sharing fm6000 20** switch(config)#` ``` #### Multicast Traffic Over ECMP The switch attempts to spread outbound unicast and multicast traffic to all ECMP route paths equally. To disable the sending of multicast traffic over ECMP, use the [multipath none](/um-eos/eos-multicast-architecture#xx1151679) command or the no version of the [multipath deterministic](/um-eos/eos-multicast-architecture#xx1216054) command. #### Resilient ECMP Resilient ECMP uses prefixes where routes are not desired for rehashing due to link flap, typically where ECMP participates in load balancing. Resilient ECMP configures a fixed number of next-hop entries in the hardware ECMP table for all the routes within a specified IP address prefix. Implementing fixed table entries for a specified next-hop address allows the data flow hash to a valid next-hop number to remain intact even when some next-hops go down or come back online. Enable resilient ECMP for all routes within a specified prefix using the ip hardware fib ecmp resilience command. The command specifies the maximum number of next-hop addresses that the hardware ECMP table contains for the specified IP prefix and configures a redundancy factor that facilitates the duplication of next-hop addresses in the table. The fixed table space for the address uses the maximum number of next hops multiplied by the redundancy factor. When the table contains the maximum number of next-hop addresses, the redundancy factor specifies the number of times to list each address. When the table contains fewer than the maximum number of next-hop addresses, the table space entries fill with additional duplication of the next-hop addresses. EOS supports resilient ECMP for IPv6 IP addresses. **Example** This command configures a hardware ECMP table space of 24 entries for the IP address **10.14.2.2/24**. A maximum of six next-hop addresses can be specified for the IP address. When the table contains six next-hop addresses, each appears in the table four times. When the table contains fewer than six next-hop addresses, each address duplicates until filling all of the 24 table entries. ``` `switch(config)# **ip hardware fib ecmp resilience 10.14.2.2/24 capacity 6 redundancy 4** switch(config)#` ``` #### Unequal Cost Multipath (UCMP) for Static Routes Unequal Cost Multipath (UCMP) for Static Routes provides a mechanism to forward traffic from a device on an ECMP route with the ratio of the weights used for next-hops and program them into the Forwarding Information Database (FIB). **Configuring UCMP for Static Routes** Use the following commands to configure UCMP on the VRF, ***myVRF***, with an FEC maximum size of 100: ``` `switch(config)# **router general** switch(config-router-general)# **vrf myVRF** switch(config-router-general-vrf-myVRF)# **route static ucmp forwarding fec maximum-size 100**` ``` #### Aggregate Group Monitoring (AGM) for ECMP This feature allows the monitoring of packets and bytes traversing the members of the configured ECMP groups on the switch with a high time resolution. Once enabled, AGM collects data for the specified duration, writes it to the specified file on the switch storage, and then stops. **Supported Platforms** - DCS-7260CX3 - DCS-7060X5 - DCS-7388 - DCS-7060X6 #### Configuring AGM for ECMP Groups Note: You must have at least one ECMP Group configured on the switch. To begin collecting data on the switch at 100 millisecond intervals for 1800 seconds, use the following command: ``` `switch(config)# **start snapshot counters ecmp poll interval 100 milliseconds duration 1800 seconds**` ``` Specify an optional URL to store the data. If not specified, the files store in the non-persistent storage at **/var/tmp/ecmpMonitor**. If providing a URL, it must point to a valid file system. EOS allows the following file systems: - **file** - The path must start with **/tmp** or **/tmp**. The files store in the non-persistent storage. - **flash** - Files store in persistent storage. Use the following command to interrupt the snapshot before the end of the configured duration: ``` `switch# **stop snapshot counters ecmp**` ``` To delete previous snapshots, use the following command: ``` `switch# **clear snapshot counters ecmp id_range**` ``` If you do not specify a range of IDs, then all previous snapshots delete from the system. #### Displaying AGM for ECMP Information Use the **show snapshot counters ecmp history** to display information about the configuration. ``` `switch# **show snapshot counters ecmp history** Request ID: 17 Output directory URL: file:/var/tmp/ecmpMonitor Output file name(s): ecmpMonitor-17-adj1284.ctr, ecmpMonitor-17-adj1268.ctr Complete: True Poll interval: 1000 microseconds Total poll count: 59216 Start time: 2024-06-17 17:58:36 Stop time: 2024-06-17 17:59:36 L2 Adjacency ID Interfaces --------------------- ---------------------------------------------------- 1268 Ethernet54/1, Ethernet41/1, Ethernet1/1, Ethernet57/1 1284 Ethernet20/1, Ethernet35/1, Ethernet41/1, Ethernet8/1, Ethernet1/1` ``` The output displays the list of previous snapshots including any current ones as well as the following information: - **Request ID** - Identifies the snapshot Request ID to use for the **clear** command. - **Output directory URL** - Identifies the snapshot storage location. - **Complete** - Identifies the snapshot completion status. - **Poll Interval** - Identifies the configured polling interval for the snapshot. - **Total poll count** - Identifies the total number of hardware counters collected.d - **Start time** and **Stopped time** - Identifies the system time when the snapshot started and stopped. - **L2 Adjacency ID** and **Interfaces** - The summary of the ECMP groups monitored by AGM. #### Configuring IP-over-IP Hierarchical FEC When the next hop of an IP route, the dependent route, resolves over another IP route, the resolving route, the adjacency information of the FEC for the resolving route duplicates into the dependent route FEC. Configuring IP over IP Hierarchical FEC prevents duplication of the adjacency information, and instead, the dependent route FEC points to the resolving route FEC to form a hierarchical FEC for the dependent route. This helps avoid unnecessary allocation of scarce ECMP FECs in the case where the dependent route does not use ECMP, but the resolving route does use ECMP. Use the following commands to enable IP-over-IP HFEC: ``` `switch(config)# **router general** switch(config-router-general)# **rib fib fec hierarchical resolution**` ``` #### Resilient Equal-Cost Multi-Path(RECMP) Deduping Routes covered by a Resilient Equal-Cost Multi-Path (RECMP) prefix consists of routes that use hardware tables dedicated for Equal-Cost Multi-Path (ECMP) routing. Resilient ECMP (RECMP) deduping reduces the number of ECMP hardware table entries allocated by the switch to force the routes with the same set of next hops but point to different hardware table entries and point to the same hardware table entry when encountering high hardware resource utilization. Forcing RECMP routes to change the hardware table entry that they point to may potentially cause a traffic flow disruption for any existing flows going over that route. The deduping process attempts to minimize the amount of potential traffic loss. Each route needs to allocate hardware table entries in the ASIC that contain forwarding information for the route, such as the next-hops and egress links used by each next-hop uses. The network device uses these hardware table entries when making forwarding decisions for a packet meant for a certain route. These ECMP hardware tables have limited size and can fill up quickly if allocating a large number of these hardware table entries. One option to ease the usage of these hardware tables can force RECMP routes to share hardware table entries. RECMP routes can point to the same hardware table entry if they share the same set of next hops and the order of the next-hops. However, RECMP routes may end up sharing the same set of next-hops, but the next-hop ordering may be different between them, and the routes end up occupying different hardware table entries in the ASIC. RECMP routing has a property where the current ordering of next-hops for a given route can be influenced by the previous order. The ordering between the routes can differ because these routes had a different set of next hops at some previous time before they finally converged onto the same set of next-hops. When the ECMP hardware resource usage crosses the high threshold, the deduping process begins, and it lasts until the ECMP hardware resource usage falls below the low threshold. Use the **ip hardware fib next-hop resource optimization thresholds** command to modify the thresholds. ##### Configuring Resilient ECMP Deduping EOS disabled Resilient ECMP Deduping by default. - Use the following command to disable all the hardware resource optimization features: ``` `switch(config)# **ip hardware fib next-hop resource optimization disabled**` ``` - Use the following command to re-enable the all hardware resource optimization features after disabling them: ``` `switch(config)# **no ip hardware fib next-hop resource optimization disabled**` ``` - Use the following command to configure the thresholds for starting and stopping the optimization: ``` `switch(config)# **ip hardware fib next-hop resource optimization thresholds low <20> high <80>**` ``` Note: - The value specified for the threshold represents the percentage of resource utilization, and uses an integer between **0** and **100**. - Setting the high threshold to **80** indicates that optimization starts when the resource utilization is above **80%**. The default value of this threshold is **90**. - Setting the low threshold to **20** indicates that optimization stops when the resource utilization is below **20%**. The default value of this threshold is **85**. ##### Show Commands - The **show ip hardware fib summary** command displays the statistics of this RECMP deduping: **Example** ``` `switch# **show ip hardware fib summary** Fib summary ----------- Adjacency sharing: disabled BFD peer event: enabled Deletion Delay: 0 Protect default route: disabled PBR: supported URPF: supported ICMP unreachable: enabled Max Ale ECMP: 600 UCMP weight deviation: 0.0 Maximum number of routes: 0 Fib compression: disabled **Resource optimization for adjacency programming: enabled Adjacency resource optimization thresholds: low 20, high 80**` ``` The last two lines of the output shows if RECMP deduping is enabled, and the corresponding threshold values for starting and stopping the optimization process. - The **show hardware capacity** command displays the utilization of the hardware resources. The example below shows the multi-level hierarchy ECMP resources: ``` `switch# **show hardware capacity** Forwarding Resources Usage Table Feature Chip Used Used Free Committed Best Case High Entries (%) Entries Entries Max Watermark Entries ------- --------------- ------- -------- ------- -------- ------------ ------------ --------- ECMP 0 0% 4095 0 4095 0 ECMP Mpls 0 0% 4095 0 4095 0 ECMP Routing 0 0% 4095 0 4095 0 ECMP VXLANOverlay 0 0% 4095 0 4095 0 ECMP VXLANTunnel 0 0% 3891 0 3891 0` ``` ##### Limitations - With RECMP deduping, optimization of a sub-optimal ECMP route requires releasing and reallocating hardware resources for the route. Therefore the process may increase overall convergence time for route programming. It may not be desirable to always start the optimization when the sufficent hardware resource existt. The threshold value for starting the optimization should be adjusted based on the route scale of the network. - The deduping of ECMP hardware resources may cause potential traffic flow disruption for traffic flows going over RECMP routes with changing hardware table entries. While the deduping process tries to minimize the amount of traffic flow disruption, it is still sometimes inevitable. - RECMP hardware table entries can only be deduped to other RECMP hardware table entries that share the same set of nexthops. This puts a limit to the amount of RECMP hardware table entries that can be reduced to the number of RECMP hardware table entries with unique nexthop sets. ### Cluster Load Balancing Cluster load balancing distributes incoming network traffic across a cluster of servers to improve performance, increase reliability, and ensure high availability. By preventing any single server from becoming overwhelmed by network traffic, cluster load balancing optimizes resource utilization and minimizes response times. The core networking capability of cluster load balancing uses a load balancer acting as a limiting factor for a group of servers acting asa cluster. When a client request arrives, the load balancer intercepts it and by using various algorithms, decides which server in the cluster can best provide handling of the request. The decision can be based on server health, current load, or a simple round-robin rotation. The selected server then processes the request and sends the response back to the client. The `**load-balance**` command specifies the hashing algorithm and fields to use for Equal-Cost Multi-Path (ECMP) load balancing on a router. ECMP allows a router to use multiple next-hop addresses for the same destination, distributing traffic across these paths. The configuration determines which parts of the packet header, such as source IP or destination IP, to use for hash value creation. This ensures that a single flow, a stream of packets with the same header information, consistently uses the same path, preventing packet reordering and improving performance for applications such as TCP.s Arista Cluster Load Balancing (CLB) optimizes traffic flows in data center clusters, particularly for AI/ML workloads, using RoCE (Remote Direct Memory Access (RDMA) over Converged Ethernet), and intelligently places flows in both directions to ensure balanced traffic across all paths in a spine-leaf topology. By monitoring RoCE traffic and making real-time adjustments to ensure consistent and high throughput communication between Graphics Processing Units (GPU) servers, CLB eliminates bottlenecks and improves overall network utilization. #### Configuring Cluster Load Balancing Access CLB commands in the Global Configuration mode and configure the fields used for the hashing algorithm. Use the following command to enter the CLB configuration mode: ``` `switch(config)# **load-balance cluster** switch(config-clb)#` ``` CLB supports VXLAN bridging and routed as the forwarding mode and encapsulation to deliver packets between Top of Rack (TOR) switches over the uplinks. Use the following command to configure VXLAN bridging as the forwarding mode: ``` `switch(config-clb)# **forwarding type bridged encapsulation vxlan**` ``` Use the following commands to configured the forwarding mode as routed: ``` `switch(config-clb)# **forwarding type routed**` ``` If configuring the CLB forwarding type as routed, you must add the prefix length to match the length used for the network on each TOR with GPU addresses, and by default, supports only one length. For example, if the GPUs on a TOR use IPv4 addresses from `10.0.0.1` to `10.0.0.255`, then configure the prefix length as `24`. ``` `switch(config-clb)# **destination grouping prefix length 24**` ``` Use the `**flow source**` parameter to add the method for learning flows. By default, EOS only supports `learning`: ``` `switch(config-clb)# **flow source learning**` ``` To load-balance traffic on the TORs, use the round-robin method. EOS does not support any other method of load-balancing traffic. ``` `switch(config-clb)# **load-balance method flow round-robin**` ``` By default, flow aging timeout has a value of 600 seconds with a minimum of 30 seconds. Setting the interval between bursts of training job network communication below 30 seconds negatively impacts performance as flows can be incorrectly aged out of the hardware. Use the following command to configure the interval to 60 seconds: ``` `switch(config-clb)# **flow source learning** switch(config-clb-flow-learning)# **aging timeout 60 seconds**` ``` CLB requires identification of the ports connected to the same GPU server. Use the **port groups** to configure the ports and flows from the interfaces load-balance with each other. EOS does not limit the number of groups, however, Arista Networks recommends using only one group per GPU server. Use the following commands to add ***server1*** and interfaces, ***Et15/1,16/1,17/1,18/1***, to the port group: ``` `switch(config-clb)# **port group host server1** switch(config-clb-portgroup-server1)# **member Et15/1,16/1,17/1,18/1**` ``` To limit the number of flows programmed for a port group and preserve hardware TCAM resources, use the following command to limit the number of flows to 800: ``` `switch(config-clb-portGroup-server1)# **flow limit 800**` ``` Configure CLB flow match type as VXLAN bridging IPv4 traffic, and configure a VXLAN interface for the flow. ``` `switch(config)# **interface vxlan1** switch(config)# **flow match encapsulation vxlan ipv4**` ``` You can also configure the default flow match type as a non-VXLAN IPv4 packet: ``` `switch(config)# **flow match encapsulation none ipv4**` ``` ##### Displaying Cluster Load Balancing Information Use the **show load-balance cluster status** to display the current status of CLB: ``` `switch# **show load-balance cluster status** CLB Status: enabled Port Group Name Fallback DSCP Fallback Traffic Class --------------------- ------------------- ---------------------- group0 46 - group1 - 3` ``` Use the **show load-balance cluster flows** to display all programmed flows: ``` `switch# **show load-balance cluster flows** VRF SA DA Queue Pair Rx Intf Flow Assignment --------- -------- -------- ---------------- ------------- --------------- default 10.98.0.1 10.99.0.1 1000 Et15/1 Et1/1 10.0.0.2 default 10.98.0.2 10.99.0.2 1001 Et16/1 Et2/1 10.1.0.2 default 10.98.0.3 10.99.0.3 1002 Et17/1 Et5/1 10.2.0.2 default 10.98.0.4 10.99.0.4 1003 Et18/1 Et6/1 10.3.0.2 Total flows: 4, displayed: 4` ``` #### Cluster Load Balancing for a Spine Cluster Load Balancing on a Spine router ensures optimal load balancing flows used as part ofGPU-based cluster communication in a network with multiple links connecting a TOR router to a Spine router. When enabled on a Spine, the router monitors RoCE traffic from a TOR and applies optimal load balancing when forwarding traffic to the next TOR router host the destination GPU server. ##### Configuring Cluster Load Balancing for a Spine Note: Only the multi-agent routing model supports CLB. Note: Perform the following commands only on a Spine router. Use the following command to enter the CLB Configuration Mode: ``` `switch(config)# **load-balance cluster** switch(config-clb)#` ``` Configure the forwarding mode and encapsulation to forward packets on the Spine switch. EOS only supports **`routed`** for IPv4: ``` `switch(config-clb)# forwarding type routed` ``` Enter the following command to configure flow learning for the Spine switch: ``` `switch(config)# **flow source learning**` ``` The **load-balance method** command configures load balancing flows and must be entered on the Spine switch: ``` `switch(config-clb)# **load-balance method flow spine port-index**` ``` Configure the number of ports connecting the Spine to the Leaf switch. Every TOR connected to the Spine must have the same number of ports connecting to the Spine. ``` `switch(config-clb)# **spine port group size 2**` ``` CLB requires configuring the identification of the port group that connect the Spine switch to a TOR. The following output provides an example configuration of two port groups on TOR1 and TOR2, each with 2 ports: ``` `port group spine TOR1 member 10 Ethernet12/1 member 20 Ethernet1/1 ... port group spine TOR2 member 10 Ethernet5/1 member 20 Ethernet13/1` ``` The ports within a group display in order of increasing priority by the number assigned to each port. Ethernet1/1 and Ethernet13/1 have the second position in the configuration. To limit the number of flows programmed for a port group and preserve hardware TCAM resources, use the following command to limit the number of flows to 800: ``` `switch(config-clb-portGroup-server1)# **flow limit 800**` ``` Configure CLB flow match type as VXLAN bridging IPv4 traffic, and configure a VXLAN interface for the flow. ``` `switch(config)# **interface vxlan1** switch(config)# **flow match encapsulation vxlan ipv4**` ``` You can also configure the default flow match type as a non-VXLAN IPv4 packet: ``` `switch(config)# **flow match encapsulation none ipv4**` ``` ### Unicast Reverse Path Forwarding (uRPF) Unicast Reverse Path Forwarding (uRPF) verifies the accessibility of source IP addresses in forwarded packets from a switch. When uRPF determines that the routing table does not contain an entry with a valid path to the packet source IP address, the switch drops the packet. IPv4 and IPv6 uRPF operate independently. Configure uRPF on a VRF. Commands that do not specify a VRF utilize the default instance. uRPF does not affect multicast routing. uRPF defines two operational modes: - **Strict mode** - In strict mode, uRPF also verifies that a received packet on the interface with the routing table entry uses that entry for the return packet. - **Loose mode** - uRPF validation does not verify the inbound packet ingress interface. #### uRPF Operation Configure uRPF on interfaces. For packets arriving on a uRPF-enabled interface, the source IP address examines the source and destination addresses of unicast routing table entries and verifies it. uRPF requires a reconfigured routing table to support IP address verification. When enabling uRPF for the first time, unicast routing becomes briefly disabled to facilitate the routing table reconfiguration. The initial enabling of uRPF does not affect multicast routing. A packet fails uRPF verification if the table does not contain an entry whose source or destination address that matches the packet’s source IP address. In strict mode, the uRPF also fails when the matching entry’s outbound interface does not match the packet’s ingress interface. uRPF does not verify the following packets: - DHCP with a source that uses **0.0.0.0** and a destination uses **255.255.255.255**. - IPv6 link local in the following format -**FE80::/10**. - Multicast packets ##### ECMP uRPF When verifying ECMP routes, strict mode checks all possible paths to determine the correct interface receives the packet. ECMP groups with a maximum of eight routing table entries support strict mode. The switch reverts to loose mode for ECMP groups that exceed eight entries. ##### Default Routes uRPF strict mode provides an **allow-default** option that accepts default routes. On interfaces that enable allow-default and define a default route, uRPF strict mode validates a packet even when the routing table does not contain an entry that matches the packet’s source IP address. If not enabling allow-default, uRPF does not consider the default route when verifying an inbound packet. ##### Null Routes **NULL0** routes drop traffic destined to a specified prefix. When enabling uRPF, traffic originating from null route prefixes drops in strict and loose modes. #### uRPF Configuration Enable Unicast Reverse Path Forwarding (uRPF) for IPv4 packets ingressing the configuration mode interface using the ip verify command. Note: uRPF cannot be enabled on interfaces with ECMP member FECs. **Examples** - This command enables uRPF loose mode on **interface vlan 17**. ``` `switch(config)# **interface vlan 17** switch(config-if-Vl17)# **ip verify unicast source reachable-via any** switch(config-if-Vl17)# **show active** interface Vlan17 ip verify unicast source reachable-via any switch(config-if-Vl17)#` ``` - This command enables uRPF strict mode on **interface vlan 18**. ``` `switch(config)# **interface vlan 18** switch(config-if-Vl18)# **ip verify unicast source reachable-via rx** switch(config-if-Vl18)# **show active** interface Vlan18 ip verify unicast source reachable-via rx switch(config-if-Vl18)#` ``` ### Routing Tables / Virtual Routing and Forwarding (VRF) An IP routing table is a data table that lists the routes to network destinations and metrics (distances) associated with those routes. A routing table is also known as a Routing Information Base (RIB). Virtual Routing and Forwarding (VRF) allows traffic separation by maintaining multiple routing tables. Arista switches support multiple VRF instances: - A default global VRF - Multiple user-defined VRFs The number of user-defined VRFs supported varies by platform. VRFs can be used as management or data plane VRFs. - Management VRFs have routing disabled and typically used for management-related traffic. - Dataplane VRFs have routing enabled and support routing protocols and packet forwarding, including both hardware and software. Trident, FM6000, and Arad platform switches support dataplane VRFs. VRFs support unicast IPv4 and IPv6 traffic and multicast traffic. Loopback, SVI, and routed ports may be added to VRFs. Management ports may be added without any hardware forwarding. To allow overlap in the sets of IP addresses used by different VRF instances, a Route Distinguisher (RD) may be prepended to each address. RFC4364 defines RDs. #### Default VRF EOS creates the default VRF automatically and you cannot renamed or configure it. Some configuration options accept ***default*** as a VRF input. #### User-Defined VRFs Create a user-defined VRF with the vrf instance command. After creating it, a VRF may be assigned a Route Distinguisher (RD) with the rd (VRF configuration mode) command in the VRF submode of Router-BGP Configuration Mode. **Examples** - These commands create a VRF named **purple**, place the switch in BGP VRF configuration mode for that VRF, and specify a route distinguisher for the VRF, identifying the administrator as **AS 530**, and assigning **12** as its local number. ``` `switch(config)# **vrf instance purple** switch(config-vrf-purple)# **router bgp 50** switch(config-router-bgp)# **vrf purple** switch(config-router-bgp-vrf-purple)# **rd 530:12** switch(config-router-bgp-vrf-purple)#` ``` - To add interfaces to a user-defined VRF, enter configuration mode for the interface and use the vrf (Interface mode) command. Loopback, SVI, and routed ports can be added to a VRF.These commands add **vlan 20** to the VRF named **purple**. ``` `switch(config)# **interface vlan 20** switch(config-if-Vl20)# **vrf purple** switch(config-if-Vl20)#` ``` - The show vrf command shows information about user-defined VRFs on the switch.This command displays information for the VRF named **purple**. ``` `switch# **show vrf purple** Vrf     RD         Protocols  State       Interfaces ------- ---------- ---------- ----------- ------------ purple  64496:237  ipv4       no routing  Vlan42, Vlan43 switch>` ``` ##### rd (VRF configuration mode) The **rd** command issued in VRF Configuration Mode is a legacy command supported for backward compatibility. To configure a Route Distinguisher (RD) for a VRF, use the rd (VRF configuration mode) command. Note: Legacy RDs that were assigned to a VRF in VRF Configuration Mode still appear in **show vrf** outputs if an RD has not been configured in Router-BGP VRF Configuration Mode, but they no longer have an effect on the system. #### Context-Active VRF The context-active VRF specifies the default VRF commands to use when displaying or refreshing routing table data. VRF-context aware commands include: - clear arp-cache - show ip - show ip arp - show ip route - show ip route gateway - show ip route host The cli vrf command specifies the context-active VRF. **Example** This command specifies **magenta** as the context-active VRF. ``` `switch# **cli vrf magenta** switch# **show routing-context vrf** Current VRF routing-context is magenta` ``` The show routing-context vrf command displays the context-active VRF. **Example** This command displays the context-active VRF. ``` `switch# **show routing-context vrf** Current VRF routing-context is magenta switch#` ``` ### RIB Route Control The Routing Information Base (RIB) consists of the routing information learned by the routing protocols, including static routes. The Forwarding Information Base (FIB) consists of the routes actually used to forward traffic through a router. Forwarding Information Base (FIB) performs IP destination prefix-based switching decisions. Similar to a routing table, the FIB maintains the forwarding information for the winning routes from the RIB. When routing or topology changes occur in the network, the IP routing table information updates, and reflects the changes in the FIB. #### Configuring FIB policy The RIB calculates the best or winning routes to each destination and place these routes in the forwarding table. Then advertises the best routes based on the configured FIB policy. For example, a FIB policy can be configured to deny the routes for FIB programming, however, it does not prevent these routes fromadvertising a routing protocol, or redistributed into another routing domain, or used for recursive resolution in the IP RIB. FIB policies control the size and content of the routing tables, and the best route to take to reach a destination. Use the **rib ipv4 | ipv6 fib policy** command to enable an FIB policy for a specific VRF in the Router General Configuration Mode. EOS supports the following match statements: - **match interface** - **match** **[ ip | ipv6 ] address** **prefix-list** - **match** **[ ip | ipv6 ] resolved-next-hop** **prefix-list** - **match isis level** - **match metric** - **match source-protocol** **Example** The following example enables FIB policy for IPv4 in the default VRF, using the route map, **map1**. ``` `switch(config)# **router general** switch(config-router-general)# **vrf default** switch(config-router-general-vrf-default)# **rib ipv4 fib policy map1**` ``` ##### Configuring FIB Route Limits The FIB route count for a VRF table includes FIB routes from most protocol sources, such as BGP, IGP, static routes, and address families. After the FIB routes reach a configured limit on the VRF, EOS suppresses new BGP route additions in the FIB to avoid exceeding the limit. Other types of routes continue to add to the FIB table after the configured limit has been exceeded. EOS maintains suppressed routes for each VRF and address family in a suppressed routes list. If the FIB table reduces routes below the configured limit, then routes on the suppressed routes list install into the table. If a BGP route becomes suppressed due to the table limit, the BGP route does not advertise to peers. The FIB route limit does not affect routes already installed in the FIB. When configuring a lower limit on the FIB table, existing BGP routes remain in the table. Only new BGP routes become suppressed based on the new limit configuration. | Protocol | Apply to the FIB Route Count | FIB Route Suppression Supported | | BGP | Yes | Yes | | IGP | Yes | No | | Static | Yes | No | | Other | Yes | No | | ARP | No | No | Use the following command to configure a global route limit for IPv4 to 100 and warn when the table has consumed 80% of the limit: ``` `switch(config)# **router general** switch(config-router-general)# **fib route limit** switch(config-router-general-fib-route-limit)# **ipv4 limit 100 warning-limit 80 percent**` ``` All VRFs inherit the global configuration unless explicitly configured with a limit. Use the following command to limit the number of routes to 100 on VRF purple and warn when the table has consumed 80% of the limit: ``` `switch(config)# **router general** switch(config-router-general)# **vrf purple** switch(config-router-general-vrf-purple)# **fib ipv4 route limit 100 warning-limit 80 percent**` ``` To disable the feature, use the following command: ``` `switch(config-router-general-vrf-purple)# **fib ipv4 route limit disabled**` ``` Configure globally suppressing BGP routes in case of a route limit overflow using the following commands: ``` `switch(config)# **router general** switch(config-router-general)# **fib route limit** switch(config-router-general-fib-route-limit)# **action protocol bgp route overflow suppress**` ``` Use the **show fib [ipv4 | ipv6] route limit [vrf vrf_name] suppressed** command to display information about suppressed routes in the FIB table: ``` `switch# **show fib ipv4 route limit suppressed** VRF: default Address-Family IPv4: 12 routes suppressed 201.1.0.0/24 (bgp) 201.1.4.0/24 (bgp) 201.1.5.0/24 (bgp) 201.1.6.0/24 (bgp) 201.1.7.0/24 (bgp) 201.1.8.0/24 (bgp) 201.1.9.0/24 (bgp) 201.1.10.0/24 (bgp) 201.1.11.0/24 (bgp) 201.1.12.0/24 (bgp) 201.1.13.0/24 (bgp) 201.1.14.0/24 (bgp)` ``` #### Displaying FIB Information Use the **show rib route fib policy exclude** command to display the RIB information. The **fib policy excluded** option displays the RIB routes excluded from programming into the FIB by the FIB policy. **Example** The following example displays the routes filtered by FIB policy using the **fib policy excluded** option of the **show rib route ip|ipv6** command. ``` `switch# **show rib route ipv6 fib policy excluded** switch# **show rib route ip bgp fib policy excluded** VRF name: default, VRF ID: 0xfe, Protocol: bgp Codes: C - Connected, S - Static, P - Route Input B - BGP, O - Ospf, O3 - Ospf3, I - Isis > - Best Route, * - Unresolved Nexthop L - Part of a recursive route resolution loop >B 10.1.0.0/24 [200/0] via 10.2.2.1 [115/20] type tunnel via 10.3.5.1, Ethernet1 via 10.2.0.1 [115/20] type tunnel via 10.3.4.1, Ethernet2 via 10.3.6.1, Ethernet3 >B 10.1.0.0/24 [200/0] via 10.2.2.1 [115/20] type tunnel via 10.3.5.1, Ethernet1 via 10.2.0.1 [115/20] type tunnel via 10.3.4.1, Ethernet2 via 10.3.6.1, Ethernet3` ``` #### Displaying RIB Route Information Use the show rib route ip command to view the IPv4 RIB information. **Example** This command displays IPv4 RIB static routes. ``` `switch# **show rib route ip static** VRF name: default, VRF ID: 0xfe, Protocol: static Codes: C - Connected, S - Static, P - Route Input B - BGP, O - Ospf, O3 - Ospf3, I - Isis > - Best Route, * - Unresolved Nexthop L - Part of a recursive route resolution loop >S 10.80.0.0/12 [1/0] via 172.30.149.129 [0/1] via Management1, directly connected >S 172.16.0.0/12 [1/0] via 172.30.149.129 [0/1] via Management1, directly connected switch#` ``` ## IPv4 Route Scale Optimize IPv4 routes to achieve route scale when route distribution has many routes with one or two parameters, and each parameter consisting of prefix lengths **12**, **16**, **20**, **24**, **28**, and **32**. If configuring two separate prefix lengths, in any order, one must have the prefix length of **32**. Note: IPv4 Route Scale cannot be used with AlgoMatch. The following sections describe IPv4 route scale configuration, show commands, and system log messages: - Configuring IPv4 Route Scale - IPv4 Routescale with 2-to-1 Compression - Show Commands ### Configuring IPv4 Route Scale Enable IPv4 route scale using the ip hardware fib optimize command in the Global Configuration Mode. The platform Layer 3 agentrestarts to ensure IPv4 routes optimization with the agent SandL3Unicast terminate command in the Global Configuration Mode. **Example** This configuration command allows configuring prefix lengths **12** and **32**. ``` `switch(config)# **ip hardware fib optimize exact-match prefix-length 12 32** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` One of the two prefixes uses a prefix-length of **32** required in the instance when using two prefixes. For this command to take effect, you must restart the platform Layer 3 agent. **Example** This configuration command restarts the platform Layer 3 agent to ensure IPv4 route optimization. ``` `switch(config)# **agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes and then re-adds them to the hardware. **Example** This configuration command allows configuring prefix lengths **32** and **16**. ``` `switch(config)# **ip hardware fib optimize exact-match prefix-length 32 16** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` One of the two prefixes uses a prefix-length of **32** required in the instance when using two prefixes. For this command to take effect, you must restart the platform Layer 3 agent. **Examples** - This configuration command restarts the platform Layer 3 agent to ensure IPv4 route optimization. ``` `switch(config)# **agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes and then re-adds them to the hardware. - This configuration command allows configuring prefix length **24**. ``` `switch(config)# **ip hardware fib optimize exact-match prefix-length 24** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` In this instance, when configuring a single prefix-length, the configuration does not require a prefix-length of **32**. For this command to take effect, you must restart the platform Layer 3 agent. **Examples** - This configuration command restarts the platform Layer 3 agent to ensure IPv4 route optimization. ``` `switch(config)#**agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes and then re-adds them to the hardware. - This configuration command allows configuring the prefix length **32**. ``` `switch(config)# **ip hardware fib optimize exact-match prefix-length 32** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` For this command to take effect, you must restart the platform Layer 3 agent. - This configuration command restarts the platform Layer 3 agent to ensure IPv4 route optimization. ``` `switch(config)# **agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes and then re-adds them to the hardware. - This configuration command disables the prefix lengths **12** and **32** configuration. ``` `switch(config)#**no ip hardware fib optimize exact-match prefix-length 12 32** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are not optimized` ``` One of the two prefixes uses a prefix-length of **32** required in the instance when using two prefixes. For this command to take effect, you must restart the platform Layer 3 agent. **Examples** - This configuration command restarts the platform Layer 3 agent to ensure no IPv4 route optimization. ``` `switch(config)#**agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes and then re-adds them to the hardware. - This configuration command attempts to configure the prefix lengths **20** and **28** which triggers an error exception. One of the two prefixes in this command must be a prefix-length of **32** required when adding two prefixes. ``` `switch(config)#**ip hardware fib optimize exact-match prefix-length 20 28** % One of the prefix lengths must be 32` ``` IPv4 routes of certain prefix lengths can be optimized for enhanced route scale. The following command disables prefix optimization on the specified VRF(s) to provide more flexibility. **Examples** - This configuration command disables prefix optimization on the default VRF. ``` `switch(config)# **ip hardware fib optimize disable-vrf default** ! Please restart layer 3 forwarding agent to ensure that the disable-vrf option change takes effect` ``` - This configuration command disables prefix optimization on VRFs named **vrf1** and **vrf2**. ``` `switch(config)# **ip hardware fib optimize disable-vrf vrf1 vrf2** ! Please restart layer 3 forwarding agent to ensure that the disable-vrf option change takes effect` ``` - This configuration command restarts the platform Layer 3 agent to ensure that the disable-vrf configuration takes effect. ``` `switch(config)# **agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` **Examples** - This configuration command enables prefix optimization on the default VRF. ``` `switch(config)# **ip hardware fib optimize vrf default prefix-length 32** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` - This configuration command enables prefix optimization on VRFs named **vrf1** and **vrf2**. ``` `switch(config)# **ip hardware fib optimize vrf vrf1 vrf2 prefix-length 32** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` - This configuration command disables optimization on **vrf1** and **vrf2** optimization configured in above example. ``` `switch(config)# **no ip hardware fib optimize vrf vrf1** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` The **platform trident forwarding-table partition flexible** command enables ALPM Mode in Flexible UFT mode using a subset of resources, so ALPM and Exact Match can coexist. **Examples** - This configuration command sets up the flexible partition. ``` `switch(config)# **platform trident forwarding-table partition flexible ?** alpm Shared UFT bank entries for the ALPM table exact-match Shared UFT bank entries for the exact-match table l2-shared Shared UFT bank entries for the MAC table l3-shared Shared UFT bank entries for the host table` ``` - ALPM gives the route prefix in DEFIM (TCAM table for longest prefix matched (LPM) lookup) and ALPM tables. ``` `switch(config)# **platform trident forwarding-table partition flexible alpm ?** 184320 Upto 180K LPM routes 368640 Upto 360K LPM routes` ``` Note: The size parameter has following values: - DCS-7300X3: 180k and 360k are accepted. - CCS-720XP: 144k and 96k are accepted. - Other sizes are invalid. #### Reserving IPv4 and IPv6 Optimized Prefixes The Large Exact Match (LEM) table stores routes of one or two prefix lengths that belong to a default or non-default VRF. When the LEM table becomes full, the Longest Prefix Match table stores the routes. This enables reservation of some entries in the LEM table for a specific VRF. Note: The platform Layer 3 agentrestarts to ensure IPv4 routes optimization with the agent SandL3Unicast terminate command in the Global Configuration Mode. Use the following command to create reservations for 25 IPv4 optimized prefixes on VRF blue: ``` `switch(config)# ip hardware fib optimize vrf blue prefixes minimum count 25 ! Please restart the SandL3Unicast agent to reserve space for optimized FIB prefixes` ``` Use the following command to create reservations for 35 IPv6 prefixes on VRF green: ``` `switch(config)# ipv6 hardware fib optimize vrf green prefixes minimum count 35 ! Please restart the SandL3Unicast agent to reserve space for optimized FIB prefixes` ``` Use the following command to restart the Layer 3 agent and allow the changes to take effect: ``` `switch#agent SandL3Unicast terminate Sandl3Unicast was terminated` ``` Restarting the agent impacts all forwarding as the command deletes all routes and re-adds them to the switch. LEM reservations on a VRF persist independently of VRF deletion. Explicitly remove the configuration using the **no** version of the command. ### IPv4 Routescale with 2-to-1 Compression The IPv4 routescale with2-to-1 compression optimizes certain prefix lengths and enhances the route scale capabilities on 7500R, 7280R, 7500R2, and 7280R2 platforms. The compression is best suited to achieve route scale when route distribution has a large number of routes of one or two prefix lengths. #### Configuring IPv4 Routescale 2-to-1 Compression Use the **compress** command to increase the hardware resources available for the specified prefix length. This command allows configuring up to one compressed prefix length, and this command is supported only on 7500R, 7280R, 7500R2, and 7280R2 platforms. Note: The **compress** command takes effect only when you restart the platform Layer3 agent on 7500R, 7280R, 7500R2, and 7280R2 platforms. Use command **agent SandL3Unicast terminate** to restart the platform Layer3 agent. **Examples** - In the following example we are configuring prefix length **20** and **24**, expanding prefix length **19** and **23**, and compressing prefix length **25**. ``` `switch(config)# **ip hardware fib optimize prefix-length 20 24 expand 19 23 compress 25** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` - In the following example we are configuring prefix length **20** and **23**, expanding prefix length **19**, compressing prefix length **24**. ``` `switch(config)# **ip hardware fib optimize prefix-length 20 23 expand 19 compress 24** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` - Optionally, you can also use the **internet** profile to configure the IPv4 route scale compression. ``` `switch(config)# **ip hardware fib optimize prefixes profile internet** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` Configure a new TCAM profile for the **compress** configuration to work, and disable a few features in the new TCAM profile to make space for the flex-route feature in the hardware. Features like **acl vlan ip** and the **mirror ip** have to be disabled, if you need any of these features or any other features to be enabled with flex-route feature, contact the Arista team. The **internet** profile works differently based on whether the flex-route feature is enabled in the TCAM profile or not. If the flex-route feature is enabled, the **internet** profile behaves like **ip hardware fib optimize prefix-length 20 23 expand 19 22 compress 24**. If the flex-route feature is disabled, the **internet** profile behaves as **ip hardware fib optimize prefix-length 20 24 expand 19 23**. **Example** ``` `switch(config)# **hardware tcam** switch(config-hw-tcam)# **profile flex-route copy default** switch(config-hw-tcam-profile-flex-route)# **feature flex-route copy system-feature-source-profile** switch(config-hw-tcam-profile-flex-route-feature-flex-route)# **exit** switch(config-hw-tcam-profile-flex-route)# **no feature acl vlan ip** switch(config-hw-tcam-profile-flex-route)# **no feature mirror ip** switch(config-hw-tcam-profile-flex-route)# **exit** Saving new profile 'flex-route' switch(config-hw-tcam)# **system profile flex-route**` ``` #### Limitations - A maximum of two prefix lengths can be optimized directly at any point of time, of which only one can be a non-nibble aligned prefix length. Additional prefix lengths can be optimized using the **expand** or the **compress** options. - A maximum of 1-to-4 way expansion and 2-to-1 way compression into any optimized prefix length is supported. Multiple expansion prefix lengths can be programmed at any time, however, there can be just one compression prefix length programmed at any given point in time. - A maximum of **4096** next-hops can be reliably pointed to by the compressed prefixes using 2-to-1 way compression. - The 2-to-1 compression cannot be enabled along with unicast RPF. When both features are enabled together, unicast RPF functionality may not be correct. - The flex-route feature in TCAM profiles based only on the default profile, while disabling the **acl vlan ip** and the **mirror ip** features. Contact the Arista team if any other feature, that is not available in the default TCAM profile, is required to be supported along with the flex-route feature, including support for Mirror to GRE tunnel or ACLs on SVI. - VXLAN is not supported with the compress option of this feature. There is no Syslog or a warning message when VXLAN is configured along with the 2-to-1 way compression feature. ### Show Commands Display the IPv4 route scale summary using the show platform arad ip route summary command in the Global Configuration Mode. Resources for all IPv4 route scale routes are displayed by the show platform arad ip route command for the Global Configuration Mode. **Examples** - This command displays hardware resource usage for IPv4 routes. ``` `switch(config)# **show platform arad ip route summary** Total number of VRFs: 1 Total number of routes: 25 Total number of route-paths: 21 Total number of lem-routes: 4` ``` - This command shows resources for all IPv4 routes in hardware. Routes that use the additional hardware resources appear with an asterisk (*). ``` `switch(config)# **show platform arad ip route** Tunnel Type: M(mpls), G(gre) * - Routes in LEM ------------------------------------------------------------------------------------------------ | Routing Table | | |------------------------------------------------------------------------------------------------ |VRF| Destination | | | |Acl | |ECMP | FEC | Tunnel |ID | Subnet | Cmd | Destination |VID |Label| MAC / CPU Code |Index|Index|T Value ------------------------------------------------------------------------------------------------ |0 |0.0.0.0/8 |TRAP |CoppSystemL3DstMiss|0 | - |ArpTrap | - |1030 | - |0 |100.1.0.0/32 |TRAP |CoppSystemIpBcast |0 | - |BcastReceive | - |1032 | - |0 |100.1.0.0/32 |TRAP |CoppSystemIpUcast |0 | - |Receive | - |32766| - |0 |100.1.255.255/32|TRAP |CoppSystemIpBcast |0 | - |BcastReceive | - |1032 | - |0 |200.1.255.255/32|TRAP |CoppSystemIpBcast |0 | - |BcastReceive | - |1032 | - |0 |200.1.0.0/16 |TRAP |CoppSystemL3DstMiss|1007| - |ArpTrap | - |1029 | - |0 |0.0.0.0/0 |TRAP |CoppSystemL3LpmOver|0 | - |SlowReceive | - |1024 | - |0 |4.4.4.0/24* |ROUTE|Et10 |1007| - |00:01:00:02:00:03| - |1033 | - |0 |10.20.30.0/24* |ROUTE|Et9 |1006| - |00:01:00:02:00:03| - |1027 | -` ``` ## IP Source Guard IP Source Guard (IPSG) prevents IP spoofing attacks. IP Source Guard (IPSG) filters inbound IP packets based on the source MAC and IP addresses. Hardware supports IPSG. IPSG enabled on a Layer 2 port verifies IP packets received on this port. EOS permits packets if each packet source MAC and IP addresses match user-configured IP-MAC binding entries on the receiving VLAN and port. EOS drops packets with no match immediately. ### Configuring IPSG IPSG applies only to Layer 2 ports, and you enable it using the ip verify source command for the Global Configuration Mode. When configured on Layer 3 ports, IPSG does not take effect until this interface converts to Layer 2. Layer 2 Port-Channels, not member ports, support IPSG. The IPSG configuration on port channels supersedes the configuration on the physical member ports. Therefore, source IP MAC binding entries should be configured on port channels using the ip source binding command. When configured on a port channel member port, IPSG does not take effect until deleting this port from the port channel configuration. **Examples** - These configuration commands exclude VLAN IDs **1** through **3** from IPSG filtering. When enabled on a trunk port, IPSG filters the inbound IP packets on all allowed VLANs. IP packets received on VLANs **4** through **10** on **ethernet 36** filter using IPSG, while those received on VLANs **1** through **3** are permitted. ``` `switch(config)# **no ip verify source vlan 1-3** switch(config)# **interface ethernet 36** switch(config-if-Et36)# **switchport mode trunk** switch(config-if-Et36)# **switchport trunk allowed vlan 1-10** switch(config-if-Et36)# **ip verify source** switch(config-if-Et36)#` ``` - This configuration command configures source IP-MAC binding entries to IP address **10.1.1.1**, MAC address **0000.aaaa.1111**, **VLAN ID 4094**, and **interface ethernet 36**. ``` `switch(config)# **ip source binding 10.1.1.1 0000.aaaa.1111 vlan 4094 interface ethernet 36** switch(config)#` ``` ### DHCP Server Show Commands Use the **show dhcp server** command to display DHCP server information. - DHCPv4 display example: ``` `switch# **show dhcp server ipv4** IPv4 DHCP Server is active Debug log is enabled DNS server(s): 10.2.2.2 DNS domain name: domainFoo Lease duration: 1 days 0 hours 0 minutes TFTP server: serverFoo (Option 66) 10.0.0.3 (Option 150) TFTP file: fileFoo Active Leases: 1 IPv4 DHCP interface status: Interface Status ------------------------------------------------- Ethernet1 Inactive (Could not determine VRF) Ethernet2 Inactive (Not in default VRF) Ethernet3 Inactive (Kernel interface not created yet) Ethernet4 Inactive (Not up) Ethernet5 Inactive (No IP address) Ethernet6 Active Vendor information: Vendor ID: default Sub-options Data ---------------- ---------------- 1 192.0.2.0, 192.0.2.1 Vendor ID: vendorFoo Sub-options Data ---------------- ----------- 2 192.0.2.2 3 “Foo” Subnet: 10.0.0.0/8 Subnet name: subnetFoo Range: 10.0.0.1 to 10.0.0.10 DNS server(s): 10.1.1.1 10.2.2.2 Lease duration: 3 days 3 hours 3 minutes Default gateway address: 10.0.0.3 TFTP server: subnetServerFoo (Option 66) 10.0.0.4 (Option 150) TFTP boot file: subnetFileFoo Active leases: 1 Reservations: MAC address: 1a1b.1c1d.1e1f IPv4 address: 10.0.0.1 MAC address: 2a2b.2c2d.2e2f IPv4 address: 10.0.0.2` ``` - For DHCPv6, there are two additional fields in subnet information output, **Direct** field and the **Relay** field. These two fields specify if the DHCP Server is accepting broadcast or relayed messages. The **Direct** field displays **Active** when the subnet matches the interface with DHCPv6 configured. This indicates the server is accepting broadcast messages. The **Direct** field displays **Inactive** when there is another existing subnet already matching the interface, or when the subnet matches more than one DHCP configured interface. Examples of outputs for the DHCPv6 **show dhcp server** command: In this example, DHCPv6 is configured with subnet **fe80::/10** while being enabled on **Ethernet1** with address **fe80::1/64** and on **Ethernet3** with address **fe80::2/64**. ``` `switch# **show dhcp server ipv6** IPv6 DHCP server is active Debug log is enabled DNS server(s): fe80::6 DNS domain name: testaristanetworks.com Lease duration: 1 days 3 hours 30 minutes Active leases: 0 IPv6 DHCP interface status: Interface Status --------------- ------ Ethernet1 Active Ethernet3 Active Subnet: fe80::/10 Subnet name: foo Range: fe80::1 to fe80::3 DNS server(s): fe80::4 fe80::5 Direct: Inactive (Multiple interfaces match this subnet: Ethernet1 Ethernet3) Relay: Active Active leases: 0` ``` - This example illustrates when multiple subnets match an interface. In this example, DHCPv6 is configured with subnets **fc00::/7** and **fe80::/10** while being enabled on **Ethernet1** with address **fe80::1/10** and **fc00::1/7**. ``` `switch# **show dhcp server ipv6** IPv6 DHCP server is active DNS server(s): fc00::2 DNS domain name: testaristanetworks.com Lease duration: 1 days 3 hours 30 minutes Active leases: 0 IPv6 DHCP interface status: Interface Status --------------- ------ Ethernet1 Active Subnet: fc00::/7 Subnet name: foo Range: fc00::1 to fc00::5 DNS server(s): fc00::6 fc00::8 Direct: Inactive (This and other subnets match interface Ethernet1) Relay: Active Active leases: 0 Subnet: fe80::/10 Subnet name: bar Direct: Inactive (This and other subnets match interface Ethernet1) Relay: Active Active leases: 0` ``` - When a subnet is disabled, the **show dhcp server** command displays the disable message with a reason. The number of active leases of the disabled subnets will be **0**. In this example, there are overlapping subnets. ``` `switch# **show dhcp server** IPv4 DHCP Server is active DNS server(s): 10.2.2.2 Lease duration: 1 days 0 hours 0 minutes Active Leases: 0 IPv4 DHCP interface status: Interface Status ------------------------------------------------- Ethernet1 Active Subnet: 10.0.0.0/24 (Subnet is disabled - overlapping subnet 10.0.0.0/8) Range: 10.0.0.1 to 10.0.0.10 DNS server(s): 10.3.3.3 10.4.4.4 Default gateway address: 10.0.0.4 Active leases: 0 Subnet: 10.0.0.0/8 (Subnet is disabled - overlapping subnet 10.0.0.0/24) DNS server(s): Default gateway address: 10.0.0.3 Active leases: 0` ``` - In this example, the display output shows overlapping ranges. ``` `switch# **show dhcp server** IPv4 DHCP Server is active DNS server(s): 10.2.2.2 Lease duration: 1 days 0 hours 0 minutes Active Leases: 0 IPv4 DHCP interface status: Interface Status ------------------------------------------------- Ethernet1 Active Subnet: 10.0.0.0/8 (Subnet is disabled - range 10.0.0.9-10.0.0.12 overlaps with an existing pool) Range: 10.0.0.1 to 10.0.0.10 Range: 10.0.0.9 to 10.0.0.12 DNS server(s): 10.3.3.3 10.4.4.4 Default gateway address: 10.0.0.4 Active leases: 0` ``` - This example shows duplicate static IP address reservation. ``` `Subnet: 10.0.0.0/8 (Subnet is disabled - ipv4-address 10.0.0.11 is reserved more than once) Subnet name: DNS server(s): Default gateway address: 10.0.0.3 Active leases: 0 Reservations: MAC address: 1a1b.1c1d.1e1f IPv4 address: 10.0.0.11 MAC address: 2a2b.2c2d.2e2f IPv4 address: 10.0.0.11` ``` - Use the **show dhcp server leases** command to display detailed information about the IP addresses allocated by the DHCP Server (including the IP address, the expected end time for that address, the time when the address is handed out, and the equivalent MAC address). ``` `switch# **show dhcp server leases** 10.0.0.10 End: 2019/06/20 17:44:34 UTC Last transaction: 2019/06/19 17:44:34 UTC MAC address: 5692.4c67.460a 2000:0:0:40::b End: 2019/06/20 18:06:33 UTC Last transaction: 2019/06/20 14:36:33 UTC MAC address: 165a.a86d.ffac` ``` ## DHCP Server The router with DHCP Server enabled acts as a server that allocates and delivers network addresses with desired configuration parameters to its hosts. The DHCP server is based on ISC Kea. The router with an DHCP Server enabled acts as a server that allocates and delivers network addresses with desired configuration parameters to its hosts. DHCP Server support includes: DHCPv4 support includes: - Configurable on different interfaces: Routed, VLAN, LAG, Sub-interface, and LAG Sub-interface. - Configurable lease time for allocated network addresses. - Configurable DNS domain. - Configurable DNS servers. - Configurable subnets with parameters: - Default gateway - DNS servers - Ranges - Lease time Additional features for DHCPv4 include: - Configurable TFTP server - Configurable TFTP bootfile Additional features for DHCPv4 includes: - Configurable Vendor options with sub options - Configurable sub option types include: IPv4 address, array of IPv4 addresses, and string - TFTP bootfile now supports an URI Additional features for DHCPv4 include a configurable static IP address for exclusive use by a given client, based on the client’s MAC address. Example deployment: DHCP Server on an aggregation switch, via VXLAN tunnels. ### Configuring DHCP Servers Global DHCP server options are configured per address family and apply to all subnets. These commands are accessed at the `**config-dhcp-server**` level. To enter the DHCP server global configuration mode, use the following commands: ``` `switch# **configure** switch(config)# **dhcp server** switch(config-dhcp-server)#` ``` To disable the DHCP server: ``` `switch(config-dhcp-server)# **disabled**` ``` Use the following commands to configure the DNS servers. Only two servers can be configured globally per address family. ``` `switch(config-dhcp-server)# **dns server ipv4 192.0.2.4 192.0.2.5** switch(config-dhcp-server)# **dns server ipv6 2001:db8:0:10::53 2001:db8:0:10::5353**` ``` The following commands configure the domain names for allocated IP addresses. For example, add a domain with the name **podV4.example.com** for DHCPv4 and a domain with the name **podV6.example.com** for DHCPv6. ``` `switch(config-dhcp-server)# **dns domain name ipv4 podV4.example.com** switch(config-dhcp-server)# **dns domain name ipv6 podV6.example.com**` ``` The following commands configure lease time for the allocated IP addresses. For example, configure the lease time as one (1) day. ``` `switch(config-dhcp-server)# **lease time ipv4 1 days 0 hours 0 minutes** switch(config-dhcp-server)# **lease time ipv6 1 days 0 hours 0 minutes**` ``` The following command configures the TFTP Server-Name. The server can be in the form of either an IPv4 address or a fully qualified domain name and only available in DHCPv4. For example, configure the TFTP server with the IPv4 address, 192.0.2.6. ``` `switch(config-dhcp-server)# **tftp server option 66 ipv4 192.0.2.6**` ``` The following command configures the TFTP Servers. ``` `switch(config-dhcp-server)# **tftp server option 150 ipv4 192.0.2.6 192.0.2.7**` ``` The following command configures the TFTP Server Bootfile-Name, only available in DHCPv4. ``` `switch(config-dhcp-server)# **tftp server file ipv4 bootfile.conf**` ``` The following command configures Vendor specific option. To enter the Vendor option submode **config-dhcp-vendor-ipv4** from **config-dhcp-server** config mode, specify a vendor class identifier, only available in DHCPv4. For example, Vendor option for clients with vendor class identifier vendorClassIDA. ``` `switch(config-dhcp-server)# **vendor-option ipv4 vendorClassIDA**` ``` The following command configures ***default***. If you do not configure the ***default***, the DHCP Server sends the configured Vendor option to clients requesting a Vendor option with a vendor class identifier that does not match any configured Vendor option. ``` `switch(config-dhcp-server)# **vendor-option ipv4 default**` ``` The following command configures suboptions for the Vendor. The configuration sends the resulting Vendor option in a hexadecimal format to the desired client. The output displays aVendor option with a suboption with IPv4 address 192.0.2.8, for clients with the vendor class identifier vendorClassIDA, resulting in Vendor option 1:4:c0:0:2:8. ``` `Sub option number is 1 Length of the Data is 4 Data is c0:0:2:8 dhcp server vendor-option ipv4 vendorClassIDA sub-option 1 type ipv4-address data 192.0.2.8` ``` The following command configures the Vendor option with IPv4 addresses 192.0.2.8 and 192.0.2.9, for clients with the vendor class identifier vendorClassIDA, resulting in the Vendor option fe:8:c0:0:2:8:c0:0:2:9. ``` `switch(config-dhcp-server)# **vendor-option ipv4 vendorClassIDA sub-option 254 type array ipv4-address data 192.0.2.8 192.0.2.9**` ``` The following command configures Vendor option with a string “vendor”, for all clients whose vendor class identifier does not match any configured Vendor option, resulting in Vendor option 1e:3:46:4f:4f.. ``` `switch(config-dhcp-server)# **vendor-option ipv4 default sub-option 30 type string data "vendor"**` ``` The following command sets up Vendor option holding two suboptions, suboption 1 holds the IPv4 address 192.0.2.8, and suboption 2 holds a string “vendor”, for all clients whose vendor class identifier does not match any configured Vendor option, resulting in Vendor option 1:4:c0:0:2:8:2:3:46:4f:4f. ``` `switch(config-dhcp-server)# **vendor-option ipv4 default sub-option 1 type ipv4-address data 192.0.2.8 sub-option 2 type string data “vendor"**` ``` #### Configuring DHCP Server Subnets DHCP Server settings can also be configured per subnet and overrides the DHCP Server global mode configurations. There can be multiple subnets configured, but they must not overlap. EOS disables overlapping subnets. The following command enters DHCP Server subnet mode under the IPv4 address family. ``` `switch# **config** switch(config)# **dhcp server** switch(config-dhcp-server)# **subnet 192.0.2.0/32**` ``` The following command configures the name of the subnet. For example, name subnetv4 for DHCPv4. ``` `switch(config-dhcp-subnet-ipv4)# **name subnetv4**` ``` The following command configures range of IP addresses of the subnet. The range must be within the subnet mask, otherwise the subnet becomes disabled. ``` `switch(config-dhcp-subnet-ipv4)# **range 192.0.2.100 192.0.2.199**` ``` The following command configures the DNS servers for a subnet. Configure up to 2 servers per subnet. ``` `switch(config-dhcp-subnet-ipv4-range)# **dns server 192.0.2.1 192.0.2.10**` ``` The following command configures the lease time for allocated IP addresses of the subnet. ``` `switch(config-dhcp-subnet-ipv4)# **lease time ipv4 3 days 0 hours 0 minutes**` ``` The following command configures the default-gateway for a subnet. ``` `switch(config-dhcp-server)# **subnet 192.0.2.0/32** switch(config-dhcp-subnet-ipv4)# **default-gateway 192.0.2.3**` ``` The following command configures the TFTP Server-Name for a subnet. The server can be in the form of either an IPv4 address or a fully qualified domain name, but can only be configured for DHCPv4. ``` `switch(config-dhcp-subnet-ipv4)# **tftp server option 66 subnet-tftp.example.com**` ``` The following command configures a list of TFTP servers. The server can only be in the form of an IP address, but can only be configured for DHCPv4. ``` `switch(config-dhcp-subnet-ipv4)# **tftp server option 150 192.0.2.6 192.0.2.7**` ``` The following command configures the TFTP server Bootfile-Name for a subnet, but can only be configured for DHCPv4. ``` `switch(config-dhcp-subnet-ipv4)# **tftp server file subnet-bootfile.conf**` ``` **Example DHCP Server Subnets Configuration** ``` `switch# **config** switch(config)# **dhcp server** switch(config-dhcp-server)# **subnet 192.0.2.0/32** switch(config-dhcp-subnet-ipv4)# **name subnetv4** switch(config-dhcp-subnet-ipv4)# **range 192.0.2.100 192.0.2.199** switch(config-dhcp-subnet-ipv4-range)# **dns server 192.0.2.1 192.0.2.10** switch(config-dhcp-subnet-ipv4)# **lease time ipv4 3 days 0 hours 0 minutes** switch(config-dhcp-server)# **subnet 192.0.2.0/32** switch(config-dhcp-subnet-ipv4)# **default-gateway 192.0.2.3** switch(config-dhcp-subnet-ipv4)# **tftp server option 66 subnet-tftp.example.com** switch(config-dhcp-subnet-ipv4)# **tftp server option 150 192.0.2.6 192.0.2.7** switch(config-dhcp-subnet-ipv4)# **tftp server file subnet-bootfile.conf**` ``` The following command configures a static IP address for exclusive use by a client. Enter the **dhcp-server-subnet** configuration submode, ***(config-dhcp-mac-address-ipv4)*** from and specify the client MAC Address. The IP address must not be used by another client. Only DHCPv4 addresses allowed for this configuration. ``` `switch(config-dhcp-subnet-ipv4)# **reservations** switch(config-dhcp-sub-v4-reserve)# **mac-address 1a1b.1c1d.1e1f** switch(config-dhcp-sub-v4-rsrv-mac-address)# **ipv4-address 192.0.2.0**` ``` ### Displaying DHCP Information #### Show DHCP Server Information The following command displays the DHCP Server information. ``` `switch# **show dhcp server ipv4** IPv4 DHCP Server is active Debug log is enabled DNS server(s): 192.0.2.4 192.0.2.5 DNS domain name: podV4.example.com Lease duration: 1 days 0 hours 0 minutes TFTP server: 192.0.2.6 (Option 66) 192.0.2.6 192.0.2.7 (Option 150) TFTP file: https://[john.doe@www.example.com](mailto:john.doe@www.example.com):123/example/one Active Leases: 1 IPv4 DHCP interface status: Interface Status ------------------------------------------------- Ethernet1 Inactive (Could not determine VRF) Ethernet2 Inactive (Not in default VRF) Ethernet3 Inactive (Kernel interface not created yet) Ethernet4 Inactive (Not up) Ethernet5 Inactive (No IP address) Ethernet6 Inactive (No Link Local address) Ethernet7 Inactive (DHCP relay is configured for this interface) Ethernet8 Inactive (DHCP relay is always on) Ethernet9 Active Vendor information: Vendor ID: default Sub-options Data ---------------- ---------------- 1 192.0.2.0 2 “vendor” Vendor ID: vendorClassIDA Sub-options Data ---------------- -------------------- 254 192.0.2.8, 192.0.2.9 Subnet: 192.0.2.0/24 Subnet name: subnetFooV4 Range: 192.0.2.100 to 192.0.2.199 DNS server(s): 192.0.2.1 192.0.2.10 Lease duration: 3 days 0 hours 0 minutes Default gateway address: 192.0.2.3 TFTP server: subnet-tftp.example.com (Option 66) 192.0.2.6 192.0.2.7 (Option 150) TFTP boot file: subnet-bootfile.conf Active leases: 1 Reservations: MAC address: 1a1b.1c1d.1e1f IPv4 address: 192.0.2.201 MAC address: 2a2b.2c2d.2e2f IPv4 address: 192.0.2.150` ``` #### Displaying Disabled Subnets When a subnet becomes disabled, the **show dhcp server [ipv4|ipv6]** output displays the disabled message under Disabled reason(s). None of the disabled subnets have active leases. Currently, the output displays only 2 disabled reasons. ``` `switch# **show dhcp server** IPv4 DHCP Server is active DNS server(s): 10.2.2.2 Lease duration: 1 days 0 hours 0 minutes Active Leases: 0 IPv4 DHCP interface status: Interface Status ------------------------------------------------- Ethernet1 Active Subnet: 10.0.0.0/24 (Subnet is disabled) Range: 10.0.0.1 to 10.0.0.10 DNS server(s): 10.3.3.3 10.4.4.4 Default gateway address: 10.0.0.4 Active leases: 0 Disabled reason(s): Overlapping subnets: 10.0.0.0/8 Subnet: 10.0.0.0/8 (Subnet is disabled) Range: 10.0.0.1 to 10.0.0.10 DNS server(s): 10.5.5.5 Default gateway address: 10.0.0.3 Active leases: 0 Disabled reason(s): Overlapping subnets: 10.0.0.0/24 For Overlapping ranges: switch# **show dhcp server** IPv4 DHCP Server is active DNS server(s): 10.2.2.2 Lease duration: 1 days 0 hours 0 minutes Active Leases: 0 IPv4 DHCP interface status: Interface Status ------------------------------------------------- Ethernet1 Active Subnet: 10.0.0.0/8 (Subnet is disabled) Range: 10.0.0.1 to 10.0.0.10 Range: 10.0.0.9 to 10.0.0.12 DNS server(s): 10.3.3.3 10.4.4.4 Default gateway address: 10.0.0.4 Active leases: 0 Disabled reason(s): Overlapping range: 10.0.0.9 to 10.0.0.12 E.g. Duplicate static IP address reservation: Subnet: 10.0.0.0/8 (Subnet is disabled) Subnet name: Range: 10.0.0.1 to 10.0.0.10 DNS server(s): 10.5.5.5 Default gateway address: 10.0.0.3 Active leases: 0 Reservations: MAC address: 1a1b.1c1d.1e1f IPv4 address: 10.0.0.11 MAC address: 2a2b.2c2d.2e2f IPv4 address: 10.0.0.11 Disabled reason(s): Duplicate IPv4 address reservation: 10.0.0.11` ``` For DHCPv6, ***Direct*** and ***Relay*** indicates that the DHCP Server accepts broadcast and relayed messages. ``` `switch# **show dhcp server ipv6** IPv6 DHCP server is active Debug log is enabled DNS server(s): fe80::6 DNS domain name: aristanetworks.example.com Lease duration: 1 days 3 hours 30 minutes Active leases: 0 IPv6 DHCP interface status: Interface Status --------------- ------ Ethernet1 Active Ethernet3 Active Subnet: fe80::/10 Subnet name: foo Range: fe80::1 to fe80::3 DNS server(s): fe80::4 fe80::5 Direct: Inactive (Multiple interfaces match this subnet: Ethernet1 Ethernet3) Relay: Active Active leases: 0` ``` For DHCPv6, a subnet may match only one interface and vice versa. Otherwise the subnet is disabled and no lease assigned for that subnet. ``` `interface Ethernet1 no switchport ipv6 address 2001:db8:0:10::1/64 dhcp server ipv6 interface Ethernet3 no switchport ipv6 address 2001:db8:0:11::1/64 dhcp server ipv6 dhcp server subnet 2001:db8::/56` ``` The following enables DHCPv6 on Ethernet1 (with address fc00::1/7 and fe80::1/10), and then configures subnets fc00::/7 and fe80::/64 for DHCPv6. ``` `interface Ethernet1 no switchport ipv6 address fc00::1/7 ipv6 address fe80::1/64 link-local dhcp server ipv6 dhcp server subnet fc00::/7 subnet fe80::/64 #**show dhcp server ipv6** IPv6 DHCP server is active DNS server(s): fc00::2 DNS domain name: aristanetworks.example.com Lease duration: 1 days 3 hours 30 minutes Active leases: 0 IPv6 DHCP interface status: Interface Status --------------- ------ Ethernet1 Active Subnet: fc00::/7 Subnet name: foo Range: fc00::1 to fc00::5 DNS server(s): fc00::6 fc00::8 Direct: Inactive (This and other subnets match interface Ethernet1) Relay: Active Active leases: 0 Subnet: fe80::/64 Subnet name: subnetBarV6 Direct: Inactive (This and other subnets match interface Ethernet1) Relay: Active Active leases: 0` ``` #### Leases The following output displays the IP addresses allocated by the DHCP Server with the **show dhcp server [ipv4|ipv6] leases** command. It also displays the expected end time for the address, the time when the address is assigned, and the equivalent MAC address. ``` `switch# **show dhcp server leases** 10.0.0.10 End: 2019/06/20 17:44:34 UTC Last transaction: 2019/06/19 17:44:34 UTC MAC address: 5692.4c67.460a 2000:0:0:40::b End: 2019/06/20 18:06:33 UTC Last transaction: 2019/06/20 14:36:33 UTC MAC address: 165a.a86d.ffac` ``` ## DHCP Relay Global Configuration Mode Configure DHCP Relay using the dhcp relay command in the global configuration mode. The command places the switch in DHCP Relay mode and allows the configuration of DHCP Relay on several interfaces with a single command. The configuration entered in the DHCP Relay global configuration mode can be overridden by equivalent interface specific commands. **Examples** The **dhcp relay** command places the switch in the DHCP Relay configuration mode. ``` `switch(config)# **dhcp relay** switch(config-dhcp-relay)#` ``` Specify the IP address of the default DHCP or DHCPv6 Server. Multiple IP addresses can be specified and DHCP requests forward to all specified helper addresses. Configure an **ip helper-address IP_Address** under each desired routing interface. Use the following commands to forward DHCP broadcast packets received on interface **Ethernet1** and **Vlan2** to DHCP servers at **10.0.0.1**, **10.0.0.2**, and to hostname **DefaultDHCPHostname**: ``` `switch(config)# **interface ethernet1** switch(config-if-Et1)# **no switchport** switch(config-if-Et1)# **ip address 192.168.1.1/16** switch(config)# **interface vlan2** switch(config-if-Et1)# **ip address 172.16.1.1/16** switch(config)# **dhcp relay** switch(config-dhcp-relay)# **server 10.0.0.1** switch(config-dhcp-relay)# **server 10.0.0.2** switch(config-dhcp-relay)# **server DefaultDHCPHostname**` ``` Use the following commands to forward DHCPv6 broadcast packets received on interface **ethernet1** to a DHCPv6 Server at **fc00::3**. ``` `switch(config)# **interface ethernet1** switch(config-if-Et1)# **no switchport** switch(config-if-Et1)# **ipv6 address fc00::1/10** switch(config)# **dhcp relay** switch(config-dhcp-relay)# **server fc00::3**` ``` The configuration points a routed interface to the specified DHCP and DHCPv6 server, if the configuration meets following criteria: - The default VRF contains the routed interface. - The interface has an IP address configured. - The configuration does not occur on a Management or a Loopback interface. Use the following commands to remove the default DHCP or DHCPv6 Server. ``` `switch(config)# **dhcp relay** switch(config-dhcp-relay)# **no server 10.0.0.1** switch(config-dhcp-relay)# **no server 10.0.0.2** switch(config-dhcp-relay)# **no server DefaultDHCPHostname** switch(config-dhcp-relay)# **no server fc00::3**` ``` To override the default DHCP Server on an interface, the parameter,**ip helper-addressIP_Address**, must be used. Use the following commands to forward a DHCP broadcast packet received on interface Ethernet1 to DHCP Servers at **10.0.0.1**, **10.0.0.2** and hostname **DefaultDHCPHostname**, but VLAN2 broadcasts packets to the DHCP Server at **10.0.0.3** only. ``` `switch(config)# **interface ethernet 1** switch(config-if-Et1)# **no switchport** switch(config-if-Et1)# **ip address 192.168.1.1/16** switch(config)# **interface vlan2** switch(config-if-Et1)# **ip address 172.16.1.1/16** switch(config-if-Et1)# **ip helper-address 10.0.0.3** switch(config)# **dhcp relay** switch(config-dhcp-relay)# **server 10.0.0.1** switch(config-dhcp-relay)# **server 10.0.0.2** switch(config-dhcp-relay)# **server DefaultDHCPHostname**` ``` To override the default DHCPv6 Server on an interface, the parameter, **ipv6 helper-address IPv6_Address>** must be used. Use the following commands to forward a DHCPv6 broadcast packet received on interface Ethernet1 to DHCPv6 Server at **fc00::3**, and VLAN2 broadcasts packets to DHCPv6 Server at **fc00::4** only. ``` `switch(config)# **interface ethernet 1** switch(config-if-Et1)# **no switchport** switch(config-if-Et1)# **ipv6 address fc00::1/10** switch(config)# **interface vlan2** switch(config-if-Et1)# **ipv6 address fc00::2/10** switch(config-if-Et1)# **ipv6 helper-address fc00::4** switch(config)# **dhcp relay** switch(config-dhcp-relay)# **server fc00::3**` ``` Configure DHCP Relay for IPv4 unnumbered interfaces by adding a DHCP IPv4 helper address and configuring the vendor option. Use the **information option** command to enter DHCP Relay Information Option Configuration Mode: ``` `switch(config)# **dhcp relay** switch(config-dhcp-relay)# **information option** switch(config-information-option)# **vendor-option**` ``` Configure Option-37 in DHCPv6 Relay to include the host name of the switch along with MAC address and interface name in the remote id of the option. It requires the `remote-id` format to be specified in the configuration mode. Use the following command to add the remote-id: ``` `switch(config)# **ipv6 dhcp relay option remote-id format %m:%h:%p**` ``` You can disable DHCP or DHCPv6 Relay functionality from a specific interface. This disables both DHCP Relay global and interface mode configurations. Use the following command to disable DHCP Relay functionality only. ``` `switch(config)# **interface vlan3** switch(config-if-Et1)# **dhcp relay ipv4 disabled**` ``` Use the following to disable DHCPv6 Relay functionality only. ``` `switch(config)# **interface vlan3** switch(config-if-Et1)# **dhcp relay ipv6 disabled**` ``` ### Displaying DHCP Relay The **show ip dhcp relay** command displays all the interfaces enabled with DHCP Relay and the server configured on these interfaces. **Example** ``` `switch# **show ip dhcp relay** DHCP Relay is active DHCP Relay Option 82 is disabled DHCPv6 Relay Link-layer Address Option (79) is disabled DHCPv6 Relay Remote ID (Option 37) encoding format: MAC address:interface ID DHCP Smart Relay is disabled Default L3 interface DHCP servers: DHCPv4 servers: 10.0.0.1 10.0.0.2 DefaultDHCPHostname DHCPv6 servers: fc00::3 Interface: Ethernet1 DHCP Smart Relay is disabled DHCPv6 all subnet relaying is disabled Using default DHCPv4 servers Using default DHCPv6 servers Interface: Ethernet2 DHCP Smart Relay is disabled DHCPv6 all subnet relaying is disabled Using default DHCPv4 servers DHCPv6 servers: fc00::4 Interface: Vlan2 DHCP Smart Relay is disabled DHCPv6 all subnet relaying is disabled DHCPv4 servers: 11.0.0.3 DHCPv6 servers: fc00::4 Interface: Vlan3 DHCP Smart Relay is disabled DHCPv6 all subnet relaying is disabled DHCPv4 Relay is disabled DHCPv6 Relay is disabled` ``` Use the **show ip dhcp relay** command to display DHCP Relay for unnumbered interfaces: ``` `switch# **show ip dhcp relay** DHCP Relay Option (82) is enabled DHCP Relay vendor-specific suboption (9) under information option (82)` ``` ### DHCP Relay Across VRF The EOS DHCP relay agent supports forwarding of DHCP requests to DHCP servers located in a different VRF to the DHCP client interface VRF. In order to enable VRF support for the DHCP relay agent, Option 82 (DHCP Relay Agent Information Option) must first be enabled. The DHCP relay agent uses Option 82 to pass client specific information to the DHCP server. These sections describe DHCP Relay across VRF features: - Configuring DHCP Relay - DHCP Relay Global Configuration Mode Show Command The DHCP relay agent inserts Option 82 information into the DHCP forwarded request, which requires the DHCP server belongs to a network on an interface, and that interface belongs to a different VRF than the DHCP client interface. Option 82 information includes the following: - **VPN identifier** - The VRF name for the ingress interface of the DHCP request, inserted as sub-option 151. Table 1. VPN Identifier | SubOpt | Len | ASCII VRF Identifier | | 151 | 7 | V | R | F | N | A | M | E | - **Link selection** - The subnet address of the interface that receives the DHCP request, inserted as sub-option 5. After enabling the DHCP smart relay, the link selection fills with the subnet of the active address. The relay agent sets the Gateway IP address (gIPaddr) to its IP address so that DHCP messages can be routed over the network to the DHCP server. Table 2. Link Selection | SubOpt | Len | Subnet IP Address | | 5 | 4 | A1 | A2 | A3 | A4 | - **Server identifier override** - The primary IP address of the interface that receives the DHCP request, inserted as sub-option 11. After enabling the DHCP smart relay, the server identifier fills with the active address, one of the primary or secondary addresses chosen by smart relay mechanism. Table 3. Link Selection | SubOpt | Len | Overriding Server Identifier Address | | 11 | 4 | B1 | B2 | B3 | B4 | - **VSS control suboption as suboption 152** - The DHCP server strips out this suboption when sending the response to the relay, indicating that the DHCP server used VPN information to allocate IP address. - **Circuit ID** - Identifies the circuit, interface or VLAN, on the switch that received the request. - **Remote ID** - Identifies the remote host. Note: The DHCP server must be capable of handling VPN identifier information in Option 82. Direct communication between DHCP client and server may not be possible if they reside in separate VRFs. The Server identifier override and Link Selection sub-options set the relay agent to act as the DHCP server, and enable all DHCP communication to flow through the relay agent. The relay agent adds all the appropriate sub-options, and forwards all request packets, including renew and release,to the DHCP server. When the relay receives the DHCP server response messages, EOS removes Option 82 information and forwards the response to the DHCP client in the client VRF. #### Configuring DHCP Relay The DHCP relay agent information option is inserted in DHCP messages relayed to the DHCP server. The ip helper-address command enables DHCP relay on an interface and relays DHCP messages to the specified IPv4 address. **Example** This command enables DHCP relay on the **interface ethernet 1/2**; and relays DHCP messages to the server at **1.1.1.1**. ``` `switch(config)# **interface ethernet 1/2** switch(config-if-Et1/2)# **ip helper-address 1.1.1.1** switch(config-if-Et1/2)#` ``` The commands provided in the following examples enable the attachment of VRF-related tags in the relay agent information option. If both the DHCP client interface and server interface exist on the same VRF, default or non-default, then EOS does not insert the VRF-related DHCP relay agent information option. **Examples** - This command configures the DHCP relay to add option 82 information. ``` `switch(config)# **ip dhcp relay information option**` ``` - These commands configures two new VRF instances and assign them Route Distinguishers (RDs). ``` `switch(config)# **vrf instance mtxxg-vrf** switch(config-vrf-mtxxg-vrf)# **router bgp 50** switch(config-router-bgp)# **vrf mtxxg-vrf** switch(config-router-bgp-vrf-mtxxg-vrf)# **rd 5546:5546** switch(config)# **vrf instance qchyh-vrf** switch(config-vrf-qchyh-vrf)# **router bgp 50** switch(config-router-bgp)# **vrf qchyh-vrf** switch(config-router-bgp-vrf-qchyh-vrf)# **rd 218:218**` ``` - This command configures an interface connected to DHCP client in vrf **mtxxg-vrf** and assigns an IP address. ``` `switch(config)# **interface ethernet 9** switch(config-if-Et9)# **no switchport**` ``` - This command configures the DHCP client interface in VRF **mtxxg-vrf**. ``` `switch(config-if-Et9)# **vrf mtxxg-vrf** switch(config-if-Et9)# **ip address 10.10.0.1/16**` ``` - This command configures the server interface in VRF **qchyh-vrf.** ``` `switch(config-if-Et11)# **vrf qchyh-vrf** switch(config-if-Et11)# **ip address 10.40.0.1/16**` ``` - This command configures a helper address for a DHCP server in VRF **qchyh-vrf**. ``` `switch(config-if-Et11)# **ip helper-address 10.40.2.3 vrf qchyh-vrf**` ``` ##### Configuring Option 82 Use the following commands to enter Information Option (Option 82) insertion and configure the format of information options: ``` `switch(config)# **dhcp relay** switch(config-dhcp-relay)# **information option** switch(config-information-option)#` ``` To specify the format for the **circuit-id encoding**, use the following command: ``` `switch(config-information-option)# **circuit-id encoding (%x | %p)**` ``` The default format uses string denoted by **%p**. Setting the encoding to **%x** enables hex encoding for the circuit ID. The configured value must be a valid hex number. If not configured, DHCP Relay uses the default format. To specify the format for the **remote-id encoding**, use the following command: ``` `switch(config-information-option)# **remote-id encoding (%x | %p)**` ``` The default format uses string denoted by **%p**. Setting the encoding to **%x** enables hex encoding for the remote ID. The configured value must be a valid hex number. If not configured, DHCP Relay uses the default format. #### DHCP Relay Global Configuration Mode Show Command **Example** This command displays the VRF specifier for the server: ``` `switch# **show ip dhcp relay** DHCP Relay is active DHCP Relay Option 82 is enabled DHCP Smart Relay is disabled Interface: Ethernet9 Option 82 Circuit ID: Ethernet9 DHCP Smart Relay is disabled DHCP servers: 10.40.2.3 10.40.2.3:vrf=qchyh-vrf` ``` ### DHCP Relay in VXLAN EVPN The ip dhcp relay information option (Global) command enables the configuration of the DHCP server to uniquely identify the origin of the request using a source-interface and the helper address. Configure the source interface with a routable address used by the DHCP server to uniquely identify the DHCP relay agent that forwarded the client request. #### Configuring DHCP Relay in VXLAN EVPN (IPv4) Use the following command to enable the DHCP relay information option (**Option 82**) required to specify a source interface. ``` `switch(config)# **ip dhcp relay information option**` ``` The following configures a Loopback interface as the source interface. ``` `switch(config)# **interface Loopback1** switch(config-if-Lo1)# **ip address 1.1.1.1/24**` ``` Use the following commands to configure the Loopback interface as the specified source interface for the helper address. ``` `switch(config)# **interface vlan100** switch(config-if-Vl100)# **ip helper-address 10.1.1.4 source-interface Loopback1**` ``` Use the following commands to configure the Loopback interface when the DHCP server resides in a different VRF (**red**). The source interface must be configured in the DHCP server VRF for the command to take effect. ``` `switch(config)# **interface Loopback3** switch(config-if-Lo3)# **vrf red** switch(config-if-Lo3)# **ip address 1.1.1.1/24** switch(config)# **interface vlan100** switch(config-if-Vl100)# **ip helper-address 10.1.1.4 vrf red source-interface Loopback3**` ``` The following command disables the use of source interface along with the helper address. ``` `switch(config)# **interface vlan100** switch(config-if-Vl100)# **no ip helper-address 10.1.1.4 source-interface Loopback1**` ``` #### Configuring DHCP Relay in VXLAN EVPN (IPv6) Use the following commands to configure a local interface. ``` `switch(config)# **interface Loopback2** switch(config-if-Vl100)# **ipv6 address 2001::10:20:30:1/128**` ``` Use the following commands to configure the Loopback interface as the local interface for the helper address. ``` `switch(config)# **interface vlan200** switch(config-if-Vl200)# **ipv6 dhcp relay destination 2002::10:20:30:2 local-interface Loopback2**` ``` Use the following commands to configure the Loopback interface when the DHCP server is in a different VRF (**red**). The local interface must be configured in the DHCP server's VRF for the command to take effect. ``` `switch(config)# **interface Loopback4** switch(config-if-Lo4)# **vrf red** switch(config-if-Lo4)# **ipv6 address 2001::10:20:30:1/128** switch(config)# **interface vlan200** switch(config-if-Vl200)# **ipv6 dhcp relay destination 2002::10:20:30:2 vrf red local-interface Loopback4**` ``` Use the following command to disable the use of local interface along with the helper address. ``` `switch(config-if-Vl200)# **no ipv6 dhcp relay destination 2002::10:20:30:2 local-interface Loopback4**` ``` The following command displays the status of DHCP relay option (**Option 82**) and lists the configured DHCP servers. ``` `switch# **show ip dhcp relay** DHCP Relay is active DHCP Relay Option 82 is enabled DHCP Smart Relay is disabled Interface: Vlan100 Option 82 Circuit ID: Vlan100 DHCP Smart Relay is disabled DHCP servers: 10.1.1.4 Interface: Vlan200 Option 82 Circuit ID: Vlan100 DHCP Smart Relay is disabled DHCP servers: 2002::10:20:30:2` ``` ## DHCP Snooping with Bridging In this configuration, in addition to sending DHCP packets to relay after adding information option, the packets can also bridge within the VLAN. In the bridging mode, the switch intercepts DHCP packets, inserts option-82 if not already present, and bridges the packet within the VLAN. This mode of DHCP snooping can be configured without DHCP relay configuration. Note: EOS supports DHCP Snooping with Bridging on MLAG configurations. ### Configuring DHCP Snooping with Bridging Following are the steps to configure DHCP snooping with bridging: - Enable DHCP snooping feature using the ip dhcp snooping command. ``` `switch# **ip dhcp snooping**` ``` - Enable the insertion of option-82 in DHCP request packets using the ip dhcp snooping information option command. By default, option-82 is disabled and must be enabled for DHCP Snooping to be functional. ``` `switch# **ip dhcp snooping information option**` ``` - Enable DHCP snooping on the corresponding VLANs using the ip dhcp snooping vlan command. By default,EOS disables DHCP snooping on any VLAN. ``` `**switch# ip dhcp snooping vlan**` ``` - Set the circuit-id information sent in option-82. By default, EOS sends the Interface name and VLAN ID. Remote circuit-id contains the MAC address of the relay agent. ``` `switch# **ip dhcp snooping information option circuit-id type 2 format** %h:%p Hostname and interface name %p:%v Interface name and VLAN ID` ``` - Enable bridging capabilities of DHCP snooping using the ip dhcp snooping bridging command. This command enables DHCP snooping with or without DHCP relay configuration. ``` `switch# **ip dhcp snooping bridging**` ``` ### DHCP Snooping with Bridging Show Commands The show ip dhcp snooping displays the DHCP snooping with bridging information. ``` `switch# **show ip dhcp snooping** DHCP Snooping is enabled DHCP Snooping is operational DHCP Snooping is configured on following VLANs: 650 **DHCP Snooping bridging is operational on following VLANs:** 650 Insertion of Option-82 is enabled Circuit-id sub-option Type: 0 Circuit-id format: Interface name:Vlan ID Remote-id: 00:1c:73:8d:eb:67 (Switch MAC)` ``` ### Troubleshooting - Configure all the needed commands so that DHCP snooping is enabled and operational on all the VLANs. - **show ip dhcp snooping** displays whether the DHCP snooping is operational or not. - **show ip dhcp snooping counters** displays if snooped packets are getting dropped or not. - **show ip dhcp snooping counters debug** displays the reason for packets getting dropped. ``` `switch# **show ip dhcp snooping counters debug** Counter Requests Responses ----------------------------- ----------------- ----------------- Received 3 2 Forwarded 3 2 Dropped - Invalid VlanId 0 0 Dropped - Parse error 0 0 Dropped - Invalid Dhcp Optype 0 0 Dropped - Invalid Info Option 0 0 Dropped - Snooping disabled 0 0` ``` - Check if the packets are hitting the TCAM rule. ``` `switch# **show platform trident tcam detail | grep -i dhcp** DHCP Snooping uses 3 entries. … 655402 45 hits - DHCP client to relay trap-to-cpu` ``` ## TCP MSS Clamping TCP MSS clamping limits the value of the Maximum Segment Size (MSS) in the TCP header of TCP SYN packets transiting a specified Ethernet or tunnel interface. Setting the MSS ceiling can avoid IP fragmentation in tunnel scenarios by ensuring that the MSS is low enough to account for the extra overhead of GRE and tunnel outer IP headers. TCP MSS clamping can be used when connecting via GRE to cloud providers that require asymmetric routing. When MSS clamping is configured on an interface, if the TCP MSS value in a SYN packet transiting that interface exceeds the configured ceiling limit it will be overwritten with the configured limit and the TCP checksum will be recomputed and updated. TCP MSS clamping is handled by default in the software data path, but the process can be supported through hardware configuration to minimize possible packet loss and a reduction in the number of TCP sessions which the switch can establish per second. ### Cautions *This feature should be used with caution*. When the TCP MSS clamping feature is enabled by issuing the tcp mss ceiling command on any routed interface, *all* routed IPv4 TCP SYN packets (TCP packets with the “SYN” flag set) are sent by default to the CPU and switched through software, even on interfaces where no TCP MSS ceiling has been configured, as long as TCP MSS clamping is enabled. This limits the number of TCP sessions that can be established through the switch per second, and, because throughput for software forwarding is limited, this feature can also cause packet loss if the rate at which TCP SYN packets are sent to the CPU exceeds the limits configured in the control-plane policy map. Packet loss and TCP session reductions can be minimized by enabling TCP MSS clamping in hardware, but only SYN packets in which MSS is the first TCP option are clamped in the hardware data path; other TCP SYN packets are still switched through software. To disable MSS clamping, the MSS ceiling must be removed from every interface on which it has been configured by issuing the **no tcp mss ceiling** command on each configured interface. ### Enabling TCP MSS Clamping There is no global configuration to enable TCP MSS clamping. It is enabled as soon as an MSS ceiling is configured on at least one interface. ### Disabling TCP MSS Clamping To disable TCP MSS clamping, the MSS ceiling configuration must be removed from every interface by using the **no** or **default** form of the tcp mss ceiling command on every interface where a ceiling has been configured. ### Configuring the TCP MSS Ceiling on an Interface The TCP MSS ceiling limit is set on an interface using the tcp mss ceiling command. This also enables TCP MSS clamping on the switch as a whole. Note: Configuring a TCP MSS ceiling on any interface enables TCP MSS clamping on the switch as a whole. Without hardware support, clamping routes all TCP SYN packets through software, even on interfaces where no TCP MSS ceiling has been configured. This significantly limits the number of TCP sessions the switch can establish per second, and can potentially cause packet loss if the CPU traffic exceeds control plane policy limits. On Sand platform switches (Qumran-MX, Qumran-AX, Jericho, Jericho+), the following limitations apply: - This command works only on egress. - TCP MSS ceiling is supported on IPv4 unicast packets entering the switch; the configuration has no effect on GRE transit packets. - The feature is supported only on IPv4 routed interfaces. It is not supported on L2 (switchport) interfaces or IPv6 routed interfaces. - The feature is not supported for IPv6 packets even if they are going to be tunneled over an IPv4 GRE tunnel. - The feature is not supported on VXLAN, loopback or management interfaces. - The feature is only supported on IPv4 unicast packets entering the switch. The configuration has no effect on GRE transit packets or GRE decap, even if the egress interface has a TCP MSS ceiling configured. **Example** - These commands configure **interface ethernet 5** as a routed port, then specify a maximum MSS ceiling value of **1458** bytes for TCP SYN packets exiting that port. ``` `switch(config)# **interface ethernet 5** switch(config-if-Et5)# **no switchport** switch(config-if-Et5)# **tcp mss ceiling ipv4 1458 egress** switch(config-if-Et5)#` ``` - These commands apply TCP MSS clamping at **1436** bytes in the egress direction for IPv6 packets: ``` `switch(config)# **interface ethernet 26** switch(config)# **tcp mss ceiling ipv6 1436 egress**` ``` - These commands apply TCP MSS clamping at **1476** bytes for IPv4 packets and **1436** bytes for IPv6 packets in egress direction: ``` `switch(config)# **interface ethernet 27** switch(config)# **tcp mss ceiling ipv4 1476 ipv6 1436 egress**` ``` ### Verifying the TCP MSS Clamping If TCP MSS ceiling is configured on an interface and if the command **show cpu counters queue | nz** is incrementing in **CoppSystemL3Ttl1IpOptUcast** field for Tcp packet with Syn flag, then TCP MSS clamping is being performed in Software. ``` `switch# **show cpu counters queue | nz** Fap0.1: CoPP Class Queue Pkts Octets DropPkts DropOctets Aggregate ------------------------------------------------------------------------------ CoppSystemL3Ttl1IpOptUcast TC0 1 82 0 0` ``` ### Configuring TCP MSS Clamping #### Interface Configuration You can specify the TCP MSS value under the ***interface configuration mode***. The command syntax is shown below: **tcp mss ceiling** [ipv4 | ipv6] **64-65515** egress The keyword **egress** specifies that the MSS clamping is applied on packets transmitted out on the interface in egress direction. The following example applies TCP MSS clamping at **1436** bytes in the egress direction for IPv4 packets: ``` `switch(config)# **interface ethernet 25** switch(config)#**tcp mss ceiling ipv4 1436 egress**` ``` the following example applies TCP MSS clamping at **1436** bytes in the egress direction for IPv6 packets: ``` `switch(config)# **interface ethernet 26** switch(config)# **tcp mss ceiling ipv6 1436 egress**` ``` The following example applies TCP MSS clamping at **1476** bytes for IPv4 packets and **1436** bytes for IPv6 packets in egress direction: ``` `switch(config)# **interface ethernet 27** switch(config)# **tcp mss ceiling ipv4 1476 ipv6 1436 egress**` ``` #### Hardware TCP MSS Clamping Configuration Hardware MSS clamping requires the system TCAM profile to have TCP MSS clamping enabled. You can achieve this by creating a user defined TCAM profile as described below. The [User Defined PMF Profiles - TOI](https://www.arista.com/en/support/toi/eos-4-20-5f/13977-user-defined-pmf-profile) provides general guidelines on how to create and configure TCAM profiles. The system TCAM profile must have the feature **tcp-mss-ceiling ip** in it in order to use hardware MSS clamping. This is applicable regardless of whether the TCAM profile is copied from an existing profile or created from scratch. **Step 1: Create the user defined TCAM profile** The following example demonstrates copying any source profile and adding the feature **tcp-mss-ceiling ip**. In this example, the profile name is **Pro1** and the source profile name is **Source1**. ``` `(config)# **hardware tcam** (config-hw-tcam)# **profile Pro1 copy Source1** (config-hw-tcam-profile-Pro1)# **feature tcp-mss-ceiling ip copy system-feature-source-profile**` ``` TCP MSS clamping is supported only for IPv4 routed packets. Set the packet type for the feature as follows. This is optional when using **copy system-feature-source-profile**. In this example, the system profile name is **Pro1** and the feature name is **Source1**. ``` `(config-hw-tcam-profile-Pro1-feature-Source1)# **packet ipv4 forwarding routed**` ``` Set the key size limit to **160**. This is also optional when the feature is copied from **system-feature-source-profile**. In this example, the system profile name is **Pro1** and the feature name is **Source1**. ``` `(config-hw-tcam-profile-Pro1-feature-Source1)# **key size limit 160**` ``` Removing unused features to ensure that the TCP MSS TCAM DB is allocated. In this example, the system profile name is **Pro1** and the feature name is **Source1**. ``` `(config-hw-tcam-profile-Pro1-feature-Source1)# **exit** (config-hw-tcam-profile-Pro1)# **no feature mirror ip** (config-hw-tcam-profile-Pro1)# **no feature acl port mac**` ``` **Step 2: Apply the user defined TCAM profile to the system.** The following example sets the profile as the system profile under the *hardware tcam* mode. In this example, the system profile name is **red**. ``` `(config-hw-tcam)# **system profile red**` ``` When the system TCAM profile is changed, it is expected that some agents will restart. Also it might be necessary to remove some unused features from the TCAM profile to ensure that the TCP MSS feature gets allocated a TCAM DB. For more information about configuring TCAM profiles, refer to [User Defined PMF Profiles](https://www.arista.com/en/support/toi/eos-4-20-5f/13977-user-defined-pmf-profile). Note: The hardware clamping only works for TCP packets with MSS as the first TCP option. Packets where MSS is not the first TCP option are still trapped to CPU for clamping in software even if the **feature tcp-mss-ceiling** is configured in the system TCAM profile. #### Backward Compatibility The **tunnel mss ceiling** command which provides the same functionality is deprecated with the introduction of **tcp mss ceiling** command. The configuration option **tunnel mss ceiling** was available only on GRE tunnel interfaces, while **tcp mss ceiling** is supported on other routed IPv4 interfaces as well. ### TCP MSS Clamping Limitations - The TCP-MSS Clamping is not supported on L2 (switchport ) interfaces. - The TCP-MSS Clamping is NOT supported on VXLAN, Loopback and Management interfaces. - The TCP-MSS Clamping is supported only in the Egress direction. - The TCP-MSS Clamping is only supported on unicast routed packets entering the switch. The configuration has no effect on GRE transit packets and GRE decap case, even if the Egress interface has TCP MSS ceiling configured. **Software TCP MSS Clamping Limitations** - Once the TCP-MSS Clamping is enabled, all routed TCP-SYN packets will be software switched, even on interfaces where there is no TCP-MSS ceiling configuration. - TCP SYN packets could get dropped under high CPU usage conditions or due to DOS attack protection mechanisms such as PDP/CoPP. These factors could limit the TCP connection establishment rate, i.e new TCP sessions established per second through the switch. **Hardware MSS Clamping Limitations** - Hardware TCP-MSS clamping is not supported with host routes when the clamping is applied on a non-tunnel interface. This limitation does not apply to GRE tunnel interfaces. - TCP SYN packets where TCP-MSS is not the first TCP option are trapped to CPU for MSS adjustment even in hardware MSS clamping mode. - Hardware TCP-MSS clamping is not supported for IPv6 packets. ### Configuring Hardware Support for TCP MSS Clamping TCP MSS clamping can be supported in hardware, but some packets are still routed through the software data path, and an MSS ceiling value must be configured on each interface where clamping is to be applied. Hardware support for clamping is accomplished through the use of a user-defined TCAM profile. The TCAM profile can be created from scratch or copied from an existing profile, but in either case it must include the **tcp-mss-ceiling ip** feature. #### Guidelines - When the system TCAM profile is changed, some agents will restart. - To ensure that the TCP MSS feature is allocated a TCAM DB, it may be necessary to remove some unused features from the TCAM profile. - Hardware TCP MSS clamping only works for TCP packets with MSS as the first TCP option. Other TCP SYN packets are still trapped to the CPU for clamping in software. - Hardware TCP MSS clamping is not supported with host routes when the clamping is applied on a non-tunnel interface. This limitation does not apply to GRE tunnel interfaces. - The maximum MSS ceiling limit with hardware MSS clamping is 32727 even though the CLI allows configuration of much larger values. - For more information on the creation of user-defined TCAM profiles, see [https://www.arista.com/en/support/toi/eos-4-20-5f/13977-user-defined-pmf-profile](https://www.arista.com/en/support/toi/eos-4-20-5f/13977-user-defined-pmf-profile). To configure hardware support for TCP MSS clamping, create a TCAM profile that includes the tcp mss ceiling feature, then apply it to the system. #### Creating the TCAM Profile A TCAM profile that supports TCP MSS clamping can be created from scratch, or the feature can be added to a copy of the default TCAM profile. When creating a profile from scratch, care must be taken to ensure that all needed TCAM features are included in the profile. ##### Modifying a Copy of the Default TCAM Profile The following commands create a copy of the default TCAM profile, name it **tcp-mss-clamping**, and configure it to enable MSS clamping in hardware, then remove some unused features included in the default profile to ensure that there are sufficient TCAM resources for the clamping feature. ``` `switch(config)# **hardware tcam** switch(config-hw-tcam)# **profile tcp-mss-clamping copy default** switch(config-hw-tcam-profile-tcp-mss-clampingl)# **feature tcp-mss-ceiling ip copy system-feature-source-profile** switch(config-hw-tcam-profile-tcp-mss-clamping-feature-tcp-mss-ceiling)# **key size limit 160** switch(config-hw-tcam-profile-tcp-mss-clamping-feature-tcp-mss-ceiling)# **packet ipv4 forwarding routed** switch(config-hw-tcam-profile-tcp-mss-clamping-feature-tcp-mss-ceiling)# **exit** switch(config-hw-tcam-profile-tcp-mss-clamping)# **no feature mirror ip** switch(config-hw-tcam-profile-tcp-mss-clamping)# **no feature acl port mac** switch(config-hw-tcam-profile-tcp-mss-clampingl)# **exit** switch(config-hw-tcam)# **exit** switch(config)#` ``` #### Applying the TCAM Profile to the System The following commands enter Hardware TCAM Configuration Mode and set the **tcp-mss-clamping** profile as the system profile. ``` `switch(config)# **hardware tcam** switch(config-hw-tcam)# **system profile tcp-mss-clamping** switch(config-hw-tcam)#` ``` #### Verifying the TCAM Profile Configuration The following command displays hardware TCAM profile information to verify that the user-defined TCAM profile has been applied correctly. ``` `switch(config)# **show hardware tcam profile** Configuration Status FixedSystem tcp-mss-clamping tcp-mss-clamping switch(config)#` ``` ## IPv4 GRE Tunneling GRE tunneling supports the forwarding over IPv4 GRE tunnel interfaces. The GRE tunnel interfaces act as a logical interface that performs GRE encapsulation or decapsulation. Note: The forwarding over GRE tunnel interface on DCS-7500R is supported only if all the line cards on the system have Jericho family chip-set. ### Configuring GRE Tunneling Interface #### On a Local Arista Switch ``` `switch(config)# **ip routing** switch(config)# **interface Tunnel 10** switch(config-if-Tu10)# **tunnel mode gre** switch(config-if-Tu10)# **ip address 192.168.1.1/24** switch(config-if-Tu10)# **tunnel source 10.1.1.1** switch(config-if-Tu10)# **tunnel destination 10.1.1.2** switch(config-if-Tu10)# **tunnel path-mtu-discovery** switch(config-if-Tu10)# **tunnel tos 10** switch(config-if-Tu10)# **tunnel ttl 10**` ``` #### On a Remote Arista Switch ``` `switch(config)# **ip routing** switch(config)# **interface Tunnel 10** switch(config-if-Tu10)# **tunnel mode gre** switch(config-if-Tu10)# **ip address 192.168.1.2/24** switch(config-if-Tu10)# **tunnel source 10.1.1.2** switch(config-if-Tu10)# **tunnel destination 10.1.1.1** switch(config-if-Tu10)# **tunnel path-mtu-discovery** switch(config-if-Tu10)# **tunnel tos 10** switch(config-if-Tu10)# **tunnel ttl 10**` ``` #### Alternative Configuration for Tunnel Source IPv4 Address ``` `switch(config)# **interface Loopback 10** switch(config-if-Lo10)# **ip add 10.1.1.1/32** switch(config-if-Lo10)# **exit** switch(config)# **conf terminal** switch(config)# **interface Tunnel 10** switch(config-if-Tu10)# **tunnel source interface Loopback 10**` ``` #### Configuration for Adding an IPv4 Route over the GRE Tunnel Interface ``` `switch(config)# **ip route 192.168.100.0/24 Tunnel 10**` ``` #### Tunnel Mode Tunnel Mode needs to be configured as gre, for GRE tunnel interface. Default value is **tunnel mode gre**. #### IP Address Configures the IP address for the GRE tunnel interface. The IP address can be used for routing over the GRE tunnel interface. The configured subnet is reachable over the GRE tunnel interface and the packets to the subnet are encapsulated in the GRE header. #### Tunnel Source Specifies the source IP address for the outer IPv4 encapsulation header for packets going over the GRE tunnel interface. The tunnel source IPv4 address should be a valid local IPv4 address configured on the Arista Switch. The tunnel source can also be specified as any routed interface on the Arista Switch. The routed interface’s IPv4 address is assigned as the tunnel source IPv4 address. #### Tunnel Destination Specifies the destination IPv4 address for the outer IPv4 encapsulation header for packets going over the GRE tunnel interface. The tunnel destination IPv4 should be reachable from the Arista Switch. #### Tunnel Path Mtu Discovery Specifies if the “Do not Fragment” flag needs to set in the outer IPv4 encapsulation header for packets going over the GRE tunnel interface. #### Tunnel TOS Specifies the Tunnel Type of Service (ToS) value to be assigned to the outer IPv4 encapsulation header for packets going over the GRE tunnel interface. Default TOS value of **0** will be assigned if tunnel TOS is not configured. #### Tunnel TTL Specifies the TTL value to the assigned to the outer IPv4 encapsulation header for packet going over the GRE tunnel interface. The TTL value is copied from the inner IPv4 header if tunnel TTL is not configured. The tunnel TTL configuration requires the tunnel Path MTU Discovery to be configured. ### Displaying GRE tunnel Information - The following commands display the tunnel configuration. ``` `switch# **show interfaces Tunnel 10** Tunnel10 is up, line protocol is up (connected) Hardware is Tunnel, address is 0a01.0101.0800 Internet address is 192.168.1.1/24 Broadcast address is 255.255.255.255 Tunnel source 10.1.1.1, destination 10.1.1.2 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 10, Hardware forwarding enabled Tunnel TOS 10 Path MTU Discovery Tunnel transport MTU 1476 bytes Up 3 seconds` ``` - ``` `switch# **show gre tunnel static** Name Index Source Destination Nexthop Interface -------- ------ -------- ------------ -------- ----------- Tunnel10 10 10.1.1.1 10.1.1.2 10.6.1.2 Ethernet6/1 switch# **show tunnel fib static interface gre 10** Type 'Static Interface', index 10, forwarding Primary via 10.6.1.2, 'Ethernet6/1' GRE, destination 10.1.1.2, source 10.1.1.1, ttl 10, tos 0xa` ``` - Use the **show platform fap tcam summary** command to verify if the TCAM bank is allocated for GRE packet termination lookup. ``` `switch# **show platform fap tcam summary** Tcam Allocation (Jericho0) Bank Used By Reserved By ---------- ------------ ----------- 0 dbGreTunnel -` ``` - Use the **show ip route** command to verify if the routes over tunnel is setup properly. ``` `switch# **show ip route** VRF: default Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary, NG - Nexthop Group Static Route, V - VXLAN Control Service, DH - DHCP client installed default route, M - Martian, DP - Dynamic Policy Route Gateway of last resort is not set C 192.168.1.0/24 is directly connected, Tunnel10, Static Interface GRE tunnel index 10, dst 10.1.1.2, src 10.1.1.1, TTL 10, TOS 10 S 192.168.100.0/24 is directly connected, Tunnel10, Static Interface GRE tunnel index 10, dst 10.1.1.2, src 10.1.1.1, TTL 10, TOS 10` ``` - The following commands are used to verify the tunnel encapsulation programming. ``` `switch# **show platform fap eedb ip-tunnel gre interface Tunnel 10** ------------------------------------------------------------------------------- | Jericho0 | | GRE Tunnel Egress Encapsulation DB | |-----------------------------------------------------------------------------| | Bank/ | OutLIF | Next | VSI | Encap | TOS | TTL | Source | Destination| OamLIF| OutLIF | Drop| | Offset| | OutLIF | LSB | Mode | | | IP | IP | Set | Profile| | |-----------------------------------------------------------------------------| | 3/0 | 0x6000 | 0x4010 | 0 | 2 | 10 | 10 | 10.1.1.1 | 10.1.1.2 | No | 0 | No | switch# **show platform fap eedb ip-tunnel** ------------------------------------------------------------------------------- | Jericho0 | | IP Tunnel Egress Encapsulation DB | |-----------------------------------------------------------------------------| | Bank/ | OutLIF | Next | VSI | Encap| TOS | TTL | Src | Destination | OamLIF | OutLIF | Drop| | Offset| | OutLIF | LSB | Mode | Idx | Idx | Idx | IP | Set | Profile | | |-----------------------------------------------------------------------------| | 3/0 | 0x6000 | 0x4010 | 0 | 2 | 9 | 0 | 0 | 10.1.1.2 | No | 0 | No |` ``` ## GRE Tunneling Support GRE tunneling supports the forwarding over IPv4 GRE tunnel interfaces. The GRE tunnel interfaces act as a logical interface that performs GRE encapsulation or decapsulation. A maximum of 256 GRE-tunnel interfaces are supported. Note: GRE keepalives are not supported. To configure a local Arista switch on a GRE-tunnel interface, consider the following an example. ``` `switch(config)# **ip routing** switch(config)# **interface Tunnel 10** switch(config-if-Tu10)# **tunnel mode gre** switch(config-if-Tu10)# **ip address 192.168.1.1/24** switch(config-if-Tu10)# **tunnel source 10.1.1.1** switch(config-if-Tu10)# **tunnel destination 10.1.1.2** switch(config-if-Tu10)# **tunnel path-mtu-discovery** switch(config-if-Tu10)# **tunnel tos 10** switch(config-if-Tu10)# **tunnel ttl 10**` ``` To configure a remote Arista switch on a GRE-tunnel interface, consider the following an example. ``` `switch(config)# **ip routing** switch(config)# **interface Tunnel 10** switch(config-if-Tu10)# **tunnel mode gre** switch(config-if-Tu10)# **ip address 192.168.1.2/24** switch(config-if-Tu10)# **tunnel source 10.1.1.2** switch(config-if-Tu10)# **tunnel destination 10.1.1.1underlayVrf** switch(config-if-Tu10)# **tunnel path-mtu-discovery** switch(config-if-Tu10)# **tunnel tos 10** switch(config-if-Tu10)# **tunnel ttl 10**` ``` To add a IPv4 route over the GRE-tunnel interface, configure simulare to the following. ``` `switch(config)# **ip route 192.168.100.0/24 Tunnel 10**` ``` Note: IPv6 GRE-Tunnels are not supported. This is only a data-plane limitation whereas IS-IS IPv6 (such as control-plane) can still work. Use the **show interfaces Tunnel** command to display the interface tunnel. ``` `switch(config)# **show interfaces Tunnel 10** Tunnel10 is up, line protocol is up (connected) Hardware is Tunnel, address is 0a01.0101.0800 Internet address is 192.168.1.1/24 Broadcast address is 255.255.255.255 Tunnel source 10.1.1.1, destination 10.1.1.2 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 10, Hardware forwarding enabled Tunnel TOS 10 Path MTU Discovery Tunnel transport MTU 1476 bytes Tunnel underlay VRF "underlayVrf" Up 3 seconds` ``` Use the **show gre tunnel static** command to display a static interface tunnel. ``` `switch(config)#**show gre tunnel static** Name Index Source Destination Nexthop Interface ----------- ------- ----------- ------------- ---------- ---------- Tunnel10 10 10.1.1.1 10.1.1.2 10.6.1.2 Ethernet6/1` ``` Use the **show tunnel fib static interface** command to display a fib static interface tunnel. ``` `switch(config)# **show tunnel fib static interface gre 10** Type 'Static Interface', index 10, forwarding Primary via 10.6.1.2, 'Ethernet6/1' GRE, destination 10.1.1.2, source 10.1.1.1, ttl 10, tos 0xa` ``` ### Tunnel Mode Tunnel mode is **GRE** for a GRE-tunnel interface which is also the default tunnel mode. ### IP address Use this IP address for routing over the GRE-tunnel interface. The configuration subnet is reachable over the GRE-tunnel interface, and the packets to the subnet is encapsulated with the GRE header. ### Tunnel Source Specifies the source IP address for the encapsulating IPv4 header of a packet going over the GRE-tunnel interface. The tunnel source IPv4 address is a valid local IPv4 address configured on the Arista switch. It uses any route interface on the Arista switch. The routed interfaces IPv4 address assigns the tunnel source IPv4 address. Maximum of 16 unique tunnel source IPv4 addresses are supported across all GRE-tunnel interfaces. The following is an example of an interface as a Tunnel source. ``` `switch(config)# **interface Loopback 10** switch(config-if-Lo10)# **ip add 10.1.1.1/32** switch(config-if-Lo10)# **exit** switch(config)# **interface Tunnel 10** switch(config-if-Tu10)# **tunnel source interface Loopback 10**` ``` Note: Coexistence of GRE-tunnel interfaces and Decap-Groups is not supported. Note: Coexistence of GRE-tunnel interfaces and VXLAN is not supported. Note: GRE-tunnel is not supported with MLAG configuration. ### Tunnel Destination Specifies the destination IPv4 address for the encapsulating IPv4 header of a packet going over the GRE-tunnel interface. The tunnel destination IPv4 is reachable from the Arista switch. Note:Multicast traffic over GRE-Tunnels is not supported. ### Tunnel Path MTU Discovery The tunnel path Maximum Transmition Unit (MTU) Discovery specifies if the Don't Fragment (DF) flag needs to be set in the encapsulating IPv4 header of a packet going over the GRE-Tunnel interface. MTU configuration on the GRE-tunnel interface is used by control plane protocols and not enforced in hardware for packets forwarded in data-plane. The MTU change on the tunnel interface does not take effect until the tunnel interface is flapped. ### Tunnel TOS The Tunnel TOS specifies the TOS value to be set in the encapsulating IPv4 header of a packet going over the GRE-Tunnel interface. The default value of **0** is assigned if tunnel TOS is not configured. Maximum of seven unique tunnel TOS values are supported across all GRE-tunnel interfaces. ### Tunnel TTL The Tunnel TTL specifies the TTL value to be set in the encapsulating IPv4 header of a packet going over the GRE-tunnel interface. The TTL value is copied from the inner IPv4 header if tunnel TTL is not configured. The tunnel TTL configuration requires the tunnel path MTU discovery to be configured. Maximum of four unique tunnel TTL values are supported across all GRE-tunnel interfaces. ### VRF Forwarding (Overlay VRF) The following configuration is an example of overlay VRF, for a GRE tunnel interface. ``` `switch(config)# **vrf instance overlayVrf** switch(config)# **ip routing vrf overlayVrf** switch(config)# **interface Tunnel 10** switch(config-if-Tu10)# **vrf overlayVrf**` ``` Note:Both the tunnels source and destination address must be in the underlay VRF. GRE key forwarding is not supported. The following is an example of a static route configuration, with an overlay VRF. ``` `switch(config)# **ip route vrf overlayVrf 7.7.7.0/24 192.168.1.2**` ``` ### VRF Forwarding (Underlay VRF) The following is an configuration example of a underlay VRF for a GRE tunnel interface. ``` `switch(config)# **vrf instance underlayVrf** switch(config)# **interface Tunnel 10** switch(config-if-Tu10)# **tunnel underlay vrf underlayVrf**` ``` ### TCAM Bank Allocation Note: Command to check if Ternary Content-Addressable Memory (TCAM) bank is allocated for GRE packet termination lookup. ``` `switch(config)# **show platform fap tcam summary** Tcam Allocation (Jericho0) Bank Used By Reserved By ---------- ------------------------- ----------- 0 dbGreTunnel -` ``` PBR is not supported on GRE terminated packets. #### Verifing Tunnel Routes Use the **show ip route** command to check if the routes over tunnel is setup correctly. ``` `switch(config)# **show ip route** VRF: default Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary, NG - Nexthop Group Static Route, V - VXLAN Control Service, DH - DHCP client installed default route, M - Martian, DP - Dynamic Policy Route Gateway of last resort is not set C 192.168.1.0/24 is directly connected, Tunnel10, Static Interface GRE-Tunnel index 10, dst 10.1.1.2, src 10.1.1.1, TTL 10, TOS 10 S 192.168.100.0/24 is directly connected, Tunnel10, Static Interface GRE-Tunnel index 10, dst 10.1.1.2, src 10.1.1.1, TTL 10, TOS 10` ``` #### Verifing Tunnel Encap Use the **show platform fap eedb ip-tunnel gre interface Tunnel** command to check the tunnel encap programming on the GRE interface. ``` `switch(config)# **show platform fap eedb ip-tunnel gre interface Tunnel 10** ------------------------------------------------------------------------------------------------------------------ | Jericho0 | | GRE Tunnel Egress Encapsulation DB | |------------------------------------------------------------------------------------------------------------------| | Bank/ | OutLIF | Next | VSI | Encap | TOS | TTL | Source | Destination | OamLIF | OutLIF | Drop | | Offset | | OutLIF | LSB | Mode | | | IP | IP | Set | Profile | | |------------------------------------------------------------------------------------------------------------------| | 3/0 | 0x6000 | 0x4010 | 0 | 2 | 10 | 10 | 10.1.1.1 | 10.1.1.2 | No | 0 | No |` ``` Use the **show platform fap eedb ip-tunnel** command to check the tunnel encap programming on the IP-tunnel interface. ``` `switch(config)# **show platform fap eedb ip-tunnel** ----------------------------------------------------------------------------------------------------------- | Jericho0 | | IP Tunnel Egress Encapsulation DB | |-----------------------------------------------------------------------------------------------------------| | Bank/ | OutLIF | Next | VSI | Encap | TOS | TTL | Src | Destination | OamLIF | OutLIF | Drop | | Offset | | OutLIF | LSB | Mode | Idx | Idx | Idx | IP | Set | Profile | | |-----------------------------------------------------------------------------------------------------------| | 3/0 | 0x6000 | 0x4010 | 0 | 2 | 9 | 0 | 0 | 10.1.1.2 | No | 0 | No |` ``` #### Verifing Tunnel VRF Use the **show ip interface tunnel** command to check the overlay VRF. ``` `switch(config)# **show ip interface tunnel 10** Tunnel10 is up, line protocol is up (connected) Internet address is 192.168.1.1/24 Broadcast address is 255.255.255.255 IPv6 Interface Forwarding : None Proxy-ARP is disabled Local Proxy-ARP is disabled Gratuitous ARP is ignored IP MTU 1476 bytes VPN Routing/Forwarding "overlayVrf" switch(config)# **show ip route vrf overlayVrf** VRF: overlayVrf Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary, NG - Nexthop Group Static Route, V - VXLAN Control Service, DH - DHCP client installed default route, M - Martian, DP - Dynamic Policy Route, L - VRF Leaked Gateway of last resort is not set C 1.1.1.0/24 is directly connected, Ethernet1 S 7.7.7.0/24 [1/0] via 192.168.1.2, Tunnel10, Static Interface GRE-Tunnel index 10, dst 10.1.1.2, src 10.1.1.1 C 192.168.1.0/24 is directly connected, Tunnel10, Static Interface GRE-Tunnel index 10, dst 10.1.1.2, src 10.1.1.1` ``` #### Tunnel underlay VRF Configuration Use the **show interfaces Tunnel** command to check the underlay VRF. ``` `switch(config)# **show interfaces Tunnel 10** Tunnel10 is up, line protocol is up (connected) Hardware is Tunnel, address is 0a01.0101.0800 Internet address is 192.168.1.1/24 Broadcast address is 255.255.255.255 Tunnel source 10.1.1.1, destination 10.1.1.2 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 10, Hardware forwarding enabled Tunnel TOS 10 Path MTU Discovery Tunnel transport MTU 1476 bytes Tunnel underlay VRF "underlayVrf" Up 3 seconds` ``` Use the **show ip route vrf underlayVrf** command to check the IP route VFR underlayVRF. ``` `switch(config)# **show ip route vrf underlayVrf** VRF: underlayVrf Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B - BGP, B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary, NG - Nexthop Group Static Route, V - VXLAN Control Service, DH - DHCP client installed default route, M - Martian, DP - Dynamic Policy Route, L - VRF Leaked, Gateway of last resort is not set C 10.1.1.0/24 is directly connected, Ethernet1` ``` ## BfRuntime to Use Non-default VRFs Use the following commands to configure the VRF for the BfRuntime connection for the management interface on the switches that support it. The management interface may be configured on a different VRF from the default one. ### **Configuring BfRuntime to Use Non-default VRFs** The **platform barefoot bfrt vrf** command configures the forwarding plane agent to restart and listen on the configured VRFs for connections. ``` `switch(config)# **platform barefoot bfrt vrf **` ``` If no VRF specified, the configuration uses the default VRF for the IP and port for the the BfRuntime server. The following displays a typical configuration. ``` `switch(config)# **vrf instance management** switch(config-vrf-management)# **exit** switch(config)# **platform barefoot bfrt 0.0.0.0 50052** switch(config)# **platform barefoot bfrt vrf ** switch(config)# **int management1** switch(config-if-Ma1)# **vrf management**` ``` ### Displaying BfRuntime Configuration The **show platform barefoot bfrt** command displays the existing configuration for the BfRuntime server. ``` `switch# **show platform barefoot bfrt** Namespace: management FixedSystem:0.0.0.0:50052` ``` ## IPv4 Commands ### Cluster Load Balancing Commands - load-balance cluster - destination grouping - flow - flow source learning - forwarding type - load-balance method - port group host - balance factor - flow exhaustion - flow limit - flow warning - member Ethernet ### IP Routing and Address Commands - agent SandL3Unicast terminate - clear arp inspection statistics - clear snapshot counters ecmp - compress - ip arp inspection limit - ip arp inspection logging - ip arp inspection trust - ip arp inspection vlan - ip hardware fib ecmp resilience - ip hardware fib load-balance distribution - ip hardware fib optimize - ip hardware fib next-hop resource optimization - ip icmp redirect - ip load-sharing - ip route - ip routing - ip source binding - ip verify - ip verify source - ipv4 routable 240.0.0.0/4 - rib fib policy - show dhcp server - show hardware capacity - show hardware resource DlbEcmpGroupTable agent * - show ip - show ip arp inspection vlan - show ip arp inspection statistics - show ip hardware fib summary - show hardware resource l3 summary - show ip interface - show ip interface brief - show ip route - show ip route age - show ip route gateway - show ip route host - show ip route match tag - show ip route summary - show ip verify source - show platform arad ip route - show platform arad ip route summary - show rib route ip - show rib route fib policy excluded - show rib route summary - show routing-context vrf - show snapshot counters ecmp history - show vrf - start snapshot counters - tcp mss ceiling ### IPv4 DHCP Relay Commands - clear ip dhcp relay counters - dhcp relay - ip dhcp relay all-subnets - ip dhcp relay all-subnets default - ip dhcp relay always-on - ip dhcp relay information option (Global) - ip dhcp relay information option circuit-id - ip helper-address - show ip dhcp relay - show ip dhcp relay counters ### DHCP Server Configuration Commands - dhcp server - dhcp server client - dhcp server debug - dhcp server dns - dhcp server lease - dhcp server option - dhcp server private-option - dhcp server subnet - dhcp server subnet client - dhcp server tftp - dhcp server vendor-option - dhcp server vendor-option ipv4 sub-option - show dhcp server - show dhcp server leases ### IPv4 DHCP Snooping Commands - clear ip dhcp snooping counters - ip dhcp snooping - ip dhcp snooping bridging - ip dhcp snooping information option - ip dhcp snooping vlan - show ip dhcp snooping - show ip dhcp snooping counters - show ip dhcp snooping hardware ### IPv4 Multicast Counters Commands - clear ip multicast count - ip multicast count ### ARP Table Commands - arp - arp aging timeout - arp cache persistent - arp gratuitous accept - arp proxy max-delay - clear arp-cache - clear arp - ip local-proxy-arp - ip proxy-arp - show arp - show ip arp ### VRF Commands - cli vrf - description (VRF) - platform barefoot bfrt vrf - show platform barefoot bfrt - show routing-context vrf - show vrf - vrf (Interface mode) - vrf instance ### Trident Forwarding Table Commands - platform trident forwarding-table partition - platform trident routing-table partition - show platform trident forwarding-table partition - show platform trident l3 shadow dlb-ecmp-group-control ### IPv4 GRE Tunneling Commands - interface tunnel - show interface tunnel - show platform fap eedb ip-tunnel gre interface tunnel - show platform fap tcam summary - show tunnel fib static interface gre - tunnel ### Dynamic Load Balancing - ip hardware fib ecmp resilience - ip hardware fib load-balance distribution - show hardware resource DlbEcmpGroupTable agent * - show platform trident l3 shadow dlb-ecmp-group-control ### agent SandL3Unicast terminate The **agent SandL3Unicast terminate** command restarts the platform Layer 3 agent to ensure optimized IPv4 routes. **Command Mode** Global Configuration **Command Syntax** **agent SandL3Unicast terminate** **Related Commands** - ip hardware fib optimize - Enables IPv4 route scale. - show platform arad ip route -Displays resources for all IPv4 routes in hardware. Routes that use the additional hardware resources will appear with an asterisk. - show platform arad ip route summary -Displays hardware resource usage of IPv4 routes. **Example** This configuration command restarts the platform Layer 3 agent to ensure optimized IPv4. ``` `switch(config)# **agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes and re-adds them to the hardware. ### arp The **arp** command adds a static entry to an Address Resolution Protocol (ARP) cache. The switch uses ARP cache entries to correlate 32-bit IP addresses to 48-bit hardware addresses. The **no arp** and **default arp** commands remove the ARP cache entry with the specified IP address. When multiple VRFs contain ARP cache entries for identical IP addresses, each entry can only be removed individually. **Command Mode** Global Configuration **Command Syntax** **arp [vrf_instance] ipv4_addr mac_addr arpa** **no arp [vrf_instance] ipv4_addr** **default arp [vrf_instance] ipv4_addr** **Parameters** - **vrf_instance** - Specifies the VRF instance modify. - **no parameter** - Specify changes to the default VRF. - **vrf** **vrf_name** - Specify changes to the specified user-defined VRF. - **ipv4_addr** - Specify the IPv4 address of ARP entry. - **mac_addr** - Specify the local data-link (hardware) address (48-bit dotted hex notation – H.H.H). **Examples** - This command adds a static entry to the ARP cache in the default VRF. ``` `switch(config)# **arp 172.22.30.52 0025.900e.c63c arpa** switch(config)#` ``` - This command adds the same static entry to the ARP cache in the VRF named **purple**. ``` `switch(config)# **arp vrf purple 172.22.30.52 0025.900e.c63c arpa** switch(config)#` ``` ### arp aging timeout The **arp aging timeout** command specifies the duration of dynamic address entries in the Address Resolution Protocol (ARP) cache for addresses learned through the configuration mode interface. The default duration is **14400** seconds (four hours). The **arp aging timeout** and **default arp aging timeout** commands restores the default ARP aging timeout for addresses learned on the configuration mode interface by deleting the corresponding **arp aging timeout** command from ***running-config***. **Command Mode** Interface-Ethernet Configuration Interface-Loopback Configuration Interface-Management Configuration Interface-Port-channel Configuration Interface-VLAN Configuration **Command Syntax** **arp aging timeout arp_time** **no arp aging timeout** **default arp aging timeout** **Parameter** **arp_time** - Specify the ARP aging timeout period in seconds. Values range from **60** to **65535**. Default value is **14400**. **Example** This command specifies an ARP cache duration of **7200** seconds (two hours) for dynamic addresses added to the ARP cache learned through **vlan 200**. ``` `switch(config)# **interface vlan 200** switch(config-if-Vl200)# **arp aging timeout 7200** switch(config-if-Vl200)# **show active** interface Vlan200 arp aging timeout 7200 switch(config-if-Vl200)#` ``` ### arp cache dynamic capacity AARP and IPv6 Neighbor Discovery store neighbor address resolutions in a neighbor cache. The resources and capabilities of the switch determine the capacity of the neighbor cache. The Neighbor Cache Capacity feature adds parameters to specify a per-interface capacity for the neighbor cache. A neighboring device, through misconfiguration or maliciousness, can unfairly use a large number of address resolutions. This feature mitigates the over-utilization of address resolutions. **Command Mode** Interface Configuration Mode **Command Syntax** **ipv6 nd cache dynamic capacity capacity** **no arp cache dynamic capacity** **default arp cache dynamic capacity** **Parameters** - **capacity capacity** - The number of dynamic address resolution entries accepted into the ARP on the specified interface. Configure a range from 0 to 4294967295. If no capacity specified, then the interface accepts all neighbor resolutions up to the capacity of the switch platform. **Example** Use the following commands to configure an ARP cache of 3000 dynamic address resolution entries: ``` `switch(config)# **interface Ethernet3/1** switch(config-if-Et3/1)# **arp cache dynamic capacity 3000**` ``` ### arp cache persistent The **arp cache persistent** command restores the dynamic entries in the Address Resolution Protocol (ARP) cache after reboot. The **no arp cache persistent** and **default arp cache persistent** commands remove the ARP cache persistent configuration from the ***running-config***. **Command Mode** Global Configuration **Command Syntax** **arp cache persistent** **no arp cache persistent** **default arp cache persistent** **Example** This command restores the ARP cache after reboot. ``` `switch(config)# **arp cache persistent** switch(config)#` ``` ### arp gratuitous accept The **arp gratuitous accept** command configures the configuration mode interface to accept gratuitous ARP request packets received on that interface. The ARP table then learns the accepted gratuitous ARP requests. The no and **default** forms of the command prevent the interface from accepting gratuitous ARP requests. Configuring gratuitous ARP acceptance on an L2 interface has no effect. **Command Mode** Interface-Ethernet Configuration Interface-VLAN Configuration Interface Port-channel Configuration **Command Syntax** **arp gratuitous accept** **no arp gratuitous accept** **default arp gratuitous accept** **Example** These commands configure **interface ethernet 2/1** to accept gratuitous ARP request packets. ``` `switch(config)# **interface ethernet 2/1** switch(config-if-Et2/1)# **arp gratuitous accept** switch(config-if-Et2/1)#` ``` ### arp proxy max-delay The **arp proxy max-delay** command enables delaying proxy ARP requests on the configuration mode interface. EOS disables proxy ARP by default. When enabled, the switch responds to all ARP requests, including gratuitous ARP requests, with target IP addresses that match a route in the routing table. When a switch receives a proxy ARP request, EOS performs a check to send the response immediately or delay the response based on the configured maximum delay in milliseconds (ms). **Command Mode** Configuration mode **Command Syntax** **arp proxy max-delay milliseconds** **Parameters** **milliseconds** - Configure the maximum delay before returning a proxy ARP response in milliseconds. Use a range between 0 and 1000ms with a default value of 800ms. **Example** This command sets a delay of 500ms before returning a response to a proxy ARP request. ``` `switch(config)# **arp proxy max-delay 500ms**` ``` ### balance factor The **balance factor** command in the Port Group Host Configuration Mode configures port balancing for Cluster Load Balancing on the network. A higher value results in a more aggressive rebalancing of flows from a port group, a logical group of hosts, across the available links, even if the link has a small load imbalance. This is ideal for very bursty traffic patterns. Configuring a lower value provides a more conservative action and only triggers a rebalance when encountering a significant load difference. This minimizes changes and suitable for more consistent, long-lived flows. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration Port Group Host Configuration **Command Syntax** **balance factor factor_value** **no balance factor factor_value** **Parameters** - **balance** - Configure port group balancing. - **factor factor_value** - Configure port group balancing factor from 0-4294967295. **Example** Use the following commands to configure a balance factor of 2500 for the port group *MyPortGroup*: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **port group host MyPortGroup** switch(config-clb-port-host-MyPortGroup)# **balance factor 2500** switch(config-clb-port-host-MyPortGroup)#` ``` ### clear arp inspection statistics The **clear arp inspection statistics** command clears ARP inspection statistics. **Command Mode** EXEC **Command Syntax** **clear arp inspection statistics** **Related Commands** - ip arp inspection limit - ip arp inspection logging - ip arp inspection trust - ip arp inspection vlan - show ip arp inspection vlan - show ip arp inspection statistics **Example** This command clears ARP inspection statistics. ``` `switch(config)# **clear arp inspection statistics** switch(config)#` ``` ### clear arp The **clear arp** command removes the specified dynamic ARP entry for the specified IP address from the Address Resolution Protocol (ARP) table. **Command Mode** Privileged EXEC **Command Syntax** **clear arp [vrf_instance] ipv4_addr** **Parameters** - **vrf_instance** - Specifies the VRF instance for which arp data is removed. - **no parameter** - Specifies the context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. Specify the system default using the **default** option. - **ipv4_addr** - IPv4 address of dynamic ARP entry. **Example** These commands display the ARP table before and after the removal of dynamic ARP entry for IP address **172.22.30.52**. ``` `switch# **show arp** Address Age (min) Hardware Addr Interface 172.22.30.1 0 001c.730b.1d15 Management1 172.22.30.52 0 0025.900e.c468 Management1 172.22.30.53 0 0025.900e.c63c Management1 172.22.30.133 0 001c.7304.3906 Management1 switch# **clear arp 172.22.30.52** switch# **show arp** Address Age (min) Hardware Addr Interface 172.22.30.1 0 001c.730b.1d15 Management1 172.22.30.53 0 0025.900e.c63c Management1 172.22.30.133 0 001c.7304.3906 Management1 switch#` ``` ### clear arp-cache The **clear arp-cache** command refreshes dynamic entries in the Address Resolution Protocol (ARP) cache. Refreshing the ARP cache updates current ARP table entries and removes expired ARP entries not yet deleted by an internal, timer-driven process. The command, without arguments, refreshes ARP cache entries for all enabled interfaces. With arguments, the command refreshes cache entries for the specified interface. Executing **clear arp-cache** for all interfaces can result in extremely high CPU usage while the tables are resolving. **Command Mode** Privileged EXEC **Command Syntax** **clear arp-cache [vrf_instance][interface_name]** **Parameters** - **vrf_instance** - Specifies the VRF instance to refresh ARP data. - **no parameter** - Specifies the context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. System default VRF specified by **default**. - **interface_name** - Interface to refresh ARP cache entries. Options include the following: - **no parameter** - All ARP cache entries. - **interface ethernet** **e_num** - ARP cache entries of specified Ethernet interface. - **interface loopback** **l_num** - ARP cache entries of specified loopback interface. - **interface management** **m_num** - ARP cache entries of specified management interface. - **interface port-channel** **p_num** - ARP cache entries of specified port-channel Interface. - **interface vlan** **v_num** - ARP cache entries of specified VLAN interface. - **interface VXLAN** **vx_num** - VXLAN interface specified by **vx_num**. **Related Commands** The cli vrf command specifies the context-active VRF. **Example** These commands display the ARP cache before and after ARP cache entries refresh. ``` `switch# **show arp** Address Age (min) Hardware Addr Interface 172.22.30.1 0 001c.730b.1d15 Management1 172.22.30.118 0 001c.7301.6015 Management1 switch# **clear arp-cache** switch# **show arp** Address Age (min) Hardware Addr Interface 172.22.30.1 0 001c.730b.1d15 Management1 switch#` ``` ### clear ip dhcp relay counters The **clear ip dhcp relay counters** command resets the DHCP relay counters. The configuration mode determines which counters are reset:. The **Interface configuration** command clears the counter for the configuration mode interface. **Command Mode** Privileged EXEC **Command Syntax** **clear ip dhcp relay counters****[interface_name]** **Parameters** **interface_name** - Specify the interface to clear counters.. Add the following options: - **no parameter** - Clears counters for the switch and for all interfaces. - **interface ethernet** **e_num** - Clears counters for the specified Ethernet interface. - **interface loopback** **l_num** - Clears counters for the specified loopback interface. - **interface port-channel** **p_num** - Clears counters for the specified port-channel Interface. - **interface vlan** **v_num**  -Clears counters for the specified VLAN interface. **Examples** - These commands clear the DHCP relay counters for **vlan 1045** and shows the counters before and after the **clear** command. ``` `switch# **show ip dhcp relay counters** | Dhcp Packets | Interface | Rcvd Fwdd Drop | Last Cleared ----------|----- ---- -----|--------------------- All Req | 376 376 0 | 4 days, 19:55:12 ago All Resp | 277 277 0 | | | Vlan1001 | 207 148 0 | 4 days, 19:54:24 ago Vlan1045 | 376 277 0 | 4 days, 19:54:24 ago switch# **clear ip dhcp relay counters interface vlan 1045** | Dhcp Packets | Interface | Rcvd Fwdd Drop | Last Cleared ----------|----- ---- -----|--------------------- All Req | 380 380 0 | 4 days, 21:19:17 ago All Resp | 281 281 0 | | | Vlan1000 | 207 148 0 | 4 days, 21:18:30 ago Vlan1045 | 0 0 0 | 0:00:07 ago` ``` - These commands clear all DHCP relay counters on the switch. ``` `switch(config-if-Vl1045)# **exit** switch(config)# **clear ip dhcp relay counters** switch(config)# **show ip dhcp relay counters**           | Dhcp Packets | Interface | Rcvd Fwdd Drop | Last Cleared ----------|----- ---- -----|------------- All Req | 0 0 0 | 0:00:03 ago All Resp | 0 0 0 | | | Vlan1000 | 0 0 0 | 0:00:03 ago Vlan1045 | 0 0 0 | 0:00:03 ago` ``` ### clear ip dhcp snooping counters The **clear ip dhcp snooping counters** command resets the DHCP snooping packet counters. **Command Mode** Privileged EXEC **Command Syntax** clear ip dhcp snooping counters [counter_type] **Parameters** **counter_type**  - Specify the type of counter to reset. Options include the following: - **no parameter** - Counters for each VLAN. - **debug** - Aggregate counters and drop cause counters. **Examples** - This command clears the DHCP snooping counters for each VLAN. ``` `switch# **clear ip dhcp snooping counters** switch# **show ip dhcp snooping counters** | Dhcp Request Pkts | Dhcp Reply Pkts | Vlan | Rcvd Fwdd Drop | Rcvd Fwdd Drop | Last Cleared -----|------ ----- ------|----- ---- ------|------------- 100 | 0 0 0 | 0 0 0 | 0:00:10 ago switch#` ``` - This command clears the aggregate DHCP snooping counters. ``` `switch# **clear ip dhcp snooping counters debug** switch# **show ip dhcp snooping counters debug** Counter Snooping to Relay Relay to Snooping ----------------------------- ----------------- ----------------- Received 0 0 Forwarded 0 0 Dropped - Invalid VlanId 0 0 Dropped - Parse error 0 0 Dropped - Invalid Dhcp Optype 0 0 Dropped - Invalid Info Option 0 0 Dropped - Snooping disabled 0 0 Last Cleared: 0:00:08 ago switch#` ``` ### clear ip multicast count The **clear ip multicast count** command clears all counters associated with the multicast traffic. **Command Mode** Gobal Configuration **Command Syntax** clear ip multicast count [group_address [source_address]] **Parameters** - **no parameters** - Clears all counts of the multicast route traffic. - **group_address** - Clears the multicast traffic count of the specified group address. - **source_address** - Clears the multicast traffic count of the specified group and source addresses. **Guidelines** This command functions only when the ip multicast count command is enabled. **Examples** - This command clears all counters associated with the multicast traffic. ``` `switch(config)# **clear ip multicast count**` ``` - This command clears the multicast traffic count of the specified group address. ``` `switch(config)# **clear ip multicast count 16.39.24.233**` ``` ### clear snapshot counters ecmp The **clear shapshot counters ecmp** deletes previous snapshots. **Command Mode** EXEC **Command Syntax** **clear snapshot counters ecmp req_id_range** **Parameter** **req_id_range** - Specify the Request ID of the snapshot to delete. If none specified, all previous snapshots delete from the switch. **Example** To delete previous snapshots, use the following command: ``` `switch# **clear snapshot counters ecmp id_range**` ``` ### cli vrf The **cli vrf** command specifies the context-active VRF. The context-active VRF determines the default VRF that VRF-context aware commands use when displaying routing table data. **Command Mode** Privileged EXEC **Command Syntax** **cli vrf [vrf_id]** **Parameters** **vrf_id** - Specify the name of VRF assigned as the current VRF scope. Options include the following: - **vrf_name** - Specify the name of user-defined VRF. - **default** - Specify the system-default VRF. **Guidelines** VRF-context aware commands include the following: clear arp-cache show ip show ip arp show ip route show ip route gateway show ip route host **Related Commands** The show routing-context vrf command displays the context-active VRF. **Example** These commands specify **magenta** as the context-active VRF, then display the context-active VRF. ``` `switch# **cli vrf magenta** switch# **show routing-context vrf** Current VRF routing-context is magenta switch#` ``` ### compress The **compress** command increases the hardware resources available for the specified prefix lengths. The **no compress** command removes the 2-to-1 compression configuration from the ***running-config***. Note: The **compress** command is supported only on 7500R, 7280R, 7500R2 and 7280R2 platforms. **Command Mode** Global Configuration **Command Syntax** ip hardware fib optimize prefix-length prefix-length expand prefix-length compress no ip hardware fib optimize prefix-length prefix-length expand prefix-length compress **Parameters** **compress** - Allows configuring up to one compressed prefix length. **Example** In the following example, configure the prefix length **20** and **24**, expanding prefix length **19** and **23**, and compressing prefix length **25**. ``` `switch(config)# **ip hardware fib optimize prefix-length 20 24 expand 19 23 compress 25** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` ### description (VRF) The **description** command adds a text string to the configuration mode VRF. The string has no functional impact on the VRF. The **no description** and **default description** commands remove the text string from the configuration mode VRF by deleting the corresponding **description** command from ***running-config***. **Command Mode** VRF Configuration **Command Syntax** **description label_text** **no description** **default description** **Parameters** **label_text** - Specify the character string assigned to the VRF configuration. **Related Commands** The vrf instance command places the switch in VRF configuration mode. **Example** These commands add description text to the **magenta** VRF. ``` `switch(config)# **vrf instance magenta** switch(config-vrf-magenta)# **description This is the first vrf** switch(config-vrf-magenta)# **show active** vrf instance magenta description This is the first vrf switch(config-vrf-magenta)#` ``` ### destination grouping The **destination grouping** command in the Cluster Load Balancing Configuration mode allows the configuration of destination grouping settings with `**BGP**`, `**prefix**`, or **`VTEP`** groupings for cluster load balancing. The **no** version of the command deletes the configuration from the ***running-config***. Destination Grouping prevents traffic bottlenecks on the network by distributing the incoming traffic across all available ECMP paths. **Command Mode** Cluster Load Balancing Configuration **Command Syntax** **destination groupings [bgp field-set] [prefix length length**] [vtep] **no destination groupings [bgp field-set] [prefix length length] [vtep]** **Parameters** - **destination groupings** - Configure destination grouping parameters for cluster load balancing. - **bgp field-set** - Specify using BGP field-sets for destination grouping. - **prefix length length** - Specify using address prefix length for destination grouping. Configure the network prefix length between 0 and 128. - **vtep** - Specify using a VXLAN tunnel endpoint for destination grouping. **Example** Use the following commands to enter Cluster Load Balancing Mode and use BGP field-sets for destination grouping: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **destination grouping bgp field-set** switch(config-clb)#` ``` ### dhcp relay The **dhcp relay** command places the switch in the DHCP relay mode. Execute this command in the Global Configuration Mode. The **no dhcp relay** command removes DHCP relay configuration from the ***running-config***. **Command Mode** Global Configuration Mode **Command Syntax** dhcp relay no dhcp relay **Example** The **dhcp relay** command places the switch in the DHCP relay configuration mode. ``` `switch(config)# **dhcp relay** switch(config-dhcp-relay)#` ``` ### dhcp server The **dhcp server** command places the switch in the DHCP relay mode. Execute this command in the DHCP Server Configuration Mode. The **no dhcp server** command removes DHCP relay configuration from the ***running-config***. **Command Mode** Global Configuration Mode **Command Syntax** **dhcp server** **no dhcp server** **Example** The **dhcp server** command places the switch in the DHCP relay configuration mode. ``` `switch(config)# **dhcp server** switch(config-dhcp-server)#` ``` ### dhcp server client The **dhcp server client** command configures client options for the DHCP server.Execute this command under the ***dhcp server configuration mode***. **Command Mode** DHCP Server Configuration Mode **Command Syntax** dhcp server client class [ipv4|ipv6] definition client_class assignments [default-gateway|dns|lease|option|private-option|tftp] **Parameters** - **[ipv4|ipv6]** - Select the IP address family. - **definition client_class** - Add a class for the client definition. - **default-gateway** - Configure the client class default gateway sent to DHCP clients. - **dns** - Configure the client class DNS. - **lease** - Configure the client class lease. - **option** - Configure the client class DHCP options. - **private-option** - Configure the client class's private options. - **tftp** - Configure the client class's TFTP options. **Example** Use the **dhcp server client class default-gateway** command to add a client definition for the IPv4 DHCP client class default gateway of 10.0.0.1. options. ``` `switch(config-dhcp-server)# **client class ipv4 definition test1 default-gateway 10.0.0.1**` ``` ### dhcp server debug The **dhcp server debug log** command configures DHCP server debugging configuration. Execute this command in the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server debug log file** **Parameters** **log file** - Specify the file location to store debugging logs. **Example** Use the **dhcp server log** command to add a file location for debugging logs. ``` `switch(config-dhcp-server)#**debug log**` ``` ### dhcp server dns The **dhcp server dns** command configures DHCP server DNS options. Execute this command in the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server dns [domain name domain_name ] [server [ipv4|ipv6] ip_address** **Parameters** - **domain name domain_name** - Specify the domain name of the DNS server. - **server [ipv4|ipv6] ip_address** - Specify the DNS server as IPv4 or IPv6 and the IP address of the server. **Example** Use the **dhcp server dns** command to add an IPv4 DNS server, 192.168.10.5, to the DHCP configuration. options. ``` `switch(config-dhcp-server)# **dns server ipv4 192.168.10.5**` ``` ### dhcp server lease The **dhcp server lease** command configures DHCP server lease options. Execute this command in the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server lease time [ipv4|ipv6] days days hourshours minutesminutes** **Parameters** - **[ipv4|ipv6]** - Configure the lease for IPv4 or IPv6. - **days** **days** - Specify the number of days for the lease to be in effect from 0 to 2000 days. - **hours****hours** - Specify the number of hours for the lease to be in effect from 0 to 23 hours. - **minutes****minutes** - Specify the number of minutes for the lease to be in effect from 0 to 59 minutes. **Example** Use the **dhcp server lease** command to add an IPv4 lease to be in effect for 10 days, to the DHCP configuration. ``` `switch(config-dhcp-server)# **dns lease time ipv4 10 days**` ``` ### dhcp server option The **dhcp server option** command configures DHCP server options. Execute this command in the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server option [ipv4|ipv6] code [always-send data type [hex |string] data]] >quoted_string >hex [client-id disable] hourshours minutesminutes** **Parameters** - **[ipv4|ipv6]** - Configure the option for IPv4 or IPv6. - **code**- Specify the option number from the DHCP options. - **[always-send data type [hex |string] data]]** **>quoted_string** **>hex** - Specify to send the option whether or not the client requested it. - **client-id disable** - Prevent the DHCPv4 server from sending back the client ID. **Example** Use the **dhcp server option** command to add an IPv4 DHCP code, 67, to the DHCP configuration. ``` `switch(config-dhcp-server)# **option ipv4 option 67**` ``` ### dhcp server private-option The **dhcp server private-option** command configures DHCP server private options. Execute this command in the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server private-option [ipv4|ipv6] code [always-send data type [hex |string] data]] >quoted_string >hex** **Parameters** - **[ipv4|ipv6]** - Configure the option for IPv4 or IPv6. - **code**- Specify the option number from 224 to 254. - **[always-send data type [hex |string] data]]** **quoted_string** **>hex** - Specify to send the option whether or not the client requested it. **Example** Use the **dhcp server option** command to add an IPv4 private option code, *225*, to always send the option to the DHCP configuration. ``` `switch(config-dhcp-server)# **option ipv4 private-option 225 always-send private-option ipv4 225 always-send type string data "Code Sent"**` ``` ### dhcp server subnet The **dhcp server subnet** command configures DHCP server subnet options. Execute this command in the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server subnet ipv4_address ipv6_address** **Parameters** - **ipv4_address**> - Configure the IPv4 subnet. - **ipv6_address** - Configure the IPv6 subnet. **Example** Use the **dhcp server subnet** command to add an IPv4 subnet, *198.168.0.0/24*, to the DHCP configuration. ``` `switch(config-dhcp-server)# **subnet 198.168.0.0/24**` ``` ### dhcp server subnet client The **dhcp server subnet [ipv4 | ipv6] client** command configures client options for the DHCP server. Execute this command in the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server subnet [ipv4|ipv6] client class definition client_class [default-gateway|dns|lease|name|range|reservations|tftp]** **Parameters** - **[ipv4|ipv6]** - Select the IP address family. - **definition client_class** - Add a class for the client definition. - **default-gateway** **ip_address** - Configure the client class default gateway sent to DHCP clients. - **dns server** **** - Configure the client class DNS. - **lease** **days** **hours****hours** **minutes****minutes** - Configure the client class lease in days, hours, and minutes. - **name** **name** - Configure the subnet name. - **range** **ip_address_start** **ip_address_end** - Configure the range of IP addresses for the subnet. - **reservations mac-address** **mac_address** **[hostname | ipv4-address]**- Configure the MAC address to use for reservations. - **tftp** - Configure the client class's TFTP options. **Example** Use the **dhcp server subnet ipv4 client class default-gateway** command to add a client definition for the IPv4 DHCP client class default gateway of 10.0.0.1. options. ``` `switch(config-dhcp-server)#**subnet ipv4 client class ipv4 definition test1 default-gateway 10.0.0.1**` ``` ### dhcp server tftp The **dhcp server tftp** command configures DHCP server TFTP options. Execute this command in the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server tftp server [file [ipv4|ipv6] file_name] [option [150|66]] ipv4** **Parameters** - **file [ipv4|ipv6]** **file_name**> - Configure the IPv4 or IPv6 boot file name. - **option [150|66]] ipv4** **ip_address** - Configure the TFTP DHCP option as 150 or 66 with an IPv4 address. **Example** Use the **dhcp server tftp** command to add option 150 with an IPv4 address *198.168.0.11*, to the DHCP configuration. ``` `switch(config-dhcp-server)# **tftp option 150 ipv4 198.168.0.11**` ``` ### dhcp server vendor-option The **dhcp server vendor-option** command configures the DHCP server vendor identifier options. Execute this command under the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server vendor-option ipv4 vendor_id default vendor_id sub-option sub-option_code** **Parameters** - **vendor_id** - Configure the vendor identifier. - **default** **vendor_id** - Set as the default vendor specific option. - **sub-option** **sub-option_code** - Set the sub-option code from 1-254. **Example** Use the **dhcp server vendor-option** command to add vendor option, *1:4:c0:0:2:8* , to the DHCP configuration. ``` `switch(config-dhcp-server)# **vendor-option 1:4:c0:0:2:8**` ``` ### dhcp server vendor-option ipv4 sub-option The **dhcp server vendor-option** command configures the DHCP server vendor identifier options. Execute this command in the DHCP Server Configuration Mode. **Command Mode** DHCP Server Configuration Mode **Command Syntax** **dhcp server vendor-option ipv4 vendor_id default vendor_id sub-option sub-option_code type [array | ipv4-address | string] array [ipv4-address data ip_address [string data quoted_string** **Parameters** - **vendor_id** - Configure the vendor identifier. - **default** **vendor_id** - Set as the default vendor specific option. - **sub-option** **sub-option_code** - Set the sub-option code from 1-254. **Example** Use the **dhcp server vendor-option** command to add the vendor option, *1:4:c0:0:2:8*, to the DHCP Server configuration. ``` `switch(config-dhcp-server)# **vendor-option 1:4:c0:0:2:8**` ``` ### fib route limit The **fib route limit** command in the Router General Configuration Mode limits the number of routes added to the Forwarding Information Database (FIB) and also suppresses BGP routes when exceeding the table limit. The **no** version of the command removes the configuration from the ***running-config***. **Command Mode** Router General Configuration FIB Route Limit Configuration VRF Configuration **Command Syntax** **[ipv4 | ipv6] limit route_number [warning-limit percent percent]** **Parameters** - **[ipv4 | ipv6]** - Configure IPv4 or IPv6 routes to limit in the FIB. - **limit route_number** - Configure the number of routes to limit in the FIB. - **warning-limit percent percent** - Configure the percentage of a FIB with routes and issue a warning. For example, if the FIB has a 100 route limit, and the percentage set to 80, then EOS issues a warning when the FIB has 80 routes. **Example** Use the following command to configure a global route limit for IPv4 to 100 and warn when the table has consumed 80% of the limit: ``` `switch(config)# **router general** switch(config-router-general)# **fib route limit** switch(config-router-general-fib-route-limit)# **ipv4 limit 100 warning-limit 80 percent**` ``` ### flow The **flow** command in the Cluster Load Balancing Configuration Mode allows the configuration of flow settings for Cluster Load Balancing including counters, matching, monitoring, sources, and warnings. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration **Command Syntax** **flow [counters] [match encapsulation [none | vxlan] ipv4] [monitor] [warning ungrouped]** **no flow [counters] [match encapsulation [none | vxlan] ipv4] [monitor] [warning ungrouped]** **Parameters** - **flow** - Specify flow behavior for cluster load balancing. - **counters** - Configure the flow to generate counters for cluster load balancing. - **match encapsulation [none | vxlan] ipv4** - Specify the flow to match encapsulation for IPv4. - **monitor** - Configure the flow to monitor cluster load balancing without impacting actual forwarding. - **warning ungrouped** - Configure the flow to generate warning messages about the cluster load balancing configuration. **Example** Use the following commands to enter Cluster Load Balancing Configuration Mode and configure the flow to match VXLAN encapsulation: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **flow match encapsulation vxlan ipv4** switch(config-clb)#` ``` ### flow exhaustion The **flow exhaustion** command in the Port Group Host Configuration Mode configures flow-related settings for cluster load balancing on the switch. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration Port Group Host Configuration **Command Syntax** **flow exhaustion action [dscp dscp_value] [traffic-class class_value** **no flow exhaustion action [dscp dscp_value] [traffic-class class_value** **Parameters** - **exhaustion action** - Configure an action when the flows reach limits. - **dscp dscp_value** - Configure the packet DSCP value from 0 to 63. - **traffic-class class_value** - Configure the traffic-class value from 0 to 7. **Example** Configure the MyPortGroup exhaustion action to use a DSCP value of 25: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **port group host MyPortGroup** switch(config-clb-port-host-MyPortGroup)# **flow exhaustion action dscp 25**` ``` ### flow source learning The **flow source learning** command enters the Flow Source Learning Configuration Mode and configures cluster load balancing to learn flow sources. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration Flow Source Learning Configuration **Command Syntax** **flow source learning** **[aging timeout number_of_seconds seconds | limit number_of_learned_flows** **no flow source learning** **Parameters** - **flow source learning** - Configure flow discovery by learning. - **aging timeoutnumber_of_seconds seconds** - Configure the aging timeout between 30 and 2147483647 seconds with a default value of 600 seconds. - **limit number_of_learned_flows** - Configure the number of flows to learn and preserve hardware TCAM resources. **Example** Use the following commands to configure the flow source learning timeout to 1200 seconds: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **flow source learning** switch(config-clb-flow-learning)# **aging timeout 1200 seconds** switch(config-clb-flow-learning)#` ``` ### flow limit The **flow limit** command in the Port Group Host Configuration Mode configures flow-related settings for cluster load balancing on the switch. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration Port Group Host Configuration **Command Syntax** **flow limit max_flows learning max_flows** **no flow limit max_flows learning max_flows** **Parameters** - **flow limit max_flows** - Configure the maximum number of flows per port group. - **learning max_flows** - Configure the limit of learned flows. **Example** Configure the MyPortGroup flow limit to limit learned flows to 25000: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **port group host MyPortGroup** switch(config-clb-port-host-MyPortGroup)# **flow limit learning 2500**` ``` ### flow warning The **flow warning** command in the Port Group Host Configuration Mode configures flow warning thresholds for cluster load balancing on the switch. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration Port Group Host Configuration **Command Syntax** **flow warning threshold_flows** **no flow warning threshold_flows** **Parameters** - **flow warning max_flows** - Configure the warning threshold of flows per port group. **Example** Configure the MyPortGroup flow warning threshold to 25000: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **port group host MyPortGroup** switch(config-clb-port-host-MyPortGroup)# **flow warning 2500**` ``` ### forwarding type The **forwarding type** command configures the encapsulation and mode used to deliver packets between TORs over the uplinks. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration **Command Syntax** **forwarding type routed** **no forwarding type routed** **Parameters** - **forwarding type routed** **Example** Use the following commands to configure the forwarding type as routed: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **forwarding type routed** switch(config-clb)#` ``` ### interface tunnel The **interface tunnel** command places the switch in Interface-Tunnel Configuration Mode. The **no interface tunnel** command deletes the specified interface tunnel configuration. The **exit** command returns the switch to the global configuration mode. **Command Mode** Global Configuration **Command Syntax** **interface tunnel number** **no interface tunnel number** **Parameter** **number** - Specify the tunnel interface number. Values range from **0** to **255**. **Example** This command places the switch in Interface-Tunnel Configuration Mode for tunnel interface **10**. ``` `switch(config)# **interface tunnel 10** switch(config-if-Tu10)#` ``` ### ip arp inspection limit The **ip arp inspection limit** command disables the interface if the incoming ARP rate exceeds the configured value rate limit of the incoming ARP packets on an interface. **Command Mode** EXEC **Command Syntax** **ip arp inspection limit** [ rate pps] [burst_interval **sec | none]** **no ip arp inspection limit** [ rate pps] [burst_interval **sec | none]** **default ip arp inspection limit** [ rate pps] [burst_interval **sec | none]** **Parameters** - **rate** - Specifies the ARP inspection limit rate in packets per second. - **pps** - Specify the number of ARP inspection limit rate packets per second. - **burst_interval** - Specifies the ARP inspection limit burst interval. - **sec** - Specify the burst interval in seconds. **Related Commands** - ip arp inspection limit - ip arp inspection trust - ip arp inspection vlan - show ip arp inspection vlan **Examples** - This command configures the rate limit of incoming ARP packets to disable the interface when the incoming ARP rate exceeds the configured value, sets the rate to **512**, the upper limit for the number of invalid ARP packets allowed per second, and sets the burst consecutive interval to monitor the interface for a high ARP rate to **11** seconds. ``` `switch(config)# **ip arp inspection limit rate 512 burst interval 11** switch(config)#` ``` - This command displays verification of the interface specific configuration. ``` `switch(config)# **interface ethernet 3/1** switch(config)# **ip arp inspection limit rate 20 burst interval 5** switch(config)# **interface Ethernet 3/3** switch(config)# **ip arp inspection trust** switch(config)# **show ip arp inspection interfaces**   Interface      Trust State  Rate (pps) Burst Interval  -------------  -----------  ---------- --------------  Et3/1          Untrusted    20         5  Et3/3          Trusted      None       N/A switch(config)#` ``` ### ip arp inspection logging The **ip arp inspection logging** command enables logging of incoming ARP packets on the interface if the rate exceeds the configured value. **Command Mode** EXEC **Command Syntax** **ip arp inspection logging****[rate pps ][burst_interval sec | none]** **no ip arp inspection logging** **[RATE pps ][burst_interval** **sec | none]** **default ip arp inspection logging** **[RATE pps ][burst_interval** **sec | none]** **Parameters** - **RATE** - Specifies the ARP inspection limit rate in packets per second. - **pps** -Specifies the number of ARP inspection limit rate packets per second. - **burst_interval** - Specifies the ARP inspection limit burst interval. - **sec** - Specify the number of burst interval seconds. **Related Commands** - ip arp inspection limit - ip arp inspection trust - ip arp inspection vlan - show ip arp inspection vlan **Example** This command enables logging of incoming ARP packets when the incoming ARP rate exceeds the configured value on the interface, sets the rate to monitor the interface for a high ARP rate to **15** seconds. ``` `switch(config)# **ip arp inspection logging rate 2048 burst interval 15** switch(config)#` ``` ### ip arp inspection trust The **ip arp inspection trust** command configures the trust state of an interface. By default, all interfaces are untrusted. **Command Mode** Global Configuration Mode **Command Syntax** ip arp inspection trust no ip arp inspection trust default ip arp inspection trust **Related Commands** - ip arp inspection limit - ip arp inspection logging - show ip arp inspection vlan - ip arp inspection vlan **Examples** - This command configures the trust state of an interface. ``` `switch(config)# **ip arp inspection trust** switch(config)#` ``` - This command configures the trust state of an interface to untrusted. ``` `switch(config)# **no ip arp inspection trust** switch(config)#` ``` - This command configures the trust state of an interface to the default. ``` `switch(config)# **default ip arp inspection trust** switch(config)#` ``` ### ip arp inspection vlan The **ip arp inspection vlan** command enables ARP inspection. EOS intercepts ARP requests and responses on untrusted interfaces on specified VLANs, and verifies intercepted packets with valid IP-MAC address bindings. EOS drops all invalid ARP packets. On trusted interfaces, EOS processes all incoming ARP packets and forwards without verification. By default, EOS disables ARP inspection on all VLANs. **Command Mode** EXEC **Command Syntax** **ip arp inspection vlan [list]** **Parameters** **list** - Specifies the VLAN interface number. **Related Commands** - ip arp inspection limit - ip arp inspection trust - ip arp inspection vlan **Example** - This command enables ARP inspection on VLANs **1** through **150**. ``` `switch(config)# **ip arp inspection vlan 1 - 150** switch(config)#` ``` - This command disables ARP inspection on VLANs **1** through **150**. ``` `switch(config)# **no ip arp inspection vlan 1 - 150** switch(config)#` ``` - This command sets the ARP inspection default to VLANs **1** through **150**. ``` `switch(config)# **default ip arp inspection vlan 1 - 150** switch(config)#` ``` - These commands enable ARP inspection on multiple VLANs 1 through **150** and **200** through **250**. ``` `switch(config)# **ip arp inspection vlan 1-150,200-250** switch(config)#` ``` ### ip dhcp relay all-subnets The **ip dhcp relay all-subnets** command configures the DHCP smart relay status in the Interface Configuration Mode. DHCP smart relay supports forwarding DHCP requests with a client secondary IP addresses in the gateway address field. Enabling DHCP smart relay on an interface requires that you enable DHCP relay on that interface. By default, an interface assumes the global DHCP smart relay setting as configured by the ip dhcp relay all-subnets default command. The **ip dhcp relay all-subnets** command, when configured, takes precedence over the global smart relay setting. The **no ip dhcp relay all-subnets** command disables DHCP smart relay on the configuration mode interface. The **default ip dhcp relay all-subnets** command restores the interface to the default DHCP smart relay setting, as configured by the **ip dhcp relay all-subnets default** command, by removing the corresponding **ip dhcp relay all-subnets** or **no ip dhcp relay all-subnets** statement from ***running-config***. **Command Mode** Interface-Ethernet Configuration Interface-Port-channel Configuration Interface-VLAN Configuration **Command Syntax** ip dhcp relay all-subnets no ip dhcp relay all-subnets default ip dhcp relay all-subnets **Examples** - This command enables DHCP smart relay on VLAN interface **100**. ``` `switch(config)# **interface vlan 100** switch(config-if-Vl100)# **ip helper-address 10.4.4.4** switch(config-if-Vl100)# **ip dhcp relay all-subnets** switch(config-if-Vl100)# **show ip dhcp relay** DHCP Relay is active DHCP Relay Option 82 is disabled DHCP Smart Relay is enabled Interface: Vlan100 DHCP Smart Relay is enabled DHCP servers: 10.4.4.4 switch(config-if-Vl100)#` ``` - This command disables DHCP smart relay on VLAN interface **100**. ``` `switch(config-if-Vl100)# **no ip dhcp relay all-subnets** switch(config-if-Vl100)# **show active** interface Vlan100 no ip dhcp relay all-subnets ip helper-address 10.4.4.4 switch(config-if-Vl100)# **show ip dhcp relay** DHCP Relay is active DHCP Relay Option 82 is disabled DHCP Smart Relay is enabled Interface: Vlan100 DHCP Smart Relay is disabled DHCP servers: 10.4.4.4 switch(config-if-Vl100)#` ``` - This command enables DHCP smart relay globally, configures VLAN interface **100** to use the global setting, then displays the DHCP relay status. ``` `switch(config)# **ip dhcp relay all-subnets default** switch(config)# **interface vlan 100** switch(config-if-Vl100)# **ip helper-address 10.4.4.4** switch(config-if-Vl100)# **default ip dhcp relay** switch(config-if-Vl100)# **show ip dhcp relay** DHCP Relay is active DHCP Relay Option 82 is disabled DHCP Smart Relay is enabled Interface: Vlan100 Option 82 Circuit ID: 333 DHCP Smart Relay is enabled DHCP servers: 10.4.4.4 switch(config-if-Vl100)#` ``` ### ip dhcp relay all-subnets default The **ip dhcp relay all-subnets default** command configures the global DHCP smart relay setting. DHCP smart relay supports forwarding DHCP requests with a client secondary IP addresses in the gateway address field. The default global DHCP smart relay setting is disabled. The global DHCP smart relay setting applies to all interfaces for which an ip dhcp relay all-subnets statement does not exist. Enabling DHCP smart relay on an interface requires that you also enable DHCP relay on that interface. The **no ip dhcp relay all-subnets default** and **default ip dhcp relay all-subnets default** commands restore the global DHCP smart relay default setting of disabled by removing the **ip dhcp relay all-subnets default** command from ***running-config***. **Command Mode** Global Configuration **Command Syntax** ip dhcp relay all-subnets default no ip dhcp relay all-subnets default default ip dhcp relay all-subnets default **Example** This command configures the global DHCP smart relay setting to **enabled**. ``` `switch(config)# **ip dhcp relay all-subnets default** switch(config)#` ``` ### ip dhcp relay always-on The **ip dhcp relay always-on** command enables the DHCP relay agent on the switch regardless of the DHCP relay agent status on any interface. By default, EOS enables the DHCP relay agent only if you have one routable interface configured with an ip helper-address statement. The **no ip dhcp relay always-on** and **default ip dhcp relay always-on** commands remove the **ip dhcp relay always-on** command from ***running-config***. **Command Mode** Global Configuration **Command Syntax** ip dhcp relay always-on no ip dhcp relay always-on default ip dhcp relay always-on **Example** This command enables the DHCP relay agent. ``` `switch(config)# **ip dhcp relay always-on** switch(config)#` ``` ### ip dhcp relay information option (Global) The **ip dhcp relay information option** command configures the switch to attach tags to DHCP requests before forwarding them to the DHCP servers designated by the ip helper-address commands. The command specifies the tag contents for packets forwarded by the configured interface. The default value for each interface configured with an ip helper-address is the name and number of the interface. The **no ip dhcp relay information option** and **default ip dhcp relay information option** commands restore the switch default setting of not attaching tags to DHCP requests by removing the **ip dhcp relay information option** command from ***running-config***. **Command Mode** Global Configuration **Command Syntax** ip dhcp relay information option no ip dhcp relay information option default ip dhcp relay information option **Example** This command enables the attachment of tags to DHCP requests forwarded to DHCP server addresses. ``` `switch(config)# **ip dhcp relay information option** switch(config)#` ``` ### ip dhcp relay information option circuit-id The **ip dhcp relay information option circuit-id** command specifies the content of tags that the switch attaches to DHCP requests before forwarding them from the configuration mode interface to DHCP server addresses specified by ip helper-address commands. Tags attach to outbound DHCP requests only if you enable the information option on the switch (ip dhcp relay information option circuit-id). The **no ip dhcp relay information option circuit-id** and **default ip dhcp relay information option circuit-id** commands restore the default content setting for the configuration mode interface by removing the corresponding command from ***running-config***. **Command Mode** Interface-Ethernet Configuration Interface-Loopback Configuration Interface-Management Configuration Interface-Port-channel Configuration Interface-VLAN Configuration **Command Syntax** ip dhcp relay information option circuit-id id_label no ip dhcp relay information option circuit-id default ip dhcp relay information option circuit-id **Parameters** **id_label**- Specifies the tag content. Use a format in alphanumeric characters (maximum 15 characters). **Example** This command configures **x-1234** as the tag content for packets send from VLAN **200**. ``` `switch(config)# **interface vlan 200** switch(config-if-Vl200)# **ip dhcp relay information option circuit-id x-1234** switch(config-if-Vl200)#` ``` ### ip dhcp snooping The **ip dhcp snooping** command enables DHCP snooping globally on the switch. Configure DHCP snooping as a set of Layer 2 processes and use it with DHCP servers to control network access to clients with specific IP/MAC addresses. The switch supports Option-82 insertion,a DHCP snooping process that allows relay agents to provide remote-ID and circuit-ID information to DHCP reply and request packets. DHCP servers use this information to determine the originating port of DHCP requests and associate a corresponding IP address to that port. DHCP servers use port information to track host location and IP address usage by authorized physical ports. DHCP snooping uses the information option (Option-82) to include the switch MAC address as the router-ID along with the physical interface name and VLAN number as the circuit-ID in DHCP packets. After adding the information to the packet, the DHCP relay agent forwards the packet to the DHCP server as specified by the DHCP protocol. DHCP snooping on a specified VLAN requires all of these conditions to be met: - Enable DHCP snooping globally. - Enabled insertion of option-82 information in DHCP packets. - Enable DHCP snooping on the specified VLAN. - Enable DHCP relay on the corresponding VLAN interface. The **no ip dhcp snooping** and **default ip dhcp snooping** commands disables global DHCP snooping by removing the **ip dhcp snooping** command from ***running-config***. **Command Mode** Global Configuration **Command Syntax** ip dhcp snooping no ip dhcp snooping default ip dhcp snooping **Related Commands** - ip dhcp snooping information option enables insertion of option-82 snooping data. - ip helper-address enables the DHCP relay agent on a configuration mode interface. **Example** This command globally enables snooping on the switch, displaying DHCP snooping status prior and after invoking the command. ``` `switch(config)# **show ip dhcp snooping** DHCP Snooping is disabled switch(config)# **ip dhcp snooping** switch(config)# **show ip dhcp snooping** DHCP Snooping is enabled DHCP Snooping is not operational DHCP Snooping is configured on following VLANs: None DHCP Snooping is operational on following VLANs: None Insertion of Option-82 is disabled switch(config)#` ``` ### ip dhcp snooping bridging The **ip dhcp snooping bridging** command enables the DHCP snooping bridging configuration. The **no ip dhcp snooping bridging** command removes the DHCP snooping bridging configuration from the ***running-config***. **Command Mode** Global Configuration Mode **Command Syntax** ip dhcp snooping bridging no ip dhcp snooping bridging **Example** This command configures the DHCP snooping bridging. ``` `switch# **configure** switch(config)# **ip dhcp snooping bridging**` ``` ### ip dhcp snooping information option The **ip dhcp snooping information option** command enables the insertion of option-82 DHCP snooping information in DHCP packets on VLANs where you have DHCP snooping enabled. DHCP snooping provides a Layer 2 switch process that allows relay agents to provide remote-ID and circuit-ID information to DHCP reply and request packets. DHCP servers use this information to determine the originating port of DHCP requests and associate a corresponding IP address to that port. DHCP snooping uses information option (Option-82) to include the switch MAC address (router-ID) along with the physical interface name and VLAN number (circuit-ID) in DHCP packets. After adding the information to the packet, the DHCP relay agent forwards the packet to the DHCP server through DHCP protocol processes. DHCP snooping on a specified VLAN requires all of these conditions to be met: - Enable DHCP snooping globally. - Enabled insertion of option-82 information in DHCP packets. - Enable DHCP snooping on the specified VLAN. - Enable DHCP relay on the corresponding VLAN interface. Ifnot enabling DHCP snooping globally, the **ip dhcp snooping information option** command persists in ***running-config*** without any operational effect. The **no ip dhcp snooping information option** and **default ip dhcp snooping information option** commands disable the insertion of option-82 DHCP snooping information in DHCP packets by removing the **ip dhcp snooping information option** statement from ***running-config***. **Command Mode** Global Configuration **Command Syntax** ip dhcp snooping information option no ip dhcp snooping information option default ip dhcp snooping information option **Example** These commands enable DHCP snooping on DHCP packets from ports on snooping-enabled VLANs. DHCP snooping was previously enabled on the switch. ``` `switch(config)# **ip dhcp snooping information option** switch(config)# **show ip dhcp snooping** DHCP Snooping is enabled DHCP Snooping is operational DHCP Snooping is configured on following VLANs: 100 DHCP Snooping is operational on following VLANs: 100 Insertion of Option-82 is enabled Circuit-id format: Interface name:Vlan ID Remote-id: 00:1c:73:1f:b4:38 (Switch MAC) switch(config)#` ``` ### ip dhcp snooping vlan The **ip dhcp snooping vlan** command enables DHCP snooping on specified VLANs. DHCP snooping provides a Layer 2 process that allows relay agents to provide remote-ID and circuit-ID information in DHCP packets. DHCP servers use this data to determine the originating port of DHCP requests and associate a corresponding IP address to that port. Configure DHCP snooping on a global and VLAN basis. VLAN snooping on a specified VLAN requires each of these conditions: - Enable DHCP snooping globally. - Enable insertion of option-82 information in DHCP packets. - Enable DHCP snooping on the specified VLAN. - Enable DHCP relay on the corresponding VLAN interface. If not enabling global DHCP snooping, the **ip dhcp snooping vlan** command persists in ***running-config*** without any operational affect. The **no ip dhcp snooping information option** and **default ip dhcp snooping information option** commands disable DHCP snooping operability by removing the **ip dhcp snooping information option** statement from ***running-config***. **Command Mode** Global Configuration **Command Syntax** ip dhcp snooping vlan v_range no ip dhcp snooping vlan v_range default ip dhcp snooping vlan v_range **Parameters** - **v_range** - Specifies the range of VLANs to enable DHCP snooping. Formats include a number, a number range, or a comma-delimited list of numbers and ranges. Numbers range from **1** to **4094**. **Example** These commands enable DHCP snooping globally, DHCP snooping on VLAN interface **100**, and DHCP snooping on **vlan100**. ``` `switch(config)# **ip dhcp snooping** switch(config)# **ip dhcp snooping information option** switch(config)# **ip dhcp snooping vlan 100** switch(config)# **interface vlan 100** switch(config-if-Vl100)# **ip helper-address 10.4.4.4** switch(config-if-Vl100)# **show ip dhcp snooping** DHCP Snooping is enabled DHCP Snooping is operational DHCP Snooping is configured on following VLANs: 100 DHCP Snooping is operational on following VLANs: 100 Insertion of Option-82 is enabled Circuit-id format: Interface name:Vlan ID Remote-id: 00:1c:73:1f:b4:38 (Switch MAC) switch(config)#` ``` ### ip hardware fib ecmp resilience The **ip hardware fib ecmp resilience** command enables resilient ECMP for the specified IP address prefix and configures a fixed number of next hop entries in the hardware ECMP table for that prefix. In addition to specifying the maximum number of next hop addresses that the table can contain for the prefix, the command includes a redundancy factor that allows duplication of each next hop address. The fixed table space for the address is the maximum number of next hops multiplied by the redundancy factor. Resilient ECMP is useful when it is undesirable for routes to be rehashed due to link flap, as when using ECMP for load balancing. The **no ip hardware fib ecmp resilience** and **default ip hardware fib ecmp resilience** commands restore the default hardware ECMP table management by removing the **ip hardware fib ecmp resilience** command from ***running-config***. **Command Mode** Global Configuration **Command Syntax** ip hardware fib ecmp resilience net_addr capacity nhop_max redundancy duplicates no ip hardware fib ecmp resilience net_addr default ip hardware fib ecmp resilience net_addr **Parameters** - **net_addr** - Specify the IP address prefix managed by command. (CIDR or address-mask). - **nhop_max** - Specify the maximum number of next-hop addresses for specified IP address prefix. Value range varies by platform: - Helix: <**2** to **64**> - Trident: <**2** to **32**> - Trident II: <**2** to **64**> - **duplicates** - Specifies the redundancy factor. Value ranges from **1** to **128**. **Example** This command configures a hardware ECMP table space of 24 entries for the IP address **10.14.2.2/24**. A maximum of six next-hop addresses can be specified for the IP address. When the table contains six next-hop addresses, each appears in the table four times. When the table contains fewer than six next-hop addresses, each is duplicated until the 24 table entries are filled. ``` `switch(config)# **ip hardware fib ecmp resilience 10.14.2.2/24 capacity 6 redundancy 4** switch(config)#` ``` ### ip hardware fib load-balance distribution The **ip hardware fib load-balance distribution** command allows the configuration of dynamic load balancing (DLB) on ECMP Groups. The **no** and **default** versions of the command disables the feature and returns the configuration to the traditional hash-based load balancing. **Command Mode** Global Configuration **Command Syntax** **ip hardware fib load-balance distribution [dynamic | hash] average-traffic-weight average_traffic_weight_value flow-set-size flow_set_size_value inactivity inactivity_value sampling-period sampling_period seed hash_seed member-selection [optimal always | optimal timer]** **Parameters** - **hash** - Specify to use hash-based load balancing, the default behavior. - **dynamic** - Specify to use dynamic load balancing with ECMP groups. - **average-traffic-weigh average_traffic_weight_value** - Specifies a value between 1 and 15 with a default value of 1. A higher weight value gives preference to average values over instantaneous values. - **flow-set-size flow_set_size_value** - Specifies the number of flow set entries allocated to each DLB group. - **inactivity inactivity_value** - Specifies the amount of time for a flow set to be idle before reassigning to an optimal port. - **member-selection [optimal always | optimal timer]** - Specifies when to select an optimal port for the next packet in a flow. - **optimal always** - Specifies to always pick the optimal member whether or not the inactivity duration has elapse. - **optimal timer** - If the inactivity duration has elapsed, pick the optimal member. - **sampling-period sampling_period** - Specify the duration between two consecutive sampling of port state data with a default value of 16 microseconds. - **seed hash_seed** - Specify a value for random number generation by optimal candidate random selection process to select a port when two or more ports have the same optimal quality. **Example** Use the following command to set the DLB member selection to optimal always: ``` `switch(config)# **ip hardware fib load-balance distribution dynamic optimal always**` ``` Use the following command ### ip hardware fib next-hop resource optimization The **ip hardware fib next-hop resource optimization** command enables or disables the resource optimization features on the switch. By default, EOS enables the feature on the switch. The **no hardware fib next-hop resource optimization** command removes all the resource optimization features running on the switch. **Command Mode** Global Configuration Mode **Command Syntax** ip hardware fib next-hop resource optimization options no ip hardware fib next-hop resource optimization options **Parameters** - Use one of the following two options to configure this command: - **disabled** - Disable hardware resource optimization for adjacency programming. - **thresholds** - Utilization percentage for starting or stopping optimization. The resource utilization percentage value ranges from 0 to 100. It can be set to low and high. **Examples** - The following command disables all hardware resource optimization features on the switch: ``` `switch# **configure terminal** switch(config)# **ip hardware fib next-hop resource optimization disabled**` ``` - The following command configures the thresholds for starting and stopping the optimization: ``` `switch(config)# **ip hardware fib next-hop resource optimization thresholds low 20 high 80**` ``` ### ip hardware fib optimize The **ip hardware fib optimize** command enables IPv4 route scale. Restart the platform Layer 3 agent to ensure optimization of IPv4 routes with the agent SandL3Unicast terminate command for the configuration mode interface. **Command Mode** Global Configuration **Command Syntax** ip hardware fib optimize exact-match prefix-length prefix-length prefix-length **Parameters** **prefix-length** - Specifies the length of the prefix equal to **12**, **16**, **20**, **24**, **28**, or **32**. Optionally, add one additional prefix-length limited to the prefix-length of **32**. **Related Commands** - The agent SandL3Unicast terminate command restarts the Layer 3 agent to ensure optimization of IPv4 routes. - The show platform arad ip route command shows resources for all IPv4 routes in hardware. Routes with additional hardware resources appear with an asterisk (*). - The show platform arad ip route summary command displays hardware resource usage of IPv4 routes. **Examples** - This configuration command allows configuring prefix lengths **12** and **32** ``` `switch(config)# **ip hardware fib optimize exact-match prefix-length 12 32** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` One of the two prefixes in this command has a prefix-length of **32**, required in the instance when adding two prefixes. For this command to take effect, restart the platform Layer 3 agent. - This configuration command restarts the platform Layer 3 agent to ensure optimization of IPv4 routes. ``` `switch(config)# **agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes, and then re-added to the hardware. - This configuration command allows configuring prefix lengths **32** and **16**. ``` `switch(config)# **ip hardware fib optimize exact-match prefix-length 32 16** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` One of the two prefixes in this command is a prefix-length of **32**, required when adding two prefixes. For this command to take effect, restart the platform Layer 3 agent. - This configuration command restarts the platform Layer 3 agent to ensure optimization of IPv4 routes. ``` `switch(config)# **agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes, and then re-added to the hardware. - This configuration command allows configuring prefix length **24**. ``` `switch(config)# **ip hardware fib optimize exact-match prefix-length 24** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` In this instance, add one prefix-length, and does not require a prefix-length of **32**. For this command to take effect, restart the platform Layer 3 agent. - This configuration command restarts the platform Layer 3 agent to ensure optimization of IPv4 routes. ``` `switch(config)# **agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes, and then re-added to the hardware. - This configuration command allows configuring the prefix length of **32**. ``` `switch(config)# **ip hardware fib optimize exact-match prefix-length 32** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are optimized` ``` For this command to take effect, restart the platform Layer 3 agent. - This configuration command restarts the platform Layer 3 agent to ensure optimization of IPv4 routes. ``` `switch(config)# **agent SandL3Unicast terminate** SandL3Unicast was terminated` ``` Restarting the platform Layer 3 agent results in deletion of all IPv4 routes, and then re-added to the hardware. - This configuration command disables configuring prefix lengths **12** and **32**. ``` `switch(config)# **no ip hardware fib optimize exact-match prefix-length 12 32** ! Please restart layer 3 forwarding agent to ensure IPv4 routes are not optimized` ``` One of the two prefixes in this command has a prefix-length of **32**, required when configuring two prefixes. For this command to take effect, restart the platform Layer 3 agent. ### ip hardware fib optimize prefixes The **ip hardware fib optimize prefixes** command in the Global Configuration Mode reserves IPv4 optimized prefixes on the default and non-default VRFs. The **no** version of the command explicitly removes the configuration from the ***running-config*** on the switch. **Command Mode** Global Configuration **Command Syntax** **ip hardware fib optimize vrf vrf_name prefixes minimum count num_prefixes** **no ip hardware fib optimize vrf vrf_name prefixes minimum count num_prefixes** **Parameters** - **vrf vrf_name** - Specify the VRF to minimize prefixes. - **prefixes minimum count num_prefixes** - Specify the minimum number of prefixes to optimize on the VRF. **Example** Use the following command to create reservations for 25 IPv4 optimized prefixes on VRF blue: ``` `switch(config)# ip hardware fib optimize vrf blue prefixes minimum count 25 ! Please restart the SandL3Unicast agent to reserve space for optimized FIB prefixes` ``` ### ip helper-address The **ip helper-address** command enables the DHCP relay agent on the Interface Configuration Mode and specifies a forwarding address for DHCP requests. An interface configured with multiple helper-addresses forwards DHCP requests to all specified addresses. The **no ip helper-address** and **default ip helper-address** commands remove the corresponding **ip helper-address** command from ***running-config***. Commands that do not specify an IP helper-address remove all helper-addresses from the interface. **Command Mode** Interface-Ethernet Configuration Interface-Port-channel Configuration Interface-VLAN Configuration **Command Syntax** ip helper-address ipv4_addr [vrf vrf_name][source-address ipv4_addr | source-interface interfaces] no ip helper-address [ipv4_addr] default ip helper-address [ipv4_addr] **Parameters** - **vrf** **vrf_name** - Specifies the user-defined VRF for DHCP server. - **ipv4_addr** - Specifies the DHCP server address accessed by interface. - **source-address** **ipv4_addr** - Specifies the source IPv4 address to communicate with DHCP server. - **source-interface** **interfaces** - Specifies the source interface to communicate with DHCP server. varnames include: - **Ethernet** **eth_num** -  Specifies the Ethernet interface number. - **Loopback** **lpbck_num** - Specifies the loopback interface number. Value ranges from **0** to **1000**. - **Management** **mgmt_num** -  Specifies the management interface number. Accepted values are **1** and **2**. - **Port-Channel** {**int_num** | **sub_int_num**} -  Specifies the port-channel interface or subinterface number. Value of interface ranges from **1** to **2000**. Value of sub-interface ranges from **1** to **4094**. - **Tunnel** **tnl_num** - Specifies the tunnel interface number. Value ranges from **0** to **255**. - **VLAN** **vlan_num** - Specifies the Ethernet interface number. Value ranges from **1** to **4094**. **Related Commands** - ip dhcp relay always-on - ip dhcp relay information option (Global) - ip dhcp relay information option circuit-id **Guidelines** If specifying the source-address parameter, then the DHCP client receives an IPv4 address from the subnet of source IP address. The source-address must be one of the configured addresses on the interface. **Examples** - This command enables DHCP relay on the VLAN interface **200**; and configure the switch to forward DHCP requests received on this interface to the server at **10.10.41.15**. ``` `switch(config)# **interface vlan 200** switch(config-if-Vl200)# **ip helper-address 10.10.41.15** switch(config-if-Vl200)# **show active** interface Vlan200 ip helper-address 10.10.41.15 switch(config-if-Vl200)#` ``` - This command enables DHCP relay on the **interface ewthernet 1/2**; and configures the switch to use **2.2.2.2** as the source IP address when relaying IPv4 DHCP messages to the server at **1.1.1.1**. ``` `switch(config)# **interface ethernet 1/2** switch(config-if-Et1/2)# **ip helper-address 1.1.1.1 source-address 2.2.2.2** switch(config-if-Et1/2)#` ``` ### ip icmp redirect The **ip icmp redirect** command enables the transmission of ICMP redirect messages. Routers send ICMP redirect messages to notify data link hosts of the availability of a better route for a specific destination. The **no ip icmp redirect** disables the switch from sending ICMP redirect messages. **Command Mode** Global Configuration **Command Syntax** ip icmp redirect no ip icmp redirect default ip icmp redirect **Example** This command disables the redirect messages. ``` `switch(config)# **no ip icmp redirect** switch(config)# **show running-config** <-------OUTPUT OMITTED FROM EXAMPLE--------> ! no ip icmp redirect ip routing ! <-------OUTPUT OMITTED FROM EXAMPLE--------> switch(config)#` ``` ### ip load-sharing The **ip load-sharing** command provides the hash seed to an algorithm the switch uses to distribute data streams among multiple equal-cost routes to an individual IPv4 subnet. In a network topology using Equal-Cost Multipath routing, all switches performing identical hash calculations may result in hash polarization, leading to uneven load distribution among the data paths. Hash polarization is avoided when switches use different hash seeds to perform different hash calculations. The **no ip load-sharing** and **default ip load-sharing** commands return the hash seed to the default value of zero by removing the **ip load-sharing** command from ***running-config***. **Command Mode** Global Configuration **Command Syntax** **ip load-sharing hardware seed** **no ip load-sharing hardware** **default ip load-sharing hardware** **Parameters** - **hardware** - The ASIC switching device. The available options depend on the switch platform. - **arad** - **fm6000** - **petraA** - **trident** - **seed**     The hash seed. Value ranges vary by switch platform. The default value on all platforms is **0**. - when **hardware**=**arad**     **seed** ranges from **0** to **2**. - when **hardware**=**fm6000**     **seed** ranges from **0** to **39**. - when **hardware**=**petraA**     **seed** ranges from **0** to **2**. - when **hardware**=**trident**     **seed** ranges from **0** to **5**. **Example** This command sets the IPv4 load sharing hash seed to one on FM6000 platform switches. ``` `switch(config)# **ip load-sharing fm6000 1** switch(config)#` ``` ### ip local-proxy-arp The **ip local-proxy-arp** command enables local proxy ARP (Address Resolution Protocol) in the Interface Configuration Mode. When enabling local proxy ARP, ARP requests received in the Interface Configuration Mode returns an IP address even when the request comes from within the same subnet. The **no ip local-proxy-arp** and **default ip local-proxy-arp** commands disable local proxy ARP on the configuration mode interface by removing the corresponding **ip local-proxy-arp** command from ***running-config***. **Command Mode** Interface-Ethernet Configuration Interface-Loopback Configuration Interface-Management Configuration Interface-Port-channel Configuration Interface-VLAN Configuration **Command Syntax** ip local-proxy-arp no ip local-proxy-arp default ip local-proxy-arp **Example** These commands enable local proxy ARP on VLAN interface **140** ``` `switch(config)# **interface vlan 140** switch(config-if-Vl140)# **ip local-proxy-arp** switch(config-if-Vl140)# **show active** interface Vlan140 ip local-proxy-arp switch(config-if-Vl140)#` ``` . ### ip multicast count The **ip multicast count** command enables the IPv4 multicast route traffic counter of group and source addresses in either bytes or packets. The **no ip multicast count** command deletes all multicast counters including the routes of group and source addresses. The **no ip multicast count *group_address source_address***command removes the current configuration of the specified group and source addresses. It does not delete the counter because the wildcard is still active. The **default ip multicast count** command reverts the current counter configuration of multicast route to the default state. **Command Mode** Global Configuration **Command Syntax** **ip multicast count [group_address [source_address] | bytes | packets]** **no ip multicast count [group_address [source_address] | bytes | packets]** **default ip multicast count [group_address [source_address] | bytes | packets]** **Parameters** - **group_address** - Configures the multicast route traffic count of the specified group address. - **source_address** - Configures the multicast route traffic count of the specified group and source addresses. - **bytes** - Configures the multicast route traffic count to bytes. - **packets** - Configures the multicast route traffic count to packets. **Guidelines** This command is supported on the FM6000 platform only. **Examples** - This command configures the multicast route traffic count to bytes. ``` `switch(config)# **ip multicast count bytes**` ``` - This command configures the multicast route traffic count of the specified group and source addresses. ``` `switch(config)# **ip multicast count 10.50.30.23 45.67.89.100**` ``` - This command deletes all multicast counters including the routes of group and source addresses. ``` `switch(config)# **no ip multicast count**` ``` - This command reverts the current multicast route configuration to the default state. ``` `switch(config)# **default ip multicast count**` ``` ### ip proxy-arp The **ip proxy-arp** command enables proxy ARP in the Interface Configuration Mode. Proxy ARP is disabled by default. When enabled, the switch responds to all ARP requests, including gratuitous ARP requests, with target IP addresses that match a route in the routing table. The **no ip proxy-arp** and **default ip proxy-arp** commands disable proxy ARP on the Interface Configuration Mode by removing the corresponding **ip proxy-arp** command from ***running-config***. **Command Mode** Interface-Ethernet Configuration Interface-Loopback Configuration Interface-Management Configuration Interface-Port-channel Configuration Interface-VLAN Configuration **Command Syntax** ip proxy-arp no ip proxy-arp default ip proxy-arp **Example** This command enables proxy ARP on **interface ethernet 4**. ``` `switch(config)# **interface ethernet 4** switch(config-if-Et4)# **ip proxy-arp** switch(config-if-Et4)#` ``` ### ip route The **ip route** command creates a static route. The destination can be a network segment, and the next-hop address can be either an IPv4 address or a routable port. When multiple routes exist to a destination prefix, the route with the lowest administrative distance takes precedence. By default, the administrative distance assigned to static routes is 1. Assigning a higher administrative distance to a static route configures it to be overridden by dynamic routing data. For example, a static route with an administrative distance value of 200 is overridden by OSPF intra-area routes, which have a default administrative distance of 110. Route maps use tags to filter routes. The default tag value on static routes is 0. Multiple routes with the same destination and the same administrative distance comprise an Equal Cost Multi-Path (ECMP) route. The switch attempts to spread outbound traffic equally through all ECMP route paths. EOS assigns all paths comprising an ECMP identical tag values, and commands that change the tag value of a path change the tag value of all paths in the ECMP. The **no ip route** and **default ip route** commands delete the specified static route by removing the corresponding **ip route** command from ***running-config***. Commands that do not list a next-hop address remove all **ip route** statements with the specified destination from ***running-config***. If an **ip route** statement exists for the same IP address in multiple VRFs, each must be removed separately. Deleting a VRF deletes all static routes in a user-defined VRF. **Command Mode** Global Configuration **Command Syntax** ip route [vrf_instance] dest_net next-hop [distance][tag_varname][rt_name] no ip route [vrf_instance] dest_net [next-hop][distance] default ip route [vrf_instance] dest_net [next-hop][distance] **Parameters** - **vrf_instance** - Specifies the VRF instance to modify. - **no parameter** - Changes made to the default VRF. - **vrf** **vrf_name** - Changes made to the specified VRF. - **dest_net** - Destination IPv4 subnet (CIDR or address-mask notation). - **next-hop** - Location or access method of next hop device. Options include the following: - **ipv4_addr**  -An IPv4 address. - **null0** - Null0 interface. - **ethernet** **e_num** - Ethernet interface specified by **e_num**. - **loopback** **l_num** - Loopback interface specified by **l_num**. - **management** **m_num** - Management interface specified by **m_num**. - **port-channel** **p_num** - Port-channel interface specified by **p_num**. - **vlan** **v_num** - VLAN interface specified by **v_num**. - **VXLAN** **vx_num** - VXLAN interface specified by **vx_num**. - **distance** Administrative distance assigned to the route. Options include the following: - **no parameter** - Route assigned default administrative distance of one. - **1-255** - The administrative distance assigned to route. - **tag_varname** - Static route tag. Options include the following: - **no parameter** - Assigns default static route tag of **0**. - **tag** **t_value** - Static route tag value. **t_value** ranges from **0** to **4294967295**. - **rt_nameE** - Associates descriptive text to the route. Options include the following: - **no parameter**  - No text is associated with the route. - **name** **descriptive_text** - Assign the specified text to the route. **Related Command** The [ip route nexthop-group](/um-eos/eos-nexthop-groups#xx1145545) command creates a static route that specifies a Nexthop Group to determine the Nexthop address. **Example** This command creates a static route in the default VRF. ``` `switch(config)# **ip route 172.17.252.0/24 vlan 2000** switch(config)#` ``` ### ip routing The **ip routing** command enables IPv4 routing. When enabling IPv4 routing, the switch attempts to deliver inbound packets to destination IPv4 addresses by forwarding them to interfaces or next hop addresses specified by the forwarding table. The **no ip routing** and **default ip routing** commands disable IPv4 routing by removing the **ip routing** command from ***running-config***. When disabling IPv4 routing, the switch attempts to deliver inbound packets to their destination MAC addresses. When this address matches the switch MAC address, EOS delivers the packet to the CPU. EOS discards IP packets with IPv4 destinations that differ from the switch address. The **delete-static-routes** varname removes static entries from the routing table. IPv4 routing is disabled by default. **Command Mode** Global Configuration **Command Syntax** ip routing [vrf_instance] no ip routing [delete_routes][vrf_instance default ip routing [delete_routes][vrf_instance] **Parameters** - **delete_routes** - Resolves routing table static entries when routing is disabled. - **no parameter** - Routing table retains static entries. - **delete-static-routes** - Removes static entries from the routing table. - **vrf_instance** - Specifies the VRF instance to modify. - **no parameter** -Changes made to the default VRF. - **vrf** **vrf_name** - Changes made to the specified user-defined VRF. **Example** This command enables IPv4 routing. ``` `switch(config)# **ip routing** switch(config)#` ``` ### ip source binding Layer 2 Port-Channels support IP source guard (IPSG), not member ports. The IPSG configuration on port channels supersedes the configuration on the physical member ports. Therefore, source IP MAC binding entries should be configured on port channels. When configured on a port channel member port, IPSG does not take effect until you delete the port from the Port Channel configuration. Note: IP source bindings are also used by static ARP inspection. The **no ip source binding** and **default ip source binding** commands exclude parameters from IPSG filtering, and set the default for **ip source binding**. **Command Mode** interface-Ethernet Configuration **Command Syntax** ip source binding [ip_address][mac_address] vlan [vlan_range] interface [interface] no ip source binding [ip_address][mac_address] vlan [vlan_range] interface [interface] default ip source binding [ip_address][mac_address] vlan [vlan_range] interface [interface] **Parameters** - **ip_address** - Specifies the IP ADDRESS. - **mac_address** - Specifies the MAC ADDRESS. - **vlan vlan_range** - Specifies the VLAN ID range. - **interface interface** - Specifies the Ethernet interface. **Related Commands** - ip verify source - show ip verify source **Example** This command configures source IP-MAC binding entries to IP address **10.1.1.1**, MAC address **0000.aaaa.1111**, VLAN ID **4094**, and **interface ethernet 36**. ``` `switch(config)# **ip source binding 10.1.1.1 0000.aaaa.1111 vlan 4094 interface ethernet 36** switch(config)#` ``` ### ip verify source The **ip verify source** command configures IP source guard (IPSG) applicable only to Layer 2 ports. When configured on Layer 3 ports, IPSG does not take effect until this interface converts to Layer 2. Layer 2 Port-Channels support IPSG, not member ports. The IPSG configuration on port channels supersedes the configuration on the physical member ports. Therefore, source IP MAC binding entries should be configured on port channels. When configured on a port channel member port, IPSG does not take effect until you delete the port from the Port Channel configuration. The **no ip verify source** and **default ip verify source** commands exclude VLAN IDs from IPSG filtering, and set the default for **ip verify source**. **Command Mode** Interface-Ethernet Configuration **Command Syntax** ip verify source vlan [vlan_range] no ip verify source [vlan_range] default ip verify source **Parameters** **vlan_range** - Specifies the VLAN ID range. **Related Commands** - ip source binding - show ip verify source **Example** This command excludes VLAN IDs **1** through **3** from IPSG filtering. When enabled on a trunk port, IPSG filters the inbound IP packets on all allowed VLANs. IP packets received on VLANs **4** through **10** on **Ethernet 36** filter by IPSG, while permitting those received on VLANs **1** through **3**. ``` `switch(config)# **no ip verify source vlan 1-3** switch(config)# **interface ethernet 36** switch(config-if-Et36)# **switchport mode trunk** switch(config-if-Et36)# **switchport trunk allowed vlan 1-10** switch(config-if-Et36)# **ip verify source** switch(config-if-Et36)#` ``` ### ip verify The **ip verify** command configures Unicast Reverse Path Forwarding (uRPF) for inbound IPv4 packets on the configuration mode interface. uRPF verifies the accessibility of source IP addresses in packets that the switch forwards. uRPF defines two operational modes: strict mode and loose mode. - **Strict mode** - uRPF verifies that a packetreceived on the interface with the routing table entry specifies for its return packet. - **Loose mode** - uRPF validation does not consider the inbound packet’s ingress interface only if a valid return path exists. The **no ip verify** and **default ip verify** commands disable uRPF on the configuration mode interface by deleting the corresponding **ip verify** command from ***running-config***. **Command Mode** Interface-Ethernet Configuration Interface-Loopback Configuration Interface-Management Configuration Interface-Port-Channel Configuration Interface-VLAN Configuration **Command Syntax** ip verify unicast source reachable-via rpf_mode no ip verify unicast default ip verify unicast **Parameters** **rpf_mode** - Specifies the uRPF mode. Options include: - **any** - Loose mode. - **rx** - Strict mode. - **rx allow-default** - Strict mode. All inbound packets forward if a default route is defined. **Guidelines** The first IPv4 uRPF implementation briefly disrupts IPv4 unicast routing. Subsequent **ip verify** commands on any interface do not disrupt IPv4 routing. **Examples** - This command enables uRPF loose mode on **VLAN interface 17**. ``` `switch(config)# **interface vlan 17** switch(config-if-Vl17)# **ip verify unicast source reachable-via any** switch(config-if-Vl17)# **show active** interface Vlan17 ip verify unicast source reachable-via any switch(config-if-Vl17)#` ``` - This command enables uRPF strict mode on **VLAN interface 18**. ``` `switch(config)# **interface vlan 18** switch(config-if-Vl18)# **ip verify unicast source reachable-via rx** switch(config-if-Vl18)# **show active** interface Vlan18 ip verify unicast source reachable-via rx switch(config-if-Vl18)#` ``` ### ipv4 routable 240.0.0.0/4 The **ipv4 routable 240.0.0.0/4** command assignes an class E addresses to an interface. When configured, the class E address traffic are routed through BGP, OSPF, ISIS, RIP, static routes and programmed to the FIB and kernel. By default, this command is disabled. The **no ipv4 routable 240.0.0.0/4** and **default ipv4 routable 240.0.0.0/4** commands disable IPv4 Class E routing by removing the **ipv4 routable 240.0.0.0/4** command from ***running-config***. IPv4 routable **240.0.0.0/4** routing is disabled by default. **Command Mode** Router General Configuration **Command Syntax** ipv4 routable 240.0.0.0/4 no ipv4 routable 240.0.0.0/4 default ipv4 routable 240.0.0.0/4 **Example** These commands configure an IPv4 Class E (**240/4**) address to an interface. ``` `switch(config)# **router general** switch(config-router-general)# **ipv4 routable 240.0.0.0/4**` ``` ### load-balance cluster The **load-balance cluster** command enters the Cluster Load Balancing (CLB) Configuration Mode and configure parameters for cluster load-balancing on a network. The **no** version of the command removes the configuration from the ***running-config***. **Command Mode** Global Configuration **Command Syntax** **load-balance cluster** **no load-balance cluster** **Parameters** - **load-balance cluster** - Enters the Cluster Load Balancing (CLB) Configuration Mode. **Example** Use the following command to enter the Cluster Load Balancing (CLB) Configuration Mode: ``` `switch(config)# **load-balance cluster** switch(config-clb)#` ``` ### load-balance method The **load-balance** command in the Cluster Load Balancing Configuration Mode configures the method of load-balancing traffic on the cluster. Currently, EOS supports Round-Robin and Spine types of load balancing. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration **Command Syntax** **load-balance method [flow round-robin] [spine port-index]** **no load-balance method [flow round-robin] [spine port-index]** **Parameters** - **load-balance method flow round-robin** - Specify the load-balancing method as round-robin for flows. - **load-balance method spine port-index** - Specify the load-balancing method as port index for spines. **Examples** Use the following commands to configure round-robin as the load-balancing flow method: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **load-balance method flow round-robin** switch(config-clb)#` ``` Use the following commands to configure port-index as the load-balancing spine method: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **load-balance method spine port-index** switch(config-clb)#` ``` ### member Ethernet The **member Ethernet** command in the Port Group Host Configuration Mode configures per port hardware interfaces for cluster load balancing on the switch. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration Port Group Host Configuration **Command Syntax** **member Ethernet interface_number** **no member Ethernet interface_number** **Parameters** - **member Ethernet interface_number** - Configure the Ethernet hardware interface number from 1 to 46 per port group. **Example** Add Ethernet 1 hardware interface to MyPortGroup: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **port group host MyPortGroup** switch(config-clb-port-host-MyPortGroup)# **member Ethernet 1**` ``` ### platform barefoot bfrt vrf The **platform barefoot bfrt vrf** command configures the forwarding plane agent on supported platforms to restart and listen on the configured VRF for connections. If left unconfigured, the switch uses the default VRF for the IP and port for the BfRuntime server. **Command Mode** Global Configuration **Command Syntax** platform barefoot bfrt vrf vrf_name **Parameter** **VRF name** - Specify the name for the configured VRFconnections. **Example** These commands configure the forwarding plane agent to restart and listen on the configured VRF for connections. ``` `switch(config)# **vrf instance management** switch(config-vrf-management)# **exit** switch(config)# **platform barefoot bfrt 0.0.0.0 50052** switch(config)# **platform barefoot bfrt vrf ** switch(config)# **int management1** switch(config-if-Ma1)# **vrf management**` ``` ### platform trident forwarding-table partition The **platform trident forwarding-table partition** command provides a shared table memory for L2, L3 and algorithmic LPM entries that can be partitioned in different ways. Instead of fixed-size tables for L2 MAC entry tables, L3 IP forwarding tables, and Longest Prefix Match (LPM) routes, the tables can be unified into a single shareable forwarding table. Note: Changing the Unified Forwarding Table mode causes the forwarding agent to restart, briefly disrupting traffic forwarding on all ports. The **no platform trident forwarding-table partition** and **default platform trident forwarding-table partition** commands remove the  **platform trident forwarding-table partition** command from ***running-config***. **Command Mode** Global Configuration **Command Syntax** platform trident forwarding-table partition size no platform trident forwarding-table partition default platform trident forwarding-table partition **Parameters** **size**       Size of partition. Options include the following: - **0**      288k l2 entries, 16k host entries, 16k lpm entries. - **1**      224k l2 entries, 80k host entries, 16k lpm entries. - **2**      160k l2 entries, 144k host entries, 16k lpm entries. - **3**      96k l2 entries, 208k host entries, 16k lpm entries. The default value is **2** (160k l2 entries, 144k host entries, 16k lpm entries). **Examples** - This command sets the single shareable forwarding table to option 2 that supports 160k L2 entries, 144k host entries, and 16k LPM entries. ``` `switch(config)# **platform trident forwarding-table partition 2** switch(config)` ``` - This command sets the single shareable forwarding table to option 3 that supports 96k L2 entries, 208k host entries, and 16k LPM entries. Since the switch was previously configured to option 2, you’ll see a warning notice before the changes are implemented. ``` `switch(config)# **platform trident forwarding-table partition 3** Warning: StrataAgent will restart immediately` ``` ### platform trident routing-table partition The **platform trident routing-table partition** command manages the partition sizes for the hardware LPM table that stores IPv6 routes of varying sizes. An IPv6 route of length /64 (or shorter) requires half the hardware resources of an IPv6 route longer than /64. The switch installs routes of varying lengths in different table partitions. This command specifies the size of these partitions to optimize table usage. Note: Changing the routing table partition mode causes the forwarding agent to restart, briefly disrupting traffic forwarding on all ports. The **no platform trident routing-table partition** and **default platform trident routing-table partition** commands restore the default partitions sizes by removing the **platform trident routing-table partition** command from ***running-config***. **Command Mode** Global Configuration **Command Syntax** platform trident routing-table partition size no platform trident routing-table partition default platform trident routing-table partition **Parameters** **size**      Size of partition. Options include the following: - **1**      16k IPv4 entries, 6k IPv6 (/64 and smaller) entries, 1k IPv6 (any prefix length). - **2**      16k IPv4 entries, 4k IPv6 (/64 and smaller) entries, 2k IPv6 (any prefix length). - **3**      16k IPv4 entries, 2k IPv6 (/64 and smaller) entries, 3k IPv6 (any prefix length). The default value is **2** (16k IPv4 entries, 4k IPv6 (/64 and smaller) entries, 2k IPv6 (any prefix length). **Restrictions** Partition allocation cannot be changed from the default setting when enabling uRPF for IPv6 traffic. **Example** This command sets the shareable routing table to option **1** that supports **6K** prefixes equal to or shorter than **/64** and **1K** prefixes longer than **/64**. ``` `switch(config)# **platform trident routing-table partition 1** switch(config)` ``` ### port group host The **port group host** command enters the Port Group Host Configuration mode and configures additional port parameters for Cluster Load Balancing by identifying the ports connected to the GPU server. The **no** version of the command deletes the configuration from the ***running-config***. **Command Mode** Cluster Load Balancing Configuration Port Host Group Configuration **Command Syntax** **port group host word** **no port group host word** **Parameters** - **port group host word** - Specify a name for the port group host. **Example** Use the following commands to create a port group host, MyPortGroup, and enter Port Host Configuration Mode: ``` `switch(config)# **load-balance cluster** switch(config-clb)# **port host group MyPortGroup** switch(config-clb-port-host-MyPortGroup)#` ``` ### rib fib policy The **rib fib policy** command enables FIB policy for a particular VRF under router general configuration mode. The FIB policy can be configured to advertise only specific RIB routes and exclude all other routes. For example, a FIB policy can be configured that does not place routes associated with a specific origin in the routing table. These routes do not forward data packets and these routes do not advertise by the routing protocol to neighbors. The **no rib fib policy** and **default rib fib policy** commands restore the switch to its default state by removing the corresponding rib fib policy command from ***running-config***. **Command Mode** Router General Configuration **Command Syntax** rib [ipv4 | ipv6] fib policy name no rib [ipv4 | ipv6] fib policy name default rib [ipv4 | ipv6] fib policy name **Parameters** - **ipv4** - IPv4 configuration commands. - **ipv6** - IPv6 configuration commands. - **name** - Route map name. **Example** The following example enables FIB policy for IPv4 in the default VRF, using the route map, **map1**. ``` `Switch(config)# **router general** Switch(config-router-general)# **vrf default** Switch(config-router-general-vrf-default)# **rib ipv4 fib policy map1**` ``` ### show arp The **show arp** command displays all ARP tables. This command differs from the show ip arp command in that it shows MAC bindings for all protocols, whereas show ip arp only displays MAC address – IP address bindings. Addresses display with their host name by including the ***resolve*** argument. **Command Mode** EXEC **Command Syntax** show arp [vrf_inst][format][host_addr][host_name][intf][mac_addr][data] **Parameters** The **vrf_inst** and **format** parameters are always listed first and second. The **data** parameter is always listed last. All other parameters can be placed in any order. - **vrf_inst** - Specifies the VRF instance to display data. - **no parameter** - Context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. System default VRF is specified by **default**. - **format** - Displays format of host address. Options include the following: - **no parameter** - Entries associate hardware address with an IPv4 address. - **resolve** - Enter associate hardware address with a host name (if it exists). - **host_addr** -  IPv4 address to filter routing table entries. Options include the following: - **no parameter** - Routing table entries not filtered by host address. - **ipv4_addr** - Table entries matching specified IPv4 address. - **host_name** - Host name to filter routing table entries. Options include the following: - **no parameter** - Routing table entries not filtered by host name. - **host** **hostname** - Entries matching **hostname** (text). - **intf** - Interfaces for which command displays status. - **no parameter** - Routing table entries not filtered by interface. - **interface ethernet** **e_num** - Routed Ethernet interface specified by **e_num**. - **interface loopback** **l_num** - Routed loopback interface specified by **l_num**. - **interface management** **m_num** - Routed management interface specified by **m_num**. - **interface port-channel** **p_num** - Routed port channel Interface specified by **p_num**. - **interface vlan** **v_num** - VLAN interface specified by **v_num**. - **interface VXLAN** **vx_num** - VXLAN interface specified by **vx_num**. - **mac_addr** - MAC address to filter routing table entries. Options include the following: - **no parameter** - Routing table entries not filtered by interface MAC address. - **mac_address** **mac_address** - Entries matching **mac_address** (dotted hex notation – H.H.H). - **data** - Detail of information provided by command. Options include the following: - **no parameter** - Routing table entries. - **summary** - Summary of ARP table entries. - **summary total** - Number of ARP table entries. **Related Commands** The cli vrf command specifies the context-active VRF. **Example** This command displays the ARP table. ``` `switch> **show arp** Address Age (min) Hardware Addr Interface 172.22.30.1 0 001c.730b.1d15 Management1 172.22.30.133 0 001c.7304.3906 Management1 switch>` ``` ### show arp agent The **show arp agent** command displays the aggregate of all ARP entries that the CLI and other switch agents requested the ARP agent to install in EOS. **Command Mode** EXEC **Command Syntax** show arp agent[ipv4 | ipv6] [cache | dynamic | capacity | [interface interface] **Parameters** - **[ipv4 | ipv6]** - Display details about IPv4 or IPv6 parameters. - **cache** - Display neighbor cache information. - **dynamic** - Display the capacity of the dynamic neighbor resolutions. - **capacity** - Display the configured capacity of address resolutions. - **interface interface** - Specify the interface to display ARP agent details. **Examples** Use the following command to display IPv4 ARP agent details for Ethernet interface 1: ``` `switch# **show arp agent ipv4 cache dynamic capacity interface ethernet 1 summary** Ethernet1 Cache Entry Kind: dynamic Capacity: 100 Entries: 5` ``` Use the following command to display IPv6 ARP agent details for Ethernet interface 1: ``` `switch# **show arp agent ipv6 cache dynamic capacity interface ethernet 1 summary** Ethernet1 Link-local excluded Cache Entry Kind: dynamic Capacity: 250 Entries: 5` ``` Executing the command without the **summary** parameter displays the list of addresses tracked towards capacity: ``` `switch# **show arp agent ipv4 cache dynamic capacity interface ethernet 1** Ethernet1 Cache Entry Kind: dynamic Capacity: 100 Entries: 5 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5` ``` ``` `switch# **show arp agent ipv6 cache dynamic capacity interface ethernet 1** Ethernet1 Link-local excluded Cache Entry Kind: dynamic Capacity: 250 Entries: 5 1::1 1::2 1::3 1::4 1::5` ``` ### show dhcp server Use the **show dhcp server** command to display DHCP server information. **Command Mode** EXEC **Command Syntax** show dhcp server [ipv4 | ipv6 | leases | vrf] **Parameters** - **ipv4** Displays details related to IPv4. - **ipv6** Displays details related to IPv6. - **leases** Displays active leases. - **A.B.C.D/E** IPv4 subnet. - **NAME** Subnet name. **Examples** - The following output displays DHCPv4. ``` `switch# **show dhcp server ipv4** IPv4 DHCP Server is active Debug log is enabled DNS server(s): 10.2.2.2 DNS domain name: mydomain Lease duration: 1 days 0 hours 0 minutes TFTP server: myserver (Option 66) 10.0.0.3 (Option 150) TFTP file: fileFoo Active Leases: 1 IPv4 DHCP interface status: Interface Status ------------------------------------------------- Ethernet1 Inactive (Could not determine VRF) Ethernet2 Inactive (Not in default VRF) Ethernet3 Inactive (Kernel interface not created yet) Ethernet4 Inactive (Not up) Ethernet5 Inactive (No IP address) Ethernet6 Active Vendor information: Vendor ID: default Sub-options Data ---------------- ---------------- 1 192.0.2.0, 192.0.2.1 Vendor ID: vendorFoo Sub-options Data ---------------- ----------- 2 192.0.2.2 3 “data” Subnet: 10.0.0.0/8 Subnet name: subnetFoo Range: 10.0.0.1 to 10.0.0.10 DNS server(s): 10.1.1.1 10.2.2.2 Lease duration: 3 days 3 hours 3 minutes Default gateway address: 10.0.0.3 TFTP server: subnetServerFoo (Option 66) 10.0.0.4 (Option 150) TFTP boot file: subnetFiletftp Active leases: 1 Reservations: MAC address: 1a1b.1c1d.1e1f IPv4 address: 10.0.0.1 MAC address: 2a2b.2c2d.2e2f IPv4 address: 10.0.0.2` ``` - In this example, DHCPv6 is configured with subnet **fe80::/10** while being enabled on **Ethernet1** with address **fe80::1/64** and on **Ethernet3** with address **fe80::2/64**. ``` `switch# **show dhcp server ipv6** IPv6 DHCP server is active Debug log is enabled DNS server(s): fe80::6 DNS domain name: testaristanetworks.com Lease duration: 1 days 3 hours 30 minutes Active leases: 0 IPv6 DHCP interface status: Interface Status --------------- ------ Ethernet1 Active Ethernet3 Active Subnet: fe80::/10 Subnet name: foo Range: fe80::1 to fe80::3 DNS server(s): fe80::4 fe80::5 Direct: Inactive (Multiple interfaces match this subnet: Ethernet1 Ethernet3) Relay: Active Active leases: 0` ``` - This example illustrates when multiple subnets match an interface. In this example, DHCPv6 is configured with subnets **fc00::/7** and **fe80::/10** while being enabled on **Ethernet1** with address **fe80::1/10** and **fc00::1/7**. ``` `switch# **show dhcp server ipv6** IPv6 DHCP server is active DNS server(s): fc00::2 DNS domain name: testaristanetworks.com Lease duration: 1 days 3 hours 30 minutes Active leases: 0 IPv6 DHCP interface status: Interface Status --------------- ------ Ethernet1 Active Subnet: fc00::/7 Subnet name: data Range: fc00::1 to fc00::5 DNS server(s): fc00::6 fc00::8 Direct: Inactive (This and other subnets match interface Ethernet1) Relay: Active Active leases: 0 Subnet: fe80::/10 Subnet name: bar Direct: Inactive (This and other subnets match interface Ethernet1) Relay: Active Active leases: 0` ``` - After disabling a subnet, the **show dhcp server** command displays the disable message with a reason. The number of active leases of the disabled subnets displays as **0**. In this example, there are overlapping subnets. ``` `switch# **show dhcp server** IPv4 DHCP Server is active DNS server(s): 10.2.2.2 Lease duration: 1 days 0 hours 0 minutes Active Leases: 0 IPv4 DHCP interface status: Interface Status ------------------------------------------------- Ethernet1 Active Subnet: 10.0.0.0/24 (Subnet is disabled - overlapping subnet 10.0.0.0/8) Range: 10.0.0.1 to 10.0.0.10 DNS server(s): 10.3.3.3 10.4.4.4 Default gateway address: 10.0.0.4 Active leases: 0 Subnet: 10.0.0.0/8 (Subnet is disabled - overlapping subnet 10.0.0.0/24) DNS server(s): Default gateway address: 10.0.0.3 Active leases: 0` ``` - In this example, the display output shows overlapping ranges. ``` `switch# **show dhcp server** IPv4 DHCP Server is active DNS server(s): 10.2.2.2 Lease duration: 1 days 0 hours 0 minutes Active Leases: 0 IPv4 DHCP interface status: Interface Status ------------------------------------------------- Ethernet1 Active Subnet: 10.0.0.0/8 (Subnet is disabled - range 10.0.0.9-10.0.0.12 overlaps with an existing pool) Range: 10.0.0.1 to 10.0.0.10 Range: 10.0.0.9 to 10.0.0.12 DNS server(s): 10.3.3.3 10.4.4.4 Default gateway address: 10.0.0.4 Active leases: 0` ``` - This example displays duplicate static IP address reservation. ``` `Subnet: 10.0.0.0/8 (Subnet is disabled - ipv4-address 10.0.0.11 is reserved more than once) Subnet name: DNS server(s): Default gateway address: 10.0.0.3 Active leases: 0 Reservations: MAC address: 1a1b.1c1d.1e1f IPv4 address: 10.0.0.11 MAC address: 2a2b.2c2d.2e2f IPv4 address: 10.0.0.11` ``` - Use the **show dhcp server leases** command to display detailed information about the IP addresses allocated by the DHCP Server (including the IP address, the expected end time for that address, the time when the address is handed out, and the equivalent MAC address). ``` `switch# **show dhcp server leases** 10.0.0.10 End: 2019/06/20 17:44:34 UTC Last transaction: 2019/06/19 17:44:34 UTC MAC address: 5692.4c67.460a 2000:0:0:40::b End: 2019/06/20 18:06:33 UTC Last transaction: 2019/06/20 14:36:33 UTC MAC address: 165a.a86d.ffac` ``` ### show dhcp server leases Use the **show dhcp server leases** command to display DHCP server lease information. **Command Mode** EXEC **Command Syntax** **show dhcp server leases [ipv4 | ipv6**] **Parameters** - **ipv4** - Displays details related to IPv4. - **ipv6** - Displays details related to IPv6. **Example** Use the **show dhcp server leases** command to display detailed information about the IP addresses allocated by the DHCP Server including the IP address, the expected end time for that address, the time when assigning the address, and the equivalent MAC address. ``` `switch# **show dhcp server leases** 10.0.0.10 End: 2019/06/20 17:44:34 UTC Last transaction: 2019/06/19 17:44:34 UTC MAC address: 5692.4c67.460a 2000:0:0:40::b End: 2019/06/20 18:06:33 UTC Last transaction: 2019/06/20 14:36:33 UTC MAC address: 165a.a86d.ffac` ``` ### show hardware capacity The **show hardware capacity** command displays the utilization of the hardware resources: **Command Mode** Privileged EXEC **Command Syntax** **show hardware capacity** **Example** The following command is used to show the utilization of the hardware resources: ``` `switch# **show hardware capacity** Forwarding Resources Usage Table Feature Chip Used Used Free Committed Best Case High Entries (%) Entries Entries Max Watermark Entries ------ --------------- ------- ---------- ------- ---------- ------------ ----------- --------- ECMP 0 0% 4095 0 4095 0 ECMP Mpls 0 0% 4095 0 4095 0 ECMP Routing 0 0% 4095 0 4095 0 ECMP VXLANOverlay 0 0% 4095 0 4095 0 ECMP VXLANTunnel 0 0% 3891 0 3891 0` ``` ### show hardware resource DlbEcmpGroupTable agent * The following platforms use the **show hardware resource DlbEcmpGroupTable agent *** command: - DCS-7050CX4 - DCS-7050DX4-32S-F - DCS-7050PX4-32S-F - DCS-7050SDX4 - DCS-7050SPX4 - 7358X4-SC **Command Mode** Privileged EXEC **Command Syntax** show hardware resource DlbEcmpGroupTable agent * **Example** Use the following command to display information about DLB and ECMP groups: ``` `switch# **show hardware resource DlbEcmpGroupTable agent *** Resource: bcm56881_b0::Common::DlbEcmpGroupTable Feature agent: StrataL3Unicast Unit id: 511 View: entry eId OC flowBase flowSize memPtr inDur member0Port member0PortValid ... --- --- -------- -------- —---- —--- —---------- —--------------- ... 2 1 512 1 2 50 11 1 ...` ``` ### show hardware resource l3 summary The **show hardware resource l3 summary** command displays a summary of used hardware entries and the total available capacity for Layer 3 features such as next-hops and ECMP groups. The command allows assessing the health of the forwarding plane and determining if the switch approaches resource limits. **Command Mode** Privileged EXEC **Command Syntax** **show hardware resource l3 summary** **Example** Enter the command to display the following information: ``` `(config)# **show hardware resource l3 summary** Source lookup : disabled Adjacency sharing : disabled Route deletion delay : 0.0 seconds L3 interfaces : 1/4096 Nexthops : 59/32768 Overlay nexthops : 50/24576 Underlay nexthops : 9/24576 Shared Overlay and Underlay nexthop tables : True Tunnel Nexthops : 0/8192 Overlay ECMP groups : 0/4096 Overlay ECMP members : 0/65536 Underlay ECMP groups : 0/4096 Underlay ECMP members : 0/65536 Shared Overlay and Underlay ECMP member tables : True Tunnel ECMP groups : 0/4096 Tunnel ECMP members : 0/8192 IPv4 routes : 67 IPv6 routes : 44 IPv4 unprogrammed routes : 0 IPv6 unprogrammed routes : 0 IPv4 multicast(*, G) routes : 0/32768 IPv6 multicast(*, G) routes : 0/32768 IPv4 multicast(S, G) routes : 0/32768 IPv6 multicast(S, G) routes : 0/16384 ALPM mode : 3-Level Memory format : narrow mode TCAM usage : 5/2304 Level-2 cells : 2/6144 Level-2 buckets : 1/1024 Level-2 mem geometry : 1024 (buckets), 6 (banks) Level-3 cells : 23/65536 Level-3 buckets : 5/8192 Level-3 mem geometry : 8192 (buckets), 8 (banks) Pivots : 2 (ipv4 : 1, ipv6 : 1) Subpivots : 5 (ipv4 : 2, ipv6 : 3) ALPM routes : 111 (ipv4 : 67, ipv6 : 44) Multicast replication groups : 6/16384 Repl head entries : 0/147456 Repl list entries : 0/147456 Mystation TCAM entries : 1/128 Virtual ports : 2/8192` ``` Table 4. Display Output | Field Name | Description | | **Source lookup** | Unicast Reverse Path Forwarding (uRPF) enabled or disabled. | | **Adjacency sharing** | Enabled or disabled. | | **Route deletion delay** | Indicates, in *seconds*, the delay of route deletion. | | **L3 interfaces x/n** | x indicates the number of configured L3 ports. n indicates the number of possible L3 ports. | | **Nexthops x/n** | x indicates the total number of next-hops. n indicates the maximum number of possible next-hops. | | **Overlay nexthops x/n** | x indicates the number of L3 next-hops plus VXLAN overlay next-hops. n indicates the maximum number of L3 next-hops plus VXLAN overlay next-hops. x indicates the number of L3 next-hops.* n indicates the maximum number of L3 next-hops.* | | **Underlay nexthops x/n** | x indicates the number of VXLAN underlay next-hops plus HER next-hops plus underlay multicast routing next-hops. n indicates the maximum number of L3 next-hops plus VXLAN overlay next-hops. x indicates the number of VXLAN underlay next-hops plus HER next-hops.* n indicates the maximum number of VXLAN underlay next-hops.* | | **Shared Overlay and Underlay nexthop tables** | **False** or **True*** | | **Tunnel Nexthops x/n** | Not applicable x indicates the number of VXLAN underlay next-hops plus HER next-hops.* n indicates the maximum possible VXLAN overlay next-hops.* | | **Overlay ECMP groups x/n** | x indicates the number of VXLAN overlay ECMP groups. n indicates the maximum possible VXLAN overlay groups. x indicates the number of L3 routing ECMP groups.* n indicates the maximum possible number of L3 routing ECMP groups.* | | **Overlay ECMP members x/n** | x indicates the number of VXLAN overlay ECMP groups. n indicates the maximum possible VXLAN overlay members. x indicates the number of normal L3 ECMP groups.* n indicates the maximum possible number of L3 ECMP members.* | | **Underlay ECMP groups x/n** | x indicates the number of VXLAN underlay ECMP groups plus L3 routing ECMP groups. n indicates the maximum possible of combined groups. x indicates the number of VXLAN underlay ECMP groups.* n indicates the maximum possible number of VXLAN underlay ECMP groups.* | | **Underlay ECMP members x/n** | x indicates the number of VXLAN underlay ECMP groups plus L3 routing ECMP members. n indicates the maximum possible number of combined members. x indicates the number of VXLAN underlay ECMP groups.* n indicates the maximum possible number of VXLAN underlay ECMP members.* | | **Shared Overlay and Underlay ECMP member tables** | Always True or Always False*. | | **Tunnel ECMP groups : x/n** | Not Applicable x indicates the number of VXLAN overlay ECMP groups.* n indicates the maximum possible number of VXLAN underlay ECMP groups.* | | **Tunnel ECMP members : x/n** | Not Applicable x indicates the number of VXLAN overlay ECMP members.* n indicates the maximum possible number of VXLAN underlay ECMP members.* | | **IPv4 routes** | Indicates the number of programmed IPv4 routes. | | **IPv6 routes** | Indicates the number of programmed IPv6 routes. | | **IPv4 unprogrammed routes** | Indicates the number of unprogrammed IPv4 routes. | | **IPv6 unprogrammed routes** | Indicates the number of unprogrammed IPv6 routes. | | **Host table usage : x/n** | x indicates the number of host table entries used. n indicates the total number of host table entries used. Not Applicable* | | **IPv4 unicast routes : x/n** | x indicates the number of unicast IPv4 routes. n indicates the total number of possible IPv4 routes. Not Applicable* | | **IPv6 unicast routes : x/n** | x indicates the number of unicast IPv6 routes. n indicates the total number of possible IPv6 routes. Not Applicable* | | **IPv4 multicast(*, G) routes : x/n** | x indicates the number of IPv4 multicast routes from any source to multicast group. n indicates the maximum number of possible IPv4 multicast routes from any source to multicast group. Not Applicable* | | **IPv6 multicast(*, G) routes : x/n** | x indicates the number of IPv6 multicast routes from any source to multicast group. n indicates the maximum number of possible IPv6 multicast routes from any source to multicast group. Not Applicable* | | **IPv4 multicast(S, G) routes : x/n** | x indicates the number of IPv4 multicast routes from a source IP to a multicast group. n indicates the maximum number of IPv4 multicast routes from a source IP to a multicast group. Not Applicable* | | **IPv6 multicast(S, G) routes : x/n** | x indicates the number of IPv6 multicast routes from a source IP to a multicast group. n indicates the maximum number of IPv6 multicast routes from a source IP to a multicast group. Not Applicable* | | **Memory format** | Narrow or wide mode. | | **TCAM usage : x/n** | x indicates the number of TCAM entries on the switch. n indicates the maximum number of programmable TCAM entries on the switch. | | **Level-2 cells** : x/n** | x indicates the number of cells used on the switch. n indicates the total number of cells in the ALPM level 2 table on the switch. | | **Level-2 buckets** : x/n** | x indicates the number of buckets used on the switch. n indicates the total number of buckets in the ALPM level 2 table on the switch. | | **Level-2 mem geometry x(buckets),n(banks)** | Indicates the number of buckets and banks on the switch. | | **Level-3 cells** : x/n** | x indicates the number of cells used on the switch. n indicates the total number of cells in the ALPM level 3 table on the switch. | | **Level-3 buckets** : x/n** | x indicates the number of buckets used on the switch. n indicates the total number of buckets in the ALPM level 3 table on the switch. | | **Level-3 mem geometry x(buckets),n(banks)** | x indicates the number of Level 3 buckets used. n indicates the number of Level 3 banks used. | | **Pivots : n (ipv4 : x , ipv6 : y)** | n indicates the number of pivots in the APLM tree. x indicates the number of IPv4 pivots. y indicates the number of IPv6 pivots. | | **Subpivots : n (ipv4 : x , ipv6 : y)**> | n indicates the number of subpivots in the APLM tree. x indicates the number of IPv4 subpivots. y indicates the number of IPv6 subpivots. | | **ALPM routes : n (ipv4 : x , ipv6 : y)** | n indicates the number of APLM routes. x indicates the number of IPv4 APLM routes. y indicates the number of IPv6 APLM routes. | | **Multicast replication groups : x/n** | x indicates the number of multicast replication groups programmed, includes L3MC, L2MC group. n indicates the total number of multicast replication groups programmed, includes L3MC, L2MC group. Not applicable* | | **Repl head entries : x/n** | x indicates the number of Repl head entries programmed. n indicates the total number of Repl head entries programmed. Not applicable* | | **Repl list entries : x/n** | x indicates the number of Repl list entries programmed. n indicates the total number of Repl list entries programmed. Not applicable* | | **Mystation TCAM entries : x/n** | x indicates the number of Mystation TCAM entries programmed. n indicates the total number of Mystation TCAM entries programmed. | | **Virtual ports : x/n** | x indicates the number of virtual ports. n indicates the maximum possible number of virtual ports. | *****Applies to the following platforms: - DCS-7060X6-32PE-F - DCS-7060X6-32PE-N - DCS-7060X6-64PE-F ### show interface tunnel The **show interface tunnel** command displays the interface tunnel information. **Command Mode** EXEC **Command Syntax** show interface tunnel number **Parameter** **number** - Specifies the tunnel interface number. **Example** This command displays tunnel interface configuration information for tunnel interface **10**. ``` `switch# **show interface tunnel 10** Tunnel10 is up, line protocol is up (connected) Hardware is Tunnel, address is 0a01.0101.0800 Internet address is 192.168.1.1/24 Broadcast address is 255.255.255.255 Tunnel source 10.1.1.1, destination 10.1.1.2 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 10, Hardware forwarding enabled Tunnel TOS 10 Path MTU Discovery Tunnel transport MTU 1476 bytes Up 3 seconds` ``` ### show ip The **show ip** command displays IPv4 routing, IPv6 routing, IPv4 multicast routing, and VRRP status on the switch. **Command Mode** EXEC **Command Syntax** show ip **Example** This command displays IPv4 routing status. ``` `switch> **show ip** IP Routing : Enabled IP Multicast Routing : Disabled VRRP: Configured on 0 interfaces IPv6 Unicast Routing : Enabled IPv6 ECMP Route support : False IPv6 ECMP Route nexthop index: 5 IPv6 ECMP Route num prefix bits for nexthop index: 10 switch>` ``` ### show ip arp The **show ip arp** command displays ARP cache entries that map an IPv4 address to a corresponding MAC address. The table displays addresses by the host names when the command includes the ***resolve*** argument. **Command Mode** EXEC **Command Syntax** show ip arp [vrf_inst][format][host_addr][host_name][intf][mac_addr][data] **Parameters** The **vrf_inst** and **format** parameters list first and second. The **data** parameter lists last. All other parameters can be placed in any order. - **vrf_inst** - Specifies the VRF instance to display data. - **no parameter** - Specifies the Context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. Specifies the system default VRF **default**. - **format** - Displays format of host address. The options include the following: - **no parameter** - Displays entries associated hardware address with an IPv4 address. - **resolve** - Displays the specific associated hardware address with a host name (if it exists). - **host_addrR** - Specifies the IPv4 address to filter routing table entries. The options include the following: - **no parameter** - Routing table entries not filtered by host address. - **ipv4_addr**   - Table entries matching specified IPv4 address. - **host_name** - Host name by to filter routing table entries. The options include the following: - **no parameter** - Routing table entries not filtered by host name. - **host** **hostname** - Entries with matching **hostname** (text). - **interface_name** - Interfaces to display status. - **no parameter** - Routing table entries not filtered by interface. - **interface ethernet** **e_num** - Routed Ethernet interface specified by **e_num**. - **interface loopback** **l_num** - Routed loopback interface specified by **l_num**. - **interface management** **m_num** - Routed management interface specified by **m_num**. - **interface port-channel** **p_num**  - Routed port channel Interface specified by **p_num**. - **interface vlan** **v_num** - VLAN interface specified by **v_num**. - **interface VXLAN** **vx_num**  - VXLAN interface specified by **vx_num**. - mac_addr  - MAC address to filter routing table entries. The options include the following: - **no parameter** - Routing table entries not filtered by interface MAC address. - **mac_address** **mac_address** - Entries with matching **mac_address** (dotted hex notation – H.H.H). - **data** - Details of information provided by command. The varnames include the following: - **no parameter** - Routing table entries. - **summary** - Summary of ARP table entries. - **summary total** - Number of ARP table entries. **Examples** - This command displays ARP cache entries that map MAC addresses to IPv4 addresses. ``` `switch> **show ip arp** Address Age (min) Hardware Addr Interface 172.25.0.2 0  004c.6211.021e Vlan101, Port-Channel2 172.22.0.1 0  004c.6214.3699 Vlan1000, Port-Channel1 172.22.0.2 0  004c.6219.a0f3 Vlan1000, Port-Channel1 172.22.0.3 0  0045.4942.a32c Vlan1000, Ethernet33 172.22.0.5 0  f012.3118.c09d Vlan1000, Port-Channel1 172.22.0.6 0  00e1.d11a.a1eb Vlan1000, Ethernet5 172.22.0.7 0  004f.e320.cd23 Vlan1000, Ethernet6 172.22.0.8 0  0032.48da.f9d9 Vlan1000, Ethernet37 172.22.0.9 0  0018.910a.1fc5 Vlan1000, Ethernet29 172.22.0.11 0  0056.cbe9.8510 Vlan1000, Ethernet26 switch>` ``` - This command displays ARP cache entries that map MAC addresses to IPv4 addresses. The ouput displays host names assigned to IP addresses in place of the address. ``` `switch> **show ip arp resolve** Address Age (min) Hardware Addr Interface green-vl101.new         0  004c.6211.021e Vlan101, Port-Channel2 172.22.0.1 0  004c.6214.3699 Vlan1000, Port-Channel1 orange-vl1000.n         0  004c.6219.a0f3 Vlan1000, Port-Channel1 172.22.0.3 0  0045.4942.a32c Vlan1000, Ethernet33 purple.newcompa         0  f012.3118.c09d Vlan1000, Port-Channel1 pink.newcompany         0  00e1.d11a.a1eb Vlan1000, Ethernet5 yellow.newcompa         0  004f.e320.cd23 Vlan1000, Ethernet6 172.22.0.8 0  0032.48da.f9d9 Vlan1000, Ethernet37 royalblue.newco         0  0018.910a.1fc5 Vlan1000, Ethernet29 172.22.0.11 0  0056.cbe9.8510 Vlan1000, Ethernet26 switch>` ``` ### show ip arp inspection statistics The **show ip arp inspection statistics** command displays the statistics of inspected ARP packets. For a specified VLAN specified, the output displays only VLANs with ARP inspection enabled. If no VLAN specified, the output displays all VLANs with ARP inspection enabled. **Command Mode** EXEC **Command Syntax** show ip arp inspection statistics [vlan [vid]|[interface] interface intf_slot | intf_port] **Parameters** - **vid** - Specifies the VLAN interface ID. - **interface** - Specifies the interface (e.g., Ethernet). - **intf_slot** - Specifies the interface slot. - **intf_port** - Specifies the interface port. - **INTF** - Specifies the VLAN interface slot and port. **Related Commands** - ip arp inspection limit - ip arp inspection trust - ip arp inspection vlan **Examples** - This command display statistics of inspected ARP packets for VLAN **10**. ``` `switch(config)# **show ip arp inspection statistics vlan 10** Vlan : 10 -------------- ARP Req Forwarded = 20 ARP Res Forwarded = 20 ARP Req Dropped = 1 ARP Res Dropped = 1 Last invalid ARP: Time: 10:20:30 ( 5 minutes ago ) Reason: Bad IP/Mac match Received on: Ethernet 3/1 Packet:   Source MAC: 00:01:00:01:00:01   Dest MAC: 00:02:00:02:00:02   ARP Type: Request   ARP Sender MAC: 00:01:00:01:00:01   ARP Sender IP: 1.1.1 switch(config)#` ``` - This command displays ARP inspection statistics for Ethernet interface **3/1**. ``` `switch(config)# **show ip arp inspection statistics ethernet interface 3/1** interface : 3/1 -------- ARP Req Forwarded = 10 ARP Res Forwarded = 10 ARP Req Dropped = 1 ARP Res Dropped = 1 Last invalid ARP: Time: 10:20:30 ( 5 minutes ago ) Reason: Bad IP/Mac match Received on: VLAN 10 Packet:   Source MAC: 00:01:00:01:00:01   Dest MAC: 00:02:00:02:00:02   ARP Type: Request   ARP Sender MAC: 00:01:00:01:00:01   ARP Sender IP: 1.1.1 switch(config)#` ``` ### show ip arp inspection vlan The **show ip arp inspection vlan** command displays the configuration and operation state of ARP inspection. For a VLAN range specified, the output displays only VLANs with ARP inspection enabled. If no VLAN specified, the output displays all VLANs with ARP inspection enabled. The operation state turns to ***Active*** when hardware becomes ready to trap ARP packets for inspection. **Command Mode** EXEC **Command Syntax** show ip arp inspection vlan [list] **Parameters** **list** - Specifies the VLAN interface number. **Related Commands** - ip arp inspection limit - ip arp inspection trust - show ip arp inspection statistics **Example** This command displays the configuration and operation state of ARP inspection for VLANs **1** through **150**. ``` `switch(config)# **show ip arp inspection vlan 1 - 150** VLAN 1 ---------- Configuration : Enabled Operation State : Active VLAN 2 ---------- Configuration : Enabled Operation State : Active {...} VLAN 150 ---------- Configuration : Enabled Operation State : Active switch(config)#` ``` ### show ip dhcp relay counters The **show ip dhcp relay counters** command displays the number of DHCP packets received, forwarded, or dropped on the switch and on all interfaces enabled as DHCP relay agents. **Command Mode** EXEC **Command Syntax** show ip dhcp relay counters **Example** This command displays the IP DHCP relay counter table. ``` `switch> **show ip dhcp relay counters** | Dhcp Packets | Interface | Rcvd Fwdd Drop | Last Cleared ----------|----- ---- -----|--------------------- All Req | 376 376 0 | 4 days, 19:55:12 ago All Resp | 277 277 0 | | | Vlan1000 | 0 0 0 | 4 days, 19:54:24 ago Vlan1036 | 376 277 0 | 4 days, 19:54:24 ago switch>` ``` ### show ip dhcp relay The **show ip dhcp relay** command displays the DHCP relay agent configuration status on the switch. **Command Mode** EXEC **Command Syntax** show ip dhcp relay **Example** This command displays the DHCP relay agent configuration status. ``` `switch> **show ip dhcp relay** DHCP Relay is active DHCP Relay Option (82)is enabled DHCP Relay vendor-specific suboption (9) under information option (82) DHCP Smart Relay is enabled Interface: Vlan100 DHCP Smart Relay is disabled DHCP servers: 10.4.4.4 switch>` ``` ### show ip dhcp snooping counters The **show ip dhcp snooping counters** command displays counters that track the quantity of DHCP request and reply packets received by the switch. The output displays data for each VLAN or aggregated for all VLANs with counters for packets dropped. **Command Mode** EXEC **Command Syntax** show ip dhcp snooping counters [counter_typedebug] **Parameters** **counter_type** - Displays the type of counter. - **no parameter** - Command displays counters for each VLAN. - **debug** - Command displays aggregate counters and drop cause counters. **Examples** - This command displays the number of DHCP packets sent and received on each VLAN. ``` `switch> **show ip dhcp snooping counters** | Dhcp Request Pkts | Dhcp Reply Pkts | Vlan | Rcvd Fwdd Drop | Rcvd Fwdd Drop | Last Cleared -----|------ ----- ------|----- ---- ------|------------- 100 | 0 0 0 | 0 0 0 | 0:35:39 ago switch>` ``` - This command displays the number of DHCP packets sent on the switch. ``` `switch> **show ip dhcp snooping counters debug** Counter Snooping to Relay Relay to Snooping ----------------------------- ----------------- ----------------- Received 0 0 Forwarded 0 0 Dropped - Invalid VlanId 0 0 Dropped - Parse error 0 0 Dropped - Invalid Dhcp Optype 0 0 Dropped - Invalid Info Option 0 0 Dropped - Snooping disabled 0 0 Last Cleared: 3:37:18 ago switch>` ``` ### show ip dhcp snooping hardware The **show ip dhcp snooping hardware** command displays internal hardware DHCP snooping status on the switch. **Command Mode** EXEC **Command Syntax** show ip dhcp snooping hardware **Example** This command DHCP snooping hardware status. ``` `switch> **show ip dhcp snooping hardware** DHCP Snooping is enabled DHCP Snooping is enabled on following VLANs: None Vlans enabled per Slice Slice: FixedSystem None switch>` ``` ### show ip dhcp snooping The **show ip dhcp snooping** command displays the DHCP snooping configuration. **Command Mode** EXEC **Command Syntax** show ip dhcp snooping **Example** This command displays the switch’s DHCP snooping configuration. ``` `switch> **show ip dhcp snooping** DHCP Snooping is enabled DHCP Snooping is operational DHCP Snooping is configured on following VLANs: 100 DHCP Snooping is operational on following VLANs: 100 Insertion of Option-82 is enabled Circuit-id format: Interface name:Vlan ID Remote-id: 00:1c:73:1f:b4:38 (Switch MAC) switch>` ``` ### show ip hardware fib summary The **show ip hardware fib summary** command displays the statistics of the RECMP. **Command Mode** Privileged EXEC **Command Syntax** show ip hardware fib summary **Example** The following command is used to show the statistics of RECMP: ``` `switch# **show ip hardware fib summary** Fib summary ----------- Adjacency sharing: disabled BFD peer event: enabled Deletion Delay: 0 Protect default route: disabled PBR: supported URPF: supported ICMP unreachable: enabled Max Ale ECMP: 600 UCMP weight deviation: 0.0 Maximum number of routes: 0 Fib compression: disabled **Resource optimization for adjacency programming: enabled Adjacency resource optimization thresholds: low 20, high 80**` ``` **About the Output** The last two lines of the output displays if feature is enabled and the corresponding threshold values for starting and stopping the optimization process. ### show ip interface The **show ip interface** command displays the status of specified interfaces that are configured as routed ports. The command provides the following information: - Interface description - Internet address - Broadcast address - Address configuration method - Proxy-ARP status - MTU size **Command Mode** EXEC **Command Syntax** show ip interface [interface_name] [vrf_inst] **Parameters** - **interface_name** - Interfaces for which command displays status. - **no parameter** - All routed interfaces. - **ipv4_addr** - Neighbor IPv4 address. - **ethernet** **e_range** - Routed Ethernet interfaces specified by **e_range**. - **loopback** **l_range** - Routed loopback interfaces specified by **l_range**. - **management** **m_range** - Routed management interfaces specified by **m_range**. - **port-channel** **p_range** -  Routed port channel Interfaces specified by **p_range**. - **vlan** **v_range** - VLAN interfaces specified by **v_range**. - **VXLAN** **vx_range** - VXLAN interfaces specified by **vx_range**. - **vrf_inst** - Specifies the VRF instance for which data is displayed. - **no parameter** - Context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. System default VRF is specified by **default**. **Examples** - This command displays IP status of configured VLAN interfaces numbered between **900** and **910**. ``` `switch> **show ip interface vlan 900-910** ! Some interfaces do not exist Vlan901 is up, line protocol is up (connected) Description: ar.pqt.mlag.peer Internet address is 170.23.254.1/30 Broadcast address is 255.255.255.255 Address determined by manual configuration Proxy-ARP is disabled MTU 9212 bytes Vlan903 is up, line protocol is up (connected) Description: ar.pqt.rn.170.23.254.16/29 Internet address is 170.23.254.19/29 Broadcast address is 255.255.255.255 Address determined by manual configuration Proxy-ARP is disabled MTU 9212 bytes` ``` - This command displays the configured TCP Maximum Segment Size (MSS) ceiling value of **1436** bytes for an Ethernet interface **25**. ``` `switch> **show ip interface ethernet 25** Ethernet25 is up, line protocol is up (connected) Internet address is 10.1.1.1/24 Broadcast address is 255.255.255.255 IPv6 Interface Forwarding : None Proxy-ARP is disabled Local Proxy-ARP is disabled Gratuitous ARP is ignored IP MTU 1500 bytes IPv4 TCP MSS egress ceiling is 1436 bytes` ``` ### show ip interface brief Use the **show ip interface brief** command output to display the status summary of the specified interfaces that are configured as routed ports. The command provides the following information for each specified interface: - IP address - Operational status - Line protocol status - MTU size **Command Mode** EXEC **Command Syntax** **show ip interface [interface_name] [vrf_inst] brief** **Parameters** - **interface_name** - Interfaces for which command displays status. - **no parameter** -  All routed interfaces. - **ipv4_addr** - Neighbor IPv4 address. - **ethernet** **e_range** - Routed Ethernet interfaces specified by **e_range**. - **loopback** **l_range** -Routed loopback interfaces specified by **l_range**. - **management** **m_range** -  Routed management interfaces specified by **m_range**. - **port-channel** **p_range** -Routed port channel Interfaces specified by **p_range**. - **vlan** **v_range** - VLAN interfaces specified by **v_range**. - **VXLAN** **vx_range** - VXLAN interface range specified by **vx_range**. - **vrf_inst** - Specifies the VRF instance for which data is displayed. - **no parameter** - Context-active VRF. - **vrf** **vrf_name** -Specifies name of VRF instance. System default VRF is specified by **default**. **Example**This command displays the summary status of VLAN interfaces **900-910**. ``` `switch> **show ip interface vlan 900-910 brief** ! Some interfaces do not exist Interface IP Address Status Protocol MTU Vlan901 170.33.254.1/30 up up 9212 Vlan902 170.33.254.14/29 up up 9212 Vlan905 170.33.254.17/29 up up 1500 Vlan907 170.33.254.67/29 up up 9212 Vlan910 170.33.254.30/30 up up 9212` ``` ### show ip route The **show ip route** command displays routing table entries that are in the Forwarding Information Base (FIB), including static routes, routes to directly connected networks, and dynamically learned routes. Multiple equal-cost paths to the same prefix are displayed contiguously as a block, with the destination prefix displayed only on the first line. The **show running-config** command displays configured commands not in the FIB. **Command Mode** EXEC **Command Syntax** **show ip route [vrf_instance][address][route_type][info_level][prefix]** **Parameters** The **vrf_instance** and **address** parameterslist first and second, respectively. All other parameters can be placed in any order. - **vrf_instance** - Specifies the VRF instance to display data. - **no parameter** - Context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. System default VRF is specified by **default**. - **address** - Filters routes by IPv4 address or subnet. - **no parameter** - All routing table entries. - **ipv4_addr** - Routing table entries matching specified address. - **ipv4_subnet** - Routing table entries matching specified subnet (CIDR or address-mask). - **route_type** - Filters routes by specified protocol or origin. varnames include: - **no parameter** - All routing table entries. - **aggregate** - Entries for BGP aggregate routes. - **bgp** - Entries added through BGP protocol. - **connected** - Entries for routes to networks directly connected to the switch. - **isis** - Entries added through ISIS protocol. - **kernel** - Entries appearing in Linux kernel but not added by EOS software. - **ospf** - Entries added through OSPF protocol. - **rip** - Entries added through RIP protocol. - **static** - Entries added through CLI commands. - **vrf** - Displays routes in a VRF. - **Iinfo_level** - Filters entries by next hop connection. varnames include: - **no parameter**  - Filters routes whose next hops are directly connected. - **detail** - Displays all routes. - **prefix** - Filters routes by prefix. - **no parameter** - Specific route entry that matches the address parameter. - **longer-prefixes** -  All subnet route entries in range specified by address parameter. **Related Command** The cli vrf command specifies the context-active VRF. **Examples** - This command displays IPv4 routes learned through BGP. ``` `switch> **show ip route bgp** Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP, R - RIP, A - Aggregate B E 170.44.48.0/23 [20/0] via 170.44.254.78 B E 170.44.50.0/23 [20/0] via 170.44.254.78 B E 170.44.52.0/23 [20/0] via 170.44.254.78 B E 170.44.54.0/23 [20/0] via 170.44.254.78 B E 170.44.254.112/30 [20/0] via 170.44.254.78 B E 170.53.0.34/32 [1/0] via 170.44.254.78 B I 170.53.0.35/32 [1/0] via 170.44.254.2 via 170.44.254.13 via 170.44.254.20 via 170.44.254.67 via 170.44.254.35 via 170.44.254.98` ``` - This command displays the unicast IP routes installed in the system. ``` `switch# **show ip route** VRF name: default Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP, R - RIP, I - ISIS, A B - BGP Aggregate, A O - OSPF Summary, NG - Nexthop Group Static Route Gateway of last resort is not set C 10.1.0.0/16 is directly connected, Vlan2659 C 10.2.0.0/16 is directly connected, Vlan2148 C 10.3.0.0/16 is directly connected, Vlan2700 S 172.17.0.0/16 [1/0] via 172.24.0.1, Management1 S 172.18.0.0/16 [1/0] via 172.24.0.1, Management1 S 172.19.0.0/16 [1/0] via 172.24.0.1, Management1 S 172.20.0.0/16 [1/0] via 172.24.0.1, Management1 S 172.22.0.0/16 [1/0] via 172.24.0.1, Management1 C 172.24.0.0/18 is directly connected, Management1` ``` - This command displays the leaked routes from a source VRF. ``` `switch# **show ip route vrf VRF2 20.0.0.0/8** ... S L 20.0.0.0/8 [1/0] (source VRF VRF1) via 10.1.2.10, Ethernet1` ``` - This example displays an IPv4 route with Forwarding Equivalency Class (FEC) with an IPv4 next hop and an IPv6 next hop route. ``` `switch#**show ip route 10.1.0.0/23** VRF: default Source Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B - Other BGP Routes, B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary, NG - Nexthop Group Static Route, V - VXLAN Control Service, M - Martian, DH - DHCP client installed default route, DP - Dynamic Policy Route, L - VRF Leaked, G - gRIBI, RC - Route Cache Route, CL - CBF Leaked Route **S 10.1.0.0/23 [1/0] via 2000:0:0:43::2, Ethernet2 via 10.0.1.2, Ethernet4**` ``` ### show ip route age The **show ip route age** command displays the time when the route for the specified network was present in the routing table. It does not account for the changes in parameters like metric, next-hop etc. **Command Mode** EXEC **Command Syntax** **show ip route address age** **Parameters** **address** - Filters routes by IPv4 address or subnet. - **ipv4_addr** - Routing table entries matching specified address. - **ipv4_subnet** - Routing table entries matching specified subnet (CIDR or address-mask). **Example** This command shows the amount of time since the last update to IP route **172.17.0.0/20**. ``` `switch> **show ip route 172.17.0.0/20 age** Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP, R - RIP, I - ISIS, A - Aggregate B E 172.17.0.0/20 via 172.25.0.1, **age 3d01h** switch>` ``` ### show ip route gateway The **show ip route gateway** command displays IP addresses of all gateways (next hops) used by active routes. **Command Mode** EXEC **Command Syntax** show ip route [vrf_instance] gateway **Parameters** **vrf_instance** - Specifies the VRF instance for which data is displayed. - **no parameter** - Context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. System default VRF is specified by **default**. **Related Commands** The cli vrf command specifies the context-active VRF. **Example** This command displays next hops used by active routes. ``` `switch> **show ip route gateway** The following gateways are in use: 172.25.0.1 Vlan101 172.17.253.2 Vlan3000 172.17.254.2 Vlan3901 172.17.254.11 Vlan3902 172.17.254.13 Vlan3902 172.17.254.17 Vlan3903 172.17.254.20 Vlan3903 172.17.254.66 Vlan3908 172.17.254.67 Vlan3908 172.17.254.68 Vlan3908 172.17.254.29 Vlan3910 172.17.254.33 Vlan3911 172.17.254.35 Vlan3911 172.17.254.105 Vlan3912 172.17.254.86 Vlan3984 172.17.254.98 Vlan3992 172.17.254.99 Vlan3992 switch>` ``` ### show ip route host The **show ip route host** command displays all host routes in the host forwarding table. Host routes have a destination prefix of the entire address ( prefix = **255.255.255.255** or mask = **/32**). Each entry includes a code of the route’s purpose: - **F** - Static routes from the FIB. - **R**  - Routes defined because the IP address is an interface address. - **B** - Broadcast address. - **A** - Routes to any neighboring host for which the switch has an ARP entry. **Command Mode** EXEC **Command Syntax** show ip route [vrf_instance] host **Parameters** **vrf_instance** - Specifies the VRF instance to display data. - **no parameter** - Context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. System default VRF is specified by **default**. **Related Commands** The cli vrf command specifies the context-active VRF. **Example** This command displays all host routes in the host forwarding table. ``` `switch> **show ip route host** R - receive B - broadcast F - FIB, A - attached F 127.0.0.1 to cpu B 172.17.252.0 to cpu A 172.17.253.2 on Vlan2000 R 172.17.253.3 to cpu A 172.17.253.10 on Vlan2000 B 172.17.253.255 to cpu B 172.17.254.0 to cpu R 172.17.254.1 to cpu B 172.17.254.3 to cpu B 172.17.254.8 to cpu A 172.17.254.11 on Vlan2902 R 172.17.254.12 to cpu F 172.26.0.28 via 172.17.254.20 on Vlan3003 via 172.17.254.67 on Vlan3008 via 172.17.254.98 on Vlan3492                 via 172.17.254.2 on Vlan3601 via 172.17.254.13 on Vlan3602 via 172.17.253.2 on Vlan3000 F 172.26.0.29 via 172.25.0.1 on Vlan101 F 172.26.0.30 via 172.17.254.29 on Vlan3910 F 172.26.0.32 via 172.17.254.105 on Vlan3912 switch>` ``` ### show ip route match tag The **show ip route match tag** command displays the route tag assigned to the specified IPv4 address or subnet. Route tags are added to static routes for use by route maps. **Command Mode** EXEC **Command Syntax** **show ip route [vrf_instance] address match tag** **Parameters** - **VRF_INSTANCE** - Specifies the VRF instance to display data. - **no parameter** - Context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. System default VRF is specified by **default**. - **address** - Displays routes of specified IPv4 address or subnet. - **ipv4_addr** - Routing table entries matching specified IPv4 address. - **ipv4_subnet** - Routing table entries matching specified IPv4 subnet (CIDR or address-mask). **Example** This command displays the route tag for the specified subnet. ``` `switch> **show ip route 172.17.50.0/23 match tag** Codes: C - connected, S - static, K - kernel, O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1, E2 - OSPF external type 2, N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1, I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate, A O - OSPF Summary, NG - Nexthop Group Static Route, V - VXLAN Control Service, DH - DHCP client installed default route, M - Martian O E2 172.17.50.0/23 tag 0 switch>` ``` ### show ip route summary The **show ip route summary** command displays the number of routes, categorized by destination prefix, in the routing table. **Command Mode** EXEC **Command Syntax** show ip route [vrf_instance] summary **Parameters** **vrf_instance** - Specifies the VRF instance for which data is displayed. - **no parameter** - Context-active VRF. - **vrf** **vrf_name** - Specifies name of VRF instance. System default VRF is specified by **default**. **Example** This command displays a summary of the routing table contents. ``` `switch> **show ip route summary** Route Source Number Of Routes ------------------------------------- connected 15 static 0 ospf 74 Intra-area: 32 Inter-area:33 External-1:0 External-2:9 NSSA External-1:0 NSSA External-2:0 bgp 7 External: 6 Internal: 1 internal 45 attached 18 aggregate 0 switch>` ``` ### show ip verify source The **show ip verify source** command displays the IP source guard (IPSG) configuration, operational states, and IP-MAC binding entries for the configuration mode interface. **Command Mode** EXEC **Command Syntax** show ip verify source [vlan | detail] **Parameters** - **vlan** - Displays all VLANs configured in **no ip verify source vlan**. - **detail** - Displays all source IP-MAC binding entries configured for IPSG. **Related Commands** - ip source binding - ip verify source **Examples** - This command verifies the IPSG configuration and operational states. ``` `switch(config)# **show ip verify source** Interface       Operational State --------------- ------------------------ Ethernet1       IP source guard enabled Ethernet2       IP source guard disabled` ``` - This command displays all VLANs configured in **no ip verify source vlan**. Hardware programming errors, e.g.,VLAN classification failed, indicate in the operational state. If an error occurs, this VLAN considered as enabled for IPSG. Traffic on this VLAN filters by IPSG. ``` `switch(config)# **show ip verify source vlan** IPSG disabled on VLANS: 1-2 VLAN            Operational State --------------- ------------------------ 1               IP source guard disabled 2               Error: vlan classification failed` ``` - This command displays all source IP-MAC binding entries configured for IPSG. If programmed into hardware, a source binding entry considered active. Permits IP traffic matching any active binding entry. If configured. a source binding entry on an interface or a VLAN with the operational state of IPSG disabled, this entry does not install in the hardware, in which case an “IP source guard disabled” state displays. If a port channel has no member port configured, binding entries configured for this port channel do not install in hardware, and a “Port-Channel down” state displays. ``` `switch(config)# **show ip verify source detail** Interface      IP Address  MAC Address     VLAN  State -------------- ----------- --------------- ----- ------------------------ Ethernet1      10.1.1.1    0000.aaaa.1111   5     active Ethernet1      10.1.1.5    0000.aaaa.5555   1     IP source guard disabled Port-Channel1  20.1.1.1    0000.bbbb.1111   4     Port-Channel down` ``` ### show platform arad ip route summary The **show platform arad ip route summary** command shows hardware resource usage of IPv4 routes. **Command Mode** EXEC **Command Syntax** show platform arad ip route summary **Related Commands** - The agent SandL3Unicast terminate command enables restarting the layer 3 agent to ensure IPv4 routes are optimized. - The ip hardware fib optimize command enables IPv4 route scale. - The show platform arad ip route command shows resources for all IPv4 routes in hardware. Routes that use the additional hardware resources will appear with an asterisk. **Example** This command shows hardware resource usage of IPv4 routes. ``` `switch(config)# **show platform arad ip route summary** Total number of VRFs: 1 Total number of routes: 25 Total number of route-paths: 21 Total number of lem-routes: 4 switch(config)#` ``` ### show platform arad ip route The **show platform arad ip route** command shows resources for all IPv4 routes in hardware. Routes that use the additional hardware resources will appear with an asterisk. **Command Mode** EXEC **Command Syntax** show platform arad ip route **Related Commands** - The agent SandL3Unicast terminate command enables restarting the Layer 3 agent to ensure IPv4 routes are optimized. - The ip hardware fib optimize command enables IPv4 route scale. - The show platform arad ip route summary command shows hardware resource usage of IPv4 routes. **Examples** - This command displays the platform unicast forwarding routes. In this example, the ACL label field in the following table is **4094** by default for all routes. If an IPv4 egress RACL is applied to an SVI, all routes corresponding to that VLAN will have an ACL label value. In this case, the ACL Label field value is 2. ``` `switch# **show platform arad ip route** Tunnel Type: M(mpls), G(gre) ------------------------------------------------------------------------------- | Routing Table | | |------------------------------------------------------------------------------ |VRF| Destination | | | | Acl | | ECMP| FEC | Tunnel | ID| Subnet | Cmd | Destination | VID | Label | MAC / CPU Code |Index|Index|T Value ------------------------------------------------------------------------------- |0 |0.0.0.0/8 |TRAP | CoppSystemL3DstMiss|0 | - | ArpTrap | - |1031 | - |0 |10.1.0.0/16 |TRAP | CoppSystemL3DstMiss|2659 | - | ArpTrap | - |1030 | - |0 |10.2.0.0/16 |TRAP | CoppSystemL3DstMiss|2148 | - | ArpTrap | - |1026 | - |0 |172.24.0.0/18 |TRAP | CoppSystemL3DstMiss|0 | - | ArpTrap | - |1032 | - |0 |0.0.0.0/0 |TRAP | CoppSystemL3LpmOver|0 | - | SlowReceive | - |1024 | - |0 |10.1.0.0/32* |TRAP | CoppSystemIpBcast |0 | - | BcastReceive | - |1027 | - |0 |10.1.0.1/32* |TRAP | CoppSystemIpUcast |0 | - | Receive | - |32766| - |0 |10.1.255.1/32* |ROUTE| Po1 |2659 |4094 | 00:1f:5d:6b:ce:45 | - |1035 | - |0 |10.1.255.255/32* |TRAP | CoppSystemIpBcast |0 | - | BcastReceive | - |1027 | - |0 |10.3.0.0/32* |TRAP | CoppSystemIpBcast |0 | - | BcastReceive | - |1027 | - |0 |10.3.0.1/32* |TRAP | CoppSystemIpUcast |0 | - | Receive | - |32766| - |0 |10.3.255.1/32* |ROUTE| Et18 |2700 |2 | 00:1f:5d:6b:00:01 | - |1038 | - ...........................................................` ``` - This command shows resources for all IPv4 routes in hardware. Routes that use the additional hardware resources will appear with an asterisk. ``` `switch(config)# **show platform arad ip route** Tunnel Type: M(mpls), G(gre) * - Routes in LEM ------------------------------------------------------------------------------- | Routing Table | | |------------------------------------------------------------------------------ |VRF| Destination | | | |Acl | |ECMP | FEC | Tunnel |ID | Subnet | Cmd | Destination |VID |Label| MAC / CPU Code |Index|Index|T Value ------------------------------------------------------------------------------- |0 |0.0.0.0/8 |TRAP |CoppSystemL3DstMiss|0 | - |ArpTrap | - |1030 | - |0 |100.1.0.0/32 |TRAP |CoppSystemIpBcast |0 | - |BcastReceive | - |1032 | - |0 |100.1.0.0/32 |TRAP |CoppSystemIpUcast |0 | - |Receive | - |32766| - |0 |100.1.255.255/32|TRAP |CoppSystemIpBcast |0 | - |BcastReceive | - |1032 | - |0 |200.1.255.255/32|TRAP |CoppSystemIpBcast |0 | - |BcastReceive | - |1032 | - |0 |200.1.0.0/16 |TRAP |CoppSystemL3DstMiss|1007| - |ArpTrap | - |1029 | - |0 |0.0.0.0/0 |TRAP |CoppSystemL3LpmOver|0 | - |SlowReceive | - |1024 | - |0 |4.4.4.0/24* |ROUTE|Et10 |1007| - |00:01:00:02:00:03| - |1033 | - |0 |10.20.30.0/24* |ROUTE|Et9 |1006| - |00:01:00:02:00:03| - |1027 | - switch(config)#` ``` ### show platform barefoot bfrt The **show platform barefoot bfrt** command displays information about the current BfRuntime server configuration. **Command Mode** EXEC **Command Syntax** show platform barefoot bfrt **Parameters** **no parameter** - Specify the state of the system. **Example** The following output is for a system where the BfRuntime server has been configured. ``` `(switch)# **show platform barefoot bfrt** Namespace: management FixedSystem:0.0.0.0:50052` ``` ### show platform fap eedb ip-tunnel gre interface tunnel The **show platform fap eedb ip-tunnel gre interface tunnel** command verifies the tunnel encapsulation programming for the tunnel interface. **Command Mode** EXEC **Command Syntax** **show platform fap eedb ip-tunnel gre interface tunnel number** **Parameter** **number** - Specifies the tunnel interface number. **Example** These commands verify the tunnel encapsulation programming for the **tunnel interface 10**. ``` `switch# **show platform fap eedb ip-tunnel gre interface tunnel 10** ---------------------------------------------------------------------------- | Jericho0 | | GRE Tunnel Egress Encapsulation DB | |--------------------------------------------------------------------------| | Bank/ | OutLIF | Next | VSI | Encap | TOS | TTL | Source | Destination| OamLIF| OutLIF | Drop| | Offset| | OutLIF | LSB | Mode | | | IP | IP | Set | Profile| | |--------------------------------------------------------------------------| | 3/0 | 0x6000 | 0x4010 | 0 | 2 | 10 | 10 | 10.1.1.1 | 10.1.1.2 | No | 0 | No | switch# **show platform fap eedb ip-tunnel** ------------------------------------------------------------------------------- | Jericho0 | | IP Tunnel Egress Encapsulation DB | |------------------------------------------------------------------------------ | Bank/ | OutLIF | Next | VSI | Encap| TOS | TTL | Src | Destination | OamLIF | OutLIF | Drop| | Offset| | OutLIF | LSB | Mode | Idx | Idx | Idx | IP | Set | Profile | | |------------------------------------------------------------------------------ | 3/0 | 0x6000 | 0x4010 | 0 | 2 | 9 | 0 | 0 | 10.1.1.2 | No | 0 | No |` ``` ### show platform fap tcam summary The **show platform fap tcam summary** command displays information about the TCAM bank that is allocated for GRE packet termination lookup. **Command Mode** EXEC **Command Syntax** **show platform fap tcam summary** **Example** This command verifies if the TCAM bank is allocated for GRE packet termination lookup. ``` `switch# **show platform fap tcam summary** Tcam Allocation (Jericho0) Bank Used By Reserved By ---------- ----------------------- ----------- 0 dbGreTunnel -` ``` ### show platform trident forwarding-table partition The **show platform trident forwarding-table partition** command displays the size of the L2 MAC entry tables, L3 IP forwarding tables, and Longest Prefix Match (LPM) routes. **Command Mode** Privileged EXEC **Command Syntax** show platform trident forwarding-table partition show platform trident forwarding-table partition flexible **Examples** - The **show platform trident forwarding-table partition** command displays the Trident forwarding table information. ``` `switch(config)# **show platform trident forwarding-table partition** L2 Table Size: 96k L3 Host Table Size: 208k LPM Table Size: 16k switch(config)#` ``` - The **show platform trident forwarding-table partition flexible** shows the banks allocated for ALPM as well. ``` `switch(config)# **show platform trident forwarding-table partition flexible** -------------------------------------------------- Minimum L2 entries = 32768 Minimum L3 entries = 16384 Maximum L2 entries = 262144 Maximum L3 entries = 262144 Maximum Exact Match entries = 131072 L2 entries per bucket = 4 L3 entries per bucket = 4 Exact Match entries per bucket = 2 Maximum entries per bucket = 4 Maximum shared buckets = 65536 Maximum entries per bank = 32768 Maximum shared banks = 8 ALPM entries per bank = 46080 ALPM = Enabled -------------------- # UFT bank details # -------------------- S - Shared UFT bank, D - Dedicated UFT bank +-------------+------------+------+------------+--------------+ | Physical ID | Feature | Type | Logical ID | Hash Offset | +-------------+------------+------+------------+--------------+ | 0 | L2 | D | 0 | 0x4 | | 1 | L2 | D | 1 | 0xe | | 2 | ALPM | S | N/A | 0 | | 3 | ALPM | S | N/A | 0 | | 4 | ALPM | S | N/A | 0 | | 5 | ALPM | S | N/A | 0 | | 6 | L2 | S | 2 | 0xc | | 7 | ExactMatch | S | 0 | 0xc | | 8 | ExactMatch | S | 1 | 0xf | | 9 | L3 | S | 2 | 0xc | | 10 | L3 | D | 0 | 0x0 | | 11 | L3 | D | 1 | 0x8 | +-------------+------------+------+------------+--------------+` ``` ### show platform trident l3 shadow dlb-ecmp-group-control The **show platform trident l3 shadow dlb-ecmp-group-control** displays information about Dynamic Load Balancing with ECMP groups. **Command Mode** Privileged EXEC **Command Syntax** show platform trident l3 shadow dlb-ecmp-group-control **Example** Use the following command to display information about DLB and ECMP groups: ``` `switch# show platform trident l3 shadow dlb-ecmp-group-control DLB_ECMP_GROUP_CONTROL: eId size path baseAddr flowSize memPtr flowBase OC mode inDur ---- ---- ---- -------- -------- ------ -------- -- ---- ------ 1 3 0 136 1 1 256 1 0 500 Legend: eId = Entry ID size = Primary Group Size path = Primary Path Threshold baseAddr = Group Port To Member Base Address flowSize = Flow Set Size memPtr = Group Membership Pointer flowBase = Flow Set Base OC = Enable Optimal Candidate mode = Port Assignment Mode inDur = Inactivity Duration` ``` The output displays the following information: - **Entry ID** - Indicates the dynamic load balance group ID. - **Primary Group Size** - Indicates the number of members in the DLB group. - **Enable optimal candidate** - Indicates the least loaded member or predefined member selection. Always set to 1 to ensure the selection of the least loaded member. - **Inactivity duration** - Indicates the inactivity period. If the switch does not receive new packets from a particular flow within this duration, then the optimal member becomes the new member for the flow. Represented in microseconds. ### show rib route ip The **show rib route ip** command displays a list of IPv4 Routing Information Base (RIB) routes. **Command Mode** EXEC **Command Syntax** show rib route ip [vrf vrf_name][prefix][route_type] **Parameters** - **vrf** **vrf_name** - Displays RIB routes from the specified VRF. - **prefix** - Displays routes filtered by the specified IPv4 information. Options include the following: - **ip_address** - Displays RIB routes filtered by the specified IPv4 address. - **ip_subnet_mask** - Displays RIB routes filtered by the specified IPv4 address and subnet mask. - **ip_prefix** - Displays RIB routes filtered by the specified IPv4 prefix. - **route_type** - Displays routes filtered by the specified route type. Options include the following: - **bgp** - Displays RIB routes filtered by BGP. - **connected** - Displays RIB routes filtered by connected routes. - **dynamicPolicy** - Displays RIB routes filtered by dynamic policy routes. - **host** - Displays RIB routes filtered by host routes. - **isis** - Displays RIB routes filtered by IS-IS routes. - **ospf** - Displays RIB routes filtered by OSPF routes. - **ospf3** - Displays RIB routes filtered by OSPF3 routes. - **reserved** - Displays RIB routes filtered by reserved routes. - **route-input** - Displays RIB routes filtered by route-input routes. - **static** - Displays RIB routes filtered by static routes. - **vrf** - Displays routes in a VRF. - **vrf-leak** - Displays leaked routes in a VRF. **Examples** - This command displays IPv4 RIB static routes. ``` `switch# **show rib route ip static** VRF name: default, VRF ID: 0xfe, Protocol: static Codes: C - Connected, S - Static, P - Route Input B - BGP, O - Ospf, O3 - Ospf3, I - Isis > - Best Route, * - Unresolved Nexthop L - Part of a recursive route resolution loop >S 10.80.0.0/12 [1/0] via 172.30.149.129 [0/1] via Management1, directly connected >S 172.16.0.0/12 [1/0] via 172.30.149.129 [0/1] via Management1, directly connected switch#` ``` - This command displays IPv4 RIB connected routes. ``` `switch# **show rib route ip connected** VRF name: default, VRF ID: 0xfe, Protocol: connected Codes: C - Connected, S - Static, P - Route Input B - BGP, O - Ospf, O3 - Ospf3, I - Isis > - Best Route, * - Unresolved Nexthop L - Part of a recursive route resolution loop >C 10.1.0.0/24 [0/1] via 10.1.0.102, Ethernet1 >C 10.2.0.0/24 [0/1] via 10.2.0.102, Ethernet2 >C 10.3.0.0/24 [0/1] via 10.3.0.102, Ethernet3 switch#` ``` - This command displays routes leaked through VRF leak agent. ``` `switch# **show rib route ip vrf VRF2 vrf-leak** VRF: VRF2, Protocol: vrf-leak ... >VL 20.0.0.0/8 [1/0] source VRF: VRF1 via 10.1.2.10 [0/0] type ipv4 via 10.1.2.10, Ethernet1` ``` ### show rib route fib policy excluded The **show rib route fib policy excluded** command displays the RIB routes filtered by FIB policy. The **fib policy excluded** parameter displays the RIB routes excluded from programming into FIB, by FIB policy. **Command Mode** EXEC **Command Syntax** show rib route [ipv4 | ipv6] fib policy excluded **Example** The following example displays the RIB routes excluded by the FIB policy using the **fib policy excluded** option of the **show rib route** command. ``` `switch# **show rib route ipv6 fib policy excluded** switch# **show rib route ip bgp fib policy excluded** VRF name: default, VRF ID: 0xfe, Protocol: bgp Codes: C - Connected, S - Static, P - Route Input B - BGP, O - Ospf, O3 - Ospf3, I - Isis > - Best Route, * - Unresolved Nexthop L - Part of a recursive route resolution loop >B 10.1.0.0/24 [200/0] via 10.2.2.1 [115/20] type tunnel via 10.3.5.1, Ethernet1 via 10.2.0.1 [115/20] type tunnel via 10.3.4.1, Ethernet2 via 10.3.6.1, Ethernet3 >B 10.1.0.0/24 [200/0] via 10.2.2.1 [115/20] type tunnel via 10.3.5.1, Ethernet1 via 10.2.0.1 [115/20] type tunnel via 10.3.4.1, Ethernet2 via 10.3.6.1, Ethernet3` ``` ### show rib route summary The **show rib route summary** command displays information about the routes present in the Routing Information Base. **Command Mode** EXEC **Command Syntax** show rib route summary [info_level] **Parameters** - **no parameter** - Displays data in one table with the summary of all routes in the RIB for default VRF. - **brief** - Displays one table with the summary of all routes across all configured VRFs. - **ip** - Displays one table with the summary of all IPv4 in the RIB for default VRF. - **ipv6** - Displays one table with the summary of all IPv4 in the RIB for default VRF. - **vrf vrf_Name** - Displays one table with the summary of all routes in the Routing Information Base for the specified VRF. - **vrf all** - Displays one table with the summary of all routes in the Routing Information Base for each configured VRF. - info_level - Displays the amount of information. Options include the following: - **Display Values** - **VRF** - VRF RIB displayed. - **Route Source** - Source for the route. - **Number of Routes** - Number of routes for each source. **Examples** - The following displays data in one table with the summary of all routes in the RIB for default VRF. ``` `switch> **show rib route summary** VRF: default Route Source Number Of Routes -------------------- ---------------- BGP 1 Connected 4 Dynamic policy 0 IS-IS 0 OSPF 0 OSPFv3 0 RIP 0 Route input 2 Static 0 VRF leak 0` ``` - The following displays data in one table with the summary of all routes across all configured VRFs. ``` `switch> **show rib route summary brief** Route Source Number Of Routes -------------------- ---------------- BGP 2 Connected 8 Dynamic policy 0 IS-IS 0 OSPF 0 OSPFv3 0 RIP 0 Route input 4 Static 0 VRF leak 0` ``` - The following displays data in one table with the summary of all IPv4 routes in the RIB for default VRF. ``` `switch> **show rib route summary ip** VRF: default Route Source Number Of Routes -------------------- ---------------- BGP 1 Connected 4 Dynamic policy 0 IS-IS 0 OSPF 0 OSPFv3 0 RIP 0 Route input 2 Static 0 VRF leak 0` ``` - The following displays data in one table with the summary of all IPv6 routes in the RIB for default VRF. ``` `switch> **show rib route summary ipv6** VRF: default Route Source Number Of Routes -------------------- ---------------- BGP 0 Connected 0 Dynamic policy 0 IS-IS 0 OSPF 0 OSPFv3 0 RIP 0 Route input 0 Static 0 VRF leak 0` ``` - The following displays data in one table with the summary of all routes in the RIB for the VRF named **red**. ``` `switch> **show rib route summary vrf red** VRF: red Route Source Number Of Routes -------------------- ---------------- BGP 1 Connected 4 Dynamic policy 0 IS-IS 0 OSPF 0 OSPFv3 0 RIP 0 Route input 2 Static 0 VRF leak 0` ``` - The following displays data in one table with the summary of all routes in the RIB for each configured VRF. ``` `switch> **show rib route summary vrf all** VRF: red Route Source Number Of Routes -------------------- ---------------- BGP 1 Connected 4 Dynamic policy 0 IS-IS 0 OSPF 0 OSPFv3 0 RIP 0 Route input 2 Static 0 VRF leak 0 VRF: default Route Source Number Of Routes -------------------- ---------------- BGP 1 Connected 4 Dynamic policy 0 IS-IS 0 OSPF 0 OSPFv3 0 RIP 0 Route input 2 Static 0 VRF leak 0` ``` ### show routing-context vrf The **show routing-context vrf** command displays the context-active VRF. The context-active VRF determines the default VRF that VRF-context aware commands use when displaying routing table data from a specified VRF. **Command Mode** EXEC **Command Syntax** show routing-context vrf **Related Commands** The cli vrf command specifies the context-active VRF. **Example** This command displays the context-active VRF. ``` `switch> **show routing-context vrf** Current VRF routing-context is PURPLE switch>` ``` ### show snapshot counters ecmp history The **show snapshot counters ecmp history** displays information about the AGM configuration. **Command Mode** EXEC **Command Syntax** show snapshot counters ecmp history **Parameters** - **Request ID** - Identifies the snapshot Request ID to use for the **clear** command. - **Output directory URL** - Identifies the snapshot storage location. - **Complete** - Identifies the snapshot completion status. - **Poll Interval** - Identifies the configured polling interval for the snapshot. - **Total poll count** - Identifies the total number of hardware counters collected. - **Start time** and **Stopped time** - Identifies the system time when the snapshot started and stopped. - **L2 Adjacency ID** and **Interfaces** - The summary of the ECMP groups monitored by AGM. **Example** Use the **show snapshot counters ecmp history** to display information about the configuration. ``` `switch# **show snapshot counters ecmp history** Request ID: 17 Output directory URL: file:/var/tmp/ecmpMonitor Output file name(s): ecmpMonitor-17-adj1284.ctr, ecmpMonitor-17-adj1268.ctr Complete: True Poll interval: 1000 microseconds Total poll count: 59216 Start time: 2024-06-17 17:58:36 Stop time: 2024-06-17 17:59:36 L2 Adjacency ID Interfaces --------------------- ---------------------------------------------------- 1268 Ethernet54/1, Ethernet41/1, Ethernet1/1, Ethernet57/1 1284 Ethernet20/1, Ethernet35/1, Ethernet41/1, Ethernet8/1, Ethernet1/1` ``` ### show tunnel fib static interface gre The **show tunnel fib static interface gre** command displays the Forwarding Information Base (FIB) information for a static interface GRE tunnel. **Command Mode** EXEC **Command Syntax** show tunnel fib static interface gre number **Parameter** **number** - Specifies the tunnel index number. **Example** This command display the interface tunnel configuration with GRE configured. ``` `switch# **show tunnel fib static interface gre 10** Type 'Static Interface', index 10, forwarding Primary via 10.6.1.2, 'Ethernet6/1' GRE, destination 10.1.1.2, source 10.1.1.1, ttl 10, tos 0xa` ``` ### show vrf The **show vrf** command displays the VRF name, RD, supported protocols, state and included interfaces for the specified VRF or for all VRFs on the switch. **Command Mode** EXEC **Command Syntax** show vrf [vrf_instance] **Parameters** vrf_instance - Specifies the VRF instance to display. - **no parameter** - Displays information for all VRFs. - **vrf** **vrf_name** - Displays information for the specified user-defined VRF. **Example** This command displays information for the VRF named **purple**. ``` `switch> **show vrf purple** Vrf      RD          Protocols  State       Interfaces -------- ----------- ---------- ----------- -------------- purple   64496:237   ipv4       no routing  Vlan42, Vlan43 switch>` ``` ### start snapshot counters The **start snapshot counters ecmp** allows the monitoring of packets and bytes traversing the members of the configured ECMP groups on the switch with a high time resolution. **Command Mode** Global Configuration Mode **Command Syntax** start snapshot counters ecmp poll interval interval [milliseconds | microseconds] duration duration seconds destination_url **Parameters** - **interval interval** - Specify at least 100 microseconds. EOS does not guarantee the interval, and the actual poll interval may depend on the system load as well as the number and size of configured ECMP groups. Valid values include milliseconds and microseconds. - **duration duration seconds** - Specify the duration for collecting data. A maximum of 3600 seconds can be configured. - **destination_url** - Optionally, provide a destination URL for data storage. - **file** - The path must start with **/tmp** or **/tmp**. The files store in the non-persistent storage. - **flash** - Files store in persistent storage. **Example** To begin collecting data on the switch at 100 millisecond intervals for 1800 seconds, use the following command: ``` `switch(config)#**start snapshot counters ecmp poll interval 100 milliseconds duration 1800 seconds**` ``` ### tcp mss ceiling The **tcp mss ceiling** command configures the Maximum Segment Size (MSS) limit in the TCP header on the configuration mode interface and enables TCP MSS clamping. The **no tcp mss ceiling** and the **default tcp mss ceiling** commands remove any MSS ceiling limit previously configured on the interface. Note: Configuring a TCP MSS ceiling on any Ethernet or tunnel interface enables TCP MSS clamping on the switch as a whole. Without hardware support, clamping routes all TCP SYN packets through software, even on interfaces where no TCP MSS ceiling has been configured. This significantly limits the number of TCP sessions the switch can establish per second, and can potentially cause packet loss if the CPU traffic exceeds control plane policy limits. **Command Mode** Interface-Ethernet Configuration Subinterface-Ethernet Configuration Interface-Port-channel Configuration Subinterface-Port-channel Configuration Interface-Tunnel Configuration Interface-VLAN Configuration **Command Syntax** tcp mss ceiling {ipv4 segment size | ipv6 segment size}{egress | ingress} no tcp mss ceiling default tcp mss ceiling **Parameters** - **ipv4** **segment size** The IPv4 segment size value in bytes. Values range from **64** to **65515**. - **ipv6** **segment size** The IPv6 segment size value in bytes. Values range from **64** to **65495**. This option is not supported on Sand platform switches (Qumran-MX, Qumran-AX, Jericho, Jericho+). - **egress** The TCP SYN packets that are forwarded from the interface to the network. - **ingress** The TCP SYN packets that are received from the network to the interface. Not supported on Sand platform switches. **Guidelines** - On Sand platform switches (Qumran-MX, Qumran-AX, Jericho, Jericho+), this command works only for egress, and is supported only on IPv4 unicast packets entering the switch. - Clamping can only be configured in one direction per interface and works only on egress on Sand platform switches. - To configure ceilings for both IPv4 and IPv6 packets, both configurations must be included in a single command; re-issuing the command overwrites any previous settings. - Clamping configuration has no effect on GRE transit packets. **Example** These commands configure **interface ethernet 5** as a routed port, then specify a maximum MSS ceiling value of **1458** bytes in TCP SYN packets exiting that port. This enables TCP MSS clamping on the switch. ``` `switch(config)# **interface ethernet 5** switch(config-if-Et5)# **no switchport** switch(config-if-Et5)# **tcp mss ceiling ipv4 1458 egress** switch(config-if-Et5)#` ``` ### tunnel The **tunnel** command configures options for protocol-over-protocol tunneling. Because Interface-Tunnel Configuration Mode does not provide a group change mode, ***running-config*** changes immediately after executing the commands. The **exit** command does not affect the configuration. The **no tunnel** command deletes the specified tunnel configuration. **Command Mode** Interface-tunnel Configuration **Command Syntax** tunnel options no tunnel options **Parameters** - **options** - Specifies the various tunneling options as listed below. - **destination** - Specifies the destination address of the tunnel. - **ipsec** - Secures the tunnel with the IPsec address. - **key** - Sets the tunnel key. - **mode** - Specifies the tunnel encapsulation method. - **path-mtu-discovery** - Enables the Path MTU discovery on tunnel. - **source** - Specifies the source of the tunnel packets. - **tos** - Sets the IP type of service value. - **ttl** - Sets time to live value. - **underlay** - Specifies the tunnel underlay. **Example** These commands place the switch in interface-tunnel configuration mode for **interface Tunnel 10** and with GRE tunnel configured on the interfaces specified. ``` `switch(config)# **ip routing** switch(config)# **interface Tunnel 10** switch(config-if-Tu10)# **tunnel mode gre** switch(config-if-Tu10)# **ip address 192.168.1.1/24** switch(config-if-Tu10)# **tunnel source 10.1.1.1** switch(config-if-Tu10)# **tunnel destination 10.1.1.2** switch(config-if-Tu10)# **tunnel path-mtu-discovery** switch(config-if-Tu10)# **tunnel tos 10** switch(config-if-Tu10)# **tunnel ttl 10**` ``` ### vrf (Interface mode) The **vrf** command adds the configuration mode interface to the specified VRF. You must create the VRF first, using the vrf instance command. The **no vrf** and **default vrf** commands remove the configuration mode interface from the specified VRF by deleting the corresponding **vrf** command from ***running-config***. All forms of the **vrf** command remove all IP addresses associated with the configuration mode interface. **Command Mode** Interface-Ethernet Configuration Interface-Loopback Configuration Interface-Management Configuration Interface-Port-channel Configuration Interface-VLAN Configuration **Command Syntax** vrf [vrf_name] no vrf [vrf_name] default vrf [vrf_name] **Parameters** **vrf_name** - Displays the name of configured VRF. **Examples** - These commands add the configuration mode interface (**vlan 20**) to the VRF named **purple**. ``` `switch(config)# **interface vlan 20** switch(config-if-Vl20)# **vrf purple** switch(config-if-Vl20)#` ``` - These commands remove the configuration mode interface from VRF **purple**. ``` `switch(config)# **interface vlan 20** switch(config-if-Vl20)# **no vrf purple** switch(config-if-Vl20)#` ``` ### vrf instance The **vrf instance** command places the switch in VRF configuration mode for the specified VRF. If the named VRF does not exist, this command creates it. The number of user-defined VRFs supported varies by platform. To add an interface to the VRF once created, use the vrf (Interface mode) command. The **no vrf instance** and **default vrf instance** commands delete the specified VRF instance by removing the corresponding **vrf instance** command from ***running-config***. This also removes all IP addresses associated with interfaces that belong to the deleted VRF. The **exit** command returns the switch to global configuration mode. **Command Mode** Global Configuration **Command Syntax** vrf instance [vrf_name] no vrf instance [vrf_name] default vrf instance [vrf_name] **Parameters** **vrf_name** - The name of the configured VRF. The names **main** and **default** are reserved. **Example** This command creates a VRF named **purple** and places the switch in VRF configuration mode for that VRF. ``` `switch(config)# **vrf instance purple** switch(config-vrf-purple)#` ```