stack-orchestrator/docs/arista-scraped/ipv4.md

15435 lines
361 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!-- Source: https://www.arista.com/en/um-eos/eos-ipv4 -->
<!-- Scraped: 2026-03-06T20:51:21.912Z -->
# IPv4
Arista switches support Internet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6)
for routing packets across network boundaries. This section describes
Aristas 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**
**<G> <S>**
This only takes effect when **ip multicast count** is
enabled. Either **<G> <S>** 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
**<G> <S>** routes
- **`no ip multicast count`**
**<G> <S>** Removes
the config. Do not delete the counter because the
wildcard is still active.
- If no **<G, S>** 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 **<G, S>** is specified, only
**<G, S>** 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 **<G,
S>** configuration is applicable when
the hardware runs out of resources. Specific
**<G, S>** 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 **<G, S>**, 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 **<G,
S>** basis.
- Execute clear
command:
```
`**clear ip multicast count <G> <S>**`
```
- Execute show
command:
```
`**show multicast fib ipv4 <G> 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 packets source IP address. In strict mode, the uRPF also
fails when the matching entrys outbound interface does not match the packets 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
packets 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 <ipv4|ipv6> 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 clients 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 interfaces
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 <VRF name>**`
```
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 <VRF name>**
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 packets
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 <VRF name>**
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, youll 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 switchs 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 routes
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)#`
```