ACLs and Route Maps

The switch uses rule-based lists to control packet access to ports and to select routes for redistribution to routing domains defined by dynamic routing protocols.

This section describes the construction of Access Control Lists (ACLs), prefix lists, and route maps and includes the following topics:

Introduction

The following provides an introduction to Access Control Lists (ACL), Service ACsL, Route Maps, Prefix Lists, and Router Access Control List (RACL) Divergence:

The switch processes ACLs, Service ACLs, route maps, and prefix lists in order, beginning with the first rule and continuing until a match is found.

An ACL contains a list of rules that control the inbound flow of packets into Ethernet interfaces, subinterfaces, port-channel interfaces, or the switch control plane. The switch supports implementing various filtering criteria, including IP and MAC addresses and TCP/UDP ports, with include/exclude options without compromising its performance or feature set. Filtering syntax is the industry standard.

A Service ACL applies a control-plane process to control connections to, or packets processed by, the agent process.

A route map contains a list of rules that control the redistribution of IP routes into a protocol domain based on criteria such as route metrics, access control lists, next-hop addresses, and route tags. Additionally, route maps can modify route parameters during redistribution.

A prefix list contains a list of rules that defines route redistribution access for a specified IP address space. Route maps often use prefix lists to filter routes.

The RACL divergence optimizes hardware resource usage on each forwarding ASIC. EOS installs ACLs only on the hardware components corresponding to the member interfaces of the SVIs with an applied ACL, and saves hardware resources and scales the RACLs to a larger configuration.
Tip: Use the show commands to display the interface mapping, Ternary Content Addressable Memory (TCAM) entries, and TCAM utilization information.

Access Control Lists

These sections describe access control lists:

ACL Types

The switch supports the following ACL types:
  • IPv4 matches on IPv4 source or destination addresses, with L4 modifiers including protocol, port number, IPsec tunnel interfaces, and DSCP value.
  • IPv6 matches on IPv6 source or destination addresses, with L4 modifiers including protocol, port number, or GRE tunnel interface.
  • Standard IPv4 matches only on source IPv4 addresses.
  • Standard IPv6 matches only on source IPv6 addresses.
  • MAC matches on L2 source and destination addresses.

ACLs can also be made dynamic using payload, turning them into a User-Defined Field (UDF) alias for use in other ACLs.

ACL Structure

An ACL is an ordered list of rules that defines access restrictions for the entities (the control plane or an interface) to which it is applied. Route maps also use ACLs to select routes for redistribution into specified routing domains.

ACL rules specify the data to which packet contents are compared when filtering data.

  • The interface forwards packets that match all commands in a permit rule.
  • The interface drops packets that match all commands in a deny rule.
  • The interface drops packets that do not match at least one rule.

 

Upon its arrival at an interface, the switch compares a packet’s fields to the first rule of the ACL applied to the interface. Packets that match the rule are forwarded (permit rule) or dropped (deny rule). The process continues whereby the switch compares packets that do not match the rule to the next rule in the list and continues until the packet either matches a rule or the rule list is exhausted. The interface drops packets that do not match a rule.

The sequence number designates the rule's placement in the ACL.

ACL Rules

The switch compares an ACL rule's command list to inbound packet fields. When all of a rule’s criteria match a packet’s contents, the interface performs the action specified by the rule.

The set of available commands depends on the ACL type and the specified protocol within the rule. The following is a list of commands available for supported ACL types:

IPv4 ACL Rule Parameters
All rules in IPv4 ACLs include the following criteria:
  • Protocol: The packet’s IP protocol. Valid rule inputs include:
    • Protocol name for a limited set of common protocols.
    • Assigned protocol number for all IP protocols.

     

  • Source Address: The packet’s source IPv4 address. Valid rule inputs include:
    • A subnet address (CIDR or address mask). Discontiguous masks are supported.
    • A host IP address (dotted decimal notation.)
    • Using any to denote that the rule matches all source addresses.

     

  • Destination Address: The packet’s destination IP address. Valid rule inputs include:
    • A subnet address (CIDR or address mask). Discontiguous masks are supported.
    • A host IP address (dotted decimal notation.)
    • Using any to denote that the rule matches all destination addresses.

     

All rules in IPv4 ACLs may include the following criteria:
  • Fragment: Rules filter on the fragment bit.
  • Time-to-live: Compares the packet's TTL (time-to-live) value to a specified value and is valid in ACLs applied to the control plane. The validity of ACLs applied to the data plane varies by switch platform. Comparison options include:
    • Equal: Packets match if the packet value equals the statement value.
    • Greater than: Packets match if the packet value is greater than the statement value.
    • Less than: Packets match if the packet value is less than the statement value.
    • Not equal: Packets match if the packet value does not equal the statement value.

     

The availability of the following optional criteria depends on the specified protocol:
  • Source Ports / Destination Ports: A rule filters on ports when the specified protocol supports IP address-port combinations. Rules provide one of these port filtering values:
    • Using any denotes that the rule matches all ports.
    • A list of ports that matches the packet port. The maximum list size is 10 ports.
    • Negative port list. The rule matches any port not in the list. The maximum list size is 10 ports.
    • Integer (lower bound): The rule matches any port with a number larger than the integer.
    • Integer (upper bound): The rule matches any port with a number smaller than the integer.
    • Range integers: The rule matches any port whose number is between the integers.

     

  • Flag bits: Rules filter TCP packets on flag bits.
  • Message type: Rules filter ICMP type or code.
  • Tracked: Matches packets in existing ICMP, UDP, or TCP connections and is valid in ACLs applied to the control plane. The validity of ACLs applied to the data plane varies by switch platform.

 

IPv6 ACL Rule Parameters
Note: When calculating the size of ACLs, be aware that Arista switches install four rules in every IPv6 ACL so that ICMPv6 neighbor discovery packets bypass the default drop rule.

 

All rules in IPv6 ACLs include the following criteria:
  • Protocol: All rules filter on the packet’s IP protocol field. Rule input options include:
    • Protocol name for a limited set of common protocols.
    • Assigned protocol number for all IP protocols.

     

  • Source Address: The packet’s source IPv6 address. Valid rule inputs include:
    • An IPv6 prefix (CIDR). Discontiguous masks are supported.
    • A host IP address (dotted decimal notation).
    • Using any to denote that the rule matches all addresses.

     

  • Destination Address: The packet’s destination IP address. Valid rule inputs include:
    • A subnet address (CIDR or address mask). Discontiguous masks are supported.
    • A host IP address (dotted decimal notation).
    • Using any to denote that the rule matches all addresses.

     

All rules in IPv6 ACLs may include the following criteria:
  • Fragment: Rules filter on the fragment bit.
  • HOP     Compares the packet’s hop-limit value to a specified value. Comparison options include:
    • eq: Packets match if the hop-limit value equals the statement value.
    • gt: Packets match if the hop-limit value is greater than the statement value.
    • lt: Packets match if the hop-limit value is less than the statement value.
    • neq: Packets match if the hop-limit value is not equal to the statement value.

     

The availability of the following optional criteria depends on the specified protocol:
  • Source Ports / Destination Ports: A rule filters on ports when the specified protocol supports IP address-port combinations. Rules provide one of these port filtering values:
    • Using any denotes that the rule matches all ports.
    • A list of ports that matches the packet port. The maximum list size is 10 ports.
    • Negative port list. The rule matches any port not in the list. The maximum list size is 10 ports.
    • Integer (lower bound): The rule matches any port with a number larger than the integer.
    • Integer (upper bound): The rule matches any port with a number smaller than the integer.
    • Range integers: The rule matches any port whose number is between the integers.

     

  • Flag bits: Rules filter TCP packets on flag bits.
  • Message type: Rules filter ICMP type or code.
  • Tracked: Matches packets in existing ICMP, UDP, or TCP connections and is valid in ACLs applied to the control plane. The validity of ACLs applied to the data plane varies by switch platform.

     

Standard IPv4 and IPv6 ACL Rule Parameters
Note: When calculating the size of ACLs, be aware that Arista switches install four rules in every IPv6 ACL so that ICMPv6 neighbor discovery packets bypass the default drop rule.

 

Standard ACLs filter only on the source address.

MAC ACL Rule Parameters
MAC ACLs filter traffic on a packet’s layer 2 header. Criteria that MAC ACLs use to filter packets include:
  • Source Address and Mask: The packet’s source MAC address. Valid rule inputs include:
    • MAC address range (address mask in 3x4 dotted hexadecimal notation).
    • Using any to denote that the rule matches all source addresses.

     

  • Destination Address and Mask: The packet’s destination MAC address. Valid rule inputs include:
    • MAC address range (address mask in 3x4 dotted hexadecimal notation).
    • Using any to denote that the rule matches all destination addresses.

     

  • Protocol: The packet’s protocol as specified by its EtherType field contents. Valid inputs include:
    • Protocol name for a limited set of common protocols.
    • Assigned protocol number for all protocols.

     

Creating and Modifying Lists

The switch provides configuration modes for creating and modifying ACLs. The command that enters an ACL configuration mode specifies the name of the list that the mode modifies. When the configuration mode is exited, the switch saves the list to the running configuration.
  • ACLs are created and modified in ACL configuration mode.
  • Standard ACLs are created and modified in Standard-ACL-configuration mode.
  • MAC ACLs are created and modified in MAC-ACL-configuration mode.

 

Lists created in one mode cannot be modified in any other mode.

A sequence number determines a rule's position within a list. New rules are inserted into a list based on their sequence numbers. You can reference a rule's sequence number to delete it from a list.

ACL Configuration describes procedures for configuring ACLs.

Implementing Access Control Lists

Implement an Access Control List (ACL) by assigning the list to an Ethernet interface, subinterface, port channel interface, or control plane. The switch assigns a default ACL to the control plane unless the configuration contains a valid control-plane ACL assignment statement. Ethernet and port-channel interfaces are not assigned an ACL by default. Apply standard ACLs to interfaces in the same manner as other ACLs.

IPv4 and MAC ACLs are separately applied for inbound and outbound packets. An interface or subinterface can be assigned multiple ACLs, with a limit of one ACL per packet direction per ACL type. A subset of all available switches supports Egress ACLs. The control plane does not support egress ACLs.

Applying ACLs describes procedures for applying ACLs to interfaces or the control plane.

ACL Rule Tracking

ACL rule tracking determines how ACL rules impact traffic on the interfaces where those rules are applied. ACLs provide two tracking mechanisms:
  • ACL logging: Logs a syslog entry when a packet matches specified ACL rules.
  • ACL counters: ACL counters increment when a packet matches a rule in specified ACLs.

 

ACL Logging

ACL rules provide a log option that produces a log message when a packet matches the rule. ACL logging creates a syslog entry when a packet matches an ACL rule where logging is enabled. Packets that match a logging-enabled ACL rule are copied to the CPU by the hardware. These packets trigger the creation of a syslog entry. The information provided in the entry depends on the ACL type or the protocol specified by the ACL. The system applies hardware rate limiting to packets written to the CPU, which prevents potential Denial-of-Service attacks. The logging rate is also limited in software to avoid creating syslog lists that are too large for human operators to use in practical ways.

ACL Rule Tracking Configuration describes procedures for configuring and enabling ACL logging.

ACL Counters

The system assigns an ACL counter to each ACL rule. The activity of the ACL counters for rules within a list depends on the list’s counter state. When the list is in a counting state, the ACL counter of a rule increments when the rule matches a packet. When the list is in a non-counting state, the counter does not increment. A list’s counter state applies to all rules in the ACL. The default state for new ACLs is non-counting.

The system maintains the values of the counters for all rules in the list when an ACL changes from a counting state to a non-counting state or is no longer applied to any interfaces that increment counters. The counters do not reset. When the ACL returns to counting mode or is applied to an interface that increments counters, the counter operation continues from its last value.

Counters never decrement and are reset only through CLI commands.

ACL Rule Tracking Configuration describes procedures for configuring and enabling ACL counters.

Egress ACL Counters

Egress ACL counters count the number of packets matching rules associated with egress ACLs applied to various interfaces in a switch. 7050 and 7060 series switches maintain these counters for every TCAM rule. On these platforms, commands such as show platform trident tcam, show platform trident counters, and show ip access-list always display packet counters greater than zero.

Other switches do not enable counters by default. You must configure counters for each ACL. The show hardware counter and show ip access-list commands display the counters.

 

Configuring Egress ACL Counters

7050 and 7060 series switches enable egress ACL counters and do not require configuration.

For other platforms, to enable egress ACL counters for a specific ACL, use the counters per-entry command in the ACL's configuration mode.

Example

As shown in the following example, configure the counters per-entry command in the ACL configuration mode.

switch(config)# ip access-list acl1
switch(config-acl-acl1)# counters per-entry

 

Enabling Egress Counters Globally

7050 and 7060 series switches enable egress counters.

For other switches, enable IPv4 and IPv6 egress ACL counters in the global configuration mode using the hardware counter feature acl out command.

 

Example

The following examples show how to enable IPv4 and IPv6 egress ACL counters:
switch(config)# hardware counter feature acl out ipv4
switch(config)#

 

switch(config)# hardware counter feature acl out ipv6
switch(config)#

 

Disabling Egress Counters Globally

For 7050 and 7060 series switches, egress counters cannot be disabled.

For other switches, disable IPv4 and IPv6 egress ACL counters in the global configuration mode by using the hardware counter feature acl out command.

The following examples show how to disable IPv4 and IPv6 egress ACL counters:

switch(config)# no hardware counter feature acl out ipv4
switch(config)#

 

switch(config)# no hardware counter feature acl out ipv6
switch(config)#

 

Egress Counter Roll Over in the Global Mode

The counters roll over when the counter value for an ACL rule exceeds 2^64 (2 to the power of 64).

 

Example

In the following example, the hardware counter feature acl ipv6 out command is configured using units and packets.

switch(config)# hardware counter feature acl ipv6 out units packets
switch(config)#

 

The clear ip access-lists counters command clears the counters for all of the IPv4 ACLs or a specific IPv4 ACL, either globally or per CLI session.

 

Example

In the following example the ACL list named red is selected.

switch(config)# clear ip access-list counters red session
switch(config)#

 

The IPv6 egress ACL counters do not work in unshared mode.

 

Example

Use the hardware access-lists resource sharing vlan ipv6 out command to enable egress IPv6 ACL sharing.

switch(config)# hardware access-list resource sharing vlan ipv6 out
switch(config)#

 

The clear ipv6 access-list counters command clears the counters for all of the IPv6 ACLs or a specific IPv6 ACL, either globally or per CLI session.

 

Example

In the following example the ACL list named green is selected.

switch(config)# clear ipv6 access-list counters green session
switch(config)#

 

Displaying Egress ACL Counters

Use the following show commands to display information on Egress ACL Counters.

Use the show ip access-lists command to display all the IPv4 ACLs, or a specific IPv4 ACL configured in a switch. The output contains details such as ACL rules and counter values for each rule.
switch(config)# show ip access-list acl1
IP Access List acl1
        counter per-entry
        10 deny ip 11.1.1.0/24 any dscp af11
        20 deny ip any any [match 39080716, 0:00:00 ago]
        
        Total rules configured: 2
        Configured on Ingress: Et2/1
        Active on     Ingress: Et2/1

 

Use the show ipv6 access-lists command to display all the IPv6 ACLs or a specific IPv6 ACL configured in a switch. The output contains details such as rules in an ACL and respective counter values with each rule.
switch(config)# show ipv6 access-list acl1
IPV6 Access List acl1
        counter per-entry
        10 permit ipv6 any any [match 3450000, 0:00:10 ago]
        20 deny ipv6 any any
        
        Total rules configured: 2
        Configured on Ingress: Et2/1
        Active on     Ingress: Et2/1

 

The counter name EgressAclDropCounter in the output of this show command signifies the aggregate counter value for the remaining egress IPv4 ACL. In this example, the deny rules, with per-rule counters, do not allocate. No per-rule counters are allocated if you do not configure the counter per-entry parameter for the respective ACL.
switch(config)# show hardware counter drop
Summary:
Total Adverse (A) Drops: 0
Total Congestion (C) Drops: 0
Total Packet Processor (P) Drops: 250
Type Chip CounterName : Count : First Occurrence : Last Occurrence
-------------------------------------------------------------------------------
P Fap0 EgressAclDropCounter : 250 : 2015-11-11 22:39:02 : 2015-11-11 22:51:44

 

ACL Configuration

You create and modify Access Control Lists (ACLs) in an ACL-configuration mode. You can edit a list only in the mode where you created it. The switch provides five configuration modes for creating and modifying access control lists:
  • ACL configuration mode for IPv4 access control lists.
  • IPv6-ACL configuration mode for IPv6 access control lists.
  • Std-ACL configuration mode for Standard IPv4 access control lists.
  • Std-IPv6-ACL configuration mode for Standard IPv6 access control lists.
  • MAC-ACL configuration mode for MAC access control lists.

     

Managing ACLs

Creating and Opening a List
To create an ACL, enter one of the following commands, followed by the name of the list:

 

The switch enters the appropriate ACL Configuration Mode for the list. When adding the name of an existing ACL to the command, subsequent commands edit that list (see Modifying an ACL for additional information).

Examples
  • This command places the switch in ACL Configuration Mode to create an ACL named test1.
    switch(config)# ip access-list test1
    switch(config-acl-test1)#

     

  • This command places the switch in ACL Configuration Mode to create a Standard ACL named stest1.
    switch(config)# ip access-list standard stest1
    switch(config-std-acl-stest1)#

     

  • This command places the switch in ACL Configuration Mode to create an MAC ACL named mtest1.
    switch(config)# mac access-list mtest1
    switch(config-mac-acl-mtest1)#

     

Saving List Modifications

ACL Configuration Modes are group-change modes. Changes made in a group-change mode are saved when exiting the mode. To discard changes, use the abort command instead of exit.

Examples
  • Use the following commands to configure the first three rules into a new ACL.
    switch(config-acl-test1)# permit ip 10.10.10.0/24 any
    switch(config-acl-test1)# permit ip any host 10.20.10.1
    switch(config-acl-test1)# deny ip host 10.10.10.1 host 10.20.10.1

     

  • To view the edited list, use the show command.

    switch(config-acl-test1)# show
    IP Access List test1
            10 permit ip 10.10.10.0/24 any
            20 permit ip 10.30.10.0/24 host 10.20.10.1
            30 deny ip host 10.10.10.1 host 10.20.10.1
            40 permit ip any any

     

Because EOS has not saved the changes, the ACL remains empty, as displayed by show ip access-lists.

switch(config-acl-test1)# show ip access-lists test1
switch(config-acl-test1)#

 

Use the exit command to save all current changes to the ACL and exit the ACL configuration mode.

switch(config-acl-test1)# exit
switch(config)# show ip access-lists test1
IP Access List test1
        10 permit ip 10.10.10.0/24 any
        20 permit ip 10.30.10.0/24 host 10.20.10.1
        30 deny ip host 10.10.10.1 host 10.20.10.1
        40 permit ip any any

Total rules configured: 4
        Configured on Ingress: Et1/1
        Active on     Ingress: Et1/1

 

To apply the ACL test1 on an interface, Ethernet1/1, for example, and on the ingress direction, use the following command:
switch(config)# int et1/1
switch(config-if-Et1/1)# ip access-group test1 in

 

Use the exit command to save all changes to the Ethernet interface and exit the interface configuration mode.
switch(config-if-Et1/1)# exit
switch(config)#
switch(config)# show ip access-lists test1
IP Access List test1
        10 permit ip 10.10.10.0/24 any
        20 permit ip 10.30.10.0/24 host 10.20.10.1
        30 deny ip host 10.10.10.1 host 10.20.10.1
        40 permit ip any any

Total rules configured: 4
Configured on Ingress: Et1/1
Active on     Ingress: Et1/1

 

Discarding List Changes

The abort command exits ACL Configuration mode without saving pending changes.

 

Examples
  • The following commands enter the first three rules into a new ACL.
    switch(config-acl-test1)# permit ip 10.10.10.0/24 any
    switch(config-acl-test1)# permit ip any host 10.20.10.1
    switch(config-acl-test1)# deny ip host 10.10.10.1 host 10.20.10.1

     

  • To view the edited list, use the show command.

    switch(config-acl-test1)# show
    IP Access List test1
            10 permit ip 10.10.10.0/24 any
            20 permit ip 10.30.10.0/24 host 10.20.10.1
            30 deny ip host 10.10.10.1 host 10.20.10.1
            40 permit ip any any

     

To discard the changes, use the abort command. If the ACL existed before entering the ACL Configuration Mode, the abort command restores the version that existed before entering the ACL Configuration Mode. Otherwise, the show ip access-lists command displays no output.

switch(config-acl-test1)# abort
switch(config)#

 

Modifying an ACL

An existing ACL, including those applied to interfaces, can be modified by entering the appropriate configuration mode for the ACL as described in Creating and Opening a List. By default, while modifying an ACL, all traffic is blocked on any interface using the ACL.

Permit All Traffic During ACL Update

To avoid packet loss and interference with features like routing and dynamic NAT, you can configure the following switches to permit all traffic on Ethernet and VLAN interfaces during ACL modifications:

  • 7050X
  • 7060X
  • 7150
  • 7250X
  • 7280
  • 7280R
  • 7300X
  • 7320X
  • 7500 series switches

Use the hardware access-list update default-result permit command to configure the preceding switches.

The following commands add deny rules to the appropriate ACL:
The following commands add permit rules to the appropriate ACL:
Adding a Rule

To append a rule to the end of a list, enter the rule without a sequence number while in ACL configuration mode for the list. The switch computes the new rule’s sequence number by adding 10 to the last rule’s sequence number.

 

Examples
  • The following command configures the switch to permit all traffic during ACL modifications on interfaces using the ACL. The rules in modified ACLs go into effect after exiting ACL configuration mode and after populating the ACL rules in hardware.
    switch(config)# hardware access-list update default-result permit 

     

  • The following commands enter the first three rules into a new ACL.
    switch(config-acl-test1)# permit ip 10.10.10.0/24 any
    switch(config-acl-test1)# permit ip any host 10.20.10.1
    switch(config-acl-test1)# deny ip host 10.10.10.1 host 10.20.10.1

     

  • To view the edited list, use the show command.

    switch(config-acl-test1)# show
    IP Access List test1
            10 permit ip 10.10.10.0/24 any
            20 permit ip any host 10.20.10.1
            30 deny ip host 10.10.10.1 host 10.20.10.1

     

  • The following command appends a rule to the ACL. The new rule’s sequence number is 40.
    switch(config-acl-test1)# permit ip any any
    switch(config-acl-test1)# show
    IP Access List test1
            10 permit ip 10.10.10.0/24 any
            20 permit ip any host 10.20.10.1
            30 deny ip host 10.10.10.1 host 10.20.10.1
            40 permit ip any any

     

Inserting a Rule

To insert a rule into an ACL, enter the rule with a sequence number between the existing rules’ numbers.

 

Example
The following command inserts a rule between the first two by assigning the sequence number 15.
Switch(config-acl-test1)# 15 permit ip 10.30.10.0/24 host 10.20.10.1
Switch(config-acl-test1)# show
IP Access List test1
        10 permit ip 10.10.10.0/24 any
        15 permit ip 10.30.10.0/24 host 10.20.10.1
        20 permit ip any host 10.20.10.1
        30 deny ip host 10.10.10.1 host 10.20.10.1
        40 permit ip any any

 

Deleting a Rule
To remove a rule from the current ACL, perform one of these commands:
  • Enter no, followed by the sequence number to delete a rule.
  • Enter no, followed by the actual rule to delete it.
  • Enter default, followed by the actual rule to delete it.

     

Examples
  • These equivalent commands remove rule 20 from the list.
    switch(config-acl-test1)# no 20
    switch(config-acl-test1)# no permit ip any host 10.20.10.1
    switch(config-acl-test1)# default permit ip any host 10.20.10.1

     

  • This ACL results from entering one of the preceding commands.

    switch(config-acl-test1)# show
    ip access list test1
            10 permit ip 10.10.10.0/24 any
            15 permit ip 10.30.10.0/24 host 10.20.10.1
            30 deny ip host 10.10.10.1 host 10.20.10.1
            40 permit ip any any

     

Resequencing Rule Numbers

Sequence numbers determine the order of the rules in an ACL. After editing a list and deleting existing rules while inserting new rules between existing rules, the sequence number distribution may not be uniform. Resequencing rule numbers changes the sequence number of rules to provide a constant difference between adjacent rules. The resequence (ACLs) command adjusts the sequence numbers of ACL rules.

 

Example
The resequence (ACLs) command renumbers rules in the test1 ACL. The sequence number of the first rule is 100; subsequent rule numbers are incremented by 20.
switch(config-acl-test1)# show
IP Access List test1
        10 permit ip 10.10.10.0/24 any
        25 permit ip any host 10.20.10.1
        30 deny ip host 10.10.10.1 host 10.20.10.1
        50 permit ip any any
        90 remark end of list
switch(config-acl-test1)# resequence 100 20
switch(config-acl-test1)# show
IP Access List test1
        100 permit ip 10.10.10.0/24 any
        120 permit ip any host 10.20.10.1
        140 deny ip host 10.10.10.1 host 10.20.10.1
        160 permit ip any any
        180 remark end of list

 

ACL Rule Tracking Configuration

ACL Rules provide a log option that produces a syslog message about the packets matching a desired packet. ACL Logging creates a syslog entry when a packet matches an ACL rule with logging enabled.

 

Example
The following command creates an ACL Rule with logging enabled.
switch(config-acl-test1)# 15 permit ip 10.30.10.0/24 host 10.20.10.1 log
switch(config-acl-test1)#

 

The format of the generated Syslog message depends on the ACL type and the specified protocol:
  • Messages generated by a TCP or UDP packet matching an IP ACL:

    IPACCESS: list acl   intf  filter protocol src-ip(src_port)  ->   dst-ip(dst_port)

     

  • Messages generated by ICMP packets matching an IP ACL:

    IPACCESS: list acl   intf filter icmp src-ip(src-port)   ->   dst-ip(dst-port) type= n code= m

     

  • Messages generated by all other IP packets matching an IP ACL:

    IPACCESS: list acl   intf   filter protocol src-ip -> dst-ip

     

  • Messages generated by packets matching a MAC ACL:

    MACACCESS: list acl   intf filter vlan ether src_mac ->   dst_mac

     

  • Messages generated by a TCP or UDP packet matching a MAC ACL:

    MACACCESS: list acl  intf filter vlan ether ip-prt   src-mac src-ip : src-prt -> dst-mac dst-ip : dst-prt

     

  • Messages generated by any other IP packet matching a MAC ACL:

    MACACCESS: list acl  intf filtervlan ether src_mac src_ip -> dst_mac dst_ip

     

Variables in the Syslog messages display the following values:
  • acl - Specifies the name of the ACL.
  • intf - Specifies the name of the interface receiving the packet.
  • filter - Specifies the action triggered by the ACL as denied or permitted.
  • protocol - Specifies the IP protocol specified by the packet.
  • vlan - Specifies the number of the VLAN receiving the packet.
  • ether - Specifies the EtherType protocol specified by the packet.
  • src-ip and dst-ip - Specifies the source and destination IP addresses.
  • src-prt and dst-prt - Specifies the source and destination ports.
  • src-mac and dst-mac - Specifies the source and destination MAC addresses.

     

ACLs provide a command that configures as counter state as counting or non-counting. The counter state applies to all rules in the ACL. The initial state for new ACLs defaults to non-counting.

The counters per-entry (ACL configuration modes) command places the ACL in counting mode.

The following command places the configuration mode ACL in counting mode.
switch(config-acl-test1)# counters per-entry
switch(config-acl-test1)# exit
switch(config-acl-test1)# show ip access-list test1
IP Access List test1
        counters per-entry
        10 permit ip 10.10.10.0/24 any
        20 permit ip any host 10.20.10.1
        30 deny ip host 10.10.10.1 host 10.20.10.1
        40 permit ip any any
        50 remark end of list
Total rules configured: 5
        Configured on Ingress: Et1
        Active on     Ingress: Et1

 

The clear ip access-lists counters and clear ipv6 access-lists counters commands set the IP access list counters to zero for the specified IP access list.

The following command clears the ACL counter for the test1 ACL.
switch(config)# clear ip access-lists counters test1
switch(config)#

 

Displaying ACLs

Display ACLs using the show running-config command. The show ip access-lists command also displays ACL rosters and contents as specified by command parameters.

When editing an ACL, the show (ACL configuration modes) command displays the current or pending list as specified by command parameters.

Displaying a List of ACLs

To display the roster of ACLs on the switch, use the show [ip | ipv6 | mac] access-lists command with the summary option.

 

Example
The following command lists the available IPv4 access control lists.
switch(config)# show ip access-lists summary
IPV4 ACL default-control-plane-acl
        Total rules configured: 12
        Configured on: control-plane
        Active on    : control-plane

IPV4 ACL list2
        Total rules configured: 3

IPV4 ACL test1
        Total rules configured: 6

IPV4 ACL test_1
        Total rules configured: 1

IPV4 ACL test_3
        Total rules configured: 0
switch(config)#

 

Displaying Contents of an ACL

 

Each command can display the contents of one ACL or of all ACLs of the type specified by the command:

  • To display the contents of one ACL, enter show acl_type access-lists followed by the name of the ACL. The acl_type can be ip, ipv6, mac or null.
  • To display the contents of all ACLs on the switch, enter the command without any options.

ACLs in counting mode display the number of inbound packets matching each rule in the list and the elapsed time since the last match.

 

Examples
  • The following command displays the rules in the default-control-plane-acl IP ACL, configuration, and status.
    switch# show ip access-lists default-control-plane-acl
    IP Access List default-control-plane-acl [readonly]
            counters per-entry
            10 permit icmp any any
            20 permit ip any any tracked [match 1725, 0:00:00 ago]
            30 permit ospf any any
            40 permit tcp any any eq ssh telnet www snmp bgp https
            50 permit udp any any eq bootps bootpc snmp [match 993, 0:00:29 ago]
            60 permit tcp any any eq mlag ttl eq 255
            70 permit udp any any eq mlag ttl eq 255
            80 permit vrrp any any
            90 permit ahp any any
            100 permit pim any any
            110 permit igmp any any [match 1316, 0:00:23 ago]
            120 permit tcp any any range 5900 5910
    Total rules configured: 12
                 Configured on Ingress: control-plane(default VRF)
                 Active on     Ingress: control-plane(default VRF)

     

  • The following command displays the rules, configuration, and status of all the IP ACLs on the switch.
    switch# show ip access-lists
    IP Access List default-control-plane-acl [readonly]
            counters per-entry
            10 permit icmp any any
            20 permit ip any any tracked [match 1371, 0:00:00 ago]
            30 permit ospf any any
            40 permit tcp any any eq ssh telnet www snmp bgp https
            50 permit udp any any eq bootps bootpc snmp
            60 permit tcp any any eq mlag ttl eq 255
            70 permit udp any any eq mlag ttl eq 255
            80 permit vrrp any any
            90 permit ahp any any
            100 permit pim any any
            110 permit igmp any any [match 1316, 0:00:23 ago]
            120 permit tcp any any range 5900 5910
    
            Total rules configured: 12
            Configured on Ingress: control-plane(default VRF)
            Active on     Ingress: control-plane(default VRF)
    
    IP Access List list2
            10 permit ip 10.10.10.0/24 any
            20 permit ip 10.30.10.0/24 host 10.20.10.1
            30 permit ip any host 10.20.10.1
            40 deny ip host 10.10.10.1 host 10.20.10.1
            50 permit ip any any
    
            Total rules configured: 5
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    
    
    IP Access List test1
    switch(config)#
    

     

Displaying ACL Modifications
While editing an ACL in ACL Configuration Mode, the show command provides options for displaying ACL contents.
  • To display the list, as modified in ACL configuration mode, enter show or show pending.
  • To display the list, as stored in running-config, enter show active.
  • To display differences between the pending list and the stored list, enter show diff.

 

Examples

The examples in this section display previously configured ACL commands.

The configuration stores these parameters:

10 permit ip 10.10.10.0/24 any
20 permit ip any host 10.21.10.1
30 deny ip host 10.10.10.1 host 10.20.10.1
40 permit ip any any
50 remark end of list

 

The current edit session removed this command, and the change not yet stored to the running-config:

20 permit ip any host 10.21.10.1

 

The current edit session added these commands to the ACL, and the change not yet stored to the running-config:

20 permit ip 10.10.0.0/16 any
25 permit tcp 10.10.20.0/24 any
45 deny pim 239.24.124.0/24 10.5.8.4/30

 

The following command displays the pending ACL as modified in the ACL Configuration Mode.
switch(config-acl-test_1)# show pending
IP Access List test_1
        10 permit ip 10.10.10.0/24 any
        20 permit ip 10.10.0.0/16 any
        25 permit tcp 10.10.20.0/24 any
        30 deny ip host 10.10.10.1 host 10.20.10.1
        40 permit ip any any
        45 deny pim 239.24.124.0/24 10.5.8.4/30
        50 remark end of list

 

The following command displays the ACL as stored in the configuration.
switch(config-acl-test_1)# show active
IP Access List test_1
        10 permit ip 10.10.10.0/24 any
        20 permit ip any host 10.21.10.1
        30 deny ip host 10.10.10.1 host 10.20.10.1
        40 permit ip any any
        50 remark end of list

 

The following command displays the difference between the saved and modified ACLs.

  • A plus sign (+) denotes rules added to the pending list.
  • A minus sign (-) denotes rules removed from the saved list.
    switch(config-acl-test_1)# show diff
    ---
    +++
    @@ -1,7 +1,9 @@
     IP Access List test_1
             10 permit ip 10.10.10.0/24 any
    -        20 permit ip any host 10.21.10.1
    +        20 permit ip 10.10.0.0/16 any
    +        25 permit tcp 10.10.20.0/24 any
             30 deny ip host 10.10.10.1 host 10.20.10.1
             40 permit ip any any
    +        45 deny pim 239.24.124.0/24 10.5.8.4/30

 

Displaying Egress ACL Counters

The following show commands display Egress ACL Counters information.

Use the show ip access-lists command to display all the IPv4 ACLs, or a specific IPv4 ACL configured in a switch. The output contains details such as rules in an ACL as well as the respective counter values with each rule, configuration, and status.
switch(config)# show ip access-list acl1
IP Access List acl1
 counter per-entry
 10 deny ip 11.1.1.0/24 any dscp af11
 20 deny ip any any [match 39080716, 0:00:00 ago]

 Total rules configured: 2
 Configured on Ingress: Et2/1
 Active on     Ingress: Et2/1

 

Use the show ipv6 access-lists command to display all the IPv6 ACLs or a specific IPv6 ACL configured in a switch. The output contains details such as rules in an ACL and the respective counter values with each rule along with the configuration and status.
switch(config)# show ipv6 access-list acl1
IPV6 Access List acl1
 counter per-entry
 10 permit ipv6 any any [match 3450000, 0:00:10 ago]
 20 deny ipv6 any any

 Total rules configured: 2
 Configured on Ingress: Et1/1
 Active on     Ingress: Et1/1

 

The counter name EgressAclDropCounter in the output of this show command signifies the aggregate counter value for the remaining egress IPv4 ACL. In this example, the deny rules, with per rule counters, are not allocated. The per-rule counters are not allocated when the user does not configure the counter per-entry parameter for the respective ACL.
switch(config)# show hardware counter drop
Summary:
Total Adverse (A) Drops: 0
Total Congestion (C) Drops: 0
Total Packet Processor (P) Drops: 250
Type Chip CounterName : Count : First Occurrence : Last Occurrence
-------------------------------------------------------------------------------
P Fap0 EgressAclDropCounter : 250 : 2015-11-11 22:39:02 : 2015-11-11 22:51:44

 

Configuring Per-Port Per-VLAN QoS

To configure per-port per-VLAN Quality of Service (QoS), first configure the ACL policing for QoS and then apply the policy map on a single Ethernet or port-channel interface on a per-port per-VLAN basis. The per port per VLAN QoS allows a class map to match traffic for a single VLAN or for a range of VLANs separated by commas. Per-port per-VLAN only works with QoS-based class maps.

To configure per-port per-VLAN QoS on DCS-7280(R) and DCS-7500(R), change the TCAM profile to QoS as shown in the following steps:
  1. Change the TCAM profile to QoS.
    switch# config
    switch(config)# hardware tcam profile qos

     

  2. Create an ACL and then match the traffic packets based on the VLAN value and the VLAN mask configured in the ACL.
    switch(config)# ip access-list acl1
    switch(config-acl-acl1)# permit vlan 100 0xfff ip any any
    switch(config-acl-acl1)# exit

     

  3. Similarly, create a class map and then match the traffic packets based on the range of VLAN values configured in the class map.
    switch(config)# class-map match-any class1
    switch(config-cmap-qos-class1)# match vlan 20-40, 1000-1250, 2000
    switch(config-cmap-qos-class1)# exit

     

Displaying Per-Port Per-VLAN QoS

The following show commands display the status, traffic hit counts, TCAM profile information, and policy maps configured on an interface.

 

Examples
  • The show policy-map command displays the policy-map information of the configured policy-map.

    switch# show policy-map policy1
    Service-policy policy1
    Class-map: class1 (match-any)
    Match: ip access-group name acl1
    Police cir 512000 bps bc 96000 bytes
    Class-map: class-default (match-any)

     

  • The show policy-map interface command displays the policy-map configured on an interface.

    switch# show policy-map interface ethernet 1
    Service-policy input: p1
    Hardware programming status: Successful
    Class-map: c2001 (match-any)
    Match: vlan 2001 0xfff
    set dscp 4
    Class-map: c2002 (match-any)
    Match: vlan 2002 0xfff
    set dscp 8
    Class-map: c2003 (match-any)
    Match: vlan 2003 0xfff
    set dscp 12

     

Configuring Mirror Access Control Lists

Access Control Lists (ACLs) are configured to permit or deny traffic between source and destination ports on Strata-based platforms. Mirror ACLs are used in mirroring traffic by matching VLAN ID of the configured ACLs. Mirror ACLs are applied for IPv4, IPv6, and MAC ACLs.

 

Note:Mirror ACLs work only in the receiving direction.

 

Examples
  • The following commands configure ACL to permit VLAN traffic between any source and destination host.
    switch(config)# ip access-list acl1
    switch(config-acl-acl1)# permit vlan 1234 0x0 ip any any

     

  • The following commands configure monitor session sess1 with Ethernet 1 as source port and Ethernet 2 as the destination port for an ingress ip acl_1.
    switch(config)# monitor session sess1 source ethernet 1 rx ip access-group acl1
    switch(config)# monitor session sess1 destination ethernet 2

     

Applying ACLs

Access Control Lists (ACLs) become active when assigned to an interface, subinterface, or control plane. This section describes the process of adding and removing ACL interface assignments.

Applying an ACL to an Interface

The switch must be in interface configuration mode to assign an ACL to an interface or subinterface.
  • The ip access-group command applies the specified IP or standard IP ACL to the configuration mode interface or subinterface.
  • The ip access-group command applies the specified IP or standard IP ACL to the control plane traffic.
  • The mac access-group command applies the specified MAC ACL to the configuration mode interface.

 

IPv4, IPv6, and MAC ACLs are separately applied for inbound and outbound packets. You can assign an interface or subinterface with multiple ACLs, with a limit of one ACL per packet direction per ACL type. A subset of all available switches support Egress ACLs. IPv6 egress ACLs have limited availability, and IPv6 egress ACLs applied to routed interfaces or subinterfaces across the same chip on the DCS-7500E and the DCS-7280E series can be shared. In addition to that, the DSCP value can match on IPv6 egress ACLs. This ability results in more efficient utilization of system resources and is particularly useful for environments with few, potentially large, IPv6 egress ACLs applied across multiple routed interfaces.

 

Examples

  • These commands assign test1 ACL to interface ethernet 3, and verify the assignment.
    switch(config)# interface ethernet 3
    switch(config-if-Et3)# ip access-group test1 in
    switch(config-if-Et3)# show running-config interfaces ethernet 3
    interface Ethernet3
       ip access-group test1 in
    switch(config-if-Et3)#

     

  • The following commands place the switch in control plane configuration mode and applies the ACL assignment to the control plane traffic.
    switch(config)# control-plane
    switch(config-cp)# ip access-group test_cp in

     

  • The following command enables shared ACLs.
    switch(config)# hardware access-list resource sharing vlan ipv6 out
    switch(config)#

     

  • The following command disables shared ACLs.
    switch(config)# no hardware access-list resource sharing vlan ipv6 out
    switch(config)#

     

  • The following commands apply an IPv4 ACL named test_ACL to ingress traffic on interface ethernet 5.1.
    switch(config)# interface ethernet 5.1
    switch(config-if-Et5.1)# ipv4 access-group test_ACL in
    switch(config-if-Et5.1)#

     

Removing an ACL from an Interface

The no ip access-group command removes an IP ACL assignment statement from running-config for the configuration mode interface. After removing an ACL, the interface is no longer associated with an IP ACL.

The no mac ip access-group command removes a MAC ACL assignment statement from running-config for the configuration mode interface. After removing a MAC ACL is removed, the interface is no longer associated with an MAC ACL.

To remove an ACL from the control plane, enter the no ip access-group command in control plane configuration mode. Removing the control plane ACL command from running-config reinstates default-control-plane-acl as the control plane ACL.

 

Examples

  • The following commands remove the assigned IPv4 ACL from interface ethernet 3.
    switch(config)# interface ethernet 3
    switch(config-if-Et3)# no ip access-group test in
    switch(config-if-Et3)#

     

  • The following commands place the switch in control plane configuration mode and remove the ACL assignment from running-config, restoring default-control-plane-acl as the control plane ACL.
    switch(config)# control-plane
    switch(config-cp)# no ip access-group test_cp in
    switch(config-cp)#

     

Service ACLs

Service Access Control List Description

Service ACL enforcement is a feature added to a control plane service (the SSH server, the SNMP server, routing protocols, etc.) that allows the switch administrator to restrict the processing of packets and connections by the control plane processes that implement that service. The control plane program run by the control plane process checks already received packets and connections against a user-configurable Access Control List (ACL), a Service ACL.

The Service ACL contains permit and deny rules matching any source address, destination address, and TCP or UDP ports of received packets or connections. After receiving a packet or connection, the control plane process evaluates the packet or connection against the rules of the Service ACL configured for the control plane process. If the received packet or connection matches a deny rule, the control plane process drops or closes it without further processing.

Control Plane Process Enforced Access Control enables the system administrator to restrict which systems on the network can access the services provided by the switch. Each service has its own access control list, giving the system administrator fine-grained control over access to the switch's control plane services. The CLI for this uses the familiar pattern of access control lists assigned for a specific purpose, in this case, for each control plane service.

Configuring Service ACLs and Displaying Status and Counters

SSH Server

To apply the SSH Server Service ACLs for IPv4 and IPv6 traffic, use the ip access-group (Service ACLs) and ipv6 access-group (Service ACLs) commands in config-mgt-ssh configuration mode:

switch(config)# management ssh
switch(config-mgmt-ssh)# ip access-group <acl_name> [vrf <vrf_name>] in
switch(config-mgmt-ssh)# ipv6 access-group <acl_name> [vrf <vrf_name>] in

 

In Release EOS-4.19.0, all VRFs are required to use the same SSH Server Service ACL. The Service ACL assigned without the vrf keyword is applied to all VRFs where the SSH Server is enabled.

Use the following commands to display the status and counters of the SSH Server Service ACLs:

switch# show management ssh ip access-list
switch# show management ssh ipv6 access-list

 

SNMP Server

Use the snmp-server community command to apply the SNMP Server Service ACLs to restrict which hosts can access SNMP services on the switch:

Example

switch(config)# snmp-server community community-name [view viewname] [ro | rw] acl_name
switch(config)# snmp-server community community-name [view viewname] [ro | rw] ipv6 ipv6_acl_name

 

EAPI

Use the ip access-group (Service ACLs) and ipv6 access-group (Service ACLs) commands to apply Service ACLs to the EOS Application Programming Interface (EAPI) Server:

switch(config)# management api http-commands
switch(config-mgmt-api-http-cmds)# vrf <vrf_name>
switch(config-mgmt-api-http-cmds-vrf-<vrf>)# ip access-group <acl_name>
switch(config-mgmt-api-http-cmds-vrf-<vrf>)# ipv6 access-group <ipv6_acl_name>

 

Use the following commands to display the status and counters of the EAPI server Service ACLs:

switch# show management api http-commands ip access-list
switch# show management api http-commands ipv6 access-list

 

BGP

Use the ip access-group (Service ACLs) and ipv6 access-group (Service ACLs) commands to apply Service ACLs for controlling connections to the BGP routing protocol agent:

switch(config)# router bgp <asn>
switch(config-router-bgp)# ip access-group <acl_name>
switch(config-router-bgp)# ipv6 access-group <ipv6_acl_name>
switch(config-router-bgp)# vrf <vrf_name>
switch(config-router-bgp-vrf-<vrf>)# ip access-group <acl_name>
switch(config-router-bgp-vrf-<vrf>)# ipv6 access-group <ipv6_acl_name>

 

Use the following commands to display the status and counters of the BGP routing protocol Service ACLs:

switch# show bgp ipv4 access-list
switch# show bgp ipv6 access-list

 

UCMP Auto Adjust for BGP

Unequal Cost MultiPath (UCMP) for BGP forwards traffic based on weight assignments for next hops of Equal Cost MultiPath (ECMP) routes. The system programs the weights in the Forwarding Information Base (FIB).

Devices that receive BGP routes disseminate BGP link-bandwidth extended community attribute information. These devices then program the next hops in the FIB using the received link-bandwidth values. The system appends the percentage of interface speed to the received link bandwidth extended community value of the route. It adjusts the weight ratio of the traffic sent over egress ports to forward more traffic toward the peer with a higher interface speed.

Configuring UCMP Auto Adjust for BGP

The following command enables the weight adjustment and configures the adjust auto to 62.3 percent.

switch(config-router-bgp)# neighbor group1 link-bandwidth adjust auto percent 62.3

 

PERCENT is a float value between 0.0 and 100.0 and is optional.

OSPF

Use the ip access-group (Service ACLs) and ipv6 access-group (Service ACLs) commands to apply Service ACLs to control packets processed by the OSPF routing protocol agent:

Example

switch(config)# router ospf <id>
switch(config-router-ospf)# ip access-group <acl_name>
switch(config-router-ospf)# ipv6 access-group <ipv6_acl_name>

 

When using VRFs, each per VRF OSPF instance must be explicitly assigned its Service ACL.

Use the following commands to display the OSPF routing protocol Service ACLs' status and counters:

switch# show ospf ipv4 access-list
switch# show ospf ipv6 access-list

 

PIM

Use the access-group command to apply Service ACLs for controlling packets processed by the PIM routing protocol agent:

switch(config)# router pim
switch(config-router-pim)# ipv4
switch(config-router-pim-ipv4)# access-group <acl_name>
switch(config-router-pim-ipv4)# vrf <vrf_name>
switch(config-router-pim-vrf-<vrf>)# ipv4
switch(config-router-pim-vrf-<vrf>-ipv4)# access-group <acl_name>

 

Use the following command to display the status and counters of the PIM routing protocol Service ACLs.

switch# show ip pim access-list

 

IGMP

Use the ip igmp access-group command to apply Service ACLs for controlling packets processed by the IGMP management protocol agent:

switch(config)# router igmp
switch(config-router-igmp)# ip igmp access-group <acl_name>
switch(config-router-igmp)# vrf <vrf_name>
switch(config-router-igmp-vrf-<vrf>)# ip igmp access-group <acl_name>

 

Use the following command to display the status and counters of the IGMP management protocol Service ACLs.

switch# show ip igmp access-list

 

DHCP Relay

Use the ip dhcp relay access-group and ipv6 dhcp relay access-group commands to apply Service ACLs for controlling packets processed by the DHCP relay agent:

switch(config)# ip dhcp relay access-group <acl_name> [vrf <vrf_name>]
switch(config)# ipv6 dhcp relay access-group <acl_name> [vrf <vrf_name>]

 

Use the following commands to display the status and counters of the DHCP relay agent Service ACLs:

switch# show ip dhcp relay access-list
switch# show ipv6 dhcp relay access-list

 

LDP

Use the ip access-group (Service ACLs) to apply Service ACLs for controlling packets and connections processed by the LDP MPLS label distribution protocol:

 

switch(config)# mpls ldp 
switch(config-mpls-ldp)# ip access-group <acl_name>

 

Use the following command to display the status and counters of the LDP Service ACLs.

switch# show mpls ldp access-list

 

LANZ

Use the ip access-group (Service ACLs) and ipv6 access-group (Service ACLs) commands to apply Service ACLs for controlling connections accepted by the LANZ agent:

switch(config)# queue-monitor streaming
switch(config-qm-streaming)# ip access-group <acl_name>
switch(config-qm-streaming)# ipv6 access-group <ipv6_acl_name>

 

Use the following command to display the status and counters of the LDP Service ACLs.

switch# show queue-monitor streaming access-lists

 

MPLS Ping and Traceroute

Use the ip access-group (Service ACLs) and ipv6 access-group (Service ACLs) commands to apply Service ACLs for controlling connections accepted by the MPLS Ping agent:

switch(config)# mpls ping
switch(config-mpls-ping)# ip access-group <acl_name> [vrf <vrf_name>]
switch(config-mpls-ping)# ipv6 access-group <ipv6_acl_name> [vrf <vrf_name>]

 

Telnet Server

Use the ip access-group (Service ACLs) and ipv6 access-group (Service ACLs) commands to apply Service ACLs to the Telnet server:

switch(config)# management telnet
switch(config-mgmt-telnet)# ip access-group <acl_name> [vrf <vrf_name>] in
switch(config-mgmt-telnet)# ipv6 access-group <ipv6_acl_name> [vrf <vrf_name>] in

 

In EOS 4.19.0, all VRFs are required to use the same Telnet server Service ACL. The Service ACL assigned without the vrf keyword is applied to all VRFs where the Telnet server is enabled.

Use the following commands to display the status and counters of the LDP Service ACLs:

switch# show management telnet ip access-list
switch# show management telnet ipv6 access-list

 

Sub-interface ACLs

This Sub-interface ACLs feature enables ACL functionality on subinterfaces.

Configuring Sub-interface ACLs

Configure the ACLs on subinterfaces using the following command.

 

ip|ipv6 access-group acl-name in | out

 

Use the following command to unconfigure the ACLs on subinterfaces.

no ip|ipv6 access-group in | out

Configuring ACL Mirroring on a Subinterface Source

Configure a mirror session using subinterface sources and apply explicit ACLs to each source in the session. EOS only supports ingress mirroring from the Rx direction.

Use the following commands to configure a session, ACLMirror1, on Ethernet5/1.1, Ethernet5/1.2, Ethernet6/1 as the source, acl1 as the ACL group, and Ethernet 14/1 as the destination:

switch(config)# monitor session ACLMirror1 source Ethernet 5/1.1 rx
switch(config)# monitor session ACLMirror1 source Ethernet 5/1.2 rx ip access-group acl1
switch(config)# monitor session ACLMirror1 source Ethernet 6/1 rx
switch(config)# monitor session ACLMirror1 destination Ethernet 14/1

Displaying the ACL Mirroring Information

Use the show monitor session command to display the session information:

switch(config)# show monitor session
Session ACLMirror1
------------------------
        
Programmed in HW: Yes
        
Source Ports:
        
  Rx Only:     Et5/1.2(IP ACL: acl1), Et5/1.1
               Et6/1
        
Destination Ports:
        
    Et14/1 :  active

Sub-interface ACLs Limitations

The sub-interface ACLs feature contains the following limitations:
  • Egress IPv4 ACLs on subinterfaces are not supported when sharing mode is disabled for Egress IPv4 RACLs.
  • Egress IPv6 ACL deny logging is not supported on subinterfaces.
  • Blocking traffic while modifying ACLs is not supported on Egress IPv4 ACLs on subinterfaces.

     

Sub-interface ACLs Show Commands

The show ip access-lists and show ipv6 access-lists commands display the summary of a configured ACL including the subinterface on which the ACL is configured and active.

 

show ip|ipv6 access-lists acl-name summary

 

Examples

switch(config)# show ip access-lists acl1 summary 
IPV4 ACL acl1
 Total rules configured: 1
 Configured on Ingress: Et5.1
 Active on Ingress: Et5.1

 

switch(config)# show ipv6 access-lists acl1 summary 
IPV6 ACL acl1
 Total rules configured: 1
 Configured on Egress: Et5.1
 Active on Egress: Et5.1

 

RACL Sharing on SVIs

IPv4 Ingress Sharing

IPv4 ingress sharing optimizes the utilization of hardware resources by sharing them between different VLAN interfaces when they have the same ACL attached.

Larger deployments benefit from this function, where IPv4 ingress sharing is applied on multiple SVIs with member interfaces on the same forwarding ASIC. For example, a trunk port carrying multiple VLANs and an ingress sharing is applied on all VLANs; it occupies lesser hardware resources irrespective of the number of VLANs. By default, IPv4 ingress sharing is disabled on the switches.

To enable IPv4 Ingress Sharing, use the no hardware access-list resource sharing vlan in command.
Note: Enabling or disabling the IPv4 ingress sharing requires the restart of software agents on the switches which is a disruptive process and will impact the traffic forwarding.
The no form of the command disables the IPv4 ingress sharing on the switch. To display the IPv4 ingress sharing information use show platform trident command on the switch.

IPv4 Egress Sharing

IPv4 Egress Sharing optimizes the utilization of hardware resources by sharing TCAM entries for a group of SVIs on which IPv4 ACLs are shared. The TCAM entries are shared for all the SVIs per chip, saving a lot of hardware resources and enabling ACLs to scale to larger configurations.

Larger deployments benefit from IPv4 Egress Sharing, which is applied on multiple SVIs with member interfaces on the same forwarding ASIC. For example, a trunk port carrying multiple VLANs, and when applying Egress Sharing on all VLANs, it occupies lesser hardware resources irrespective of the number of VLANs.

By default, the system enables IPv4 Egress Sharing on the switches. However, enabling both IPv4 Egress Sharing and uRPF cannot at the same time is not possible. Disabling IPv4 RACL sharing will allow uRPF configuration and ensure the simultaneous configuration of the RACL in non-shared mode.

To enable unicast Reverse Path Forwarding (uRPF) on the switch, the IPv4 Egress Sharing must be disabled using the no hardware access-list resource sharing vlan ipv4 out command.

If IPv4 Egress Sharing was previously disabled from the default configuration, use the hardware access-list resource sharing vlan ipv4 out command to enable it.
Note: Enabling or disabling IPv4 Egress Sharing requires restarting software agents on the switches, which is a disruptive process and will impact the traffic forwarding.
Use the following show commands to verify the IPv4 Egress Sharing information on the switch.

Configuring IPv4 Egress Sharing

The hardware access-list resource sharing vlan ipv4 out command enables IPv4 Egress Sharing on the switch.
Note: IPv4 Egress Sharing is enabled by default.

The no form of the command disables the switch's IPv4 Egress Sharing, allowing you to configure the uRPF.

Displaying IPv4 Egress Sharing Information

Examples
  • The show ip access-lists command displays the list of all the configured IPv4 ACLs.
    switch# show ip access-lists summary
    IPV4 ACL default-control-plane-acl [readonly]
     Total rules configured: 17
     Configured on Ingress: control-plane(default VRF)
     Active on Ingress: control-plane(default VRF)
    
    IPV4 ACL ipAclLimitTest
     Total rules configured: 0
     Configured on Egress: Vl2148,2700
     Active on Egress: Vl2148,2700

     

  • The show vlan command displays the list of all the member interfaces under each SVI.
    switch# show vlan
    VLAN  Name           Status    Ports
    ----- -------------- --------- -----------------
    1     default        active
    2148  VLAN2148       active    Cpu, Et1, Et26
    2700  VLAN2700       active    Cpu, Et18

     

  • The show platform arad acl tcam command displays the number of TCAM entries (hardware resources) occupied by the ACL on each forwarding ASIC and the percentage of TCAM utilization per forwarding ASIC.
    switch# show platform arad acl tcam detail
    ip access-list ipAclLimitTest (Shared RACL, 0 rules, 1 entries, direction out, 
    state success, Acl Label 2)
    Fap: Arad0, Shared: true, Interfaces: Vl2148, Vl2700
    Bank Offset Entries
    0         0       1
    Fap: Arad1, Shared: true, Interfaces: Vl2148
    Bank Offset Entries
    0         0       1
    
    switch# show platform arad acl tcam summary
    The total number of TCAM lines per bank is 1024.
    ========================================================
    Arad0:
    ========================================================
     Bank   Used                  Used %             Used By
        0      1                       0   IP Egress PACLs/RACLs
    Total Number of TCAM lines used is: 1
    ========================================================
    Arad1:
    ========================================================
     Bank   Used                   Used %            Used By
        0      1                        0   IP Egress PACLs/RACLs
    Total Number of TCAM lines used is: 1

     

  • The show ip route 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

     

  • The show platform arad ip route command displays the platform unicast forwarding routes.
    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  |10.3.0.0/16        |TRAP | CoppSystemL3DstMiss|2700 | - | ArpTrap | - |1034 | -
    |0  |127.0.0.0/8        |TRAP | CoppSystemL3DstMiss|0    | - | ArpTrap | - |1031 | -
    |0  |172.17.0.0/16      |TRAP | CoppSystemL3DstMiss|0    | - | ArpTrap | - |1025 | -
    |0  |172.18.0.0/16      |TRAP | CoppSystemL3DstMiss|0    | - | ArpTrap | - |1025 | -
    |0  |172.19.0.0/16      |TRAP | CoppSystemL3DstMiss|0    | - | ArpTrap | - |1025 | -
    |0  |172.20.0.0/16      |TRAP | CoppSystemL3DstMiss|0    | - | ArpTrap | - |1025 | -
    |0  |172.22.0.0/16      |TRAP | CoppSystemL3DstMiss|0    | - | ArpTrap | - |1025 | -
    |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.2.0.0/32*       |TRAP | CoppSystemIpBcast  |0    | - | BcastReceive | - 
    |1027 | -
    |0  |10.2.0.1/32*       |TRAP | CoppSystemIpUcast  |0    | - | Receive | - |32766| -
    |0  |10.2.255.1/32*     |ROUTE| Et1                |2148 |2 | 00:1f:5d:6d:54:dc | 
    - |1036 | -
    |0  |10.2.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 | -

     

Route Maps

A route map is an ordered set of rules that controls the redistribution of IP routes into a protocol domain based on criteria such as route metrics, access control lists, next-hop addresses, and route tags. Route maps can also alter route parameters as they are redistributed.

Route Map Description

Route maps are composed of route map statements, each consisting of a list of match and set commands.

Route Map Statements

Route map statements are categorized by the resolution of routes that the statement filters.
  • Permit statements facilitate the redistribution of matched routes.
  • Deny statements prevent the redistribution of matched routes.

 

Route map statement elements include name, sequence number, filter type, match commands, set commands, and continue commands.
  • The name identifies the route map to which the statement belongs.
  • The sequence number designates the statement’s placement within the route map.
  • A filter type specifies the route resolution. Valid types are permit and deny.
  • The match commands specify criteria that select the routes the statement evaluates for redistribution.
  • The set commands modify route parameters for redistributed routes.
  • The continue commands prolong the route map evaluation of routes that match a statement.

 

Statements filter routes for redistribution. Routes that statements pass are redistributed (permit statements) or rejected (deny statements). The next statement in the route map then filters routes that statements fail.
  • When a statement does not contain a match command, the statement passes all routes.
  • When a statement contains a single match command that lists a single object, the statement passes routes whose parameters match the object.
  • When a statement contains a single match command that lists multiple objects, the statement passes routes whose parameters match at least one object.
  • When a statement contains multiple match commands, the statement passes routes whose parameters match all match commands.

 

The Set commands modify parameters for redistributed routes and are valid in permit statements.

 

Example

The following route map statement is named MAP_1 with sequence number 10. The statement matches all routes from BGP Autonomous System 10 and redistributes them with a local preference set to 100. Routes that do not match the statement are evaluated against the next statement in the route map.
switch# route-map MAP_1 permit 10
   match as 10
   set local-preference 100 

 

Route Maps with Multiple Statements

A route map consists of statements with the same name and different sequence numbers. Statements filter routes by ascending order based on their sequence numbers. When a statement passes a route, the redistribution action is performed as the filter type specifies, ignoring all subsequent statements. When the statement fails the route, the statement with the smallest sequence number larger than the current one filters the route.

All route maps contain an implied final statement containing a single deny statement without a match command. This statement denies the redistribution of any routes that no other statement passes.

 

Example

The following route map is named MAP_1 and has two permit statements. Routes that do not match either statement are denied redistribution into the target protocol domain.
switch# route-map MAP_1 permit 10
   match as 10
   set local-preference 100 
!
switch# route-map MAP_1 permit 20
   match metric-type type-1
   match as 100

 

Route Map Configuration describes route map configuration procedures.

Route Maps with Multiple Statements and Continue Commands

Route map statements that contain a continue (route map) command support additional route map evaluation of routes whose parameters meet the statement’s match commands. Routes that match a statement containing a continue command are evaluated against the statement specified by the continue command.

When a route matches multiple route-map statements, the filter action (deny or permit) is determined by the last statement that the route matches. The set commands in all statements matching the route are applied to the route after the route map evaluation is complete. Multiple set commands are applied in the same order by which the route was evaluated against the statements containing them.

 

Example

The following route map is named MAP_2 with a permit and a deny statement. The permit statement contains a continue command. Routes that match statement 10 are evaluated against statement 20.
switch# route-map MAP_2 permit 10
   match as 10
   continue 20
   set local-preference 100 
!
switch# route-map MAP_2 deny 20
   match metric-type type-1
   match as 100

 

The route is redistributed if it passes statement 10 and is rejected by statement 20. The route is denied redistribution in all other instances. The continue command guarantees the evaluation of all routes against both statements.

Route Map Configuration

Route maps are created and modified in route-map configuration mode. These sections describe the configuration mode and its commands.

Route Map Creation and Editing

Creating a Route Map Statement

To create a route map, use the route-map command, including the map name and filter type (deny or permit). If the command does not specify a number, the system assigns a default sequence number to the statement.

 

Example
The following command places the switch in the route map configuration mode and creates a route map statement named map1 with a sequence number of 50.
switch(config)# route-map map1 permit 50
switch(config-route-map-map1)#

 

Editing a Route Map Statement

To edit an existing route map statement, use the route-map, including the map’s name and the statement’s number. The switch enters the route map configuration mode for the statement. Subsequent match (route-map) and set (route-map) commands add the corresponding commands to the statement.

The show command displays the contents of the existing route map.

 

Example
The following command places the switch in the route map configuration mode to edit an existing route map statement. The show command displays the contents of all statements in the route map.
switch(config)# route-map MAP2
switch(config-route-map-MAP2)#show
  Match clauses:
    match as 10
    match tag 333
  Set clauses:
    set local-preference 100
switch(config-route-map-MAP2)#

 

Saving Route Map Modifications

Route map configuration mode is a group-change mode. You can save changes by exiting the mode, either with an explicit exit command or by switching directly to another configuration mode. This includes switching to the configuration mode for a different route map.

 

Example

The first command creates the map1 statement with a sequence number of 10. The second command is not yet saved to the route map, as displayed by the show command.

switch(config)# route-map map1 permit
switch(config-route-map-map1)# match as 100
switch(config-route-map-map1)# show

switch(config-route-map-map1)#

 

The exit command saves the match command.

switch(config-route-map-map1)# exit
switch(config)# show route-map map1
route-map map1 permit 10
  Match clauses:
    match as 100
  Set clauses:
switch(config)#

 

Discarding Route Map Modifications

The abort command discards all pending changes and exits route-map configuration mode.

 

Example
The abort command discards the pending match command and restores the original route map.
switch(config)# route-map map1 permit
switch(config-route-map-map1)# match as 100
switch(config-route-map-map1)# abort
switch(config)# show route-map map1
switch(config)#

 

Modifying Route Map Components

The following commands add rules to the configuration mode route map:

 

Inserting a Statement

To insert a new statement into an existing route map, create a new statement with a sequence number that differs from any existing statement in the map.

 

Example
The following commands add statement 50 to the Map1 route map and a match statement of 150. They save the configuration using exit then display the new route map using show route-map Map1.
switch(config)# route-map Map1 permit 50
switch(config-route-map-Map1)# match as 150
switch(config-route-map-Map1)# exit
switch(config)# show route-map Map1
route-map Map1 deny 10
  Match clauses:
    match as 10
    match tag 333
  Set clauses:
    set local-preference 100
route-map Map1 permit 50
  Match clauses:
    match as 150
  Set clauses:
switch(config)#

 

Deleting Route Map Components
To remove a component from a route map, perform one of the following:
  • To remove a command from a statement, enter no, followed by the command you want to remove.
  • To remove a statement, enter no, followed by the route map with the filter type and the sequence number of the statement you want to remove.
  • To remove a route map, enter no followed by the route map without a sequence number.

 

Using Route Maps

Protocol redistribution commands include a route map parameter determining the routes to be redistributed into the specified protocol domain.

 

Example

The following commands use the Map1 route map to select OSPFv2 routes for redistribution into BGP AS1.
switch(config)# router bgp 1
switch(config-router-bgp)# redistribute ospf route-map Map1
switch(config-router-bgp)# exit
switch(config)#

 

Prefix Lists

A prefix list is an ordered set of rules that defines route redistribution access for a specified IP address space. It consists of a filter action (deny or permit), an address space identifier (IPv4 subnet address or IPv6 prefix), and a sequence number.

Prefix lists are referenced by route map match commands when filtering routes for redistribution.

Prefix List Configuration

A prefix list is an ordered set of rules that defines route redistribution access for a specified IP address space. A prefix list rule consists of a filter action (deny or permit), a network address (IPv4 subnet or IPv6 prefix), and a sequence number. A rule may also include an alternate mask size.

The switch supports IPv4 and IPv6 prefix lists. The switch is placed in a Prefix-list configuration mode to create and edit IPv4 or IPv6 prefix lists.

IPv4 Prefix Lists

IPv4 prefix lists are created or modified by adding an IPv4 prefix list rule in the Prefix-list configuration mode. Each rule includes the name of a prefix list and the sequence number, network address, and filter action. A list consists of all rules that have the same prefix-list name.

The ip prefix-list command creates a prefix list or adds a rule to an existing list. Route map match commands use prefix lists to filter routes for redistribution into OSPF, RIP, or BGP domains.

Creating an IPv4 Prefix List

To create an IPv4 prefix list, enter the ip prefix-list command, followed by the list's name. The switch enters the IPv4 prefix-list configuration mode for the list. If the name of an existing ACL follows the command, subsequent commands edit that list.

Examples
  • The following command places the switch in IPv4 prefix list configuration mode to create an IPv4 prefix list named route-one.
    switch(config)# ip prefix-list route-one
    switch(config-ip-pfx)#

     

  • This series of commands creates four different rules for the prefix-list named route-one.
    switch(config)# ip prefix-list route-one
    switch(config-ip-pfx)# seq 10 deny 10.1.1.0/24
    switch(config-ip-pfx)# seq 20 deny 10.1.0.0/16
    switch(config-ip-pfx)# seq 30 permit 12.15.4.9/32
    switch(config-ip-pfx)# seq 40 deny 1.1.1.0/24

     

To view the list, save the rules by exiting the Prefix-list command mode using the exit command, then re-enter the configuration mode and use the show active command.

switch(config-ip-pfx)# exit
switch(config)# ip prefix-list route-one
switch(config-ip-pfx)# show active
ip prefix-list route-one
   seq 10 deny 10.1.1.0/24
   seq 20 deny 10.1.0.0/16
   seq 30 permit 12.15.4.9/32
   seq 40 deny 1.1.1.0/24
switch(config-ip-pfx)# ip prefix-list route-one

 

IPv4 prefix lists are referenced in the match (route-map) command.

IPv6 Prefix Lists

Creating an IPv6 Prefix List

The switch provides an IPv6 prefix-list configuration mode for creating and modifying IPv6 prefix lists. A list can be edited only in the mode where it was created.

To create an IP ACL, enter the ipv6 prefix-list command and the list's name. The switch enters the list's IPv6 prefix-list configuration mode. If the name of an existing ACL follows the command, subsequent commands edit that list.

 

Example
This command places the switch in the IPv6 prefix list configuration mode to create an IPv6 prefix list named map1.
switch(config)# ipv6 prefix-list map1
switch(config-ipv6-pfx)#

 

Adding a Rule

To append a rule to the end of a list, enter the rule without a sequence number while in Prefix-List configuration mode for the list. The system derives the new rule’s sequence number by adding 10 to the last rule’s sequence number.

 

Example
These commands enter the first two rules into a new prefix list.
switch(config-ipv6-pfx)# permit 3:4e96:8ca1:33cf::/64
switch(config-ipv6-pfx)# permit 3:11b1:8fe4:1aac::/64

 

To view the list, save the rules by exiting the prefix-list command mode using the exit command, then re-enter the configuration mode and use the show active command.

switch(config-ipv6-pfx)# exit
switch(config)# ipv6 prefix-list map1
switch(config-ipv6-pfx)# show active
ipv6 prefix-list map1
   seq 10 permit 3:4e96:8ca1:33cf::/64
   seq 20 permit 3:11b1:8fe4:1aac::/64
switch(config-ipv6-pfx)#

 

The following command appends a rule to the end of the prefix list. The new rule’s sequence number is 30.

switch(config-ipv6-pfx)# permit 3:1bca:1141:ab34::/64
switch(config-ipv6-pfx)# exit
switch(config)# ipv6 prefix-list map1
switch(config-ipv6-pfx)# show active
ipv6 prefix-list map1
   seq 10 permit 3:4e96:8ca1:33cf::/64
   seq 20 permit 3:11b1:8fe4:1aac::/64
   seq 30 permit 3:1bca:1141:ab34::/64
switch(config-ipv6-pfx)#

 

Inserting a Rule

To insert a rule into a prefix list, use the seq (IPv6 Prefix Lists) command to enter a rule with a sequence number between the numbers of two existing rules.

 

Example
This command inserts a rule between the first two by assigning sequence number 15.
switch(config-ipv6-pfx)# seq 15 deny 3:4400::/64
switch(config-ipv6-pfx)# exit
switch(config)# show ipv6 prefix-list map1
ipv6 prefix-list map1
seq 10 permit 3:4e96:8ca1:33cf::/64
seq 15 deny 3:4400::/64
seq 20 permit 3:11b1:8fe4:1aac::/64
seq 30 permit 3:1bca:3ff2:634a::/64
switch(config)#

 

Deleting a Rule

To remove a rule from the configuration mode prefix list, enter no seq (see seq (IPv6 Prefix Lists)), followed by the rule's sequence number.

 

Example
These commands remove rule 20 from the prefix list and display the resultant prefix list.
switch(config-ipv6-pfx)# no seq 20
switch(config-ipv6-pfx)# exit 
switch(config)# show ipv6 prefix-list map1
ipv6 prefix-list map1
seq 10 permit 3:4e96:8ca1:33cf::/64
seq 15 deny 3:4400::/64
seq 30 permit 3:1bca:3ff2:634a::/64
switch(config)#

 

Using Prefix Lists

Route map match commands include an option that matches a specified prefix list.

 

Example

The MAP_1 route map uses a match command that references the PL_1 prefix list.
switch(config)# route-map MAP_1 permit
switch(config-route-map-MAP_1)# match ip address prefix-list PL_1
switch(config-route-map-MAP_1)# set community 500
switch(config-route-map-MAP_1)# exit

Static Routes Redistribution into IGPs

Use match ip next-hop to match against next-hops in a route-map. This can be used to redistribute matching static routes into an IGP (IS-IS, OSPF, etc.).

The following example applies the match ip next-hop clause for static routes redistributed into IGPs for multi-agent mode. The following configures a static route.

switch(config)# ip route 10.20.30.0/24 1.2.3.4

 

The following commands configure a prefix-list:

switch (config)# ip prefix-list prefixListName
switch(config-ip-pfx)# permit 1.2.3.4/32

 

1.2.3.4 is a configured next-hop for static route 10.20.30.0/24.

The following commands configure a route map:

switch(config)# route-map routeMapName
switch(config-route-map-routeMapName)# match ip next-hop prefix-list prefixListName

 

For example, based on the route-map mentioned in the preceding command, to redistribute matching static routes into an IGP, use the following command for IS-IS:

switch(config-router-isis)# redistribute static route-map routeMapName

 

View redistributed routes using the following show commands.

The show ip route command displays the IP route.

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 - 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

 ...
 I L2     10.20.30.0/24 [115/10] via 1.2.3.4, Ethernet1

 

Use the show isis database detail command to view routes redistributed into IS-IS.

switch# show isis database detail

IS-IS Instance: B VRF: default
  IS-IS Level 1 Link State Database
    LSPID                 Seq Num   Cksum  Life  IS Flags
    ...
  IS-IS Level 2 Link State Database
    LSPID                 Seq Num   Cksum  Life  IS Flags
    0000.0000.0001.00-00  6         10364  840   L2 <>
      ...
      Reachability         : 10.20.30.0/24 Metric: 0 Type: 1 Up
      ...

 

While the preceding example applies to IS-IS, a similar approach may be taken for other IGPs, such as OSPF.

 

Port ACLs with User-Defined Fields

Describes the support for specifying User-Defined Fields (UDF) in Port ACLs, including IPv4, IPv6, and MAC ACLs. The purpose of the User-Defined Fields feature is to permit or deny packets based on custom offset pattern matching.

User-Defined Fields, or UDFs, are part of an access-list filter and comprise an offset, length, pattern match and mask. This describes a single portion of any incoming packet that matches the provided value.

UDFs may also be defined via aliases. Aliases can save a UDF configuration for reuse in multiple access lists or access list rules. An alias may substitute for a fully defined UDF, including the offset, pattern, and mask. The pattern or mask may be overridden when the alias is used in an access list rule.

The behavior, CLI syntax, and configuration of UDFs are identical to Traffic Steering UDF and Mirroring ACL UDF.

This section describes port ACLs with user-defined fields, including configuration instructions. Topics covered by this section include:

Configuring Port ACLs with User-Defined Fields

User-Defined Fields (UDFs) are specified as part of an access list. However, the type of access list dictates the base position of the UDF and the options available. In addition, you must configure a TCAM profile to include UDFs as part of the Port ACL feature’s key.

TCAM Profile

User-Defined Fields are defined as additional fields in the Port ACL feature’s key. By default, UDFs are not included in the keys for the Port ACL features. Adding a UDF to the key requires removing different key fields to fit within the TCAM width restrictions.

 

Note: Each UDF is either 16 bits wide or 32 bits wide.

 

The following are example configurations of the TCAM profile.

IPv4 Port ACL

The following configurations create a new profile based on the default profile. This new profile replaces the Layer 4 port key fields with one 16-bit UDF and one 32-bit UDF.

switch(config)# hardware tcam
switch(config-hw-tcam)# profile ipv4Udf copy default
switch(config-hw-tcam-profile-ipv4Udf)# feature acl port ip
switch(config-hw-tcam-profile-ipv4Udf-feature-acl-port-ip)# no key field l4-ops
switch(config-hw-tcam-profile-ipv4Udf-feature-acl-port-ip)# no key field l4-src-port
switch(config-hw-tcam-profile-ipv4Udf-feature-acl-port-ip)# no key field l4-dst-port
switch(config-hw-tcam-profile-ipv4Udf-feature-acl-port-ip)# key field udf-16b-1
switch(config-hw-tcam-profile-ipv4Udf-feature-acl-port-ip)# key field udf-32b-1
switch(config-hw-tcam-profile-ipv4Udf-feature-acl-port-ip)# exit
switch(config-hw-tcam-profile-ipv4Udf)# exit
switch(config-hw-tcam)# system profile ipv4Udf

 

16-bit IPv4 Header Match

Example

The following configurations match IPv4 packets based on the Identification (ID) field.

Packets ingressing into interface ethernet 7 with an ID equal to 1000 (0x03E80000) are forwarded, while packets with an ID different from 1000 are dropped.

(config)# ip access-list udfAcl
(config-acl-udfAcl)# permit ip any any payload header start offset 1 pattern 0x03E80000 mask 0x0000FFFF
(config-acl-udfAcl)# deny ip any any
(config-acl-udfAcl)# exit
(config)# interface ethernet 7
(config-if-Et7)#
IPv6 Port ACL

The following configurations create a new profile based on the default profile. This new profile replaces the destination IPv6 address key field with two 32-bit UDFs.

switch(config)# hardware tcam
switch(config-hw-tcam)# profile ipv6Udf copy default
switch(config-hw-tcam-profile-ipv6Udf)# feature acl port ipv6
switch(config-hw-tcam-profile-ipv6Udf-feature-acl-port-ipv6)# no key field dst-ipv6
switch(config-hw-tcam-profile-ipv6Udf-feature-acl-port-ipv6)# key field udf-32b-1
switch(config-hw-tcam-profile-ipv6Udf-feature-acl-port-ipv6)# key field udf-32b-2
switch(config-hw-tcam-profile-ipv6Udf-feature-acl-port-ipv6)# exit
switch(config-hw-tcam-profile-ipv6Udf)# exit
switch(config-hw-tcam)# system profile ipv6Udf

 

32-bit IPv6 Payload Match

Example

The following configurations match IPv6 UDP packets based on the first 32 bits of the packet payload.

UDP packets ingressing into interface ethernet 7 that starts with 0x1234567X (where X can be any valid hexadecimal) in the payload are forwarded while dropping any other packets. The offset is set to 2 (2 x 4-byte words) to skip the UDP header.

(config)# ipv6 access-list udfAcl
(config-ipv6-acl-udfAcl)# permit udp any any payload offset 2 pattern 0x12345670 mask 0x0000000f
(config-ipv6-acl-udfAcl)# deny ipv6 any any
(config-ipv6-acl-udfAcl)# exit
(config)# interface ethernet 7
(config-if-Et7)# ipv6 access-group udfAcl in

 

Port ACLs with User-Defined Fields Limitations

User-defined fields consume a limited set of copy resources. For each unique offset, if a pattern is specified masked to be > 16 bits wide, then a 32-bit resource is used. If no 32-bit resource is available, then two 16-bit resources are used if available. Copy resources depend on the number of UDF key fields added to the feature key. Each UDF key field maps to one copy resource. Using the above TCAM profile configurations:
  • IPv4: 1 × 16-bit pattern + 1 × 32-bit pattern.
  • IPv6: 2 × 32-bit pattern.
  • MAC: 1 × 16-bit pattern + 1 × 32-bit pattern.

     

Other limitations include:
  • The maximum offset value is 31, which is 31 4-byte words, or 124 bytes.
  • UDFs only work on ingress Port ACLs.

     

ACL, Route Map, and Prefix List Commands

This section describes CLI commands that this chapter references.

ACL Creation and Access Commands

ACL Implementation Commands

Service ACL Implementation Commands

ACL Edit Commands

ACL Rule Commands

ACL List Counter Commands

ACL Display Commands

Prefix List Creation and Access Commands

Prefix List Edit Commands

Prefix List Display Commands

Route Map Creation and Access Command

Route Map Edit Commands

Route Map Display Commands

clear ip access-lists counters

The clear ip access-lists counters command sets ACL counters to zero for the specified IPv4 Access Control List (ACL). The session parameter limits ACL counter clearing to the current CLI session.

 

Command Mode

Privileged EXEC

 

Command Syntax

clear ip access-lists counters acl_name scope

 

Parameters
  • acl_name - Specify the name of ACL list. Options include the following:
    • no parameter - Specifies all ACLs.
    • access_list - Specifies the name of ACL.

       

  • scope - Specify the session affected by command. Options include the following:
    • no parameter - Clears all counters on all CLI sessions.
    • session - Clears counters only on the current CLI session.

 

Example

This command resets all IPv4 ACL counters.
switch(config)# clear ip access-lists counters
switch(config)#

clear ipv6 access-lists counters

The clear ipv6 access-lists counters command sets ACL counters to zero for the specified IPv6 Access Control List (ACL). The session parameter limits ACL counter clearing to the current CLI session.

 

Command Mode

Privileged EXEC

 

Command Syntax

clear ipv6 access-lists counters [acl_name][scope]

 

Parameters
  • acl_name - Specify the name of ACL. Options include the following:
    • no parameter - Clears all IPv6 ACLs.
    • access_list - Clears the access list of the IPv6 ACL.

       

  • scope - Specify the session affected by command. Options include the following:
    • no parameter - The command affects counters on all CLI sessions.
    • session - Affects only current CLI session.

       

Example

This command resets all IPv6 ACL counters.
switch(config)# clear ipv6 access-lists counters
switch(config)#

continue (route map)

The continue command creates a route map statement entry that enables additional route map evaluation of routes with parameters meeting the statement matching criteria.

A statement typically contains a match (route-map) and a set (route-map) command. The evaluation of routes with settings the same as match command parameters normally ends and the statement's set commands apply to the route. Routes that match a statement containing a continue command evaluate against the statement specified by the continue command.

When a route matches multiple route map commands, the last statement that the route matches determines the filter action (deny or permit) . The set commands in all statements matching the route apply to the route after completing the route map evaluation. Multiple set commands apply in the same order by the route evaluation against the statement containing them.

The no continue and default continue commands remove the corresponding continue command from the configuration mode route map statement by deleting the corresponding command from running-config.

 

Command Mode

Route-Map Configuration

 

Command Syntax

continue next_seq

no continue next_seq

default continue next_seq

 

Parameters

next_seq - Specifies next statement for evaluating matching routes. Options include the following:
  • no parameter - The next statement in the route map, as determined by sequence number.
  • seq_number - Specifies the number of the next statement. Values range from 1 to 16777215.

 

Restrictions

A continue command cannot specify a sequence number smaller than the sequence number of the route map statement.

 

Related Command

route-map command enters the Route-Map Configuration Mode.

 

Example

This command creates route map map1, statement 40 with a match command, a set command, and a continue command. Routes that match the statement subsequently evaluate against statement 100. The set local-preference command applies to matching routes regardless of subsequent matching operations.
switch(config)# route-map map1 deny 40
switch(config-route-map-map1)# match as 15
switch(config-route-map-map1)# continue 100
switch(config-route-map-map1)# set local-preference 50
switch(config-route-map-map1)#

counters per-entry

The counters per-entry command places the ACL in counting mode. In counting mode, the feature generally displays the number of instances in which each rule in the list matches an inbound packet and the elapsed time since the last match. However, for certain select platforms, in addition to the packet counter, ACL counters can also be enabled for byte counts when applied to data plane ACLs. Review the complete list of platforms that support byte count for data plan ACLslisted below:

 

Note: Only dataplane ACLs support byte counting on the switch.

 

 

The following platforms support ACL byte counting:

  • CCS-710/720/722/755/758 series
  • DCS-7010TX
  • DCS-7050SX3/CX3/TX3/CX4/DX4/PX4
  • DCS-7060 Series
  • DCS-7300X3/7304X3/7308X3/7316/7320X/7324/7328/7358X4/7368/7388

     

On the FM6000 platform, this command has no effect when used in an ACL for a PBR class map.

The no counters per-entry and default counters per-entry commands place the ACL in non-counting mode.

 

Command Mode

ACL Configuration

IPv6-ACL Configuration

Std-ACL Configuration

Std-IPv6-ACL Configuration

MAC-ACL Configuration

 

Command Syntax

counters per-entry

no counters per-entry

default counters per-entry

 

Examples
  • This command places the test1 ACL in counting mode.
    switch(config)# ip access-list test1
    switch(config-acl-test1)# counters per-entry
    switch(config-acl-test1)#

     

  • This command displays the ACL, with counter information, for an ACL in counting mode.
    switch# show ip access-lists
    IP Access List default-control-plane-acl [readonly]
      counters per-entry
      10 permit icmp any any
      20 permit ip any any tracked [match 12041 packets, 0:00:00 ago]
      30 permit ospf any any
      40 permit tcp any any eq ssh telnet www snmp bgp https [match 11 packets, 1:41:07 ago]
      50 permit udp any any eq bootps bootpc snmp rip [match 78 packets, 0:00:27 ago]
      60 permit tcp any any eq mlag ttl eq 255
      70 permit udp any any eq mlag ttl eq 255
      80 permit vrrp any any
      90 permit ahp any any
      100 permit pim any any
      110 permit igmp any any [match 14 packets, 0:23:27 ago]
      120 permit tcp any any range 5900 5910
      130 permit tcp any any range 50000 50100
      140 permit udp any any range 51000 51100
    Total rules configured: 14
           Configured on Ingress: control-plane(default VRF)
           Active on     Ingress: control-plane(default VRF)

     

  • On platforms that support byte counting, Counter information displays as shown below:
    switch# show ip access-lists
    IP Access List default-control-plane-acl [readonly]
            counters per-entry
            10 permit icmp any any [match 30 packets, 0:02:08 ago]
            20 permit ip any any tracked [match 97777 packets, 0:00:00 ago]
            30 permit udp any any eq bfd ttl eq 255
            40 permit udp any any eq bfd-echo ttl eq 254
            50 permit udp any any eq multihop-bfd micro-bfd sbfd
            60 permit udp any eq sbfd any eq sbfd-initiator
            70 permit ospf any any
            80 permit tcp any any eq ssh telnet www snmp bgp https msdp ldp netconf-ssh gnmi [match 72 packets, 0:00:00 ago]
            90 permit udp any any eq bootps bootpc snmp rip ntp ldp ptp-event ptp-general
            100 permit tcp any any eq mlag ttl eq 255
            110 permit udp any any eq mlag ttl eq 255
            120 permit vrrp any any
            130 permit ahp any any
            140 permit pim any any
    Total rules configured: 14
                 Configured on Ingress: control-plane(default VRF)
                 Active on     Ingress: control-plane(default VRF)
    
    IP Access List ipCountersTest:The ipCountersTest ACL is applied to the data plane. Hence, it displays the byte count information as shown below:
            counters per-entry
            10 permit tcp host 10.1.1.1 range 2000 4000 host 10.2.1.1 [match 486 bytes in 3 packets, 0:00:26 ago]
            20 permit tcp host 10.1.1.1 range 14000 16000 host 10.2.1.1 [match 486 bytes in 3 packets, 0:00:18 ago]
            30 permit udp host 10.1.1.1 range 62000 64000 host 10.2.1.1 [match 450 bytes in 3 packets, 0:00:00 ago]
            40 permit tcp host 10.1.1.1 range 50000 52000 host 10.2.1.1 [match 486 bytes in 3 packets, 0:00:02 ago]
            50 permit tcp host 10.1.1.1 range 38000 40000 host 10.2.1.1 [match 486 bytes in 3 packets, 0:00:10 ago]
            60 permit tcp host 10.1.1.1 range 26000 28000 host 10.2.1.1 [match 486 bytes in 3 packets, 0:00:18 ago]
    Total rules configured: 6
    

     

    ipCountersTest ACL applies to the data plane and displays the byte count information.

 

deny (IPv4 ACL)

The deny command adds a deny rule to the configuration mode IPv4 Access Control List (ACL). Interfaces with the ACL drop packets filtered by a deny rule. Sequence numbers determine rule placement in the ACL. Sequence numbers for commands without numbers derive from adding 10 to the number of the ACL's last rule.

The no deny and default deny commands remove the specified rule from the configuration mode ACL. The no sequence number (ACLs) command also removes the specified rule from the ACL.

 

Command Mode

ACL Configuration

 

Command Syntax

[seq_num] deny protocol source_addr source_port dest_addrR dest_port flags message fragments tracked dscp_filter ttl_filter log

no deny protocol source_addr source_port dest_addrR dest_port flags message fragments tracked dscp_filter ttl_filter log]

default deny protocol source_addr source_port dest_addrR dest_port flags message fragments tracked dscp_filter ttl_filter log]

 

Note: Commands use a subset of the listed fields. Available parameters depend on specified protocol.

 

 

Parameters
  • seq_num - The sequence number assigned to the rule. Options include the following:
    • no parameter The number derive from adding 10 to the number of the ACL last rule.
    • 14294967295 -The number assigned to the entry.

       

  • protocol Specify the protocol field filter. Values include the following:
    • ahp - Authentication Header Protocol (51
    • icmp - Internet Control Message Protocol (1)
    • igmp - Internet Group Management Protocol (2)
    • ip - Internet Protocol v4 (4)
    • ospf - Open Shortest Path First (89)
    • pim - Protocol Independent Multicast (103)
    • tcp - Transmission Control Protocol (6)
    • udp - User datagram protocol (17)
    • vrrp - Virtual Router Redundancy Protocol (112)
    • protocol_num - An integer corresponding to an IP protocol. Values range from 0 to 255.

       

  • source_addr and dest_addr - Specify the source and destination address filters. Values include the following:
    • network_addr - Specify the subnet address as a CIDR or address-mask.
    • any - Filter packets from all addresses.
    • host ip_addr - Specify an IP address in dotted decimal notation.

      Subnet addresses support discontiguous masks.

       

  • source_port and dest_port - Specify the source and destination port filters. Values include the following:
    • any - Specify all ports.
    • eq port-1 port-2 ... port-n - Specify a list of ports. Maximum list size is 10 ports.
    • neq port-1 port-2 ... port-n - Specify the set of all ports not listed. Maximum list size is 10 ports.
    • gt port - Specify the set of ports with larger numbers than the listed port.
    • lt port - Specify the set of ports with smaller numbers than the listed port.
    • range port_1 port_2 - Specify a range of ports.

       

  • fragments Filters packets with FO bit set that indicates a non-initial fragment packet.
  • flags Flag bit filters (TCP packets).
  • message Message type filters (ICMP packets).
  • tracked Rule filters packets in existing ICMP, UDP, or TCP connections.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

       

  • dscp_filter - Filters a packet by the DSCP value. Values include the following:
    • no parameter -Specify that the rule does not use DSCP to filter packets.
    • dscp dscp_value - Specify to match packets match if the DSCP field in packet equals the dscp_value.

       

  • TTL_FILTER - Filters a packet by the TTL (time-to-live) value. Values include the following:
    • ttl eq ttl_value - Match packets if ttl in packet is equal to ttl_value.
    • ttl gt ttl_value - Match packets if ttl in packet is greater than ttl_value.
    • ttl lt ttl_value - Match packets if ttl in packet is less than ttl_value.
    • ttl neq ttl_value - Match packets if ttl in packet is not equal to ttl_value.
      • Valid in ACLs applied to the control plane.
      • Validity in ACLs applied to data plane varies by switch platform.

         

  • log - Triggers an informational log message to the console about the matching packet.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

 

Examples
  • This command appends a deny statement at the end of the ACL. The deny statement drops OSPF packets from 10.10.1.1/24 to any host.
    switch(config)# ip access-list text1
    switch(config-acl-text1)# deny ospf 10.1.1.0/24 any
    switch(config-acl-text1)#

     

  • This command inserts a deny statement with the sequence number 65. The deny statement drops all PIM packets.
    switch(config-acl-text1)# 65 deny pim any any
    switch(config-acl-text1)#

deny (IPv6 ACL)

The deny command adds a deny rule to the an IPv6 Access Control List (ACL). Interfaces with the ACL drop packets filtered by a deny rule. Sequence numbers determine rule placement in the ACL. Sequence numbers for commands without numbers derive from adding 10 to the number of the ACL's last rule.

The no deny and default deny commands remove the specified rule from the configuration mode ACL. The no <sequence number> (ACLs) command also removes the specified rule from the ACL.

 

Command Mode

IPv6-ACL Configuration

 

Command Syntax

seq_num deny protocol src_addr source_pt dest_addr dest_pt flag msg hop tracked dscp_filter log

no deny protocol src_addr source_pt dest_addr dest_pt flag msg hop tracked dscp_filter log

default deny protocol src_addr source_pt dest_addr dest_pt flag msg hop tracked dscp_filter log

Note: Commands use a subset of the listed fields. Available parameters depend on specified protocol. Use CLI syntax assistance to view parameters for specific protocols when creating a deny rule.

 

 

Parameters
  • seq_num - The sequence number assigned to the rule. Optionsinclude the following:
    • no parameter - The number derived from adding 10 to the number of the ACL last rule.
    • 1 - 4294967295 - A number assigned to an entry.

       

  • prot - Specify the protocol field filter. Values include the following:
    • icmpv6 - Internet Control Message Protocol for version 6 (58)
    • ipv6 - Internet Protocol IPv6 (41)
    • ospf - Open Shortest Path First (89)
    • tcp - Transmission Control Protocol (6)
    • udp - User Datagram Protocol (17)
    • protocol_num - An integer corresponding to an IP protocol. Values range from 0 to 255.

       

  • SRC_ADDR and DEST_ADDR - Specify source and destination address filters. Options include the following:
    • ipv6_prefix - Specify an IPv6 address with prefix length (CIDR notation).
    • any - Filter packets from all addresses.
    • host ipv6_addr - Specify an IPv6 host address.

       

  • SRC_PT and DEST_PT - Specify the source and destination port filters. Options include the following:
    • any - Specify all ports.
    • eq port-1 port-2 ... port-n - Specify a list of ports. Maximum list size is 10 ports.
    • neq port-1 port-2 ... port-n - Specify the set of all ports not listed. Maximum list size is 10 ports.
    • gt port - Specify the set of ports with larger numbers than the listed port.
    • lt port - Specify the set of ports with smaller numbers than the listed port.
    • range port_1 port_2 - Specify a range of ports.

       

  • HOP - Filters by packet hop-limit value. Options include the following:
    • no parameter - The rule does not use hop limit to filter packets.
    • hop-limit eq hop_value - Match packetsif hop-limit value in packet equals hop_value.
    • hop-limit gt hop_value - Match packets if hop-limit in packet is greater than hop_value.
    • hop-limit lt hop_value - Match packets if hop-limit in packet is less than hop_value.
    • hop-limit neq hop_value - Match packets if hop-limit in packet is not equal to hop_value.

       

  • FLAG - Specify flag bit filters (TCP packets).
  • MSG - Specify message type filters (ICMPv6 packets).
  • tracked - Specify rule filters packets in existing ICMP, UDP, or TCP connections.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

       

  • DSCP_FILTER- Filters packet by theDSCP value. Values include the following:
    • no parameter - The rule does not use DSCP to filter packets.
    • dscp dscp_value - Match packets if DSCP field in packet equalsthe dscp_value.

       

  • log - Triggers an informational log message to the console about the matching packet.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

       

Example

This command appends a deny statement at the end of the ACL. The deny statement drops IPv6 packets from 3710:249a:c643:ef11::/64 to any host.
switch(config)# ipv6 access-list text1
switch(config-acl-text1)# deny ipv6 3710:249a:c643:ef11::/64 any
switch(config-acl-text1)#

deny (IPv6 Prefix List)

The deny command adds a deny rule in the IPv6 Prefix List Configuration Mode . Route map match commands use prefix lists to filter routes for redistribution into OSPF, RIP, or BGP domains. Routes are denied access when they match the prefix in a deny statement.

The no deny and default deny commands remove the specified rule from theIPv6 prefix list. The no deny command also removes the specified rule from the prefix list.

 

Command Mode

IPv6-pfx Configuration

 

Command Syntax

sequence deny ipv6_prefix mask

 

Parameters
  • sequence - A sequence number assigned to the rule. Options include the following:
    • no parameter - A number derived by adding 10 to the number of the list last rule.
    • seq seq_num - A number specified by seq_num. Value ranges from 0 to 65535.

       

  • ipv6_prefix - Specify the IPv6 prefix to filter routes (CIDR notation).
  • mask - Specify the range of the prefix to match.
    • no parameter - Requires an exact match with the subnet mask.
    • eq mask_e - Specify a prefix length equal to mask_e.
    • ge mask_g Specify a range from mask_g to 128.
    • le mask_l - Specify a range from subnet mask length to mask_l.
    • ge mask_l le mask_g - Specify a range from mask_g to mask_l.
    • mask_e, mask_land, and mask_g -from 1 to 128.

Example

This command appends a deny statement at the end of the text1 prefix list. The deny statement denies redistribution of routes with the specified prefix.
switch(config)# ipv6 prefix-list route-five
switch(config-ipv6-pfx)# deny 3100::/64
switch(config-ipv6-pfx)#

deny (MAC ACL)

The deny command adds a deny rule to the MAC Access Control List (ACL) Configuration Mode.

Interfaces with an applied ACL drop packets filtered by a deny rule. Sequence numbers determine rule placement in the ACL. Sequence numbers for commands without numbers derive from adding 10 to the number of the ACL last rule.

The no deny and default deny commands remove the specified rule from the MAC Access Control List (ACL) Configuration Mode. The no <sequence number> (ACLs) command also removes the specified rule from the ACL.

 

Command Mode

MAC-ACL Configuration Mode

 

Command Syntax

seq_num deny source_addr dest_addr [protocol][log]

no deny source_addr dest_addr [protocol][log]

default deny source_addr dest_addr [protocol][log]

 

Parameters
  • seq_num Sequence number assigned to the rule. Options include the following:
    • no parameter - A number derived by adding 10 to the number of the ACL's last rule.
    • 1 - 4294967295 - A number assigned to entry.

       

  • source_addr and dest_addr - Configure source and destination address filters. Options includethe following:
    • mac_address mac_mask - Specify the MAC address and mask.
    • any - Filters all Packets from all addresses.
    • mac_address - Specifies a MAC address in 3x4 dotted hexadecimal notation (hhhh.hhhh.hhhh).
    • mac_mask - Specifies a MAC address mask in 3x4 dotted hexadecimal notation (hhhh.hhhh.hhhh).
    • 0 - Requires an exact match to filter.
    • 1 - Filters on any value.

       

  • protocol - Configure a protocol field filter. Values include the following:
    • aarp - Appletalk Address Resolution Protocol (0x80f3).
    • appletalk - Appletalk (0x809b).
    • arp - Address Resolution Protocol (0x806).
    • ip - Internet Protocol Version 4 (0x800).
    • ipx - Internet Packet Exchange (0x8137).
    • lldp - LLDP (0x88cc).
    • novell - Novell (0x8138).
    • rarp - Reverse Address Resolution Protocol (0x8035).
    • protocol_num An integer corresponding to a MAC protocol. Values range from 0 to 65535.

       

  • log Triggers an informational log message to the console about the matching packet.

 

Examples
  • This command appends a permit statement at the end of the ACL. The deny statement drops all aarp packets from 10.1000.0000 through 10.1000.FFFF to any host.
    switch(config)# mac access-list text1
    switch(config-mac-acl-text1)# deny 10.1000.0000 0.0.FFFF any aarp

     

  • This command inserts a permit statement with the sequence number 25. The deny statement drops all packets through the interface.
    switch(config-mac-acl-text1)# 25 deny any any

deny (Standard IPv4 ACL)

The deny command adds a deny rule to the Standard IPv4 Access Control List (ACL) Configuration Mode. Standard ACL rules filter on the source field.

Interfaces with an applied ACL drop packets filtered by a deny rule. Sequence numbers determine rule placement in the ACL. Sequence numbers for commands without numbers derive from adding 10 to the number of the ACL last rule.

The no deny and default deny commands remove the specified rule from the Standard IPv4 Access Control List (ACL) Configuration Mode. The no sequence number (ACLs) command also removes the specified rule from the ACL.

 

Command Mode

Std-ACL Configuration

 

Command Syntax

[seq_num] deny source_addr log

no deny source_addr log

default deny source_addr log

 

Parameters
  • seq_num - Specify the sequence number assigned to the rule. Options include the following:
    • no parameter - A number derived by adding 10 to the number of the ACL last rule.
    • 1 - 4294967295 - A number assigned to entry.

       

  • source_addr- Specify a source address filter. Options include the following:
    • network_addr - Specify a subnet address as a CIDR or address-mask.
    • any Filter packets from all addresses.
    • host ip_addr - Specify an IP address in dotted decimal notation.

      Subnet addresses support noncontinuous masks.

       

  • log - Triggers an informational log message to the console about the matching packet.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

 

Example

This command appends a deny statement at the end of the ACL. The deny statement drops packets from 10.10.1.1/24.
switch(config)# ip access-list standard text1
switch(config-std-acl-text1)# deny 10.1.1.1/24
switch(config-std-acl-text1)#

deny (Standard IPv6 ACL)

The deny command adds a deny rule to the Standard IPv6 Access Control List (ACL) Configuration Mode. Standard ACL rules filter on the source field.

Interfaces with an applied ACL drop packets filtered by a deny rule. Sequence numbers determine rule placement in the ACL. Sequence numbers for commands without numbers derive from adding 10 to the number of the ACL's last rule.

The no deny and default deny commands remove the specified rule from the Standard IPv6 Access Control List (ACL) Configuration Mode. The no <sequence number> (ACLs) command also removes the specified rule from the ACL.

 

Command Mode

Std-IPv6-ACL Configuration

 

Command Syntax

seq_num deny source_addr

no deny source_addr

default deny source_addr

 

Parameters
  • seq_num Sequence number assigned to the rule. Options include:
    • no parameter - A Number derived by adding 10 to the number of the ACL's last rule.
    • 1 - 4294967295 - The number assigned to entry.

       

  • source_addr- The Source address filter configured for the ACL. Options include:
    • ipv6_prefix - IPv6 address with prefix length (CIDR notation).
    • any - Filter all packets from all addresses.
    • host ipv6_addr - Specify the IPv6 host address.

       

Example

This command appends a deny statement at the end of the ACL. The deny statement drops packets from 2103::/64.
switch(config)# ipv6 access-list standard text1
switch(config-std-acl-ipv6-text1)# deny 2103::/64
switch(config-std-acl-ipv6-text1)#

description (route map)

The description command adds a text string to the configuration mode route map. The string has no functional impact on the route map.

The no description and default description commands remove the text string from the configuration mode route map by deleting the corresponding description command from running-config.

 

Command Mode

Route-Map Configuration

 

Command Syntax

description label_text

no description

default description

 

Parameter

label_text Character string assigned to the route map configuration.

 

Related Command

route-map

 

Example

These commands add description text to the XYZ-1 route map.
switch(config)# route-map XYZ-1
switch(config-route-map-XYZ-1)# description This is the first map.
switch(config-route-map-XYZ-1)# exit
switch(config)# show route-map XYZ-1
route-map XYZ-1 permit 10
  Description:
    description This is the first map.
  Match clauses:
  Set clauses:
switch(config)#

hardware access-list resource sharing vlan in

The hardware access-list resource sharing vlan in command enables the IPv4 Ingress Sharing of hardware resources on the switch when the same ACL applies to different VLANs.

The no hardware access-list resource sharing vlan in command disables the IPv4 Ingress Sharing of hardware resources on the switch.

 

Command Mode

Global Configuration

 

Command Syntax

hardware access-list resource sharing vlan [ipv4 | ipv6] in

no hardware access-list resource sharing vlan in

 

Guidelines
  • Ccompatible only with the DCS-7010 and DCS-7050x series switches.
  • Enabling IPv4 Ingress Sharing requires the restart of software agents on the platform. This is a disruptive process and impacts traffic forwarding.

     

Use the show platform trident command to verify the Ingress IPv4 Sharing information.

 

hardware access-list resource sharing vlan ipv4 out

The hardware access-list resource sharing vlan ipv4 out command enables IPv4 Egress RACL TCAM sharing on the switch.

The no hardware access-list resource sharing vlan ipv4 out command disables the IPv4 Egress RACL TCAM sharing on the switch. By default, the switch enables IPv4 Egress RACL sharing.

 

Command Mode

Global Configuration

 

Command Syntax

hardware access-list resource sharing vlan ipv4 out

no hardware access-list resource sharing vlan ipv4 out

 

Guidelines
  • Compatible only with the DCS-7280E and DCS-7500E series switches.
  • Disabling IPv4 RACL sharing requires the restart of software agents on the platform. This is a disruptive process and impacts traffic forwarding.
  • Enabling IPv4 RACL sharing, if previously disabled from the default configuration, requires the restart of software agents on the platform. This is a disruptive process and impacts traffic forwarding. Enabling IPv4 RACL sharing if uRPF is configured disables uRPF.
  • Use the show running-config all | include sharing command to verify whether or not sharing for egress IPv4 RACLs is enabled.

     

Example

This command verifies if IPv4 RACL sharing is enabled or disabled.
switch# show running-config all | include sharing

hardware access-list resource sharing vlan ipv4 out 
                        ---->It returns the following output if IPv4 RACL sharing is enabled.

hardware access-list update default-result permit

The hardware access-list update default-result permit command configures the switch to permit all traffic on Ethernet and VLAN interfaces with ACLs applied to them while modifying the ACLs. Permits traffic when modifying the ACL using one of the ip access-list commands, and ends when exiting the ACL Configuration Mode and rules populated in hardware. EOS disables this by default.

The no hardware access-list update default-result permit and default hardware access-list update default-result permit commands restore the switch to the default state and blocks traffic during ACL modifications by removing the corresponding hardware access-list update default-result permit command from the running-config.

 

Command Mode

Global Configuration

 

Command Syntax

hardware access-list update default-result permit

no hardware access-list update default-result permit

default hardware access-list update default-result permit

 

Restrictions

This command is available on the Arista 7050X, 7060X, 7150, 7250X, 7280, 7280R, 7300X, 7320X, and 7500 series switches.

When enabled, static NAT, and ACL-based mirroring are affected during ACL updates.

 

Example

This command configures a 7150 series switch to permit all traffic on Ethernet and VLAN interfaces with applied ACLs while modifying the ACLs.
switch(config)# hardware access-list update default-result permit
switch(config)#

hardware counter feature acl out

The hardware counter feature acl out command enables egress ACL hardware counters for IPv4 or IPv6 and count the number of packets matching rules associated with egress ACLs applied to various interfaces on a switch.

The no hardware counter feature acl out and default hardware counter feature acl out commands disable or return the egress ACL hardware counters to the default state.

 

Command Mode

Global Configuration

 

Command Syntax

hardware counter feature acl out [options [ipv4 | ipv6]

no hardware counter feature acl out [options [ipv4 | ipv6]

default hardware counter feature acl out [options [ipv4 | ipv6]

 

Parameters
  • options - ACL hardware counter options include the following:
    • ipv4 - Specify an IPv4 address.
    • ipv6 - Specify an IPv4 address.

       

Examples
  • This command enables IPv4 egress ACL hardware counters.
    switch(config)# hardware counter feature acl out ipv4
    switch(config)#

     

  • This command disables IPv4 egress ACL hardware counters.
    switch(config)# no hardware counter feature acl out ipv4
    switch(config)#

ip access-group (Service ACLs)

The ip access-group (Service ACLs) command configures a Service ACL to apply to a control-plane service. Specify the service by the command mode used to apply the Service ACL.

The no ip access-group and default ip access-group commands remove the corresponding ip access-group (Service ACLs) command from running-config.

 

Command Mode

Mgmt-SSH Configuration

Mgmt-API Configuration

Router-BGP Configuration

Router-OSPF Configuration

Router-IGMP Configuration

MPLS-LDP Configuration

Queue-Monitor-Streaming Configuration

MPLS-Ping Configuration

Mgmt-Telnet Configuration

 

Command Syntax

ip access-group acl_name [vrfvrf_name][in]

no ip access-group acl_name [vrfvrf_name][in]

default ip access-group acl_name [vrfvrf_name][in]

 

Parameters

Parameters vary by process.
  • acl_name - Specify the name of the Service ACL assigned to control-plane service.
  • vrf vrf_name - Specifies the VRF to apply the Service ACL.
  • in - Specifies inbound connections or packets only. Requires a keyword for SSH and Telnet services.

 

Example

These commands apply the Service ACL bgpacl to the BGP routing protocol in VRF purple.
(config)# router bgp 5
(config-router-bgp)# vrf purple
(config-router-bgp-vrf-purple)# ip access-group bgpacl

 

For additional configuration examples, see Configuring Service ACLs and Displaying Status and Counters.

ip access-group

The ip access-group command applies an IPv4 or standard IPv4 Access Control List (ACL) to an interface or subinterface in the Interface Configuration Mode.

The no ip access-group and default ip access-group commands remove the corresponding ip access-group command from running-config.

 

Command Mode

Interface-Ethernet Configuration

Interface-Port-Channel Configuration

Interface-VLAN Configuration

 

Command Syntax

ip access-group list_name[direction [in | out]]

no ip access-group list_name[direction [in | out]]

default ip access-group list_name [direction [in | out]]

 

Parameters
  • list_name - Specify the name of ACL assigned to interface.
  • direction Transmission direction of packets, relative to interface. Valid options include the following:
    • in - Inbound packets.
    • out - Outbound packets.

 

Considerations

Filtering of outbound packets by ACLs not supported on Petra platform switches.

Filtering of outbound packets by ACLs on FM6000 switches supported on physical interfaces only (Ethernet and port channels).

ACLs on sub-interfaces are supported on DCS-7280E, DCS-7500E, DCS-7280R, and DCS-7500R.

 

Example

These commands apply the IPv4 ACL named test2 to interface ethernet 3.
switch(config)# interface ethernet 3
switch(config-if-Et3)# ip access-group test2 in
switch(config-if-Et3)#

ip access-list

The ip access-list command places the switch in ACL Configuration Mode, a group change mode that modifies an IPv4 access control list. The command specifies the name of the IPv4 ACL that subsequent commands modify and creates an ACL if it references a nonexistent list. All changes in a group change mode edit session are pending until the end of the session.

The exit command saves pending ACL changes to running-config, then returns the switch to Global Configuration Mode. ACL changes are also saved by entering a different configuration mode.

The abort command discards pending ACL changes, returning the switch to Global Configuration Mode.

The no ip access-list and default ip access-list commands delete the specified IPv4 ACL.

 

Command Mode

Global Configuration

 

Command Syntax

ip access-list list_name

no ip access-list list_name

default ip access-list list_name

 

Parameter

list_name - Specify the name of the ACL. Must begin with an alphabetic character. Cannot contain spaces or quotation marks.

 

 

Related Commands:

 

Examples
  • This command places the switch in ACL configuration mode to modify the filter1 IPv4 ACL.
    switch(config)# ip access-list filter1
    switch(config-acl-filter1)#

     

  • This command saves changes to filter1 ACL, then returns the switch to Global Configuration Modee.
    switch(config-acl-filter1)# exit
    switch(config)#
  • This command discards changes to filter1, then returns the switch to Global Configuration Mode.
    switch(config-acl-filter1)# abort
    switch(config)#

ip access-list standard

The ip access-list standard command places the switch in STD-ACL Configuration Mode, a group change mode that modifies a standard IPv4 access control list. The command specifies the name of the standard IPv4 ACL that subsequent commands modify, and creates an ACL if it references a nonexistent list. All group change mode edit session changes are pending until the session ends.

The exit command saves pending ACL changes to running-config, then returns the switch to Global Configuration Mode. Pending changes are also saved by entering a different configuration mode.

The abort command discards pending ACL changes, returning the switch to global configuration mode.

The no ip access-list standard and default ip access-list standard commands delete the specified ACL.

 

Command Mode

Global Configuration

 

Command Syntax

ip access-list standard list_name

no ip access-list standard list_name

default ip access-list standard list_name

 

Parameter

list_name - Specify the name of standard ACL. Must begin with an alphabetic character. Cannot contain spaces or quotation marks.

 

 

Related Commands

 

Examples
  • This command places the switch in std-ACL configuration mode to modify the filter2 IPv4 ACL.
    switch(config)# ip access-list standard filter2
    switch(config-std-acl-filter2)#

     

  • This command saves changes to filter2 ACL, then returns the switch to the Global Configuration Mode.
    switch(config-std-acl-filter2)# exit
    switch(config)#

     

  • This command discards changes to filter2, then returns the switch to the Global Configuration Mode.
    switch(config-std-acl-filter2)# abort
    switch(config)#

ip prefix-list

The ip prefix-list command creates a prefix list or adds an entry to an existing list. Route map match commands use prefix lists to filter routes for redistribution into OSPF, RIP, or BGP domains.

A prefix list comprises all prefix list entries with the same label. The sequence numbers of the rules in a prefix list specify the order for applying rules to a route evaluated by the match command.

The no ip prefix-list and default ip prefix-list commands delete the specified prefix list entry by removing the corresponding ip prefix-list statement from running-config. If the no or default ip prefix-list command does not list a sequence number, the command deletes all entries of the prefix list.

 

Command Mode

Global Configuration

 

Command Syntax

ip prefix-list list_name [deny | permit] [seq index] network_addr [mask] resequence seq_number remark comment

no ip prefix-list list_name seq [index]

default ip prefix-list list_name seq [index]

 

Parameters
  • list_name - Specify a name for the prefix list.
  • seq seq_num- Specify the sequence number for the prefix list entry Value ranges from 0 to 65535.
  • permit | deny - Specifies route access when a route matches IP prefix list. Options include:
    • permit - Allows access when matching the specified subnet.
    • deny - Denies access when matching the specified subnet.

       

  • network_addr - Specify the subnet to filter routes. Use either a CIDR or address-mask format.
  • MASK - Specifies the range of the prefix to be matched.
    • no parameter Exact match with the subnet mask is required.
    • eq mask_e Prefix length is equal to mask_e.
    • ge mask_g Range is from 1 to 32.
    • le mask_l Range is from subnet mask length to mask_l.
    • ge mask_l le mask_g Range is from mask_g to mask_l.
    • mask_e, mask_l, and mask_g range from 1 to 32. When le and ge are specified, subnet mask mask_g>mask_l.
  • remark comment - Add a comment to the prefix list configuration.

 

Example
  • This command places the switch in IPv4 prefix list configuration mode to create an IPv4 prefix list named route-one.
    switch(config)# ip prefix-list route-one
    switch(config-ip-pfx)#

     

  • These commands create four different rules for the prefix-list named route-one.
    switch(config)# ip prefix-list route-one
    switch(config-ip-pfx)# seq 10 deny 10.1.1.0/24
    switch(config-ip-pfx)# seq 20 deny 10.1.0.0/16
    switch(config-ip-pfx)# seq 30 permit 12.15.4.9/32
    switch(config-ip-pfx)# seq 40 deny 1.1.1.0/24

ipv6 access-group

The ipv6 access-groupcommand applies an IPv6 or standard IPv6 Access Control List (ACL) to the configuration mode interface.

The no ipv6 access-group and default ipv6 access-group commands remove the corresponding ipv6 access-group command from running-config.

 

Command Mode

Interface-Ethernet Configuration

Interface-Port-Channel Configuration

Interface-VLAN Configuration

 

Command Syntax

ipv6 access-group list_name [in | out]

no ipv6 access-group list_name [in | out]

default ipv6 access-group list_name [in | out]

 

Parameters
  • list_name - Specify the name of the ACL assigned to interface.
  • [in | out] - Specify the transmission direction of packets, relative to interface. Valid options include the following:
    • in Inbound packets.
    • out Outbound packets.

 

Examples

These commands assign the IPv6 ACL named test2 to the interface ethernet 3.
switch(config)# interface ethernet 3
switch(config-if-Et3)# ipv6 access-group test2 in
switch(config-if-Et3)#

ipv6 access-group (Service ACLs)

The ipv6 access-group (Service ACLs) command configures an IPv6 or standard IPv6 Service ACL to be applied by a control-plane service. Specify the service with the command mode to apply the Service ACL.

The no ipv6 access-group (Service ACLs) and default ipv6 access-group (Service ACLs) commands remove the corresponding ipv6 access-group (Service ACLs) command from running-config.

 

Command Mode

Mgmt-SSH Configuration

Mgmt-API Configuration

Router-BGP Configuration

Router-OSPF Configuration

MPLS-LDP Configuration

Queue-Monitor-Streaming Configuration

MPLS-Ping Configuration

Mgmt-Telnet Configuration

 

Command Syntax

ipv6 access-group ipv6_acl_name [vrf vrf_name][in]

no ipv6 access-group [ipv6_acl_name][vrfvrf_name][in]

default ipv6 access-group ipv6_acl_name [vrf vrf_name][in]

 

Parameters

Parameters vary by process.
  • ipv6_acl_name - Specify the name of the IPv6 Service ACL assigned to control-plane service.
  • vrf vrf_name - Specifies the VRF to apply the Service ACL.
  • in - Specifies inbound connections or packets only and requires a keyword for SSH and Telnet services.

 

Example

These commands apply the IPv6 Service ACL bgpacl to the BGP routing protocol in VRF purple.
(config)# router bgp 5
(config-router-bgp)# vrf purple
(config-router-bgp-vrf-purple)# ipv6 access-group bgpacl

 

For additional configuration examples, see Configuring Service ACLs and Displaying Status and Counters.

ipv6 access-list

The ipv6 access-list command places the switch in IPv6-ACL Configuration Mode, a group change mode that modifies an IPv6 access control list. The command specifies the name of the IPv6 ACL that subsequent commands modify and creates an ACL if it references a nonexistent list. All changes in a group change mode edit session pend until the end of the session.

The exit command saves pending ACL changes to running-config, then returns the switch to global configuration mode. ACL changes are also saved by entering a different configuration mode.

The abort command discards pending ACL changes, returning the switch to Global Configuration Mode.

The no ipv6 access-list and default ipv6 access-list commands delete the specified IPv6 ACL.

 

Command Mode

Global Configuration

 

Command Syntax

ipv6 access-list list_name

no ipv6 access-list list_name

default ipv6 access-list list_name

 

Parameters

list_name - Specify a name for the ACL. Must begin with an alphabetic character and cannot contain spaces or quotation marks.

 

 

Related Commands

 

Examples
  • This command places the switch in IPv6-ACL configuration mode to modify the filter1 IPv6 ACL.
    switch(config)# ipv6 access-list filter1
    switch(config-ipv6-acl-filter1)#

     

  • This command saves changes to filter1 ACL, then returns the switch to global configuration mode.
    switch(config-ipv6-acl-filter1)# exit
    switch(config)#

     

  • This command discards changes to filter1, then returns the switch to global configuration mode.
    switch(config-ipv6-acl-filter1)# abort
    switch(config)#

ipv6 access-list standard

The ipv6 access-list standard command places the switch in std-IPv6-ACL-configuration mode, a group change mode that modifies a standard IPv6 access control list. The command specifies the name of the standard IPv6 ACL that subsequent commands modify and creates an ACL if it references a nonexistent list. All group change mode edit session changes are pending until the session ends.

The exit command saves pending ACL changes to running-config, then returns the switch to Global Configuration Mode. Pending changes are also saved by entering a different configuration mode.

The abort command discards pending ACL changes, returning the switch to global configuration mode.

The no ipv6 access-list standard and default ipv6 access-list standard commands delete the specified ACL.

 

Command Mode

Global Configuration

 

Command Syntax

ipv6 access-list standard list_name

no ipv6 access-list standard list_name

default ipv6 access-list standard list_name

 

Parameters

list_name - Specify a name for the ACL. Must begin with an alphabetic character and cannot contain spaces or quotation marks.

 

 

Related Commands

 

Examples
  • This command places the switch in Std-IPv6 ACL configuration mode to modify the filter2 ACL.
    switch(config)# ipv6 access-list standard filter2
    switch(config-std-ipv6-acl-filter2)#

     

  • This command saves changes to filter2 ACL, then returns the switch to global configuration mode.
    switch(config-std-ipv6-acl-filter2)# exit
    switch(config)#

     

  • This command discards changes to filter2, then returns the switch to global configuration mode.
    switch(config-std-ipv6-acl-filter2)# abort
    switch(config)#

ipv6 prefix-list

The ip prefix-list command places the switch in IPv6 prefix-list configuration mode, which is a group change mode that modifies an IPv6 prefix list. The command specifies the name of the IPv6 prefix list that subsequent commands modify and creates a prefix list if it references a nonexistent list. All changes in a group change mode edit session are pending until the end of the session.

The exit command saves pending prefix list changes to running-config, then returns the switch to global configuration mode. ACL changes are also saved by entering a different configuration mode.

The abort command discards pending changes, returning the switch to global configuration mode.

The no ipv6 prefix-list and default ipv6 prefix-list commands delete the specified IPv6 prefix list.

 

Command Mode

Global Configuration

 

Command Syntax

ipv6 prefix-list list_name

no ipv6 prefix-list list_name

default ipv6 prefix-list list_name

 

Parameter

list_name Name of prefix list. Must begin with an alphabetic character. Cannot contain spaces or quotation marks.

 

Commands Available in IPv6-pfx configuration mode:

 

Examples
  • This command places the switch in IPv6 prefix-list configuration mode to modify the route-five prefix list.
    switch(config)# ipv6 prefix-list route-five
    switch(config-ipv6-pfx)#

     

  • This command saves changes to the prefix list, then returns the switch to global configuration mode.
    switch(config-ipv6-pfx)# exit
    switch(config)#

     

  • This command saves changes to the prefix list, then places the switch in interface-ethernet mode.
    switch(config-ipv6-pfx)# interface ethernet 3
    switch(config-if-Et3)#

     

  • This command discards changes to the prefix list, then returns the switch to global configuration mode.
    switch(config-ipv6-pfx)# abort
    switch(config)#

mac access-group

The mac access-group command applies a MAC Access Control List (MAC ACL) when in the Interface Configuration Mode.

The no mac access-group and default mac access-group commands remove the specified mac access-group command from running-config.

 

Command Mode

Interface-Ethernet Configuration

Interface-Port-Channel Configuration

 

Command Syntax

mac access-group list_name [direction [in | out]]

no mac access-group list_name[direction [in | out]]

default mac access-group list_name [direction [in | out]]

 

Parameters
  • list_name - Specify the name of MAC ACL.
  • direction - Specify the transmission direction of packets, relative to interface. Valid options include:
    • in Inbound packets.
    • out Outbound packets.

 

Restrictions

Only Helix, Trident, and Trident II platform switches support filtering of outbound packets by MAC ACLs.

 

Example

These commands assign the MAC ACL named mtest2 to interface ethernet 3 to filter inbound packets.
switch(config)# interface ethernet 3
switch(config-if-Et3)# mac access-group mtest2 in
switch(config-if-Et3)#

mac access-list

The mac access-list command places the switch in MAC-ACL Configuration Mode, a group change mode that modifies a MAC access control list. The command specifies the name of the MAC ACL that subsequent commands modify and creates an ACL if it references a nonexistent list. All changes in a group change mode edit session are pending until the end of the session.

The exit command saves pending ACL changes to running-config, then returns the switch to Global Configuration Mode. ACL changes are also saved by entering a different configuration mode.

The abort command discards pending ACL changes, returning the switch to Global Configuration Mode.

The no mac access-list and default mac access-list commands delete the specified list.

 

Command Mode

Global Configuration

 

Command Syntax

mac access-list list_name

no mac access-list list_name

default mac access-list list_name

 

Parameter

list_name - Specify the name of the MAC ACL. Names must begin with an alphabetic character and cannot contain a space or quotation mark.

 

 

Examples
  • This command places the switch in MAC-ACL configuration mode to modify the mfilter1 MAC ACL.
    switch(config)# mac access-list mfilter1
    switch(config-mac-acl-mfilter1)#

     

  • This command saves changes to mfilter1 ACL, then returns the switch to global configuration mode.
    switch(config-mac-acl-mfilter1)# exit
    switch(config)#

     

  • This command saves changes to mfilter1 ACL, then places the switch in interface-ethernet configuration mode.
    switch(config-mac-acl-mfilter1)# interface ethernet 3
    switch(config-if-Et3)#

     

  • This command discards changes to mfilter1, then returns the switch to global configuration mode.
    switch(config-mac-acl-mfilter1)# abort
    switch(config)#

match (route-map)

The match command creates a route map statement entry that specifies one route filtering command. When a statement contains multiple match commands, the permit or deny filter applies to a route only if the properties equal the corresponding parameters in each match command. When a route properties do not equal the command parameters, the route is evaluated against the next statement in the route map, as determined by sequence number. If all statements fail to permit or deny the route, the route is denied.

The no match and default match commands remove the match command from the configuration mode route map statement by deleting the corresponding command from running-config.

 

Note: The route map configuration supports only standard ACL.

 

 

Command Mode

Route-Map Configuration

 

Command Syntax

match condition

no match condition

default match condition

 

Parameters
  • condition - Specifies criteria for evaluating a route. Options include the following:
    • aggregate-role - Specify the role in BGP contributor-aggregate relation. Options include the following:
      • contributor - Specify BGP aggregate contributor.
      • aggregate-attributes - Specify the Route map to apply against the aggregate route.

         

    • as 1 to 4294967295 - Specify the BGP Autonomous System number.
    • as-path path_name - Specify the BGP Autonomous System path access list.
    • as-path length { <= | = | => } length
      • <= - Length of AS path must be less than or equal to specified value.
      • = - Length of AS path must be equal to specified value.
      • => Length of AS path must be equal to or greater than specified value.
      • length - Value for AS path length comparison (0-4000).

         

    • community name BGP community. Options include the following:
      • listname - Specify the BGP community.
      • listname - Specify the exact-match BGP community. The list must match the present set.

         

    • extcommunity listname - Specify the BGP extended community. Options include the following:
      • listname - Specify the BGP community.
      • listname - Specify the exact-match BGP community. The list must match the present set.

         

    • interface intf_name - Specifies an interface. Options include the following::
      • ethernet e_num - Specify the Ethernet interface.
      • loopback l_num - Specify the Loopback interface.
      • port-channel p_num - Specify the Port channel interface.
      • vlan v_num - Specify the VLAN interface.

         

      invert-result - Specify the Invert sub route map result.
    • ip address LIST - Specify the IPv4 address filtered by an ACL or prefix list. Options include the following:
      • access-list acl_name - Specify the IPv4 address filtered by access control list (ACL).
      • prefix-list plv4_name- Specify the IPv4 address filtered by IP prefix list.

         

    • ip next-hop prefix-list plv4_name - Specify the IPv4 next-hop filtered by IP prefix list.
    • ip resolved-next-hop prefix-list plv4_name - Specify the IPv4 resolved next-hop filtered by IP prefix list.
    • ipv6 address prefix-list plv6_name - Specify the IPv6 address filtered by IPv6 prefix list.
    • ipv6 next-hop prefix-list plv6_name - Specify the IPv6 next-hop filtered by IPv6 prefix list.
    • ipv6 resolved-next-hop prefix-list plv6_name - Specify the IPv6 resolved nexthop filtered by IPv6 prefix list.
    • local-preference 1 to 4294967295 - Specify the BGP local preference metric.
    • metric 1 to 4294967295 - Specify the route metric.
    • metric-type OSPF_TYPE - Specify the OSPF metric type. Options include the following:
      • type-1 OSPF type 1 metric.
      • type-2 OSPF type 2 metric.

         

    • source-protocol protocol_type - Specify the Routing protocol of route source. Options include the following:
      • bgp
      • connected
      • ospf
      • rip
      • static

         

    • tag 1 to 4294967295 Route tag.

 

Related Command

route-map

 

Examples

  • This command creates a route map match rule that filters routes from BGP as 15.
    switch(config)# route-map map1
    switch(config-route-map-map1)# match as 15
    switch(config-route-map-map1)#
  • This command adds a route-map match rule that the AS path be less than or equal to 300.
    switch(config-route-map-map1)# match as-path length <= 300
    switch(config-route-map-map1)#

no sequence number

The no sequence number command removes the rule with the specified sequence number from the ACL. The default <sequence number> command also removes the specified rule.

 

Command Mode

ACL Configuration

IPv6-ACL Configuration

Std-ACL Configuration

Std-IPv6-ACL Configuration

MAC-ACL Configuration

 

Command Syntax

no line_num

default line_num

 

Parameter

line_num - Specify the sequence number of rule to delete. Values range from 1 - 4294967295.

 

Example

This command removes statement 30 from the list.
switch(config-acl-test1)# show IP Access Lists test1
  10 permit ip 10.10.10.0/24 any
  20 permit ip any host 10.20.10.1
  30 deny ip host 10.10.10.1 host 10.20.10.1
  40 permit ip any any
  50 remark end of list
Total rules configured: 5
  Configured on Ingress: Et1/1
  Active on     Ingress: Et1/1

switch(config-acl-test1)# no 30
switch(config-acl-test1)# show IP Access Lists
  20 permit ip any host 10.20.10.1
  40 permit ip any any
  50 remark end of list
Total rules configured: 4
  Configured on Ingress: Et1/1
  Active on     Ingress: Et1/1

permit (IPv4 ACL)

The permit command adds a permit rule to the configuration mode IPv4 Access Control List (ACL). Interfaces with the applied ACL accept packets filtered by a permit rule the ACL is applied. Sequence numbers determine rule placement in the ACL. Sequence numbers for commands without numbers derive from adding 10 to the number of the ACL last rule.

The no permit and default permit commands remove the specified rule from the configuration mode ACL. The no <sequence number> (ACLs) command also removes a specified rule from the ACL.

 

Command Mode

ACL Configuration

 

Command Syntax

seq_num permit protocol src_addr source_pt dest_addr dest_pt flags msg fragments tracked dscp_filter ttl_filter log

no permit protocol src_addr source_pt dest_addr dest_pt flags msg fragments tracked dscp_filter ttl_filter log

default permit protocol src_addr source_pt dest_addr dest_pt flags msg fragments tracked dscp_filter ttl_filter log

 

Commands use a subset of the listed fields and available parameters depend on specified protocol.

 

Parameters
  • seq_num- Specify the sequence number assigned to the rule. Options include the following:
    • no parameter - A number derived from adding 10 to the number of the ACL's last rule.
    • 1 - 4294967295 - Specify the number assigned to entry.

       

  • protocol - Specify the protocol field filter. Options include the following:
    • ahp- Authentication Header Protocol (51)
    • gre - Generic Routing Encapsulation
    • gtp - GPRS Tunneling Protocol
    • icmp - Internet Control Message Protocol (1)
    • igmp -Internet Group Management Protocol (2)
    • ip -Any Internet Protocol v4 (4)
    • ospf -Open Shortest Path First (89)
    • pim -Protocol Independent Multicast (103)
    • tcp -Transmission Control Protocol (6)
    • udp -User datagram protocol (17)
    • vlan - Enter VLAN number and mask. VLAN value range from 1 to 4094, and mask value range from 0x000-0xFFF .
    • vrrp - Virtual Router Redundancy Protocol (112).
    • protocol_num -An integer corresponding to an IP protocol. Values range from 0 to 255.

       

  • src_addr and dest_addr - Specify the source and destination address filters. Options include the following:
    • network_addr - Specify the subnet address (CIDR or address-mask).
    • any - Filter packets from all addresses.
    • host ip_addr - Specify the IP address in dotted decimal notation.

      Source and destination subnet addresses support discontiguous masks.

       

  • source_port and dest_port Source and destination port filters. varnames include:
    • any - Specify all ports.
    • eq port-1 port-2 ... port-n - Specify a list of ports. Maximum list size is 10 ports.
    • neq port-1 port-2 ... port-n - Specify the set of all ports not listed. Maximum list size is 10 ports.
    • gt port - Specify the set of ports with larger numbers than the listed port.
    • lt port - Specify the set of ports with smaller numbers than the listed port.
    • range port_1 port_2 - Specify the set of ports within a range.

       

  • fragments -Filters packets with FO bit set (indicates a non-initial fragment packet).
  • flags -Specify the flags bit filters (TCP packets). Use CLI syntax assistance (?) to display varnames.
  • msg - Specify the message type filters (ICMP packets). Use CLI syntax assistance (?) to display varnames.
  • tracked - Specify the rule filters packets in existing ICMP, UDP, or TCP connections.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

       

  • dscp_filter -Specify the rule filters packet by its DSCP value. Values include:
    • no parameter - The rule does not use DSCP to filter packets.
    • dscp dscp_value - Packets match if DSCP field in packet is equal to dscp_value.

       

  • ttl_filter - Rule filters packet by its TTL (time-to-live) value. Values include:
    • ttl eq ttl_value - Match packets if ttl in packet is equal to ttl_value.
    • ttl gt ttl_value - Match packets if ttl in packet is greater than ttl_value.
    • ttl lt ttl_value - Match packets if ttl in packet is less than ttl_value.
    • ttl neq ttl_value - Match packets if ttl in packet is not equal to ttl_value.
      • Valid in ACLs applied to the control plane.
      • Validity in ACLs applied to data plane varies by switch platform.

         

  • log-Specify to trigger an informational log message to the console about the matching packet.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

 

Examples
  • This command appends a permit statement at the end of the ACL. The permit statement passes all OSPF packets from 10.10.1.1/24 to any host.
    switch(config)# ip access-list text1
    switch(config-acl-text1)# permit ospf 10.1.1.0/24 any
    switch(config-acl-text1)#

     

  • This command inserts a permit statement with the sequence number 25. The permit statement passes all PIM packets through the interface.
    switch(config-acl-text1)# 25 permit pim any any
    switch(config-acl-text1)#

     

  • These commands configure ACL to permit VLAN traffic between any source and destination host.
    switch(config)# ip access-list acl1
    switch(config-acl-acl1)# permit vlan 1234 0x0 ip any any

     

permit (IPv6 ACL)

The permit command adds a permit rule to the configuration mode IPv6 Access Control List (ACL). Interfaces with the applied ACL accept packets filtered by a permit rule the ACL is applied. Sequence numbers determine rule placement in the ACL. Sequence numbers for commands without numbers derive from adding 10 to the number of the ACL last rule.

The no permit and default permit commands remove the specified rule from the configuration mode ACL. The no <sequence number> (ACLs) command also removes a specified rule from the ACL.

 

Command Mode

IPv6-ACL Configuration

 

Command Syntax

seq_num permit protocol src_addr source_pt dest_addr dest_pt flags msg hop tracked dscp_filter log

no permit protocol src_addr source_pt dest_addr dest_pt flag msg hop tracked dscp_filter log

default deny protocol src_addr source_pt dest_addr dest_pt flag msg hop tracked dscp_filter log

 

Note: Commands use a subset of the listed fields and available parameters depend on specified protocol.

 

Parameters
  • seq_num - The sequence number assigned to the rule. Options include the following:
    • no parameter.Number is derived by adding 10 to the number of the ACL’s last rule.
    • 1 - 4294967295 Number assigned to entry.

       

  • protocol Specify the protocol field filter. Options include the following:
    • icmpv6 - Internet Control Message Protocol for IPv6 (58).
    • ipv6 - Internet Protocol IPv6 (41).
    • ospf - Open Shortest Path First (89).
    • tcp - Transmission Control Protocol (6).
    • udp - User Datagram Protocol (17).
    • vlan - Enter VLAN number. Value ranges from 1 to 4094.
    • protocol_num - Integer corresponding to an IP protocol. Values range from 0 to 255.

       

  • src_addr and dest_addr - Specify the source and destination address filters. Options include the following:
    • ipv6_prefix - Specify the IPv6 address with prefix length (CIDR notation).
    • any - Specify the Packets from all addresses are filtered.
    • host ipv6_addr - Specify the IPv6 host address.

       

  • source_pt and DEST_PT - Specify the source and destination port filters. Options include the following:
    • any All ports.
    • eq port-1 port-2 ... port-n - Specify the list of ports. Maximum list size is 10 ports.
    • neq port-1 port-2 ... port-n Specify the set of all ports not listed. Maximum list size is 10 ports.
    • gt port - Specify theset of ports with larger numbers than the listed port.
    • lt port - Specify the set of ports with smaller numbers than the listed port.
    • range port_1 port_2 - Specify the set of ports whose numbers are in the range.

       

  • hop - Filter using the packet’s hop-limit value. Options include the following:
    • no parameter - The rule does not use hop limit to filter packets.
    • hop-limit eq hop_value - Match packets if hop-limit value in packet equals hop_value.
    • hop-limit gt hop_value - Match packets if hop-limit in packet is greater than hop_value.
    • hop-limit lt hop_value - Match packets if hop-limit in packet is less than hop_value.
    • hop-limit neq hop_value - Match packets if hop-limit in packet is not equal to hop_value.

       

  • flag - Flag bit filters (TCP packets).
  • msg - Message type filters (ICMPv6 packets).
  • tracked The rule filters packets in existing ICMP, UDP, or TCP connections.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

       

  • dscp_filter The rule filters packet by its DSCP value. Options include the following:
    • no parameter - The rule does not use DSCP to filter packets.
    • dscp dscp_value - Match packets if DSCP field in packet is equal to dscp_value.

       

  • flow_label - The rule permits packets with IPv6 flow labels matching an exact value or a pattern based on a mask. varnames include:
    • no parameter - The rule does not use IPv6 flow labels to filter packets.
    • flow-label eq ipv6_flow_label - The IPv6 flow label must exactly match ipv6_flow_label. Flow labels can range from 0 to 1048575.
    • flow-label ipv6_flow_label flow_label_mask The IPv6 flow label must match a pattern defined by ipv6_flow_label and flow_label_mask. The mask is an inverse mask. Where the mask has a 0 bit, the flow label must match the ipv6_flow_label value, and where the mask has a 1 bit, the corresponding bit in the flow label is ignored. For example, if ipv6_flow_label is 10 (0b01010 in binary) and flow_label_mask is 0x14 (0b10100 in binary), the rule matches flow labels described by 0b.1.10 where “.” is a wildcard and can be either 0 or 1. The flow labels that match include 10 (0b01010), 14 (0b0110), 26 (0b11010), and 30 (0b1110). Flow labels can range from 0 to 1048575 and flow label masks can range from 0x00000 to 0xfffff.

       

  • log - Send an informational log message to the console when a packet matches.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

       

Examples
  • This command appends a permit statement at the end of the ACL. The permit statement passes all IPv6 packets with the source address 3710:249a:c643:ef11::/64 and with any destination address.
    switch(config)# ipv6 access-list acl1
    switch(config-acl-acl1)# permit ipv6 3710:249a:c643:ef11::/64 any
    switch(config-acl-acl1)# exit
    switch(config)#

     

  • These commands configure ACL to permit VLAN traffic between any source and destination host.
    switch(config)# ip access-list acl2
    switch(config-acl-acl2)# permit ipv6 vlan 1234 0x0 ip any any
    switch(config-acl-acl2)# exit
    switch(config)#

     

  • These commands add a rule to permit all IPv6 packets with flow label 23.
    switch(config)# ipv6 access-list acl3
    switch(config-acl-acl3)# permit ipv6 any any flow-label eq 23
    switch(config-acl-acl3)# exit
    switch(config)#

     

  • These commands create a rule to permit all IPv6 packets matched by the flow label 23 and the mask 0x5678.
    switch(config)# ipv6 access-list acl4
    switch(config-acl-acl4)# permit ipv6 any any flow-label 23 0x5678
    switch(config-acl-acl4)# exit
    switch(config)#

permit (IPv6 Prefix List)

The permit command adds a rule to the configuration mode IPv6 prefix list. Route map match commands use prefix lists to filter routes for redistribution into OSPF, RIP, or BGP domains. Routes are redistributed into the specified domain when they match the prefix that a permit statement specifies.

The no permit and default permit commands remove the specified rule from the prefix list. The no seq (IPv6 Prefix Lists) command also removes the specified rule from the prefix list.

 

Command Mode

IPv6-pfx Configuration

 

Command Syntax

seq_num permit ipv6_prefix mask

 

Parameters
  • seq_num - Specify the sequence number assigned to the rule. Options include the following:
    • no parameter - Number derived from adding 10 to the number of the list's last rule.
    • seq seq_num - Specify the number from the seq_num. Value ranges from 0 to 65535.

       

  • ipv6_prefix - Specify the IPv6 prefix that filters the routes in CIDR notation.
  • mask - Specify the range of the prefix to match.
    • no parameter - Requires an exact match with the subnet mask.
    • eq mask_e - Specify the prefix length equal to mask_e.
    • ge mask_g - Specify the range from the mask_g to 128.
    • le mask_l - Specify the range from the subnet mask length to mask_l.
    • ge mask_l le mask_g Range is from mask_g to mask_l.
    • mask_e, mask_l and mask_g range from 1 to 128.
    • When le and ge are specified, the prefix list size mask_g mask_l.

       

 

Example

This command appends a permit statement at the end of the text1 prefix list. The permit statement allows redistribution of routes with the specified prefix.
switch(config)# ipv6 prefix-list route-five
switch(config-ipv6-pfx)# permit 3100::/64
switch(config-ipv6-pfx)#

permit (MAC ACL)

The permit command adds a permit rule to the configuration mode MAC access control list packets through the interface to which the list is applied. Rule filters include protocol, source, and destination.

The no permit and default permit commands remove the specified rule from the configuration mode ACL. The no <sequence number> (ACLs) command also removes the specified rule from the ACL.

 

Command Mode

MAC-ACL Configuration

 

Command Syntax

seq_num permit source_addr dest_addr protocol log

no permit source_addr dest_addr protocol log

default permit source_addr dest_addr protocol log

 

Parameters
  • seq_num - Specify the sequence number assigned to the rule. Options include the following:
    • no parameter - Specify the number derived by adding 10 to the number of the ACL's last rule.
    • 1 - 4294967295 - Specify the number assigned to entry.

       

  • source_addr and dest_addr- Specify the source and destination address filters. Options include the following:
    • mac_address mac_mask - Specify the MAC address and mask.
    • any - Filter packets from all addresses.
    • mac_address - Specifies a MAC address in 3x4 dotted hexadecimal notation (hhhh.hhhh.hhhh).

    • mac_mask - Specifies a MAC address mask in 3x4 dotted hexadecimal notation (hhhh.hhhh.hhhh).
    • 0 - Require an exact match to filter.
    • 1 - Filter on any value.

       

  • protocol - Specify the protocol field filter. Options include the following:
    • aarp Appletalk Address Resolution Protocol (0x80f3).
    • appletalk Appletalk (0x809b).
    • arp Address Resolution Protocol (0x806).
    • ip Internet Protocol Version 4 (0x800).
    • ipx Internet Packet Exchange (0x8137).
    • lldp LLDP (0x88cc).
    • novell Novell (0x8138).
    • rarp Reverse Address Resolution Protocol (0x8035).
    • protocol_num Integer corresponding to a MAC protocol. Values range from 0 to 65535.

       

  • log - Specify to trigger an informational log message to the console about the matching packet.

 

Examples
  • This command appends a permit statement at the end of the ACL. The permit statement passes all aarp packets from 10.1000.0000 through 10.1000.FFFF to any host.
    switch(config)# mac access-list text1
    switch(config-mac-acl-text1)# permit 10.1000.0000 0.0.FFFF any aarp
    switch(config-mac-acl-text1)#

     

  • This command inserts a permit statement with the sequence number 25. The permit statement passes all packets through the interface.
    switch(config-mac-acl-text1)# 25 permit any any
    switch(config-mac-acl-text1)#

permit (Standard IPv4 ACL)

The permit command adds a permit rule to a standard IPv4 Access Control List (ACL). Standard ACL rules filter on the source field.

Interfaces with the applied ACL accept packets filtered by a permit rule. Sequence numbers determine rule placement in the ACL. Sequence numbers for commands without numbers derive from adding 10 to the number of the ACL's last rule..

The no permit and default permit commands remove the specified rule from the ACL. The no <sequence number> (ACLs) command also removes the specified rule from the ACL.

 

Command Mode

Std-ACL Configuration

 

Command Syntax

[seq_num] permit [ source_addr network_addr [any | host] [log]

no permit [ source_addr network_addr [any | host] [log]

default permit [ source_addr network_addr [any | host][log]

 

Parameters
  • seq_num - Specify the sequence number assigned to the rule. Options include the following:
    • no parameter - A number derived from adding 10 to the number of the ACL's last rule.
    • 1 - 4294967295 Number assigned to entry.

       

  • source_addr - Specify the source address filter. Options include the following:
    • network_addr - Specify the subnet address in CIDR or as an address-mask.
    • any - Filter packets from all addresses.
    • host ip_addr - Specify the IP address in dotted decimal notation.

      Subnet addresses support discontiguous masks.

       

  • log - Specify to trigger an informational log message to the console about the matching packet.
    • Valid in ACLs applied to the control plane.
    • Validity in ACLs applied to data plane varies by switch platform.

 

Example

This command appends a permit statement at the end of the ACL. The permit statement passes all packets with a source address of 10.10.1.1/24.
switch(config)# ip access-list standard text1
switch(config-std-acl-text1)# permit 10.1.1.1/24
switch(config-std-acl-text1)#

permit (Standard IPv6 ACL)

The permit command adds a permit rule to the standard IPv6 access control list. Standard ACL rules filter on the source field.

Interfaces with the applied ACL accept packets filtered by a permit rule. Sequence numbers determine rule placement in the ACL. Sequence numbers for commands without numbers derive from adding 10 to the number of the ACL's last rule.

The no permit and default permit commands remove the specified rule from the configuration mode ACL. The no <sequence number> (ACLs) command also removes the specified rule from the ACL.

 

Command Mode

Std-IPv6-ACL Configuration

 

Command Syntax

[seq_num] permit source_addr

no permit source_addr

default permit source_addr

 

Parameters
  • seq_num - Specify the sequence number assigned to the rule. Options include the following:
    • no parameter - The number derived by adding 10 to the number of the ACL's last rule.
    • 1 - 4294967295 - The number assigned to entry.

       

  • source_addr - Specify the source address filter. Options include the following:
    • ipv6_prefix - Specify the IPv6 address with prefix length (CIDR notation).
    • any - Filter packets from all addresses.
    • host ipv6_addr - Specify the IPv6 host address.

       

Example

This command appends a permit statement at the end of the ACL. The permit statement drops packets with a source address of 2103::/64.
switch(config)# ipv6 access-list standard text1
switch(config-std-acl-ipv6-text1)# permit 2103::/64
switch(config-std-acl-ipv6-text1)#

remark

The remark command adds a non-executable comment statement into the pending ACL. Remarks entered without a sequence number are appended to the end of the list. Remarks with a sequence number insert into the list as specified by the sequence number.

The default remark command removes the comment statement from the ACL.

The no remark command removes the comment statement from the ACL. The command can specify the remark by content or by sequence number.

 

Command Mode

ACL Configuration

IPv6-ACL Configuration

Std-ACL Configuration

Std-IPv6-ACL Configuration

MAC-ACL Configuration

 

Command Syntax

remark text

line_num remark [text]

no remark text

default remark text

 

Parameters
  • text The comment text.
  • line_num Sequence number assigned to the remark statement. Value ranges from 1 - 4294967295.

 

Example

This command appends a comment to the list.
switch(config-acl-test1)# remark end of list
switch(config-acl-test1)# show
IP Access List test1
  10 permit ip 10.10.10.0/24 any
  20 permit ip any host 10.20.10.1
  30 deny ip host 10.10.10.1 host 10.20.10.1
  40 permit ip any any  
  50 remark end of list

resequence (ACLs)

The resequence command assigns sequence numbers to rules in the configuration mode ACL. Command parameters specify the number of the first rule and the numeric interval between consecutive rules.

Maximum rule sequence number is 4294967295.

 

Command Mode

ACL Configuration

IPv6-ACL Configuration

Std-ACL Configuration

Std-IPv6-ACL Configuration

MAC-ACL Configuration

 

Command Syntax

resequence [start_num [inc_num]]

 

Parameters
  • start_num Sequence number assigned to the first rule. Default is 10.
  • inc_num Numeric interval between consecutive rules. Default is 10.

 

Example

The resequence command re-numbers the list, starting the first command at number 100 and incrementing subsequent lines by 20.
switch(config-acl-test1)# show
IP Access List test1
  10 permit ip 10.10.10.0/24 any
  20 permit ip any host 10.20.10.1
  30 deny ip host 10.10.10.1 host 10.20.10.1
  40 permit ip any any
  50 remark end of list
switch(config-acl-test1)# resequence 100 20
switch(config-acl-test1)# show
IP Access List test1
  100 permit ip 10.10.10.0/24 any
  120 permit ip any host 10.20.10.1
  140 deny ip host 10.10.10.1 host 10.20.10.1
  160 permit ip any any
  180 remark end of list

route-map

The route-map command places the switch in Route-Map Configuration Mode, a group change mode that modifies a route map statement. The command specifies the name and number of the route map statement that subsequent commands modify and creates a route map statement if it references a nonexistent statement. All changes in a group change mode edit session pend until the end of the session.

Route maps define commands for redistributing routes between routing protocols. Use names, filter type (permit or deny), and sequence number to identify a route map statement. Statements with the same name are components of a single route map, and the sequence number determines the order in which the statements compare to a route.

The exit command saves pending route map statement changes to running-config, then returns the switch to global configuration mode. Also, save ACL changes by entering a different configuration mode.

The abort command discards pending changes, returning the switch to global configuration mode.

The no route-map and default route-map commands delete the specified route map statement from running-config.

 

Note: The route map configuration supports only standard ACL.

 

 

Command Mode

Global Configuration

 

Command Syntax

route-map map_name [filter_type] [sequence_number]

no route-map map_name [filter_type] [sequence_number]

default route-map map_name [filter_type][sequence_number]

 

Parameters
  • map_name - Assign a label to the route map. Protocols reference this label to access the route map.
  • filter_type - Specify the disposition of routes matching commands specified by route map statement.
    • permit - Redistribute routes when they match route map statement.
    • deny - Do not redistribute routes when they match route map statement.
    • no parameter Assigns permit as the filter_type.

       

When a route does not match the route map criteria, EOS evaluates the next statement within the route map to determine the redistribution action for the route.
  • sequence_number - Specify the route map position relative to other statements with the same name.
    • no parameter - Assign the sequence number of 10 (default) to the route map.
    • 1-16777215 - Specifies sequence number assigned to route map.

 

Commands Available in Route-Map Configuration Mode:

 

Examples
  • This command creates the route map named map1 and places the switch in route map configuration mode. This configures the route map as a permit map.
    switch(config)# route-map map1 permit 20
    switch(config-route-map-map1)#

     

  • This command saves changes to map1 route map, then returns the switch to Global Configuration Mode.
    switch(config-route-map-map1)# exit
    switch(config)#

     

  • This command saves changes to map1 route map, then places the switch in Interface-Ethernet Configuration Mode.
    switch(config-route-map-map1)# interface ethernet 3
    switch(config-if-Et3)#

     

  • This command discards changes to map1 route map, then returns the switch to Global Configuration Mode.
    switch(config-route-map-map1)# abort
    switch(config)#

no seq (IPv6 Prefix Lists)

The no seq command removes the rule with the specified sequence number from the ACL. The default seq command also removes the specified rule.

The seq keyword provides a command option used at the beginning of deny (IPv6 Prefix List) and permit (IPv6 Prefix List) commands that places a new rule between two existing rules.

 

Command Mode

IPv6-pfx Configuration

 

Command Syntax

no seq line_num

default seq line_num

 

Parameter

line_num - Specify the sequence number of rule to delete. Valid rule numbers range from 0 to 65535.

 

Example

These commands remove rule 20 from the map1 prefix list, then displays the resultant list.
switch(config)# ipv6 prefix-list map1
switch(config-ipv6-pfx)# no seq 20
switch(config-ipv6-pfx)# exit
switch(config)# show ipv6 prefix-list map1
ipv6 prefix-list map1
seq 10 permit 3:4e96:8ca1:33cf::/64
seq 15 deny 3:4400::/64
seq 30 permit 3:1bca:3ff2:634a::/64
seq 40 permit 3:1bca:1141:ab34::/64
switch(config)#

set (route-map)

The set command specifies modifications to routes selected for redistribution by the Route-Map Configuration Mode.

The no set and default set commands remove the specified set command from the Route-Map Configuration Mode statement by deleting the corresponding set command from running-config.

 

Command Mode

Route-Map Configuration

 

Command Syntax

set condition [as-path prepend [num | auto]]

no set condition [as-path prepend [num | auto]]

default set condition[as-path prepend [num | auto]]

 

Parameters
  • condition - Specifies the route modification parameter and value. Options include the following:
    • as-path prepend - Specifies the BGP AS number prepended to as-path. For details, see the set as-path prepend command.
      • 1 - 4294967295 - Specifies the BGP AS number to prepend.
      • auto - Specifies to use the peer AS number for inbound and local AS for outbound to prepend.

         

    • distance 1 - 255 - Specifies the protocol independent administrative distance.
    • ip next-hop ipv4_address - Specifies the next-hop IPv4 address.
      • peer-address - Specifies using BGP peering address as next hop IPv4 address.
    • ipv6 next-hop ipv6_address - Specifies the next-hop IPv6 address.
      • peer-address - Specifies using the BGP peering address as next hop IPv6 address.
    • local-preference 1 - 4294967295 - Specifies the BGP local preference metric.
    • metric 1 - 4294967295 - Specifies the route metric.
    • metric + 1 - 4294967295 - Specifies adding specified value to current route metric.
    • metric - 1 - 4294967295 - Specifies subtracting specified value to current route metric.
    • metric-type OSPF_TYPE OSPF metric type. Options include the following:
      • type-1 - OSPF type 1 metric.
      • type-2 - OSPF type 2 metric.

         

    • origin O_TYPE BGP origin attribute. Options include the following:
      • egp - Exterior BGP route.
      • igp - Interior BGP route.
      • incomplete - BGP route of unknown origin.

         

    • tag 1 - 4294967295 - Route tag.
    • weight 1 - 65535 - BGP weight parameter.

 

Related Commands

 

Example

This command creates a route map entry that sets the local preference metric to 100 on redistributed routes.
switch(config)# route-map map1
switch(config-route-map-map1)# set local-preference 100
switch(config-route-map-map1)#

set as-path match

The set as-path match command configures the as_path attribute for prefixes either received from a BGP neighbor or advertised to a BGP neighbor in the Route-Map Configuration Mode.

The no set as-path match command removes the AS path specified for the BGP prefix.

 

Command Mode

Route-Map Configuration

 

Command Syntax

set as-path match [all replacement [none| auto]] as_path

set as-path match[all replacement [none| auto]] as_path

 

Parameters
  • none - Replaces the as_path of the matching routes with a null or an empty as_path.
  • auto - Applying the specific route map as an inbound policy to a corresponding BGP neighbor statement, then replace the as_path of the prefixes received from this neighbor with the neighbor AS number. If applying this route map as an outbound policy to a corresponding neighbor statement, then replace the as_path of the prefixes advertised to this neighbor with the locally configured AS number.
  • as_path - Replaces the AS-Path of the matching routes with an arbitrary as_path.

 

Examples
  • This command replaces the AS-Path with the none option.
    switch# show ip bgp neighbors 80.80.1.2 advertised-routes
    BGP routing table information for VRF default
    Router identifier 202.202.1.1, local AS number 200
    Route status codes: s - suppressed, * - valid, > - active, # - not installed, E 
    - ECMP head, e - ECMP
    S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast, q - Queued 
    for advertisement
    Origin codes: i - IGP, e - EGP, ? - incomplete
    AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - 
    Link Local Nexthop
    
    Network Next Hop Metric LocPref Weight Path
    * > 101.101.1.0/24 80.80.1.1 - - - 200 i
    * > 102.102.1.0/24 80.80.1.1 - - - 200 i
    * > 103.103.1.0/24 80.80.1.1 - - - 200 302 i
    * > 202.202.1.0/24 80.80.1.1 - - - 200 i
    
    switch# configure terminal
    switch(config)# route-map foo permit 10
    switch(config-route-map-foo)# set as-path match all replacement none
    switch(config-route-map-foo)# exit
    switch(config)# router bgp 200
    switch(config-router-bgp)# neighbor 80.80.1.2 route-map foo out
    switch(config-router-bgp)# end
    
    switch# show ip bgp neighbors 80.80.1.2 advertised-routes
    BGP routing table information for VRF default
    Router identifier 202.202.1.1, local AS number 200
    Route status codes: s - suppressed, * - valid, > - active, # - not installed, E 
    - ECMP head, e - ECMP
    S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast, q - Queued 
    for advertisement
    Origin codes: i - IGP, e - EGP, ? - incomplete
    AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - 
    Link Local Nexthop
    
    Network Next Hop Metric LocPref Weight Path
    * > 101.101.1.0/24 80.80.1.1 - - - 200 i
    * > 102.102.1.0/24 80.80.1.1 - - - 200 i
    * > 103.103.1.0/24 80.80.1.1 - - - 200 i
    * > 202.202.1.0/24 80.80.1.1 - - - 200 i

     

  • Replace the AS-Path of matching prefixes with an empty or a null AS-Path. Remove AS 302 from prefix 103.103.1.0/24 as shown in the above output.
    • This command replaces the AS-Path with the auto option.
      switch(config)# route-map foo permit 10
      switch(config-route-map-foo)# set as-path match all replacement auto
      switch(config-route-map-foo)# end
      
      switch# show ip bgp neighbors 80.80.1.2 advertised-routes
      BGP routing table information for VRF default
      Router identifier 202.202.1.1, local AS number 200
      Route status codes: s - suppressed, * - valid, > - active, # - not installed, E 
      - ECMP head, e - ECMP
      S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast, q - Queued 
      for advertisement
      Origin codes: i - IGP, e - EGP, ? - incomplete
      AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - 
      Link Local Nexthop
      
      Network Next Hop Metric LocPref Weight Path
      * > 101.101.1.0/24 80.80.1.1 - - - 200 200 i
      * > 102.102.1.0/24 80.80.1.1 - - - 200 200 i
      * > 103.103.1.0/24 80.80.1.1 - - - 200 200 i
      * > 202.202.1.0/24 80.80.1.1 - - - 200 200 i

       

      Replaces the AS-Path of matching prefixes with the locally configured AS 200.

       

    • This command replaces the AS-Path with another AS-Path.
      switch(config)# route-map foo permit 10
      switch(config-route-map-foo)# set as-path match all replacement 500 600
      switch(config-route-map-foo)# end
      
      switch# show ip bgp neighbors 80.80.1.2 advertised-routes
      BGP routing table information for VRF default
      Router identifier 202.202.1.1, local AS number 200
      Route status codes: s - suppressed, * - valid, > - active, # - not installed, E 
      - ECMP head, e - ECMP
      S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast, q - Queued 
      for advertisement
      Origin codes: i - IGP, e - EGP, ? - incomplete
      AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - 
      Link Local Nexthop
      
      Network Next Hop Metric LocPref Weight Path
      * > 101.101.1.0/24 80.80.1.1 - - - 200 500 600 i
      * > 102.102.1.0/24 80.80.1.1 - - - 200 500 600 i
      * > 103.103.1.0/24 80.80.1.1 - - - 200 500 600 i
      * > 202.202.1.0/24 80.80.1.1 - - - 200 500 600 i

       

      Replaces the AS-Path of matching prefixes with 500 600 as configured.

       

  • Replaces the AS-Path with a combination of auto and an AS-Path.
    switch(config)# route-map foo permit 10
    switch(config-route-map-foo)# set as-path match all replacement auto 500 600
    switch(config-route-map-foo)# end
    
    switch# show ip bgp neighbors 80.80.1.2 advertised-routes
    BGP routing table information for VRF default
    Router identifier 202.202.1.1, local AS number 200
    Route status codes: s - suppressed, * - valid, > - active, # - not installed, E 
    - ECMP head, e - ECMP
     S - Stale, c - Contributing to ECMP, b - backup, L - labeled-unicast, q - Queued 
    for advertisement
    Origin codes: i - IGP, e - EGP, ? - incomplete
    AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - 
    Link Local Nexthop
    
     Network Next Hop Metric LocPref Weight Path
     * > 101.101.1.0/24 80.80.1.1 - - - 200 200 500 600 i
     * > 102.102.1.0/24 80.80.1.1 - - - 200 200 500 600 i
     * > 103.103.1.0/24 80.80.1.1 - - - 200 200 500 600 i
     * > 202.202.1.0/24 80.80.1.1 - - - 200 200 500 600 i

     

    Replaces the AS-Path of matching prefixes with the locally configured AS 200 and 500 600.

set as-path prepend

The set as-path prepend command adds a set statement to a route map to prepend one or more Autonomous System (AS) numbers to the as_path attribute of a BGP route.

The no set as-path prepend and default set as-path prepend commands remove the specified set statements from the route map and update all corresponding routes.

 

Command Mode

Route-Map Configuration

 

Command Syntax

set as-path prepend auto | as_number [auto | as_number | last-as count]

no set as-path prepend auto | as_number [auto | as_number | last-as count]

default set as-path prepend auto | as_number [auto | as_number | last-as count]

 

Parameters
  • auto - Prepends the peer AS number for peer inbound route maps and the local AS number for peer outbound route maps.
  • as_number - Prepends the specified AS number. Enter in plain notation (values range from 1-4294967295) or in asdot notation as described in RFC 5396. In asdot notation, enter AS numbers from 1-65535 in plain notation, and enter AS numbers from 65536 to 4294967295 as two values separated by a dot. The first value is high-order and represents a multiple of 65536, and the second value is low-order and represents a decimal integer. For example, AS number 65552 can be entered as either 65552 or 1.16 (i.e., 1*65536+16). However entered, EOS stores the AS numbers internally in plain decimal notation and appear that way in show outputs.
  • last-as count - Prepends the last AS number in the AS path count times. Values range from 1 to 15. Mutually exclusive with the use of the auto cmdname or the entry of one or more specified AS numbers, and not supported in multi-agent mode.

 

Examples
  • These commands create a route-map entry that prepends AS number 64496 and prepends either the peer or local AS number twice.
    switch(config)# route-map map1
    switch(config-route-map-map1)# set as-path prepend 64496 auto auto
    switch(config-route-map-map1)# exit
    
    switch(config)# show route-map map1
    route-map map1 permit 10
      Description:
      Match clauses:
      SubRouteMap:
      Set clauses:
        set as-path prepend 64496 auto auto
    switch(config)#

     

  • The commands create a route-map entry that prepends AS numbers 64496, 64498, and 65552.
    switch(config)# route-map map2
    switch(config-route-map-map2)# set as-path prepend 64496 64498 1.16
    switch(config-route-map-map2)# exit
    
    switch(config)# show route-map map2
    route-map map2 permit 10
      Description:
      Match clauses:
      SubRouteMap:
      Set clauses:
        set as-path prepend 64496 64498 65552
    switch(config)#

     

  • These commands create a route map entry that prepends the last AS number 12 times.
    switch(config)# route-map map3
    switch(config-route-map-map3)# set as-path prepend last-as 12
    switch(config-route-map-map3)# exit
    
    switch(config)# show route-map map3
    route-map map3 permit 10
      Description:
      Match clauses:
      SubRouteMap:
      Set clauses:
        set as-path prepend last-as 12
    switch(config)#

set community (route-map)

The set community command specifies community attribute modifications to routes selected for redistribution. The set community none command removes community attributes from the route.

The no set community and default set community commands remove the specified community from the Route-Map Configuration Modestatement by deleting the corresponding statement from the running config.

 

Command Mode

Route-Map Configuration

 

Command Syntax

set community [gshut | aa:nn | community-list | internet | local-as | no-advertise | no-export | none | number]

no set community [gshut | aa:nn | additive | community-list | delete | internet | local-as | no-advertise | no-export | none | number]

default set community [gshut | aa:nn | additive | community-list | delete | internet | local-as | no-advertise | no-export | none | number]

 

Parameters
  • gshut - Configures a graceful shutdown in BGP.
  • aa:nn - Configures the community AS and network number, separated by colon. Value ranges from 0:0 to 65535:65535.
  • community-list - A label for community list.
  • internet - Advertises route to the Internet community.
  • local-as - Advertises route only to local peers.
  • no-advertise - Does not advertise route to any peer.
  • no-export - Advertises route only within BGP AS boundary.
  • none - Does not provide any community attributes.
  • number - Configures the community number. Value ranges from 1 to 4294967040.
  • additive - Adds specified attributes to the current community.
  • delete - Removes specified attributes from the current community.

 

 

Guideline

EOS does not support disabling the process of graceful shutdown community.

 

Example

This command advertises routes only to local peers.
switch(config-route-map-map1)# show active
route-map map1 permit 10
   match community instances <= 50
   set community 0:456 0:2345
switch(config-route-map-map1)# set community local-as
switch(config-route-map-map1)# ip community-list 345 permit 23
switch(config)# route-map map1
switch(config-route-map-map1)# show active
route-map map1 permit 10
   match community instances <= 50
   set community 0:456 0:2345 local-as
switch(config-route-map-map1)#

set extcommunity (route-map)

The set extcommunity command specifies extended community attribute modifications to routes selected for redistribution. The set extcommunity none command removes extended community attributes from the route.

The no set extcommunity and default set extcommunity commands remove the specified set extcommunity command from the Route-Map Configuration Mode statement by deleting the corresponding statement from running-config.

 

Command Mode

Route-Map Configuration Mode

 

Command Syntax

set extcommunity cond_x [cond_2][cond_n][mod_type]

set extcommunity none

no set extcommunitycond_x [cond_2][cond_n][mod_type]

default set extcommunity cond_x [cond_2][cond_n][mod_type]

default set extcommunity none

 

Parameters
  • cond_x - Specifies extended community route map modification. Command may contain multiple attributes. Options include the following:
    • rt asn:nn - Specifies the route target attribute (AS:network number).
    • rt ip-address:nn - Specifies the route target attribute (IP address: network number).
    • soo ASN:nn - Specifies the site of origin attribute (AS:network number).
    • soo IP-address:nn - Specifies the site of origin attribute (IP address: network number).

       

  • mod_type- Specifies the route map modification method. Options include the following:
    • no parameter - Specifies the command to replace an existing route map with specified parameters.
    • additive - Specifies the command to add specified parameters to existing route map.
    • delete - Specifies the command to remove specified parameters from existing route map.

 

Related Commands
  • route-map enters route map configuration mode.
  • set (route-map) specifies attribute modifications for the redistributed routes.

 

Example

This command creates a route map entry in map1 that sets the route target extended community attribute.
switch(config)# route-map map1
switch(config-route-map-map1)# set extcommunity rt 10.13.2.4:100
switch(config-route-map-map1)#

show (ACL configuration modes)

The show command displays the contents of an Access Control List (ACL).
  • show or show pending displays the list as modified in ACL configuration mode.
  • show active displays the list as stored in running-config.
  • show comment displays the comment stored with the list.
  • show diff displays the modified and stored lists, with flags denoting the modified rules.

     

Exiting the ACL configuration mode stores all pending ACL changes to running-config.

 

Command Mode

ACL Configuration

IPv6-ACL Configuration

Std-ACL Configuration

Std-IPv6-ACL Configuration

MAC-ACL Configuration

 

Command Syntax

show

show active

show comment

show diff

show pending

 

Examples

The examples in this section assume these ACL commands are entered as specified.

  • These commands are stored in none:

    10 permit ip 10.10.10.0/24 any
    20 permit ip any host 10.21.10.1
    30 deny ip host 10.10.10.1 host 10.20.10.1
    40 permit ip any any
    50 remark end of list

     

  • The current edit session removed this command. This change is not yet stored to none:

    20 permit ip any host 10.21.10.1

     

  • The current edit session added these commands ACL. They are not yet stored to none:

    20 permit ip 10.10.0.0/16 any
    25 permit tcp 10.10.20.0/24 any
    45 deny pim 239.24.124.0/24 10.5.8.4/30

     

  • This command displays the ACL, as stored in the configuration.
    switch(config-acl-test_1)# show active
    IP Access List test_1
      10 permit ip 10.10.10.0/24 any
      20 permit ip any host 10.21.10.1
      30 deny ip host 10.10.10.1 host 10.20.10.1
      40 permit ip any any
      50 remark end of list

     

  • This command displays the pending ACL, as modified in ACL configuration mode.
    switch(config-acl-test_1)# show pending
    IP Access List test_1
      10 permit ip 10.10.10.0/24 any
      20 permit ip 10.10.0.0/16 any
      25 permit tcp 10.10.20.0/24 any
      30 deny ip host 10.10.10.1 host 10.20.10.1
      40 permit ip any any
      45 deny pim 239.24.124.0/24 10.5.8.4/30
      50 remark end of list

     

  • This command displays the difference between the saved and modified ACLs.
    • Rules added to the pending list are denoted with a plus sign (+).
    • Rules removed from the saved list are denoted with a minus sign (-)
      switch(config-acl-test_1)# show diff
      ---
      +++
      @@ -1,7 +1,9 @@
       IP Access List test_1
        10 permit ip 10.10.10.0/24 any
        20 permit ip any host 10.21.10.1
        20 permit ip 10.10.0.0/16 any
        25 permit tcp 10.10.20.0/24 any
        30 deny ip host 10.10.10.1 host 10.20.10.1
        40 permit ip any any  
        45 deny pim 239.24.124.0/24 10.5.8.4/30

show hardware tcam profile

The show hardware tcam profile command displays the hardware specific information for the current operational TCAM profile in the running configuration.

This command is applicable to DCS-7280(E/R) and DCS-7500(E/R) series switches only.

 

Command Mode

EXEC

 

Command Syntax

show hardware tcam profile [[profileName [[feature featureName] detail]]|[detail]

 

Parameters
  • profileName Selects the named profile.
  • featurefeatureNameSelects the specific feature by name.
  • detail Displays the content of the TCAM profile.

Guidelines

If the profile cannot be programmed, the Status column will print ‘ERROR‘. Any features that use TCAM functionality will not work properly. Do not expect any features to work if the profile is in the ‘ERROR’ state. If there are warnings or errors, a summary message will display warnings or errors found in programming the profile in addition to the system log messages.

 

Examples
  • The show hardware tcam profile lists the TCAM profile status on each line card. In case of successful programming it is as shown below.
    switch(config)# show hardware tcam profile
                         Configuration            Status
    FixedSystem          testprofile              testprofile

     

  • If the profile cannot be programmed, the Status column will print ‘ERROR‘.
    (config)# show hardware tcam profile
                 Configuration    Status
    Linecard3    newprofile1    ERROR
    Linecard4    newprofile1    ERROR Linecard5 newprofile1 ERROR
    Linecard6    newprofile1    ERROR
    Linecard7    newprofile1    WARNING
    
    Detailed Programming Status
    Linecard3, Linecard4, Linecard5
    [Error] feature flow is not supported on this hardware platform
    Linecard7
    [Warning] the key size of feature flow exceeds the configured key size limit

     

  • The show hardware tcam profile <profile> detail command displays further info about the TCAM profile features.
    Note: The profile contains all the features that are untouched after copying from the base profile.

     

    switch(config-hw-tcam)# show hardware tcam profile myprofile detail
    Profile myprofile [ FixedSystem ]
     Feature:             acl port ip egress
     Key size:            320
     Key Fields:          dscp, dst-ip, ip-frag, ip-protocol, l4-dst-port,
                          l4-src-port, src-ip
     
     Feature:             acl port ip ingress
     Key size:            320
     Key Fields:          dscp, dst-ip, ip-frag, ip-protocol, l4-dst-port, l4-ops,
                          l4-src-port, src-ip, tcp-control, ttl
     
     Feature:             acl port ipv6 egress
     Key size:            320
     Key Fields:          dst-ipv6, ip-protocol, ipv6-next-header,
                          ipv6-traffic-class, l4-dst-port, l4-src-port, src-ipv6,
                          tcp-control, ttl
     
     Feature:             acl port ipv6 ingress
     Key size:            320
     Key Fields:          dst-ipv6, ip-protocol, ipv6-next-header,
                          ipv6-traffic-class, l4-dst-port, l4-ops, l4-src-port,
                          src-ipv6, tcp-control, ttl
        
     Feature:             acl port ipv6 source-only egress
     Key size:            320
     Key Fields:          ip-protocol, src-ipv6
        
     Feature:             acl port mac egress
     Key size:            320
     Key Fields:          dst-mac, ether-type, src-mac
    ...

     

  • You can use the show hardware tcam profile command without the detail keyword to see all of the features configured in a profile without seeing how the features are defined.
    (config-hw-tcam-profile-newfeature)# show hardware tcam profile default
    
    Features enabled in TCAM profile default: [ Linecard3, Linecard4, Linecard6, Linecard
    7, Linecard8, Linecard9, Linecard10 ]
    
    mpls
    acl vlan ipv6
    acl subintf ipv6
    acl vlan ipv6 egress
    acl port ipv6
    pbr ipv6
    acl vlan ip
    acl subintf ip
    acl port ip
    tunnel vxlan
    acl port mac
    pbr ip
    pbr mpls
    qos ipv6
    qos ip
    mirror ip
    counter lfib
    mpls pop ingress

     

show access-lists

The show access-lists command displays the contents of all IPv4, IPv6, and MAC Access Control Lists (ACLs) on the switch in addition to the configuration and status. Use the summary option to display only the configuration and status, which contains details such as the name of the ACL, total rules configured, configured and active status containing interface information, and supplicant information as in the case of dynamic ACLs from dot1x sessions.

 

Command Mode

Privileged EXEC

 

Command Syntax

show access-lists[interface interface_acl] | [acl_name acl_name] acl_name | [scope summary]

 

Parameters

  • interface - Filter by interfaces such as Ethernet, VLANs, and Port Channels. Selection options include the following:
    • no parameter - Display all ACLs.
    • interface_acl - Display ACLs attached to the interface if present.

       

  • acl_name - Display the list name. Selection options include the following:
    • no parameter - Display all ACLs.
    • acl_name - Display a specific ACL.

       

  • scope - Display detailed or summarized information. Selection options include the following:
    • no parameter - Display all rules in the specified lists including the configuration and status.
    • summary - Display only the configuration and status of the ACL.

 

Examples
  • This command displays all rules in all the ACLs including IPv4, IPv6, and MAC and the configuration and status.
    switch# show access-lists
    Phone ACL bypass: disabled
    IP Access List default-control-plane-acl [readonly]
            counters per-entry
            10 permit icmp any any
            20 permit ip any any tracked [match 149061 bytes in 1721 packets, 0:00:00 ago]
            30 permit udp any any eq bfd ttl eq 255
            40 permit udp any any eq bfd-echo ttl eq 254
            50 permit udp any any eq multihop-bfd micro-bfd sbfd
            60 permit udp any eq sbfd any eq sbfd-initiator
            70 permit ospf any any
            80 permit tcp any any eq ssh telnet www snmp bgp https msdp ldp netconf-ssh gnmi [match 180 bytes in 3 packets, 0:03:08 ago]
            90 permit udp any any eq bootps bootpc snmp rip ntp ldp ptp-event ptp-general [match 984 bytes in 3 packets, 1 day, 9:02:21 ago]
            100 permit tcp any any eq mlag ttl eq 255
            110 permit udp any any eq mlag ttl eq 255
            120 permit vrrp any any
            130 permit ahp any any
            140 permit pim any any
            150 permit igmp any any
            160 permit tcp any any range 5900 5910
            170 permit tcp any any range 50000 50100
            180 permit udp any any range 51000 51100
            190 permit tcp any any eq 3333
            200 permit tcp any any eq nat ttl eq 255
            210 permit tcp any eq bgp any
            220 permit rsvp any any
            230 permit tcp any any eq 9340
            240 permit tcp any any eq 9559
            250 permit udp any any eq 8503
            260 permit udp any any eq lsp-ping
            270 permit udp any eq lsp-ping any
    
            Total rules configured: 27
            Configured on Ingress: control-plane(default VRF)
            Active on     Ingress: control-plane(default VRF)
    
    IP Access List v4Acl
            10 permit ip any any
    
            Total rules configured: 1
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    
    Standard IP Access List stAcl
            10 permit any
    
            Total rules configured: 1
    
    IP Access List noRulesAcl
    
            Total rules configured: 0
            Configured on Ingress: Et2/1
            Active on     Ingress: Et2/1
    
    IPV6 Access List default-control-plane-acl [readonly]
            counters per-entry
            10 permit icmpv6 any any [match 335448 bytes in 4424 packets, 0:01:13 ago]
            20 permit ipv6 any any tracked
            30 permit udp any any eq bfd hop-limit eq 255
            40 permit udp any any eq bfd-echo hop-limit eq 254
            50 permit udp any any eq multihop-bfd micro-bfd sbfd
            60 permit udp any eq sbfd any eq sbfd-initiator
            70 permit ospf any any
            80 permit 51 any any
            90 permit 50 any any
            100 permit tcp any any eq ssh telnet www snmp bgp https netconf-ssh gnmi
            110 permit udp any any eq bootps bootpc snmp ntp ptp-event ptp-general
            120 permit tcp any any eq mlag hop-limit eq 255
            130 permit udp any any eq mlag hop-limit eq 255
            140 permit tcp any any range 5900 5910
            150 permit tcp any any range 50000 50100
            160 permit udp any any range 51000 51100
            170 permit udp any any eq dhcpv6-client dhcpv6-server
            180 permit tcp any eq bgp any
            190 permit tcp any any eq nat hop-limit eq 255
            200 permit udp any any eq nat hop-limit eq 255
            210 permit rsvp any any
            220 permit pim any any
            230 permit tcp any any eq 9340
            240 permit tcp any any eq 9559
            250 permit udp any any eq 8503
            260 permit udp any any eq lsp-ping
            270 permit udp any eq lsp-ping any
    
            Total rules configured: 27
            Configured on Ingress: control-plane(default VRF)
            Active on     Ingress: control-plane(default VRF)
    
    IPV6 Access List v6Acl
            10 permit ipv6 3891:3c58:6300::/64 any
            20 permit ipv6 any host 2fe1:b468:24a::
            30 deny ipv6 host 3411:91c1:: host 4210:cc23:d2de::
    
            Total rules configured: 3
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    
    MAC Access List mlist
            10 deny any any
    
            Total rules configured: 1
            Configured on Ingress: Et11/1
            Configured on Egress: Et11/1
            Active on     Ingress: Et11/1
            Active on     Egress: Et11/1

     

  • This command displays only the configuration and status of each ACL on the switch.
    switch# show access-lists summary
    Phone ACL bypass: disabled
    IPV4 ACL default-control-plane-acl [readonly]
            Total rules configured: 27
            Configured on Ingress: control-plane(default VRF)
            Active on     Ingress: control-plane(default VRF)
    
    IPV4 ACL v4Acl
            Total rules configured: 1
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    
    Standard IPV4 ACL stAcl
            Total rules configured: 1
    
    IPV4 ACL noRulesAcl
            Total rules configured: 0
            Configured on Ingress: Et2/1
            Active on     Ingress: Et2/1
    
    IPV6 ACL default-control-plane-acl [readonly]
            Total rules configured: 27
            Configured on Ingress: control-plane(default VRF)
            Active on     Ingress: control-plane(default VRF)
    
    IPV6 ACL v6Acl
            Total rules configured: 3
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    
    MAC ACL mlist
            Total rules configured: 1
            Configured on Ingress: Et11/1
            Configured on Egress: Et11/1
            Active on     Ingress: Et11/1
            Active on     Egress: Et11/1

     

  • This command displays all rules in list2 ACL and the configuration and status.

    switch# show access-list list2
    IP Access List list2
            10 permit ip 10.10.10.0/24 any
            20 permit ip any host 10.20.10.1
            30 deny ip host 10.10.10.1 host 10.20.10.1
           
            Total rules configured: 3
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    
    IPV6 Access List list2
            10 permit ipv6 3891:3c58:6300::/64 any
            20 permit ipv6 any host 2fe1:b468:24a::
            30 deny ipv6 host 3411:91c1:: host 4210:cc23:d2de::
    
            Total rules configured: 3
            Configured on Ingress: Et2/1
            Active on     Ingress: Et2/1
    switch#

     

    The above output displayed two ACLs as the switch had an IPv4 ACL and an IPv6 ACL with the same name.

     

  • This command displays all rules in list2 ACL on Ethernet 1/1 with the configuration and status.
    switch# show access-list list2 interface Ethernet 1/1
    IP Access List list2
            10 permit ip 10.10.10.0/24 any
            20 permit ip any host 10.20.10.1
            30 deny ip host 10.10.10.1 host 10.20.10.1
           
            Total rules configured: 3
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    switch#

     

show ip access-lists

The show ip access-lists command displays the contents of IPv4 and standard IPv4 Access Control List (ACLs) on the switch with the configuration and status. Use the summary option to display only the configuration and status with details such the name of the ACL, total rules configured, configured and active status containing interface information, and supplicant information as in the case of dynamic ACLs from dot1x sessions.

 

Command Mode

Privileged EXEC

 

Command Syntax

show ip access-lists [interface interface_ipv4]|[acl_name acl_name] | [scope summary]

 

Parameters

  • interface Filter on interfaces such as Ethernet, VLANs, and Port Channels. Selection options include the following:
    • no parameter - Displays all IPv4 ACLs.
    • interface_ipv4 - Display the ACLs on a specified interface.

       

  • acl_name - Specify the name of a list to display. Selection options include the following:
    • no parameter - Displays all IPv4 ACLs.
    • acl_name - Specify an IPv4 ACL to display.

       

  • scope - Displays detailed or summarized information. Selection options include the following:
    • no parameter - Display all rules in the specified lists with the configuration and status.
    • summary - Display only the configuration and status.

       

Examples
  • This command displays all rules in list2 IPv4 ACL, configuration, and status.
    switch# show ip access-lists list2
    IP Access List list2
            10 permit ip 10.10.10.0/24 any
            20 permit ip any host 10.20.10.1
            30 deny ip host 10.10.10.1 host 10.20.10.1
    Total rules configured: 3
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    switch#

     

    The above output can also be displayed with the help of the show ip access-lists interface Ethernet 1/1 command since the ACL list2 applies to the Ethernet 1/1 interface.

     

  • This command displays the name and number of rules in each list on the switch.
    switch# show ip access-lists summary
    IPV4 ACL default-control-plane-acl
            Total rules configured: 12
            Configured on: control-plane
            Active on    : control-plane
    
    IPV4 ACL list2
            Total rules configured: 3
    IPV4 ACL test1
            Total rules configured: 6
    Standard IPV4 ACL test_1
            Total rules configured: 1
    IPV4 ACL test_3
            Total rules configured: 0
    switch#

     

  • This command displays the summary and lists all the configured IPv4 ACLs.
    switch # show ip access-lists summary
    IPV4 ACL default-control-plane-acl [readonly]
     Total rules configured: 17
     Configured on Ingress: control-plane(default VRF)
     Active on Ingress: control-plane(default VRF)
    
    IPV4 ACL ipAclLimitTest
     Total rules configured: 0
     Configured on Egress: Vl2148,2700
     Active on Egress: Vl2148,2700

show ip prefix-list

The show ip prefix-list command displays all rules for the specified IPv4 prefix list. The command displays all IPv4 prefix list rules if a prefix list name is not specified.

 

Command Mode

EXEC

 

Command Syntax

show ip prefix-list [display_items list_name]

 

Parameters

display_items - Specifies the name of prefix lists to display rules. Options include:
  • no parameter - Display all IPv4 prefix list rules.
  • list_name Specifies the IPv4 prefix list to display rules.

 

Example

This command displays all rules in the route-one IPv4 prefix list.
switch(config-ip-pfx)# show ip prefix-list
ip prefix-list route-one
    seq 10 deny 10.1.1.0/24
    seq 20 deny 10.1.0.0/16
    seq 30 permit 12.15.4.9/32
    seq 40 deny 1.1.1.0/24
switch(config-ip-pfx)#

show ipv6 access-lists

The show ipv6 access-lists command displays the contents of all IPv6 Access Control Lists (ACLs) on the switch with the configuration and status. Use the summary option to display only the configuration and status with contains details such as the name of the ACL, total rules configured, configured and active on status with interface information, and supplicant information in case of dynamic ACLs from dot1x sessions.

 

Command Mode

Privileged EXEC

Command Syntax

show ipv6 access-lists [ interface interface_ipv6] [supplicant supplicant][acl_name acl_name][scope summary]

 

Parameters

  • interface Filter on interfaces such as Ethernet, VLANs, and Port Channels. Selection options include the following:
    • no parameter - Displays all IPv6 ACLs.
    • interface_ipv6 - Display the ACLs on a specified interface.

       

  • acl_name - Specify the name of a list to display. Selection options include the following:
    • no parameter - Displays all IPv6 ACLs.
    • acl_name - Specify an IPv6 ACL to display.

       

  • scope - Displays detailed or summarized information. Selection options include the following:
    • no parameter - Display all rules in the specified lists with the configuration and status.
    • summary Display only the configuration and status.

       

 

Examples
  • This command displays all rules in test1 IPv6 ACL.
    switch# show ipv6 access-lists list2
    IP Access List list2
            10 permit ipv6 3891:3c58:6300::/64 any
            20 permit ipv6 any host 2fe1:b468:024a::
            30 deny ipv6 host 3411:91c1:: host 4210:cc23:d2de:::
    Total rules configured: 3
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    switch#

     

    The above output can also be displayed using the show ipv6 access-lists interface Ethernet 1/1 command since the ACL list2 applies to the Ethernet 1/1 interface.

     

  • This command displays the name and number of rules in each list on the switch.
    switch# show ipv6 access-lists summary
    IPV6 ACL list2
            Total rules configured: 3
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    
    IPV6 ACL test1
            Total rules configured: 6
    
    IPV6 ACL test_1
            Total rules configured: 1
    
    Standard IPV6 ACL test_3
            Total rules configured: 0
    switch#

show ipv6 prefix-list

The show ipv6 prefix-list command displays all rules for the specified IPv6 prefix list. The command displays all IPv6 prefix lists if a prefix list name is not specified.

 

Command Mode

EXEC

 

Command Syntax

show ipv6 prefix-list [display_items list_name]

 

Parameters

display_items Specifies the name of prefix lists for which rules are displayed. Options include:
  • no parameter All IPv6 prefix lists are displayed.
  • list_name Specifies the IPv6 prefix list for which rules are displayed.

 

Examples
  • This command displays all rules in the map1 IPv6 prefix list:
    switch> show ipv6 prefix-list map1
    ipv6 prefix-list map1
    seq 10 permit 3:4e96:8ca1:33cf::/64
    seq 15 deny 3:4400::/64
    seq 20 permit 3:11b1:8fe4:1aac::/64
    seq 30 permit 3:1bca:3ff2:634a::/64
    seq 40 permit 3:1bca:1141:ab34::/64

     

  • This command displays all prefix lists:
    switch> show ipv6 prefix-list
    ipv6 prefix-list map1
    seq 10 permit 3:4e96:8ca1:33cf::/64
    seq 15 deny 3:4400::/64
    seq 20 permit 3:11b1:8fe4:1aac::/64
    seq 30 permit 3:1bca:3ff2:634a::/64
    seq 40 permit 3:1bca:1141:ab34::/64
    ipv6 prefix-list FREDD
    ipv6 prefix-list route-five
    ipv6 prefix-list map2
    seq 10 deny 10:1:1:1::/64 ge 72 le 80
    seq 20 deny 10:1::/32

show mac access-lists

The show mac access-lists command displays the contents of all MAC Access Control Lists (ACLs) on the switch, along with their configuration and status. Use the summary option to display only the configuration and status, which contain details such as the name of the ACL, the total rules configured, and where the ACL is configured/active with a status containing specific interface information.

 

Command Mode

Privileged EXEC

 

Command Syntax

show mac access-lists [interface interface_acl] [acl_name acl_name] [scope summary]

 

Parameters
  • interface - Filter by interfaces such as Ethernet, VLANs, and Port Channels. Selection options include the following:
    • no parameter - Display all MAC ACLs.
    • interface_acl - Display MAC ACLs attached to the interface if present.

       

  • acl_name Display the list name. Selection options include the following:
    • no parameter - Display all MAC ACLs.
    • acl_name - Display a specific MAC ACL.

       

  • scope - Display detailed or summarized information. Selection options include the following:
    • no parameter - Display all rules in the specified lists including the configuration and status.
    • summary - Display only the configuration and status of the MAC ACL.
Examples
  • This command displays all rules in mtest2 MAC ACL.
    switch# show mac access-list mlist2
    MAC Access List mlist2
            10 permit 1024.4510.F125 0.0.0 any aarp
            20 permit any 4100.4500.0000 0.FF.FFFF novell
            30 deny any any
    
            Total rules configured: 3
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1

     

    The above output can also be displayed with the help of show mac access-lists interface Ethernet 1/1 command since the ACL mlist2 applies to the Ethernet 1/1 interface.

     

  • This command displays the number of rules in each MAC ACL on the switch.
    switch# show mac access-list summary
    MAC ACL mlist1
            Total rules configured: 6
    
    MAC ACL mlist2
            Total rules configured: 3
            Configured on Ingress: Et1/1
            Active on     Ingress: Et1/1
    
    MAC ACL mlist3
            Total rules configured: 1
    
    MAC ACL mlist4
            Total rules configured: 0

show platform arad acl tcam summary

The show platform arad tcam summary command displays the percentage of TCAM utilization per forwarding ASIC.

 

Command Mode

EXEC

 

Command Syntax

show platform arad acl tcam summary

 

Parameter

summary - Displays the ACL TCAM summary.

 

Example

This command displays the percentage of TCAM utilization per forwarding ASIC.
switch# show platform arad acl tcam summary
The total number of TCAM lines per bank is 1024.

========================================================
Arad3/0:
========================================================
 Bank      Used           Used %                 Used By
    1         4                0                IP RACLs
Total Number of TCAM lines used is: 4

========================================================
Arad3/4:
========================================================
 Bank      Used           Used %                 Used By
    1         2                0                IP RACLs
Total Number of TCAM lines used is: 2

show platform arad acl tcam

The show platform arad acl tcam command displays the number of TCAM entries (hardware resources) occupied by the ACL on each forwarding ASIC.

This command applies only to DCS-7500E, DCS-7280E series switches.

 

Command Mode

EXEC

 

Command Syntax

show platform arad acl tcam [scope [detail | diff | hw | shadow | summary]

 

Parameters

scope Specifies the information displayed. Options include:
  • detail - Displays the ACL TCAM details.
  • diff - Displays the difference between hardware and shadow.
  • hw - Displays the ACL entries from hardware.
  • shadow - Displays the ACL entries from shadow.
  • summary - Displays the ACL TCAM summary.

 

Examples
  • This command displays the number of TCAM entries used by Arad0 ASIC. In this example, apply the ACL on two VLANs (Vl2148 and Vl2700) but number of TCAM entries occupied is only one.
    switch# show platform arad acl tcam detail
    ip access-list ipAclLimitTest (Shared RACL, 0 rules, 1 entries, direction out, 
    state success, Acl Label 2)
    Fap: Arad0, Shared: true, Interfaces: Vl2148, Vl2700
    Bank Offset Entries
    0         0       1
    Fap: Arad1, Shared: true, Interfaces: Vl2148
    Bank Offset Entries
    0         0       1

     

  • This command displays the percentage of TCAM utilization per forwarding ASIC.
    switch# show platform arad acl tcam summary
    The total number of TCAM lines per bank is 1024.
    ========================================================
    Arad0:
    ========================================================
     Bank   Used                  Used %             Used By
        0      1                       0   IP Egress PACLs/RACLs
    Total Number of TCAM lines used is: 1
    ========================================================
    Arad1:
    ========================================================
     Bank   Used                   Used %            Used By
        0      1                        0   IP Egress PACLs/RACLs
    Total Number of TCAM lines used is: 1

show platform arad mapping

The show platform arad mapping command displays the mapping between the interfaces and the forwarding ASICs.

 

Command Mode

EXEC

 

Command Syntax

show platform arad chip_name mapping

 

Parameter

chip_name Specifies the Arad chip name.

 

Example

This command displays the mapping between the interfaces and the forwarding ASICs on the Arad3/0 chip.
switch# show platform arad arad3/0 mapping
Arad3/0  Port                      SysPhyPort    Voq   ( Fap,FapPort)    Xlge     Serdes
-------------------------------------------------------------------------------
         Ethernet3/1/1                     34    288        (0  ,  2)     n/a        (20)
...............................................................................

show platform fap acl

The show platform fap acl command displays the ACL information of Sand platform devices.

 

Command Mode

Privileged EXEC

 

Command Syntax

show platform fap acl [ipkgv | l4ops | mirroring | opkgv | pmf | tcam | udf | vsicfg]

 

Parameters
  • ipkgv - Displays the ACL Ingress Interface Specification (IPKGV) information.
  • l4ops - Displays the ACL Layer 4 Options (L4OPS) information.
  • mirroring - Displays the mirroring ACL information.
  • opkgv - Displays the ACL Egress Interface Specification (OPKGV) information.
  • pmf - Displays the Pmf.
  • tcam - Displays the ACL TCAM information.
  • udf - Displays the ACL UDF information.
  • vsicfg - Displays the ACL Virtual Switch Instance (VSI) CONFIG information.

 

Guidelines

Supported on DCS-7280SE and DCS-7500E series platforms only.

 

Example

This command displays the brief information of all installed mirroring ACLs.
switch(config)# show platform fap acl mirroring

==============
 Aggregate ACLs
==============

 (list2:0->2) type=2; version=0
  - list2 [ prio 0 ] => session 2

 (list1:10->1,list3:20->3) type=0; version=13
  - list3 [ prio 20 ] => session 3
  - list1 [ prio 10 ] => session 1

======================
 Interface-ACL Mapping
======================

  Ethernet1 => (list1:10->1,list3:20->3) [ ipv4 ]
  Ethernet33 => (list2:0->2) [ mac ]

show platform fap acl tcam

The show platform fap tcam command displays the number of TCAM entries (hardware resources) occupied by the ACL on each forwarding ASIC of Sand platform devices.

 

Command Mode

Privileged EXEC

 

Command Syntax

show platform fap acl tcam [detail | diff | hw | shadow | summary]

 

Parameter
  • detail - Displays the number of TCAM entries (hardware resources) occupied by the ACL on each forwarding ASIC.
  • diff - Displays the difference between hardware and shadow.
  • hw - Displays ACL entries from hardware.
  • shadow - Displays ACL entries from shadow.
  • summary - Displays the percentage of TCAM utilization per forwarding ASIC.

 

Example

This command displays the number of TCAM entries and other ACL TCAM detail.
switch# show platform fap acl tcam detail
ip access-list ipAcl0000 (RACL, 1 rules, 2 entries, direction in, state success)
 Shared: false
 Interface: Vlan0002
 -------------------
 Fap: Arad3/0
 Bank Offset Entries
 1         0       2
 Interface: Vlan0003
 -------------------
 Fap: Arad3/0
 Bank Offset Entries
 1         2       2
 Fap: Arad3/4
 Bank Offset Entries
 1         0       2

show platform fap acl tcam hw

The show platform fap acl tcam hw command displays the TCAM entries configured for each TCAM bank including policy-maps and corresponding traffic match.

This command applies only to DCS-7280(E/R), DCS-7500(E/R) series switches.

 

Command Mode

EXEC

 

Command Syntax

show platform fap fap_name acl tcam hw

 

Parameters
  • fap_name - Specifies the switch chip-set name.

 

Example

This command displays the TCAM entries configured for each TCAM bank including policy maps and corresponding traffic matches.
switch# show platform fap Arad1 acl tcam hw 
================================================================================
Arad1 Bank 0 Type: dbPdpIp, dbPdpIp6, dbPdpMpls, dbPdpNonIp, dbPdpTunnel
================================================================================
----------------------------------------------------
|Offs|X|PR|TT|R|QI|V6MC|DPRT|SPRT|F|DEST |V|ACT  |H|
----------------------------------------------------
|29  |4|59|  | |01|    |    |    | |     |3|0008f|0|
|    |4|59|  | |01|    |    |    | |     |0|00000|0|
|30  |4|33|  | |01|    |    |    | |     |3|0008f|0|
|    |4|33|  | |01|    |    |    | |     |0|00000|0|
|31  |4|32|  | |01|    |    |    | |     |3|0008f|0| 
|    |4|32|  | |01|    |    |    | |     |0|00000|0|
|32  |4|  |  | |01|ff02|    |    | |     |3|00097|0|
|    |4|  |  | |01|ff02|    |    | |     |0|00000|0|
|33  |4|06|  | |01|    |    |00b3| |26ffd|3|0009b|0|
|    |4|06|  | |01|    |    |00b3| |26ffd|0|00000|0|
|34  |4|06|  | |01|    |00b3|    | |26ffd|3|0009b|0|
----------------------------------------------
|Offs|X|R|QI|DAHI|PT|DALO    |DEST |V|ACT  |H|
----------------------------------------------
-----------------------------------------------------------------------------
|Offs|X|TT0|QI|FOI|TT1|DEST |TT1P |PT|VX_DP|PN|F|MC|O|V|HDR OFFSETS |ACT  |H|
================================================================================
Arad1 Bank 1 Type: dbIpQos
================================================================================
----------------------------------------------------------------------
|Offs|X|TC|CL|DPRT|SPRT|VQ|L4OPS |PP|PR|F|V4_DIP  |V4_SIP  |V|ACT  |H|
----------------------------------------------------------------------
|0   |0|  |  |    |    |  |      |01|  | |        |        |3|00000|0|
|    |0|  |  |    |    |  |      |01|  | |        |        |0|00000|0|
----------------------------------------------------------------------
<-------OUTPUT OMITTED FROM EXAMPLE-------->

show platform fap acl tcam summary

The show platform fap acl tcam summary command displays for each forwarding ASIC, the number of TCAM entries consumed per ACL type, and in which TCAM bank the entries are installed. A mirroring ACL does not consume TCAM resources unless attached to a mirroring source interface, and a mirroring destination is configured. If the mirroring destination is a GRE tunnel, at least one nexthop entry for the tunnel destination must be resolved before a TCAM entry is installed.

 

Command Mode

EXEC

 

Command Syntax

show platform fap acl tcam summary

 

Example

This command displays the number of TCAM entries consumed per ACL type, the bank installed, and ASIC. Three TCAM entries are consumed across two forwarding ASICs, two for IP ACLs, and one for MAC ACLs.
switch# show platform fap acl tcam summary
========================================================
 Arad0:
========================================================
    Bank   Used Used %    Used By
    0, 1      2      0    IP Mirroring
 Total Number of TCAM lines used is: 4
========================================================
 Arad1:
========================================================
   Bank   Used            Used %                 Used By
      2      1                 0           Mac Mirroring

show platform trident tcam

The show platform trident tcam command displays the TCAM entries configured for each TCAM group including policy maps and corresponding hits.

 

Command Mode

EXEC

 

Command Syntax

show platform trident tcam [acl | cpu-bound | detail | directed-broadcast | entry | mirror | pbr | pipe | qos | shared | summary]

 

Parameters
  • no parameters - Displays TCAM entries for each TCAM group.
  • acl - Displays the trident ACL information.
  • cpu-bound - Displays the trident cpu-bound information.
  • detail - Lists all TCAM entries.
  • directed-broadcast - Allows inbound broadcast IP packets with Source IP address as one of the permitted broadcast host.
  • entry - Displays the TCAM entry information.
  • mirror - Displays the trident Mirroring ACL information.
  • pbr - Displays the trident PBR ACL information.
  • pipe - Allows to specify a pipe for filtering.
  • qos - Displays the trident QOS information.
  • shared - Displays the ACL Sharing information.
  • summary - Displays the TCAM allocation information.

 

Guidelines

Applies only to DCS-7010, DCS-7050/DCS-7050X, DCS7250X, DCS-7300X series switches.

 

Examples
  • This command displays the Trident mirroring ACL information.
    switch(config)# show platform trident tcam mirror
    === Mirroring ACLs on switch Linecard0/0 ===
    
    Session: mir-sess2
    
    INGRESS ACL mirAcl2* uses 2 entries
     Assigned to ports: Ethernet32/1

     

  • This command displays the allowed IP Destination address from the in coming packets.
    switch# show platform trident tcam directed-broadcast
    DirectedBroadcast Feature Tuples.
    Src Ip          Dst Ip          Action          Hits
    --------------- --------------- ------- ------------
    10.1.1.1        192.164.2.15    Permit             0
    20.1.1.1        192.164.2.15    Permit             0
    30.1.1.1        192.164.2.15    Permit             0
    10.1.1.1        192.166.2.15    Permit             0
    20.1.1.1        192.166.2.15    Permit             0
    30.1.1.1        192.166.2.15    Permit             0
    10.1.1.1        192.168.2.255   Permit             0
    20.1.1.1        192.168.2.255   Permit             0
    30.1.1.1        192.168.2.255   Permit             0
    *               192.164.2.15    Deny               0
    *               192.166.2.15    Deny               0
    *               192.168.2.255   Deny               0

     

  • This command displays detailed information for the TCAM group.
    switch# show platform trident tcam detail
    === TCAM detail for switch Linecard0/0 ===
    TCAM group 9 uses 42 entries and can use up to 1238 more.
     Mlag control traffic uses 4 entries.
        589826                0 hits - MLAG - SrcPort UDP Entry
        589827                0 hits - MLAG - DstPort UDP Entry
        589828                0 hits - MLAG - SrcPort TCP Entry
        589829                0 hits - MLAG - DstPort TCP Entry
     CVX traffic reserves 6 entries (0 used).
     L3 Control Priority uses 23 entries.
        589836                0 hits - URM - SelfIp UDP Entry
        589837                0 hits - URM - SelfIp TCP Entry
    589848                0 hits - OSPF - unicast
        589849            71196 hits - OSPFv2 - Multicast
        589850                0 hits - OSPFv3 - Multicast
        589851                0 hits - OSPF Auth ESP - Multicast
        589852                0 hits - OSPF Auth ESP - Unicast
        589853                0 hits - IP packets with GRE type and ISIS protocol
        589854                0 hits - RouterL3 Vlan Priority 6,7 Elevator
        589855                0 hits - RouterL3 DSCP 48-63 Elevator
        589856                0 hits - RouterL3 Priority Elevator
        589857                0 hits - NextHopToCpu, Glean
        589858                0 hits - L3MC Cpu OIF
     IGMP Snooping Flooding reserves 8 entries (6 used).
    589864                0 hits - IGMP Snooping Restricted Flooding L3 from local 
    mlag peer
        589865                0 hits - IGMP Snooping Restricted Flooding L3
     L4 MicroBfd traffic reserves 1 entries (0 used).
    TCAM group 13 uses 99 entries and can use up to 1181 more.
     Dot1x MAB traffic uses 1 entries.
        851968                0 hits - Dot1xMab Rule
    
    <-------OUTPUT OMITTED FROM EXAMPLE-------->
    
    ck338.22:14:38(config-pmap-qos-policy1)#

show route-map

The show route-map command displays the contents of configured route maps.

 

Command Mode

EXEC

 

Command Syntax

show route-map [map_name]

 

Parameters
  • no parameter Displays the content of all configured route maps.
  • map_name Displays the content of the specified route map.

 

Examples
  • This command displays the map1 route map.
    switch(config)# show route-map map1
    route-map map1 permit 10
      Description:
      Match clauses:
      SubRouteMap:
      Set clauses:
        set as-path prepend last-as 12
        set as-path prepend auto auto

     

  • This command displays the map route map.
    switch> show route-map map
    route-map map permit 5
      Match clauses:
        match as 456
    Set clauses:
    route-map map permit 10
      Match clauses:
    match ip next-hop 2.3.4.5
        match as-path path_2
      Set clauses:
        set local-preference 100

system profile

The system profile command creates a new Ternary Content-Addressable Memory (TCAM) profile in the running configuration.

The default system profile and no system profile commands delete non-default TCAM profiles from the running configuration.

 

Command Mode

Hardware TCAM

 

Command Syntax

system profile [profile_name | default | mirroring-acl | pbr-match-nexthop-group | qos | tap-aggregation-default | tap-aggregation-extended | tc-counters]

default system profile

no system profile

 

Parameters
  • profile_name - Creates a profile with the specified name.
  • default - Creates a default profile.
  • mirroring-acl - Creates a mirroring-ACL profile.
  • pbr-match-nexthop-group - Creates a pbr-match-nexthop-group profile.
  • qos - Creates a Quality of Service (QoS) profile.
  • tap-aggregation-default - Creates a tap-aggregation-default profile.
  • tap-aggregation-extended - Creates a tap-aggregation-extended profile.
  • tc-counters - Creates a tc-counters profile.

 

Guideline

Compatible with the DCS-7280SE and DCS-7500E series switches only.

 

Examples
  • These commands create a mirroring-ACL profile.
    switch(config)# hardware tcam
    switch(config-hw-tcam)# system profile mirroring-acl
    switch(config-hw-tcam)# show hardware tcam profile
                         Configuration        Status
    FixedSystem          mirroring-acl        mirroring-acl
    switch(config-hw-tcam)#

     

  • These commands delete non-default TCAM profiles.
    switch(config)# hardware tcam
    switch(config-hw-tcam)#show hardware tcam profile
                         Configuration        Status
    Linecard9            mirroring-acl        mirroring-acl
    Linecard8            mirroring-acl        mirroring-acl
    Linecard3            mirroring-acl        mirroring-acl
    Linecard4            mirroring-acl        mirroring-acl
    Linecard6            mirroring-acl        mirroring-acl
    switch(config-hw-tcam)# default system profile
    switch(config-hw-tcam)# show hardware tcam profile
                         Configuration        Status
    Linecard9            default              default
    Linecard8            default              default
    Linecard3            default              default
    Linecard4            default              default
    Linecard6            default              default
    switch(config-hw-tcam)#

     

  • These commands delete TCAM profiles.
    switch(config-hw-tcam)# show hardware tcam profile
                         Configuration        Status
    Linecard9            tc-counters          tc-counters
    Linecard8            tc-counters          tc-counters
    Linecard3            tc-counters          tc-counters
    Linecard4            tc-counters          tc-counters
    Linecard6            tc-counters          tc-counters
    switch(config-hw-tcam)# no system profile
    switch(config-hw-tcam)# show hardware tcam profile
                         Configuration        Status
    Linecard9            default              default
    Linecard8            default              default
    Linecard3            default              default
    Linecard4            default              default
    Linecard6            default              default
    switch(config-hw-tcam)#

CloudVision eXchange (CVX)

 

CloudVision eXchange (CVX) provides a single access point for real-time provisioning, orchestration and integration with third-party controllers. CVX aggregates and distributes operational state information across a set of EOS switches to support applications that provide network services. See the CloudVision User Guide, https://www.arista.com/en/support/product-documentation, for additional information.

Upgrading CVX

 

You can upgrade CVX from a previous version to the current version by performing a few simple tasks. You can use the following procedure to upgrade any previous version of CVX to the current version.

Requirements

Make sure you follow these requirements during the upgrade process.
  • If you have CVP, CVX and client switches in your environment, make sure you upgrade each component in the following order:
    • Upgrade CVP first.
    • Upgrade the CVX cluster.
    • Upgrade the client switches. The reason for this is to ensure backward compatibility.
    • You must upgrade the CVX cluster before you upgrade the client switches.
    • If the CVX cluster is a three node cluster, make sure that only one node of the cluster is down at any one time during the upgrade process. (The order in which you upgrade the nodes does not matter.)

       

Pre-requisites

Before you begin the upgrade, make sure that:
Complete the following steps to upgrade CVX.
  1. Login to the cluster to be upgraded. (You can login to any node.)
  2. Upgrade the node. You must deploy a new image to perform the upgrade.
  3. Wait for the node you are upgrading to rejoin the cluster. Once the node has rejoined, go to the next step. (The node automatically rejoins the cluster as a follower node.)
  4. Repeat steps 1 through 3 to upgrade the two remaining nodes one node at a time. It does not matter the order in which you upgrade the remaining nodes.

 

CVX Overview

 

A CVX deployment includes CVX and a set of CVX clients to which CVX provides services. CVX is not part of the data plane, nor does it receive data-path traffic. All CVX components exist as agents that run on EOS instances.

System Requirements

 

Certain hardware and software is required to be able to use CloudVision eXchange in your CloudVision virtual appliance implementation.

The CloudVision eXchange should be installed on a single system along with CloudVision Portal.

The following table lists the minimum hardware and software required to use CloudVision eXchange.

Required Hardware

The hardware required to use the CloudVision eXchange are:
  • CPU: 4 cores (base), 8 cores (recommended)
  • RAM: 4G (base), 8G (recommended)
  • Disk: 4G

     

Required Software

The software required to use the CloudVision eXchange are:
  • EOS switches: Recommend 4.16.8M or later

     

    Note: It is a best practice and highly recommended that the version of CVX should match the version running on the switches.

     

  • CloudVision Portal: version 2016.1

    (CloudVision Portal software is required if you want to use it in conjunction with CloudVision eXchange. If you plan to use only CloudVision eXchange, CloudVision Portal software is not required.)

     

    Note: CVX supports live vMotion.

     

CVX Infrastructure

 

CVX provides a single integration point into network-wide services running across CVX clients. CVX is typically deployed as an EOS instance running on a VM (vEOS). The CVX infrastructure consists of a CVX instance functioning as a server and a set of CVX clients. The CVX server uses a heartbeat keepalive (KA) mechanism to maintain contact with its clients.

When de-configuring or shutting down CVX, client services should be shut down first.

CVX Features

 

CVX manages communications among the network CVX clients, and provides an integration point for services to those clients. CVX also discovers the physical network topology by aggregating topology information it receives from its client devices.

CVX Clients

 

CVX client is the agent that allows a switch to interact with a CVX server to access CVX services. Enabling the CVX client includes providing the IP address or host name of the device running CVX. The CVX client can then access services that are enabled on the CVX server.

The CVX client must be enabled to access the CVX server and the services it offers. Individual services may require additional configuration statements.

Services should be shut down or de-configured on clients before shutting down or de-configuring CVX. CVX-controlled switch features may continue to run after shutting down CVX if they are not explicitly shut down or de-configured prior to shutting down CVX.

CVX Services

 

CVX services are applications that run on top of the CVX infrastructure, and are accessed by CVX clients through the CVX server. All CVX services are maintained by version level; client switches negotiate the version they use when connecting to the server. This allows multiple switches that run different EOS versions to connect to the same CVX server.

The following sections briefly describe some of the services available to CVX clients through CVX:

OpenStack Service

 

The OpenStack service on CVX allows the networking component of an OpenStack deployment (also known as Neutron) to share state with CVX.

When deployed, this integration allows CVX to send state about the logical networks created in the OpenStack cloud to the CVX clients that configure the network.

More information on OpenStack software can be found in its online documentation at http://docs.openstack.org/. .

VXLAN Control Service

 

The VXLAN control service allows hardware VXLAN Tunnel End Points (VTEPs) to share state with each other in order to establish VXLAN tunnels without the need for a multicast control plane. Configuration is required both on the client switches and in CVX.

Hardware Switch Controller (HSC) Service

 

Traffic between virtual machines which share a physical host (or between virtual machines and the rest of the network) is forwarded by virtual switches. The management and configuration of virtual switches uses the Open VSwitch DataBase (OVSDB) management protocol, as described in RFC 7047.

The Hardware Switch Controller (HSC) service provides an integration point between OVSDB controllers and the VXLAN control service, allowing exchange of state information among virtual and hardware switches.

Network Topology Service

 

The network topology service gathers information from CVX clients to provide a view of the physical topology of the network. Aggregated information gathered by the network topology service is used by other CVX services, and can be viewed on the CVX server.

Static Topology Service

Static Topology addresses cases where the deployment infrastructure in an OpenStack setup that manages Virtual Machines and Bare Metal servers does not enable LLDP on interfaces connecting hosts to switches. As a result, the topology information does not appear on CVX.

An example of this case is some deployments of OpenStack that do not enable LLDP for DPDK interfaces. Even with the manual configuration of LLDP on hypervisors, the configuration does not persist after OpenStack redeployment.

Static Topology enables the topology configuration statically using the service topology command on CVX without running LLDP on the servers connected to switches.

To view the aggregated topology information, use the show network physical-topology command on the switch running the CVX server instance.

Deploying CVX

CloudVision Exchange (CVX) can be deployed on KVM and ESXi. The required EOS version and Aboot version vary depending on whether you are deploying CVX on KVM or ESXi.

For the detailed steps to use to deploy CVX, see:

Deploying CVX on Kernel-based Virtual Machine (KVM)

Complete the following steps to install CVX on Ubuntu/KVM. Once the installation is complete, you can begin the CVX configuration process.

 

Note: Make sure you select versions of EOS and Aboot that meet the minimum requirements for CVX. The supported versions are:
  • EOS (version 4.16.8M or later).
  • Aboot-veos-serial-8.0.0.iso (located in the vEOS section of the download).

 

Pre-requisites

Before you begin the procedure, make sure that:
  • Install qemu-kvm, libvirt*, and all related dependencies using yum (RHEL7/CentOS7) and apt-get (Ubuntu).
  • Two bridges are configured for use by the KVM VM, and that you have the names of the bridges. (Steps are included in the procedure to add bridges, if they are not already configured.)

     

    Note: The bridges must be configured to persist (brctl commands do no persist across reboots). You can use Network Manager (or another application available to you) to complete this configuration.

     

  • You have both generateXmlForKvm.py and cvpTemplate.xml. They are required to complete the procedure. You can find them in the CVP tarball for Ubuntu.
Complete the following steps to install CVX.
  1. Download the Aboot and EOS files from: https://www.arista.com/en/support/software-download/.
  2. Use sudo su to acquire superuser privileges, which are required to complete some of the installation steps.
  3. Confirm that KVM is running on the server by entering the following command:

    virsh -c qemu:///system listAb

    The command output should match this example:
    
    Id    Name     State
    -------------------------------
      $            

     

  4. If the output does not look correct (previous step) go to for additional assistance: https://help.ubuntu.com/community/KVM/Installation.
  5. Use the following command to convert the vmdk file to qcow2: qemu-img convert EOS_4_16_8M.vmdk -O qcow2 EOS.qcow2.

     

    Note: Step 6 and 7 are required if you do not already have 2 bridges defined in different subnets. If the bridges exist, go directly to step 8.

     

  6. Use brctl to add bridges for the KVM VM to use (br1 and br2 can be any names you choose).
    brctl addbr br1
    brctl addbr br2

     

    ifconfig can be used to identify Ethernet ports to be bridged. Once you identify the ports, add them to the bridges.

     

    Example

    brctl addif br1 enx803f5d086eae

     

  7. Confirm that the bridges are up using brctl show.
    • Enter: ifconfig br1 up
    • And: ifconfig br2 up

       

      Note: The following step uses a number of input parameters (the number required vary depending on your server setup). To ensure the command executes successfully, we recommend that you type it into a scratch pad and edit as needed before typing it into the Linux Terminal.

       

    • Use the following command to generate cvx.xml, which will be used to setup the CVX VM.

      generateXmlForKvm.py

       

      Example
      python generateXmlForKvm.py -n cvx --device-bridge br1 --cluster-bridge br2 -e /usr/bin/kvm -i cvpTemplate.xml -c /home/myname/Downloads/Aboot-veos-serial-8.0.0.iso -x /home/myname/Downloads/EOS.qcow2 -b 8192 -p 2 -t 
      
       -n cvx: VM name.
       --device-bridge br1: This is the name you gave the bridge - br1 or anything else.
       --cluster-bridge br2: Cluster bridge if clustering servers.
       -i cvpTemplate.xml: Path to XML file input template.
       -k: VM ID number used by virsh. If not entered, a random number is assigned.
       -b 8192: 8G of RAM.
       -p 2: # of CPU cores.
       -c: Path to Aboot file.
       -x: Path to qcow2 file created in step 3.
       -t: This parameter indicates the file defined by -x is for CVX.
       -e ‘/usr/bin/kvm: Ubuntu path to KVM.
       (for RHEL KVM this is: -e ‘usr/libexec/qemu-kvm)
       -o: XML file used by virsh to define the KVM VM.

       

  8. Run the following commands:
    virsh define cvx.xml
    virsh start cvx
    virsh console cvx

     

  9. (Optional) To configure CVX to start automatically, enter:
    virsh autostart cvx

 

You are now ready to begin the CVX configuration (see CVX Configuration).

Deploying CVX on VMware ESXi

 

Complete the following steps to install CVX on ESXi. Once the installation is complete, you can begin the CVX configuration process.

 

Note: Make sure you select versions of EOS that meet the minimum requirements for CVX. The supported version is EOS (version 4.21.0 or later).

 

Complete the following steps to install CVX.
  1. Go to: https://www.arista.com.
  2. Select Support > Software Downloade .
  3. From the software download page, expand Active Releases > 4.21 > EOS-4.21.0F to download EOS-4.21.0F.vmdk.
  4. Load the files you downloaded into a filestore location within the VMware vSphere environment.
    Figure 1. Loading the Files into the VMware vSphere Environment

     

  5. Right-click the filestore location you selected, and choose New Virtual Machine.
    Figure 2. Selecting New Virtual Machine

     

    The New Virtual Machine dialog appears.
    Figure 3. New Virtual Machine Dialog

     

  6. In the New Virtual Machine dialog, select Create a new virtual machine, then click Next.

    The dialog refreshes, showing options for the new Virtual Machine.

    New Virtual Machine dialog (naming and selecting the location).
    Figure 4. New Virtual Machine Dialog (Naming and Selecting the Location)

     

  7. The dialog refreshes, showing options for selecting the datastore.
  8. Enter a name for the new Virtual Machine.
  9. Select a location for the new Virtual Machine, then click Next.
    Figure 5. New Virtual Machine Dialog (Selecting the Datastore)

     

  10. Select the datastore for the new Virtual Machine configuration files and all of the virtual disks. Click Next. The dialog refreshes, showing operating system selection options.
  11. Click Next. The dialog refreshes, showing compatibility options.
    Figure 6. New Virtual Machine Dialog (Compatibility Options)

     

  12. Using the Compatible with menu, select the ESXi compatibility for the new Virtual Machine.

     

    Note: When adding the VMDK to ESX6, it treats this as sparse by default, whereas in ESX 5 it is thick. Converting the vEOS VMDK file from thin to thick would allow it to boot properly in ESX6: vmkfstools -i vEOS-lab-4.18.5M.vmdk -d eagerzeroedthick vEOS-lab-4.18.5M-thick.vmdk.

     

    Go to https://arista.my.site.com/AristaCommunity/s/ and refer to the following topics for the issue and solution:
    • Tip for Arista vEOS on VMware ESX 6..
    • Common Issues When Deploying CVX.
    • 4.18.2F on vCenter 6 or 6.5.

       

      Note: If the VM keeps rebooting and showing “This is not a bootable disk. Insert a bootable floppy and press any key to try again", then go to https://arista.my.site.com/AristaCommunity/s/ and refer to the Common Issues When Deploying CVX 4.18.2F on vCenter 6 or 6.5 topic.

       

  13. Click Next. The dialog refreshes, showing operating system selection options.
    Figure 7. New Virtual Machine Dialog (Operating System Options)

     

  14. Using the Guest OS Family menu, choose Linux.
  15. Using the Guest OS Version menu, choose Other Linux (64-­bit).
  16. Click Next.
    The dialog refreshes, showing options for customizing hardware.
    Figure 8. New Virtual Machine Dialog (Hardware Configuration Options)

     

  17. Change the default settings for the following options:
     
    CPU Set to 4 (number of CPUs)
    Memory Set to 8 GB
    New Hard Disk Delete the current setting (leave this option empty).
    New Network Specify connection to Network LAN segment with connectivity to CVX client devices (the Management LAN). Choose VMXNET3 network adapter type. This connection is used for CVX client / server communications.
    Existing Hard Disk Specify the EOS-4.21.0F.vmdk you downloaded in step 3.

     

  18. (Optional) Delete the floppy drive and SCSI controller.
  19. Click Next. You are now ready to begin the CVX configuration (see CVX Configuration).

 

CVX Configuration

CVX, its clients, and its services, are independently configured. These sections describe configuration processes for each:

Ports Used by CVX

 

CVX uses the following ports:
  • Controller database (Controllerdb): Port 9979.
  • Client-server out-of-band connection: Port 50003.
  • CVX cluster peer out-of-band connection: Port 50004.

     

    Note: All of these connections are TCP.

     

CVX Server Configuration

Enabling CVX on the CVX Server

CVX parameters for the server infrastructure are configured in CVX configuration mode. CVX configuration mode is not a group-change mode; running-config is changed when commands are entered, and exiting the mode does not modify running-config. The cvx command places the switch in CVX configuration mode.

CVX is disabled by default. The no shutdown (CVX) command enables CVX on the switch.

 

Example

These commands enter CVX-configuration mode and enable CVX.
switch(config)# cvx
switch(config-cvx)# no shutdown
switch(config-cvx)#

 

CVX Heartbeat Configuration

CVX synchronizes with its client devices by exchanging heartbeat signals. The heartbeat transmission frequency and timeout period determine when a client's access to the server is disrupted.

The interval between heartbeat messages that the server transmits is specified by the heartbeat-interval (CVX) command. The CVX timeout period is specified by the heartbeat-timeout (CVX) command. When CVX does not receive a subsequent heartbeat message from a CVX client before the timeout expiry, the server discontinues CVX services to that client.

Best practices dictate that CVX and its client applications configure identical heartbeat interval and heartbeat timeout values.

 

Example

These commands configure a CVX heartbeat interval of 30 seconds and a server heartbeat timeout period of 90 seconds.
switch(config-cvx)# heartbeat-interval 30
switch(config-cvx)# heartbeat-timeout 90
switch(config-cvx)#

 

Disabling CVX on the CVX Server

Note: Before disabling or de-configuring CVX on the CVX server, CVX client services should be explicitly disabled or shut down. Failure to disable or de-configure services prior to disabling or de-configuring CVS may result in CVX features continuing to run after CVX shutdown.

 

When disabling the CVX service, service VXLAN configuration may be retained or erased. Be sure to disable or shut down client services prior to disabling the CVX service.

 

Examples
  • These commands shut down the CVX service while retaining the CLI configuration for service VXLAN.
    localhost(config)# cvx
    localhost(config-cvx)# service VXLAN
    localhost(config-cvx-VXLAN)# shutdown

     

  • These commands shut down the CVX service and also erase service VXLAN CLI configuration.
    localhost(config-cvx-VXLAN)#
    localhost(config)# cvx
    localhost(config-cvx)# no service VXLAN

CVX Client Configuration

This section describes the CVX client configuration and commands that enable CVX services. Most commands for the configuration of the CVX client infrastructure are accessed in Management-CVX configuration mode.
  • Enabling CVX on the CVX Client

    CVX client parameters are configured in Management-CVX configuration mode. Management-CVX configuration mode is not a group-change mode; running-config is changed when commands are entered, and exiting the mode does not modify running-config. The management cvx command places the switch in Management-CVX configuration mode.

    CVX client is disabled by default. The no shutdown (Management-CVX) command enables CVX client on the switch.

    For the CVX network topology service to create an inventory of all CVX clients, ensure that LLDP is enabled on each client switch using the lldp run command.

     

    Example

    These commands enter Management-CVX-configuration mode and enable the CVX client.
    switch(config)# lldp run
    switch(config)# management cvx
    switch(config-mgmt-cvx)# no shutdown
    switch(config-mgmt-cvx)#

     

  • CVX Client Heartbeat Configuration

    A CVX client synchronizes and maintains contact with CVX by exchanging heartbeat signals. The heartbeat transmission frequency and timeout period define when communication with CVX will be considered down.

    The interval between heartbeat messages that the CVX client transmits is configured by the heartbeat-interval (Management-CVX) command.

    The CVX client timeout period is specified by the heartbeat-timeout (Management-CVX) command. When a CVX client does not receive a subsequent heartbeat message from CVX within this timeout period, the client assumes that services provided by CVX are no longer available.

    Best practices dictate that a CVX client's heartbeat interval and heartbeat timeout values are identical to those of the CVX server to which it connects.

    Example

     

    This command configures a CVX client heartbeat interval of 30 seconds and client timeout period of 90 seconds.

    switch(config-mgmt-cvx)# heartbeat-interval 30
    switch(config-mgmt-cvx)# heartbeat-timeout 90
    switch(config-mgmt-cvx)#

     

  • Connecting the CVX Client to a Server

    The server host (Management-CVX) command identifies the location of the CVX server that the client accesses. The source-interface (Management-CVX) command specifies the interface from which the client derives the IP address it uses as the source in CVX packets that it transmits. And the no shutdown (Management-CVX) command enables CVX on the client switch.

     

    Example

    These commands configure the switch as a CVX client, connecting to a CVX server at IP address 10.1.1.14 and using IP address 10.24.24.1 as the source address for its outbound packets.
    switch(config)# interface loopback 5
    switch(config-if-Lo5)# ip address 10.24.24.1/24
    switch(config-if-Lo5)# management cvx
    switch(config-mgmt-cvx)# server host 10.1.1.14
    switch(config-mgmt-cvx)# source-interface loopback 5
    switch(config-mgmt-cvx)# no shutdown
    switch(config-mgmt-cvx)#

CVX Client Services Configuration

Switches running EOS must be configured as CVX clients to access the network services running on CVX. Individual services may require additional configuration.

Configuring OpenStack Service

The OpenStack service is enabled from CVX-OpenStack configuration mode, which is accessed by the service openstack command. The no shutdown (CVX-OpenStack) command enables CVX OpenStack services on the CVX server. Additional configuration is necessary to deploy OpenStack (http://docs.openstack.org/).

 

Example

These commands enable the CVX-OpenStack service.
switch(config-cvx)# service openstack
switch(config-cvx-openstack)# no shutdown
switch(config-cvx-openstack)#

 

Configuring VXLAN Control Service

The VXLAN control service is enabled on CVX by the no shutdown (CVX-VXLAN) command and on the client switches by enabling CVX and configuring the VXLAN as a controller client. When VXLAN control service is enabled, CVX functions as a VXLAN controller for its clients.

For information about configuring VXLAN on the client switch, see the VXLAN chapter of the User Manual .

 

Examples
  • These commands enable VXLAN control service on the CVX server.
    switch(config-cvx)# service VXLAN
    switch(config-cvx-VXLAN)# no shutdown
    switch(config-cvx-VXLAN)#

     

  • These commands enable VXLAN Control Service on the CVX client. (This example assumes that the VXLAN has already been configured on the client switch. For information about configuring VXLAN, see the VXLAN chapter of the User Manual).
    switch(config)# interface VXLAN 1
    switch(config-if-Vx1)# VXLAN controller-client

Configuring Hardware Switch Controller Service (HSC)

Certificate Requirements for CVX Interoperability with VMware NSX 6.2.2 and Higher
The HSC service is enabled on the CVX server by the no shutdown (CVX-HSC) command.
The certificate type needs to be changed from MD5 to SHA512 for use with VMware NSX 6.2.2. Complete the following steps to make the change.
  1. At the EOS prompt of CVX, use the following commands.
    switch(config)# cvx
    switch(config-cvx)# service hsc
    switch(config-cvx-hsc)# shut

     

  2. Acquire superuser privileges and edit the default.
    switch(config)# bash
    switch(config)# sudo su
    switch(config)# vi /usr/bin/ovs-pki

     

  3. Find and replace default_md with sha512 (from md5).
    default_md =md5
    default_md =sha512

     

  4. Delete all files and folders from /persist/secure/openvswitch/.
    cd /persist/secure/openvswitch/bash-4.1#sudo rm -r *

     

  5. Generate the new certificate.
    [admin@CVX ~]$ exit
    logout
    CVX(config-cvx-hsc)# no shutdown
    CVX(config-cvx-hsc)# end

     

  6. Verify the change using the command.
    CVX# show nsx status

     

    Example

    These commands enable the CVX-HSC service.
    switch(config)# cvx
    switch(config-cvx)# no shutdown
    switch(config-cvx)# service hsc
    switch(config-cvx-hsc)# no shutdown

     

    The HSC service sends flood lists to each VTEP through CVX. Some controllers (such as VMware NSX's Service Nodes) implement replication nodes for head-end replication of unknown packets. For these controllers, BUM packets should be sent to a single replication node (send-to-any replication), and the flood list sent by the HSC service is a list of replication nodes. Other controllers (such as Nuage VSP) require each VTEP to perform its own head-end replication. For these, BUM packets should be sent to every known VTEP, and the flood list sent by the HSC service is the list of VTEPs.

    The default behavior is to use a send-to-any replication list of VTEPs. If the required behavior is send-to-all replication of, use the all option of the VTEP (CVX-HSC) command.

     

    Example

    This command configures the CVX-HSC service to connect to an OVSDB controller at IP address 192.168.2.5, using the default port 6632.
    switch(config-cvx-hsc)# manager 192.163.2.5
    switch(config-cvx-hsc)#

     

    Example

    This command configures the CVX-HSC service to use send-to-any replication.
    switch(config-cvx-hsc)# vtep flood list type all
    switch(config-cvx-hsc)#

     

    Having established a connection to the OVSDB controller, the HSC service will publish the inventory of switches managed by CVX to OVSDB. For the inventory to succeed, LLDP must be enabled on each CVX client switch with the lldp run command.

     

    Note: HSC also makes use of the VXLAN control service; ensure that VXLAN control service is enabled and properly configured (see VXLAN Control Service for details).

     

     

    Note: LLDP is enabled by default on Arista switches.

     

     

    Example

    This command enables LLDP.
    switch(config)# lldp run
    switch(config)#

Configuring Network Topology Service

A network topology agent runs on each Arista switch whether or not the switch is connected to a CVX server. It requires no configuration. The network topology service on the CVX server is also enabled by default and requires no configuration.

To view the aggregated topology information, use the show network physical-topology command on the switch running the CVX server instance.

 

Examples
  • This command displays all visible hosts.
    switch# show network physical-topology hosts
    Unique Id            Hostname
    -------------------- ------------------------------
    001c.7385.be69       cvx287.sjc.aristanetworks.com
    0000.6401.0000       cvc1
    0000.6402.0000       cvc2
    0000.6403.0000       cvc3
    0000.6404.0000       cvc4
    bcf6.85bd.8050       dsj14-rack14-tor1

     

  • This command displays all connections in the topology.
    switch# show network physical-topology neighbors
    cvx287.sjc.aristanetworks.com
    Interface          Neighbor Intf      Neighbor Host
    ------------------ ------------------ --------------------
    Ethernet1          Ethernet7          cvc4
    Ethernet2          Ethernet7          cvc2
    Ethernet9          Ethernet7          cvc1
    Ethernet10         Ethernet7          cvc3
    Management1        27                 dsj14-rack14-tor1
    
    OUTPUT OMITTED FROM EXAMPLE
      dsj14-rack14-tor1
    
    Interface     Neighbor Intf      Neighbor Host
    ------------- ------------------ -----------------------
    27            Management1        cvx287.sjc.aristanetwork

     

Configuring Static Topology Service

Use the service topology command to configure the topology statically on CVX without running LLDP on the servers connected to switches. It is configured under CVX configuration mode.

 

Example
  • The following command configures topology statically on the switch.
    switch# config
    switch(config)# cvx
    switch(config-cvx)# service topology

     

  • The topology information can be specified using the following command:
    switch(config-cvx-topology)# network physical-topology switch SWITCH interface INTERFACE neighbor NEIGHBOR-HOST neighbor-interface NEIGHBOR-INTERFACE

     

The format of the hostname in this command could depend on services running on the host. As an example, in OpenStack use cases, it should match the hostname used by openstack services (For example, neutron server and agents) which is an FQDN format. The hostname in the command is case sensitive.

 

Optional Parameter

The neighbor interface is an optional parameter in the above configuration however setting it helps to understand the physical network connectivity between switches and hosts. It also helps in troubleshooting any issue that may arise in the network.

 

Limitations

To avoid misconfiguration in a topology consisting of a switch with a connected host, where LLDP is enabled and static topology is used to configure the physical topology it is recommended to use only one source of configuration, not both. As a mismatch in the configuration can cause wrong configuration on the switch by a feature consuming the topology information.

CVX Secure out-of-band Connection

This feature adds support for securing out-of-band connection between CVX server and CVX clients by SSL/TLS transport protocol. SSL/TLS is an application-layer protocol that provides secure transport between client and server through a combination of authentication, encryption and data integrity. SSL/TLS uses certificates and private-public key pairs to provide this security. We will use the term SSL to mean SSL/TLS.

By default, CVX server and CVX clients communicate over insecure transport (there is no authentication and encryption between CVX server and CVX clients). This poses the possibility of security risks, such as communicating with untrusted CVX server and CVX clients, or eavesdropping CVX server/client communications. This feature can be used to secure the out-of-band connection between CVX server and CVX clients.

 

Note: The CVX client-server out-of-band connection uses port 50003. The CVX cluster peer out-of-band connection uses port 50004. These are TCP ports.

 

For more information, see Show Commands

Configuring the CVX Secure out-of-band Connection

This feature uses SSL certificate and key management infrastructure for managing certificates, keys and SSL profiles. For more information regarding this infrastructure see SSL Certificate and Key Management in the Arista User's Guide.
  1. On CVX server, copy the server certificate and key and also the CA certificate to verify CVX clients.
    switch(config)# !Copy the PEM encoded certificate and RSA key files for CVX server
    switch(config)# !Lets call them server.crt and server.key
    switch(config)# copy <url> certificate:server.crt
    switch(config)# copy <url> sslkey:server.key
    switch(config)# !Copy the PEM encoded CA certificate to verify the certificate of CVX clients.Lets call it ca.crt
    switch(config)# copy <url> certificate:ca.crt

     

  2. On CVX server, configure SSL profile with the certificates and key as below. Lets call the SSL profile as serverssl.
    switch(config)# management security
    switch(config-mgmt-security)# ssl profile serverssl
    switch(config-mgmt-sec-ssl-profile-serverssl)# certificate server.crt key server.key
    switch(config-mgmt-sec-ssl-profile-serverssl)# !You can trust multiple CA certificates
    switch(config-mgmt-sec-ssl-profile-serverssl)# trust certificate ca.crt

     

     

    Note: If you are using intermediate certificates to build a 'Chain of Trust' (such as server.crt -> intermediate1.crt -> intermediate2.crt -> ca.crt), then you need to configure the intermediate certificates as part of the SSL profile using the following commands:
    switch(config-mgmt-sec-ssl-profile-serverssl)# chain certificate intermediate1.crt
    switch(config-mgmt-sec-ssl-profile-serverssl)# chain certificate intermediate2.crt

     

  3. On CVX server, configure to use the serverssl SSL profile. With this configuration, the CVX server starts listening on a secure port. The CVX server will continue to listen on the default port. i.e., the CVX server will accept connections from CVX clients over both SSL and default non-SSL transports. During a SSL negotiation, the CVX server will authenticate itself to the CVX clients by presenting server.crt and it verifies the authenticity of the CVX client by checking if the CVX client certificate is signed by the trusted certificate ca.crt.
    switch(config)# cvx
    switch(config-cvx)# ssl profile serverssl

     

  4. On CVX client, copy the client certificate and key and also the CA certificate to verify CVX server.
    switch(config)# !Copy PEM encoded certificate and RSA key files for CVX client
    switch(config)# !Lets call them client.crt and client.key
    switch(config)# copy <url> certificate:client.crt
    switch(config)# copy <url> sslkey:client.key
    switch(config)# !Copy PEM encoded CA certificate used to verify the
    switch(config)# !certificate of CVX server. Lets call it ca.crt
    switch(config)# copy <url> certificate:ca.crt

     

     

    Note: If you are using intermediate certificates to build a 'Chain of Trust' (such as client.crt -> intermediate1.crt -> intermediate2.crt -> ca.crt), then you need to configure the intermediate certificates as part of the SSL profile using the following commands:
    switch(config-mgmt-sec-ssl-profile-clientssl)# chain certificate intermediate1.crt
    switch(config-mgmt-sec-ssl-profile-clientssl)# chain certificate intermediate2.crt

     

  5. On CVX client, configure SSL profile with the certificates and key as below. Lets call the SSL profile as clientssl.
    switch(config)# management security
    switch(config-mgmt-security)# ssl profile clientssl
    switch(config-mgmt-sec-ssl-profile-clientssl)# certificate client.crt key client.key
    switch(config-mgmt-sec-ssl-profile-clientssl)# !You can trust multiple CA certificates
    switch(config-mgmt-sec-ssl-profile-clientssl)# trust certificate ca.crt

     

  6. On CVX client, configure to use the SSL profile clientssl. With this configuration, the CVX client will connect to the secure port of the CVX server over SSL transport. During SSL negotiation, the CVX client will authenticate itself to the CVX server by presenting client.crt and it verifies the authenticity of the CVX server by checking if the CVX server certificate is signed by the trusted certificate ca.crt.
    switch(config)# management cvx
    switch(config-mgmt-cvx)# ssl profile clientssl

     

Show Commands

For information regarding show commands of SSL certificate, key and profile, please refer to SSL Certificate and Key Management.

To show the SSL profile status on CVX server, use the show cvx command.
switch# show cvx

CVX Server
 Status: Enabled
 UUID: beb19142-dfaa-11e4-b996-001c73105347
 Heartbeat interval: 20.0
 Heartbeat timeout: 60.0
 SSL profile: serverssl
  Status: Enabled

 

The Enabled SSL status means that the SSL profile is enabled for CVX server and the CVX clients can connect to CVX server over SSL transport. If there are any errors, then the status will show Disabled and the reason will be listed. In Disabled state, the CVX clients wont be able to connect to CVX server over SSL transport.

To show the SSL connection status of CVX clients on CVX server, use the show cvx connections command.
switch# show cvx connections 

Switch 00:1c:73:10:53:48
 Hostname: sq302
 Status: up
Last heartbeat sent: 0:00:04 ago
Last heartbeat received: 0:00:10 ago
Clock offset: -0.00201620385865
Out-of-band connection: SSL secured
In-band connection: Not secured (SSL not supported)

 

The out-of-band connection shows as SSL secured, which means that the CVX client has connected to CVX server over SSL transport. The in-band connection is another connection between CVX server and CVX client. The SSL is not yet supported for this connection and hence it shows as SSL not supported. There is already some level of protection for the in-band connection. The CVX server and CVX client opens up the access to in-band connection only if the out-of-band connection is successful. Since the out-of-band connection is configured to use SSL, the in-band connection access is granted only for authentic CVX client and CVX server.

To show SSL profile status and connection status on CVX client, use the show management cvx command.
switch# show management cvx

CVX Client
 Status: Enabled
 Last connected time: 2015-04-14 11:16:19
 Connection status: Connected
  Out-of-band connection: SSL secured
  In-band connection: Not secured (SSL not supported)
 Negotiated version: 2
 Controller UUID: 0e7dee2e-e2cf-11e4-880f-001c73105347
 Controller: 127.0.0.1
  Last heartbeat sent: 0:00:00 ago
  Last heartbeat received: never
  Clock offset: 0.0
 SSL profile: clientssl
  Status: Enabled

 

The Enabled SSL status means that the SSL profile is enabled and the CVX client can connect to CVX server over SSL transport. If there are any errors, then the status will show as Disabled and the reason will be listed. In Disabled state, the CVX client wont be able to connect to the CVX server.

Similar to the CVX server, the out-of-band connection shows as SSL secured and the SSL is not yet supported for in-band connection.

The possible reasons for Disabled SSL status on CVX server and CVX client are:
  • SSL profile does not exist: If the SSL profile configured under CVX server/client is not configured under management security, you will see this message. Configure the SSL profile with required certificates and key under management security.

     

  • Invalid SSL profile: If the SSL profile configured under CVX server/client is in invalid state, you will see this message. Check show management security ssl profile <name> command to see the errors on the SSL profile and fix them.

     

  • Trusted certificates not configured in SSL profile: If the SSL profile configured under CVX server/client does not have trusted certificates configured, you will see this message. Configure trusted CA certificates in the SSL profile.

     

  • Certificate not configured in SSL profile: If the SSL profile configured under CVX server/client does not have certificate key pair configured, you will see this message. Please configure certificate and key pair in the SSL profile.

     

  • Diffie-Hellman parameters not yet ready: When EOS is booted, a Diffie-Hellman parameters file is auto generated by the system if one does not exist. This Diffie-Hellman parameters file is used for symmetric key exchange during SSL negotiation. Only the CVX server uses this file and hence this message can be seen only on show cvx command output. If the file is not yet generated, you will see this message. When the file is ready, this message automatically goes away and the SSL profile will become enabled.

     

CVX High Availability

CVX provides high availability by enabling you to use multiple (redundant) CVX Controllers in the same cluster. Each Controller in the cluster has its own dedicated machine so that if a Controller fails, the failure is isolated to a single machine.

Within a cluster, one of the Controllers is a primary (leader), and the other Controllers are backup (follower) Controllers. If the primary Controller fails, one of the backup Controllers automatically assumes the role of the primary Controller.

CVX high availability does not prevent or compromise the detection of software failures or link failures that may cause Controllers to be unreachable on the network.

The configuration that is required to ensure CVX is set up for high availability involves:
  • Configuring the CVX cluster.
  • Configuring the CVX clients.

     

CVX Clusters

 

CVX clusters are sets of CVX Controllers (usually 3 Controllers). Within a cluster, each Controller runs on its own dedicated machine, and all of the Controllers run the same version of CVX. Each Controller in the cluster functions as either the primary (leader) Controller, or a backup (follower) Controller.

One of the CVX Controllers is elected by the group of Controllers to be the primary Controller. Once a Controller is elected to be the primary, the other Controllers in the cluster are automatically assigned the role of backup Controllers. Cluster members maintain an out-of-band connection amongst themselves, which is used for the leader election protocol.

CVX Controllers in a cluster that are not the primary Controller always function as backup Controllers. Within the same cluster, only one CVX Controller can assume the role of a primary at any time.

Required Number of Controllers to Support High Availability

 

A cluster must have enough Controllers so that in the case of a failure of the primary Controller, there are enough remaining Controllers for the election process to be completed. The election process is used by clusters to select a new primary Controller in the case of failure.

 

Note: The number of Controllers for a cluster is 3 (one primary and two backup Controllers).

 

 

Examples

In a cluster with only two Controllers (one primary and one backup), a simple majority of backup Controllers does not exist after a failure of the primary Controller. A simple majority of two backup Controllers is required for the leader election process.

Cluster Configuration Options

 

You can configure the cluster for high availability using either of the following modes:
  • Cold followers mode - Only the Controllerdb of the primary (leader) CVX Controller mounts from the client switches.
  • Warm followers mode - The Controllerdb of every (all) CVX Controllers in the cluster mount from the client switches.

     

Advantages and Disadvantages of the Modes

The advantage of the warm follower mode is that if the primary CVX Controller fails, the switchover to the new primary is faster than a switchover in cold follower mode. The reason for this is that the state of the new primary does not have to be rebuilt from scratch. The disadvantage of the warm follower mode is that serialization from the switch is slower compared to cold follower mode.

Handling of CVX Controller Failures

 

CVX Controllers can fail because of hardware or software faults. Because EOS agents are designed to be software fault-tolerant, an agent that fails is automatically restarted and resumes operation statefully. The most recent saved state in Sysdb for the agent is used to restore the state of the agent.

Unlike software failures, hardware failures are not handled by EOS. CVX handles hardware failures through the use of redundant backup (follower) CVX Controllers that run on their own dedicated machine. Within a cluster, any backup Controller can assume the role of the primary (leader) Controller.

 

Note: In the event of a network partition, the partition with a majority of the Controllers elects a leader from its Controllers, and the minority partition relinquishes any leadership it might have had.

 

CVX Support for EOS Failure Modes

 

CVX supports both EOS failure modes that apply when a CVX Controller fails. The EOS failure modes are:
  • Fail-stop
  • Fail-recover

     

Because CVX supports both EOS failure modes, a failed CVX Controller can rejoin the cluster if the following failures occur:
  • A crash of the agent or machine running CVX.
  • The CVX controller or dedicated machine it runs on is removed (partitioned) from the cluster.

     

Client Interaction

 

Client switches maintain an out-of-band connection to all members of the cluster. The connection is used to determine liveness and for communications. The connection is also used to signal a change in leadership (switchover) to the client switches. Switchovers that are changes in leadership within a cluster are executed similarly to CVX Graceful Reboot switchovers.

The ControllerClient agent on the switch is responsible for maintaining liveness with the Controllers and for exchanging metadata. The ControllerClient agent registers with all cluster members. Each Controller's ControllerStatus has an additional flag to record whether the Controller is a leader within the cluster.

If there is more than one leader, the switch automatically waits until only one Controller is designated as the leader in the cluster. Once a single Controller is designated as the leader, the switch executes a graceful switchover to the new leader Controller.

Service Agents Interaction

One change to Service Agents is required to support CVX high availability. Service Agents must be modified to include the leader flag (this flag identifies the leader CVX Controller in the cluster). On a leader switchover, Service Agents are deactivated on the old leader Controller and activated on the new leader Controller. The client switches will perform a graceful switchover to the new leader Controller.

Leader Election

Leader election is an internal, system-run process that is essential to CVX high availability. The leader election process is used to safely elect a new leader Controller within a cluster following the failure of the current leader Controller, or a network configuration change that results in the loss of the current leader Controller in the cluster.

The leader election process is designed to ensure stability of leader Controllers within clusters. The process is based on an algorithm that provides the mechanism for the backup (follower) Controllers to elect (by consensus), the new leader Controller in the cluster.

Configuring CVX Clusters for High Availability

Configuring CVX clusters for high availability is a simple process that involves pointing each cluster member to the other cluster members using the peer host command. The objective of this task is to successfully register each cluster member with the other cluster members. Successful registration of the cluster members with each other ensures that the members can communicate with each other to elect a new leader member if the original leader member fails.

Once you complete the process, the cluster members will be successfully registered with each other. In addition, the cluster members will automatically elect a leader member and assign the leader to that member. The non-leader members are automatically assigned the role of follower.

 

Requirements

The requirements for setting up clusters for high availability are:
  • The number of CVX Controllers in a cluster is 3.
  • An odd number of CVX instances (CVX Controllers) are required to form a cluster.

     

    Note: If an even number of CVX Controllers are configured in a cluster, a CVX instance will automatically refuse to participate in the cluster.

     

  • All cluster members must point to each other. This is essential for clusters to operate normally. (The steps required to complete this task are included in the following procedure.)

 

Procedure
Note: This procedure provides configuration examples for each step. The example cluster used throughout the procedure contains 3 cluster members (named cvs1, cvs2, and cvs3). The IP addresses of the cluster members are:
  • cvs1 (10.0.0.1)

  • cvs2 (10.0.0.2)
  • cvs3 (10.0.0.3).

     

Complete the following steps to configure clusters for high availability.
  1. Using the peer host command, configure one of the cluster members to point to every other cluster member. This example shows the configuration of cluster member cvs1 to point to the other cluster members (cvs2 and cvs3).
    cvs1(config-cvx)# peer host 10.0.0.2 (connects cvs1 to cvs2)
    cvs1(config-cvx)# peer host 10.0.0.3 (connects cvs1 to cvs3)

     

  2. Use the show cvx command to check the Mode and Peer registration state status values for cluster member cvs1. The status values should be:
    • Mode = Cluster
    • Peer registration state = Connecting

       

      Note: Mode automatically changes from Standalone to Cluster when configuring a CVX cluster. This is because the presence of multiple CVX peers causes the Mode to change to Cluster. Peer registration state remains in Connecting status after you configure the first cluster member. This is because the two peers must register with each other for the registration of the two members to be successful.

       

  3. Using the peer host command, configure peer cluster member cvs2 to point to every other cluster member. This example shows the configuration of cluster member cvs2 to point to the other cluster members (cvs1 and cvs3).
    cvs2(config-cvx)# peer host 10.0.0.1 (connects cvs2 to cvs1)
    cvs2(config-cvx)# peer host 10.0.0.3 (connects cvs2 to cvs3)

     

  4. Use the show cvx command to check the Peer registration state settings for cvs1. This is done to verify that peers cvs1 and cvs2 are successfully registered with each other.
    cvs1(config-cvx)# show cvx

     

    Example

    This example shows the output of the show cvx command for cvs1. The Peer registration state setting of Registration Complete for peer cvs2 indicates a successful registration between cvs1 and cvs2.
    cvs1(config-cvx)# show cvx
    
    CVX Server
     Status: Enabled
     UUID: 6c208fba-7324-11e5-8fef-1d98cdd3b27a
     Mode: Cluster
     Heartbeat interval: 20.0
     Heartbeat timeout: 60.0
     Cluster Status
      Name: default
      Role: Standby
      Leader: 10.0.0.2
      Peer timeout: 10.0
      Last leader switchover timestamp: 0:00:03 ago
      Peer Status for 10.0.0.3
       Peer registration state: Connecting
       Peer service version compatibility : Version mismatch
      Peer Status for 10.0.0.2
       Peer Id : 02-01-63-02-00-00
       Peer registration state: Registration complete
       Peer service version compatibility : Version ok

     

  5. Using the peer host command, configure peer cluster member cvs3 to point to every other cluster member. This example shows the configuration of cluster member cvs3 to point to the other cluster members (cvs1 and cvs2).
    cvs3(config-cvx)# peer host 10.0.0.1 (connects cvs3 to cvs1)
    cvs3(config-cvx)# peer host 10.0.0.2 (connects cvs3 to cvs2)

     

  6. Use the show cvx command to check the Peer registration state settings for cvs1. This is done to verify that peers cvs1 and cvs3 are successfully registered with each other.
    cvs1(config-cvx)# show cvx

     

    Example

    This example shows the output of the show cvx command for cvs1. The Peer registration state setting of Registration Complete for peer cvs3 indicates a successful registration between cvs1 and cvs3.
    cvs1(config-cvx)# show cvx
    
    CVX Server
     Status: Enabled
     UUID: 6c208fba-7324-11e5-8fef-1d98cdd3b27a
     Mode: Cluster
     Heartbeat interval: 20.0
     Heartbeat timeout: 60.0
     Cluster Status
      Name: default
      Role: Standby
      Leader: 10.0.0.2
      Peer timeout: 10.0
      Last leader switchover timestamp: 0:05:37 ago
      Peer Status for 10.0.0.3
       Peer Id : 02-01-63-03-00-00
       Peer registration state: Registration complete
       Peer service version compatibility : Version ok
      Peer Status for 10.0.0.2
       Peer Id : 02-01-63-02-00-00
       Peer registration state: Registration complete
       Peer service version compatibility : Version ok

 

Next Step

You are now ready to configure the CVX clients for high availability (see Configuring CVX Clients for High Availability).

Configuring CVX Clients for High Availability

Configuring CVX clients for high availability is a simple process that involves pointing each CVX client to every CVX cluster member using the server host command. The objective of this task is to successfully establish connections between each CVX client and every CVX cluster member. The connections are essential to ensure that the CVX clients are aware of the current status of each cluster member.

 

Note: If a CVX client is not pointing to every cluster member, or if it is pointing to a CVX instance (Controller) that is not part of the cluster, the client may not be aware of leadership changes in the cluster, or may become confused about which cluster member is currently the leader. Either of these scenarios can result in unexpected errors.

 

Once you complete the process, the CVX clients will have established connections with each cluster member (the Connection status for each Controller should be Established). In addition, the clients will be aware of which CVX instance (Controller) is currently the leader in the cluster.

 

Procedure
Note: This procedure provides configuration examples for each step. The example CVX client used throughout the procedure is named cvc1. The IP addresses of the cluster members are: 10.0.0.1 (cvs1), 10.0.0.2 (cvs2), and 10.0.0.3 (cvs3).

 

Complete the following steps to configure CVX clients for high availability.
  1. Using the server host command, configure each of the CVX clients to point to every cluster member. This example shows the configuration of client cvc1 to point to all of the cluster members (the addresses of the cluster members are 10.0.0.1, 10.0.0.2, and 10.0.0.3).
    cvc1(config-mgmt-cvx)# server host 10.0.0.1 (connects cvc1 to cluster member 10.0.0.1)
    cvc1(config-mgmt-cvx)# server host 10.0.0.2 (connects cvc1 to cluster member 10.0.0.2)
    cvc1(config-mgmt-cvx)# server host 10.0.0.3 (connects cvc1 to cluster member 10.0.0.3)

     

  2. Use the show man cvx command to check the status of client cvc1. The Connection status for each cluster member should be Established. In addition, the client is also aware that cluster member 10.0.0.3 is the current Master.
    cvc1(config-mgmt-cvx)# show man cvx
    
    CVX Client
     Status: Enabled
     Source interface: Inactive (Not configured)
     Controller cluster name: default
      Controller status for 10.0.0.1
       Connection status: established
        Out-of-band connection: Not secured
        In-band connection: Not secured (SSL not supported)
       Negotiated version: 2
       Controller UUID: 6c208fba-7324-11e5-8fef-1d98cdd3b27a
       Last heartbeat sent: 0:00:07 ago
       Last heartbeat received: 0:00:07 ago
     Controller status for 10.0.0.3
      Master since 0:03:34 ago
      Connection status: established
       Out-of-band connection: Not secured
       In-band connection: Not secured (SSL not supported)
     Negotiated version: 2
     Controller UUID: c64954b8-7324-11e5-9f33-51f8b016cae8
     Last heartbeat sent: 0:00:14 ago
     Last heartbeat received: 0:00:14 ago
    Controller status for 10.0.0.2
     Connection status: established
      Out-of-band connection: Not secured
      In-band connection: Not secured (SSL not supported)
     Negotiated version: 2
     Controller UUID: 6a0dbf2c-7324-11e5-94f3-ff17a8a1cdc8
     Last heartbeat sent: 0:00:05 ago
     Last heartbeat received: 0:00:05 ago  

CVX VIP

CVX VIP provides the virtual IP address that actively follows the master controller of the CVX cluster.

The virtual IP address of the CVX HA Cluster is configured on a macvlan interface setup on top of a physical management interface of the master controller. The virtual IP and virtual MAC needs to be provided by the customer as part of the controller configuration. This information is available to all controllers as each cluster member has to be configured manually by the user on all controllers.

The macvlan interface created should be designated as `Management0.` `Management0` is currently used for the ManagementActive interface on modular switches. Without explicit configuration of VIP and VMAC, CVX VIP functionality will not work in the CVX HA cluster.

Customers can pick the VMAC from a pool of MAC addresses reserved for use with CVX clusters. The OUI pool, 00:1C:73:00:00:AA “ 00:1C:73:00:00:FF has been reserved for this purpose.

The macvlan interface is setup if all of the following conditions are met:

  • VMAC is configured by the user
  • The controller instance is a leader
  • There are more than one controller instances
  • The controller is not being run on a modular system

Configuring VIP

All CLI commands applicable to the management interface of the controller will be allowed onManagement0, with the exception of Layer 1 / phy level commands. So auto-negotiation or flow control cannot be configured on the Management0 interface. Instead these commands can only be run on the physical management interfaces. This makes sense as the phy-level configuration really depends on what the interface is physically wire.

To configure VMAC/VIP :
CVX(config)# interface management 0
CVX(config-if-Ma0)# mac-address 00:1C:72:00:00:FF
CVX(config-if-Ma0)# ip address 10.0.0.2

 

Data Replication

 

At EOS boot time, SSH host keys and Diffie-Hellman parameters are automatically generated and persistently stored on each controller. Multiple SSL profiles / keys / certificates might also be created and used by various agents on the controllers. Since these information contribute to the identity of the master, they will need to follow the master controller for all time.

In case of a controller switchover, the newly elected master controller will need to use the same SSH host keys & SSL profiles / keys / certificates to retain its identity and prevent any kind of network security alarms from being tripped. For example, if an SSH client notices that the host key has changed, it will normally flag an error warning the user of a possible man-in-the-middle type attack. Hence, this data will be replicated from the master to slaves.

SSH Host Key Tagging

 

SSH host keys are tagged with the chassis MAC address to deal with key regeneration issues when a supervisor module is moved from one chassis to another. This behavior will cause regeneration issues if we replicate the SSH host keys across the cluster resulting in the key fingerprint seen by management tools to be different.

To mitigate this, in addition to the chassis MAC address, the host keys would now be tagged with VMAC of the CVX HA cluster. If CVX VIP and VMAC are configured, SshHostKeysAgent will not regenerate keys if tagged VMAC and configured VMAC are the same, even if there is a mismatch between the chassis MAC and tagged MAC.

CVX Commands

cvx

CVX (CloudVision eXtension) aggregates and shares status across a network of physical switches running EOS. CVX services provide visibility and coordinate activities across a network of switches that are configured as CVX clients.

The cvx command enters CVX configuration mode. CVX configuration mode is not a group-change mode; running-config is changed immediately upon entering commands. Exiting CVX configuration mode does not affect running-config. The exit command returns the switch to global configuration mode.

The no cvx and default cvx commands restore all CVX server defaults by deleting all CVX configuration mode statements from the running-config.

 

Command Mode

Global Configuration

 

Command Syntax

cvx

no cvx

default cvx

 

Commands Available in CVX Configuration Mode
  • port(CVX)
  • service openstack
  • service VXLAN
  • shutdown (CVX)
  • heartbeat-interval (CVX)
  • heartbeat-timeout (CVX)

 

Example

These commands enter the CVX-configuration mode and displays the CVX configuration.
switch(config)# cvx
switch(config-cvx)# show active all

 cvx
  shutdown
  port 9979
  heartbeat-interval 20
  heartbeat-timeout 60
  no service VXLAN
  service openstack
   shutdown
   name-resolution interval 21600
switch(config-cvx)#

heartbeat-interval (CVX)

The heartbeat-interval command configures the interval between heartbeat messages that the switch sends as a CVX server. Heartbeat messages are part of the keepalive mechanism between CVX and the CVX clients to which it connects.

The no heartbeat-interval and default heartbeat-interval commands restore the heartbeat interval to the default setting by removing the heartbeat-interval command from running-config.

 

Command Mode

CVX Configuration

 

Command Syntax

heartbeat-interval period

no heartbeat-interval

default heartbeat-interval

 

Parameters

period Interval duration (seconds). Value ranges from 5 through 60. Default value is 20.

 

Related Commands
  • cvx.
  • heartbeat-timeout (CVX)

 

Guidelines

Heartbeat messages flow independently in both directions between CVX and clients. When a client stops receiving heartbeat messages from the server within a specified period, the client assumes that the CVX server is no longer functioning.

Best practices dictate that CVX and its client applications configure identical heartbeat interval values.

 

Example

This command configures a CVX server heartbeat interval of 30 seconds:
switch(config)# cvx
switch(config-cvx)# heartbeat-interval 30
switch(config-cvx)#

heartbeat-interval (Management-CVX)

 

The heartbeat-interval command configures the interval between heartbeat messages that the switch sends as a CVX client. Heartbeat messages are part of the keepalive mechanism between the CVX client and the CVX server to which it connects.

The no heartbeat-interval and default heartbeat-interval commands revert the heartbeat interval to the default setting by removing the heartbeat-interval command from running-config.

 

Command Mode

Mgmt-CVX Configuration

 

Command Syntax

heartbeat-interval period

no heartbeat-interval

default heartbeat-interval

 

Parameters

period: Interval duration (seconds). Value ranges from 5 through 60. Default value is 20.

Guidelines

Heartbeat messages flow independently in both directions between CVX and clients. When the server stops receiving heartbeat messages from a client within a specified period, the server assumes that the device it is no longer functioning as a CVX client.

Best practices dictate that the CVX client's heartbeat interval value is identical to that of its CVX server.

 

Related Commands

heartbeat-timeout (Management-CVX) specifies the CVX client timeout interval.

 

Example

These commands configure a CVX client heartbeat interval of 30 seconds:
switch(config)# management cvx
switch(config-mgmt-cvx)# heartbeat-interval 30
switch(config-mgmt-cvx)#

heartbeat-timeout (CVX)

The heartbeat-timeout command specifies the CVX timeout period. When a CVX server does not receive consecutive heartbeat messages from a CVX client within the heartbeat timeout period, the server discontinues providing CVX services to the client device. The default timeout period is 60 seconds.

The no heartbeat-timeout and default heartbeat-timeout-timeout commands restore the heartbeat timeout to the default setting by removing the heartbeat-timeout command from running-config.

 

Command Mode

CVX Configuration

 

Command Syntax

heartbeat-timeout period

no heartbeat-timeout

default heartbeat-timeout

 

Related Commands
  • cvx places the switch in CVX configuration mode.
  • heartbeat-interval (CVX) specifies the CVX heartbeat interval.

 

Parameters

period heartbeat timeout interval (seconds). Value ranges from 15 to 10800. Default value is 60.

 

Guidelines

Best practices dictate that CVX and its client applications configure identical heartbeat timeout values.

 

Examples

These commands set the CVX timeout period to 90 seconds.
switch(config)# cvx
switch(config-cvx)# heartbeat-timeout 90
switch(config-cvx)#

heartbeat-timeout (Management-CVX)

 

The heartbeat-timeout command specifies the CVX client timeout period. When a CVX client does not receive consecutive heartbeat messages from a CVX server within the period specified by this command, the client assumes that its connection to CVX is disrupted. The default timeout period is 60 seconds.

The no heartbeat-timeout and default heartbeat-timeout commands restore the CVX client heartbeat timeout to the default setting by removing the heartbeat-timeout command from running-config.

 

Command Mode

Mgmt-CVX Configuration

 

Command Syntax

heartbeat-timeout period

no heartbeat-timeout

default heartbeat-timeout

 

Parameter

period heartbeat timeout interval (seconds). Value ranges from 15 to 10800. Default value is 60.

 

Guidelines

Best practices dictate that the CVX client's heartbeat timeout value is identical to that of its CVX server.

 

Related Command

heartbeat-interval (Management-CVX) specifies the CVX client heartbeat interval.

 

Example

These commands set the CVX client timeout period to 90 seconds.
switch(config)# management cvx
switch(config-mgmt-cvx)# heartbeat-timeout 90
switch(config-mgmt-cvx)#

lldp run

The lldp run command enables LLDP on the Arista switch.

 

Command Mode

Global Configuration

 

Command Syntax

lldp run

no lldp run

default lldp run

 

Examples
  • This command enables LLDP globally on the Arista switch.
    switch(config)# lldp run
    switch(config)#

     

  • This command disables LLDP globally on the Arista switch.
    switch(config)# no lldp run
    switch(config)#

management cvx

The management cvx command places the switch in mgmt-CVX configuration mode to configure CVX client parameters.

Mgmt-CVX configuration mode is not a group-change mode; running-config is changed immediately upon entering commands. Exiting mgmt-CVX configuration mode does not affect the running-config. The exit command returns the switch to global configuration mode.

The no management cvx and default management cvx commands delete all mgmt-CVX configuration mode statements from the running-config.

 

Command Mode

Global Configuration

 

Command Syntax

management cvx

no management cvx

default management cvx

 

Commands Available in Mgmt-CVX Configuration Mode
  • heartbeat-interval (Management-CVX)
  • heartbeat-timeout (Management-CVX)
  • server host (Management-CVX)
  • source-interface (Management-CVX)
  • shutdown (Management-CVX)

 

Examples
  • This command places the switch in mgmt-CVX configuration mode.
    switch(config)# management cvx
    switch(s1)(config-mgmt-cvx)#

     

  • This command returns the switch to global management mode:
    switch(config-mgmt-cvx)# exit
    switch(config)#

manager

The manager command configures the IP address of the OVSDB controller for the HSC service, allowing CVX to connect to the controller.

The no manager and default manager commands remove the HSC manager configuration from running-config.

 

Command Mode

CVX-HSC Configuration

 

Command Syntax

manager ip_address [port]

Parameters
  • ip_addressIP address of the HSC manager.
  • port connection port. Values range from 1 to 65535; default value is 6632.

 

Related Commands

service hsc places the switch in CVX-HSC configuration mode.

 

Example

These commands point the HSC service to a controller at IP address 192.168.2.5 using the default port 6632.
switch(config)# cvx
switch(config-cvx)# service hsc
switch(config-cvx-hsc)# manager 192.163.2.5
switch(config-cvx-hsc)#

name-resolution force (CVX-OpenStack)

The name-resolution force command initiates an OpenStack controller function that communicates with the OpenStack Keystone and Nova services to update names of VMs and tenants mapped by the local OpenStack instance.

The OpenStack controller accesses the Keystone and Nova services in response to various triggering events (such as the creation of a new tenant, network or VM), and also at a regular interval configured by the name-resolution interval (CVX-OpenStack) command (default interval 6 hours). The name-resolution force command is used to force an immediate update without waiting for a triggering event.

 

Command Mode

CVX-OpenStack Configuration

 

Command Syntax

name-resolution force

 

Related Commands
  • service openstack places the switch in CVX-OpenStack configuration mode.
  • name-resolution interval (CVX-OpenStack) sets the interval for automatic Keystone updates.

 

Example

These commands update the OpenStack instance immediately with data from the Keystone service.
switch(config)# cvx
switch(config-cvx)# service openstack
switch(config-cvx-openstack)# name-resolution force
switch(config-cvx-openstack)#

name-resolution interval (CVX-OpenStack)

The name-resolution interval command specifies the period between consecutive requests that the OpenStack controller sends to the Keystone service for VM and tenant name updates. Keystone is OpenStack’s authentication and authorization service.

The default period is 21600 seconds (six hours).

The name-resolution force (CVX-OpenStack) command performs an immediate update, as opposed to waiting for the periodic update.

 

Command Mode

CVX-OpenStack Configuration

 

Command Syntax

name-resolution interval period

 

Parameters

periodKeystone identity service polling interval (seconds).

 

Related Command

service openstack places the switch in CVX-OpenStack configuration mode.

 

Example

These commands set the name resolution interval period at 18000 (five hours).
switch(config)# cvx
switch(config-cvx)# service openstack
switch(config-cvx-openstack)# name-resolution interval 18000
switch(config-cvx-openstack)#

 

ovsdb-shutdown

The ovsdb-shutdown command shuts down the OVSDB server.

The no ovsdb-shutdown and default ovsdb-shutdown commands enable the OVSDB server by removing the ovsdb-shutdown command from the running-config.

 

Command Mode

CVX-HSC Configuration

 

Command Syntax

ovsdb-shutdown

no ovsdb-shutdown

default ovsdb-shutdown

 

Related Command

The service hsc command places the switch in the CVX-HSC configuration mode.

 

Example

These commands shut down the OVSDB server used by the HSC service.
switch(config)# cvx
switch(config-cvx)# service hsc
switch(config-cvx-hsc)# ovsdb-shutdown
switch(config-cvx-hsc)#

port (CVX)

The port command specifies the TCP port number the CVX server listens on. The default port number is 9979.

The no port and default port commands restore the default port number by removing the port statement from running-config.

 

Command Mode

CVX Configuration

 

Command Syntax

port port_number

no port

default port

 

Parameter

port_number TCP port number. Value ranges from 1 to 65535.

 

Related Command

cvx places the switch in the CVX configuration mode.

 

Examples
  • These commands configure 9500 as the CVX server port.
    switch# config
    switch(config)# cvx
    switch(config-cvx)# port 9500
    switch(config-cvx)#

     

  • These commands restore the default port (9979) as the CVX server port.
    switch(config-cvx)# no port
    switch(config-cvx)#

resync-period

The resync-period command configures the grace period for completion of synchronization between the VXLAN control service and clients after a CVX restart. Arista recommends leaving the grace period set to its default of 300 seconds.

The no resync-period command disables VXLAN control service graceful restart. The default resync-period command resets the grace period to its default of 300 seconds.

 

Command Mode

CVX-VXLAN Configuration

 

Command Syntax

resync-period seconds

no resync-period

default resync-period

 

Parameter

seconds synchronization grace period in seconds. Values range from 30 to 4800; default is 300.

 

Example

These commands reset the VXLAN control service synchronization grace period to 300 seconds.
switch(config)# cvx
switch(config-cvx)# service VXLAN
switch(config-cvx-VXLAN)# default resync-period
switch(config-cvx-VXLAN)#

server host (Management-CVX)

The server host command configures the IP address or host name of the CVX server to which the CVX client device connects. The configuration of this address is required for the switch to function as a CVX client. By default, no CVX host address is specified.

The no server host and default server host commands remove the CVX host address assignment by removing the server host statement from the running-config.

 

Command Mode

Mgmt-CVX Configuration

 

Command Syntax

server host host

no server host

default server host

 

Parameter

hostIPv4 address (in dotted decimal notation) or FQDN host name of the CVX server.

 

Example

This command specifies 10.1.1.14 as the address of the server to which the CVX client connects.
switch(config)# management cvx
switch(config-mgmt-cvx)# server host 10.1.1.14
switch(config-mgmt-cvx)#

service hsc

The service hsc command enters the CVX-HSC configuration mode where the HSC service is enabled and configured.

CVX-HSC configuration mode is not a group change mode; the running-config is changed immediately upon entering commands. Exiting the CVX-HSC configuration mode does not affect running-config. The exit command returns the switch to global configuration mode.

 

Command Mode

CVX Configuration

 

Command Syntax

service hsc

 

Commands Available in CVX-HSC Configuration Mode
  • manager
  • ovsdb-shutdown
  • shutdown (CVX-HSC)

 

Related Command

cvx places the switch into the CVX configuration mode.

 

Example

These commands enter the CVX-HSC configuration mode.
switch(config)# cvx
switch(config-cvx)# service hsc
switch(config-cvx-hsc)#

service openstack

The service openstack command places the switch in CVX-OpenStack configuration mode.

In order to integrate Arista switches into an OpenStack managed cloud network, OpenStack needs to interact with CVX to configure and maintain VLANs on appropriate physical switch ports that connect to hosts where the VMs reside.

CVX-OpenStack configuration mode is not a group change mode;the running-config is changed immediately upon entering commands. Exiting the CVX-OpenStack configuration mode does not affect the running-config. The exit command returns the switch to global configuration mode.

 

Command Mode

CVX Configuration

 

Command Syntax

service openstack

 

Commands Available in CVX-OpenStack Configuration Mode
  • name-resolution force (CVX-OpenStack)
  • name-resolution interval (CVX-OpenStack)
  • shutdown (CVX-OpenStack)

 

Related Command

cvx places the switch into the CVX configuration mode.

 

Example

These commands places the switch into the CVX-OpenStack configuration mode.
switch(config)# cvx
switch(config-cvx)# service openstack
switch(config-cvx-openstack)#

service topology

The service topology command configures the topology statically on CVX without running LLDP on the servers connected to switches.

The no service topology command removes the static topology configuration from the running-config.

 

Command Mode

CVX Configuration Mode

 

Command Syntax

service topology

no service topology

Example

The following command configures topology statically on the switch.
switch# config
switch(config)# cvx
switch(config-cvx)# service topology
switch(config-cvx-topology)#

service VXLAN

The service VXLAN command enters the CVX-VXLAN configuration mode where the VXLAN control service is enabled and configured.

The CVX-VXLAN configuration mode is not a group change mode; running-config is changed immediately upon entering commands. Exiting theCVX-VXLAN configuration mode does not affect the running-config. The exit command returns the switch to global configuration mode.

 

Command Mode

CVX Configuration

 

Command Syntax

service VXLAN

 

Commands Available in CVX-VXLAN Configuration Mode
  • resync-period
  • shutdown (CVX-VXLAN)
  • vtep (CVX-VXLAN)

 

Related Command

The cvx command places the switch into the CVX configuration mode.

 

Example

These commands enters the CVX-VXLAN configuration mode.
switch(config)# cvx
switch(config-cvx)# service VXLAN
switch(config-cvx-VXLAN)#

show cvx

The show cvx command displays the enable status and current configuration of CVX.

 

Command Mode

EXEC

 

Command Syntax

show cvx

 

Example

This command displays the status and configuration of CVX.
switch(config)# cvx
 cvx
 no shutdown
 heartbeat-interval 30
 heartbeat-timeout 90
switch(config-cvx)# dis
switch> show cvx
CVX Server
 Status: Enabled
 UUID: 75ce27ce-cc04-11e4-a404-233646319a2c
 Heartbeat interval: 30.0
 Heartbeat timeout: 90.0

show network physical-topology

The show network physical-topology command displays the network topology discovered through CVX.

 

Command Mode

EXEC

 

Command Syntax

show network physical-topology [hosts|neighbors]

 

Parameters
  • hostsDisplays all hosts visible in the topology.
  • neighbors Displays all connections in the network topology. Table is sorted by host name, and can be optionally filtered by host.

 

Examples
  • This command displays all visible hosts.
    switch# show network physical-topology hosts
    
    Unique Id            Hostname
    -------------------- ------------------------------
    001c.7385.be69       cvx287.sjc.aristanetworks.com
    0000.6401.0000       cvc1
    0000.6402.0000       cvc2
    0000.6403.0000       cvc3
    0000.6404.0000       cvc4
    bcf6.85bd.8050       dsj14-rack14-tor1

     

  • This command displays all connections in the topology.
    switch# show network physical-topology neighbors
    
    cvx287.sjc.aristanetworks.com
    
    Interface          Neighbor Intf      Neighbor Host
    ------------------ ------------------ -----------------------
    Ethernet1          Ethernet7          cvc4
    Ethernet2          Ethernet7          cvc2
    Ethernet9          Ethernet7          cvc1
    Ethernet10         Ethernet7          cvc3
    Management1        27                 dsj14-rack14-tor1
    
    OUTPUT OMITTED FROM EXAMPLE
    dsj14-rack14-tor1
     
    Interface          Neighbor Intf      Neighbor Host
    ------------------ ------------------ -----------------------
    27                 Management1        cvx287.sjc.aristanetwork

 

shutdown (CVX)

The shutdown command, in cvx mode, disables or enables the switch as a CVX server. By default, CVX is disabled on the switch.

The no shutdown command enables the switch as a CVX server. The shutdown and default shutdown commands disable the switch as a CVX server by removing the no shutdown command from running-config.

 

Note: Be sure to de-configure or shut down all CVX client services before disabling CVX; failure to do so may result in CVX client services continuing to run after CVX has been disabled.

 

 

Command Mode

CVX Configuration

 

Command Syntax

shutdown

no shutdown

default shutdown

 

Related Command

The cvx command places the switch in CVX configuration mode.

 

Examples
  • These commands enable the switch as a CVX server.
    switch# config
    switch(config)# cvx
    switch(config-cvx)# no shutdown
    switch(config-cvx)#

     

  • This command disables CVX on the switch.
    switch(config-cvx)# shutdown
    switch(config-cvx)#

shutdown (CVX-HSC)

The shutdown command, in CVX-HSC configuration mode, disables or enables the CVX service on the switch. HSC is disabled by default.

When a CVX server enables HSC, its clients (hardware VTEPs) are able to share state to establish VXLAN tunnels without the need for a multicast control plane. Configuration is also required on the client switches.

The no shutdown command enables the HSC service; the shutdown and default shutdown commands disable the HSC service.

 

Command Mode

CVX-VXLAN Configuration

 

Command Syntax

shutdown

no shutdown

default shutdown

 

Related Command

The service hsc command places the switch into the CVX-HSC configuration mode.

 

Examples
  • These commands enable the HSC service.
    switch(config)# cvx
    switch(config-cvx)# service hsx
    switch(config-cvx-hsc)# no shutdown
    switch(config-cvx-hsc)#

     

  • These commands disable the HSC service.
    switch(config)# cvx
    switch(config-cvx)# service hsx
    switch(config-cvx-hsc)# shutdown
    switch(config-cvx-hsc)#

shutdown (Management-CVX)

The shutdown command, in the mgmt-cvx mode, disables or enables CVX client services on the switch. CVX services are disabled by default.

The no shutdown command enables CVX client services. The shutdown and default shutdown commands disable CVX client services by removing the corresponding no shutdown command from the running-config.

 

Command Mode

Mgmt-CVX Configuration

 

Command Syntax

shutdown

no shutdown

default shutdown

 

Examples
  • These commands enable CVX client services.
    switch(config)# management cvx
    switch(config-mgmt-cvx)# no shutdown
    switch(config-mgmt-cvx)#

     

  • This command disables CVX client services.
    switch(config-mgmt-cvx)# shutdown
    switch(config-mgmt-cvx)#

shutdown (CVX-OpenStack)

The shutdown command, in the cvx-openstack configuration mode, disables or enables CVX-OpenStack on the switch. CVX-OpenStack is disabled by default.

When a CVX server enables OpenStack services, its clients are accessible to the OpenStack network controller (Neutron). Integrating Arista switches into an OpenStack-managed cloud network requires OpenStack to interact with CVX to configure and maintain VLANs on appropriate physical switch ports that connect to the hosts where the VMs reside.

The no shutdown command enables CVX-OpenStack. The shutdown and default shutdown commands disable CVX-OpenStack by removing the corresponding no shutdown command from the running-config.

 

Command Mode

CVX-OpenStack Configuration

 

Command Syntax

shutdown

no shutdown

default shutdown

 

Related Command

service openstack places the switch in CVX-OpenStack configuration mode.

 

Examples
  • These commands enable CVX-OpenStack.
    switch(config)# cvx
    switch(config-cvx)# service openstack
    switch(config-cvx-openstack)# no shutdown
    switch(config-cvx-openstack)#

     

  • These commands disable CVX-OpenStack.
    switch(config-cvx-openstack)#
    switch(config-cvx-openstack)# shutdown
    switch(config-cvx-openstack)#

shutdown (CVX-VXLAN)

The shutdown command, in CVX-VXLAN configuration mode, disables or enables the CVX VXLAN control service on the switch. VXLAN control service is disabled by default.

When a CVX server enables VXLAN control service, its clients (hardware VTEPs) are able to share state to establish VXLAN tunnels without the need for a multicast control plane. Configuration is also required on the client switches.

The no shutdown command enables the VXLAN control service. The shutdown and default shutdown commands disable the VXLAN control service.

 

Command Mode

CVX-VXLAN Configuration

 

Command Syntax

shutdown

no shutdown

default shutdown

 

Related Command

The service VXLAN command places the switch in CVX-VXLAN configuration mode.

 

Examples
  • These commands enable VXLAN control service.
    switch(config)# cvx
    switch(config-cvx)# service VXLAN
    switch(config-cvx-VXLAN)# no shutdown
    switch(config-cvx-VXLAN)#

     

  • These commands disable VXLAN control service.
    switch(config)# cvx
    switch(config-cvx)# service VXLAN
    switch(config-cvx-VXLAN)# shutdown
    switch(config-cvx-VXLAN)#

source-interface (Management-CVX)

The source-interface command specifies the interface from where the IPv4 address is derived for use as the source for outbound CVX packets that the switch sends as a CVX client. There is no default source interface assignment.

The no source-interface and default source-interface commands remove the source interface assignment for the CVX client by deleting the source-interface statement from the running-config.

 

Command Mode

Mgmt-CVX Configuration

Command Syntax

source-interface INT_NAME

no source-interface

default source-interface

 

Parameters

INT_NAME: Interface type and number. Options include:
  • 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.

 

Example

These commands configure the CVX client to use the IP address 10.24.24.1 as the source address for its outbound packets.
switch# config
switch(config)# interface loopback 5
switch(config-if-Lo5)# ip address 10.24.24.1/24
switch(config-if-Lo5)# exit
switch(config)# management cvx
switch(config-mgmt-cvx)# source-interface loopback 5
switch(config-mgmt-cvx)#

vtep (CVX-HSC)

The HSC service sends flood lists to each VTEP through CVX. Some controllers (such as VMware NSX's Service Nodes) implement replication nodes for head-end replication of unknown packets. For these controllers, BUM packets should be sent to a single replication node (send-to-any replication), and the flood list sent by the HSC service is a list of replication nodes. Other controllers (such as Nuage VSP) require each VTEP to perform its own head-end replication. For these, BUM packets should be sent to every known VTEP, and the flood list sent by the HSC service is the list of VTEPs.

The default behavior is to use a send-to-any replication list of VTEPs. If the required behavior is send-to-all replication of, use the all option of the vtep command in the CVX-HSC configuration mode.

 

Command Mode

CVX-HSC Configuration

 

Command Syntax

vtep flood list type all | any

no vtep flood list type

default vtep flood list type

 

Parameters
  • all: send-to-all replication; flood list is the list of VTEPs.
  • any: send-to-any replication; flood list is a list of replication nodes. This is the default setting.

 

Example

These commands configure the HSC to use send-to-all replication.
switch(config)# cvx
switch(config-cvx)# service hsc
switch(config-cvx-hsc)# vtep flood list type all
switch(config-cvx-hsc)#

vtep (CVX-VXLAN)

The OVSDB management protocol includes provisions for control-plane MAC learning, which allows MAC addresses to be distributed among VTEPs without using the data plane. Some controllers (such as VMware NSX) take advantage of this facility; others (such as Nuage VSP) do not. By default, CVX uses control-plane MAC learning.

To switch to data plane MAC learning, use the vtep command in the CVX-VXLAN configuration mode, as shown below.

 

Command Mode

CVX-VXLAN Configuration

 

Command Syntax

vtep mac-learning [control-plane|data-plane ]

 

Related Command

The service VXLAN command places the switch into the CVX-VXLAN configuration mode.

 

Example

These commands configure CVX to use data-plane MAC address learning.
switch(config)# cvx
switch(config-cvx)# service VXLAN
switch(config-cvx-VXLAN)# vtep mac-learning data-plane
switch(config-cvx)#

DirectFlow

This section describes Arista's DirectFlow implementation. Topics in this section include:

Introduction

DirectFlow allows you to define flows consisting of conditions to match, and actions to perform, that are a superset of the OpenFlow 1.0 specification. DirectFlow runs alongside the existing L2/L3 forwarding plane, enabling a network architecture that incorporates new capabilities such as TAP aggregation and custom traffic engineering, alongside traditional forwarding models. DirectFlow does not require a controller or any third party integration, as flows can be installed via the CLI.

DirectFlow exposes the underlying forwarding ASIC's capabilities through a programmable interface like EAPI or the standard CLI.

DirectFlow works in conjunction with all other aspects of standard Layer 2 or Layer 3 bridging or forwarding, and DirectFlow traffic is subject to the standard packet processing pipeline within the ASIC. You can think of DirectFlow as a stage in packet processing that processes traffic after ingress checks and before any egress actions.

DirectFlow enables you to configure flows that consist of matching criteria and actions, and to modify how traffic is processed, by overriding the L2 lookup decision or rewriting a MAC address or VLAN for example.

Features like MAC learning, STP state checks, ingress or egress VLAN membership checks on ports, ACLs, QoS, and others are all respected by DirectFlow. Traffic that does not match any programmed flow is processed normally, while traffic that matches programmed flows is now subject to the actions specified in the flows.

DirectFlow Flows

You can define a relative priority between flows and define idle or hard timeouts for the flow. DirectFlow also enables you to insert a flow entry that matches on specified criteria, and define actions to be taken on traffic that matches the specified matching conditions. You can define flows to match on TCP flags, IPv6 source and destination addresses, input ports, and more.

DirectFlow Non-persistent Flows

DirectFlow enables you to configure flows that are not visible in the startup or running configurations and do not persist over a reboot. This feature is designed to be used for flows that are configured by a custom agent using the EOS SDK or eAPI and age out (expire) after a specified time period.

For example, if you are using a custom agent that reacts to traffic sent to the CPU (the redirect to CPU action), and you want to use a flow that will drop all matching traffic for 5 minutes, the agent can program a non-persistent flow that expires after a hard timeout of 300 seconds.

Using a non-persistent flow for this purpose ensures that other administrator actions (for example, saving the configuration) do not result in the flow being resurrected on startup or reverting to the saved configuration. It also removes the need for the agent to delete the expired flow.

Note: By default, all DirectFlow flows are persistent. You must use the no persistent command to configure a non-persistent flow.

Supported Matches

DirectFlow supports all matches on VLAN, ether type, source or destination MAC address, COS, source or destination IP address, IP protocol, IP TOS, L4 source, destination ports, ICMP type, and code.

In addition, DirectFlow also allows matching on:
  • TCP flags
  • IPv6 source address
  • IPv6 destination address
  • Traffic injected from the CPU
  • Input port

DirectFlow also permits re-using the same flow on multiple input ports, saving valuable TCAM space.

Supported Actions

DirectFlow supports the following actions:
  • Setting the source or destination MAC address
  • VLAN
  • COS
  • IP TOS
  • Transmit queue
  • Output port list and mirroring traffic pre-modification (ingress mirror) and post-modification (egress mirror)
  • Redirect to CPU

The redirect to CPU action is useful in cases in which a custom agent is running on EOS and you want to trap specific traffic (matching traffic) and send the trapped traffic to the agent.

DirectFlow Configuration

Consider the following when using DirectFlow.
  • DirectFlow takes effect ONLY after exiting the individual flow configuration sub-mode.
  • Match criteria are connected with Boolean AND operators. Therefore they must all match for the condition to be true and action to be taken.
  • CLI is automatically set to match the ethertype to IP if IP fields (such as source or destination address or L4 ports) are chosen as part of other match/ action commands.
  • In a single flow, only the following fields can be matched along with IPv4 or IPv6 source and destination addresses:
    • VLAN priority
    • VLAN ID
    • EtherType
    • Source interface
    • Class of Service (CoS)

Commands Used to Enable DirectFlow, Configure and Display Flows

A number of different commands are provided for the DirectFlow feature. The different commands enable you to enter the DirectFlow configuration mode, enable DirectFlow, configure flows, and display configured flows.

Note: ALL match criteria specified in a flow definition must match in the packet for the actions specified to be applied to the traffic.

Enter the DirectFlow Configuration Mode

The directflow command places the switch in DirectFlow configuration mode.

switch(config)# directflow
switch(config-directflow)#

Enable DirectFlow

The shutdown (DirectFlow) command determines if the configuration takes effect or not. To enable DirectFlow, enter the following command.

switch(config-directflow)# no shutdown 

Create the Flow

The flow (DirectFlow) command creates a new flow entry. It must be unique or it will be overwritten by an existing entry.

switch(config-directflow)# flow Test-1
switch(config-directflow-Test-1)#

Create the DirectFlow Match Criteria

The match (DirectFlow-flow mode) command allows you to configure a rule or a flow which match on L2, L3, L4 fields of a packet and specify a certain action to either modify, drop or redirect the packet.

switch(config-directflow-Test-1)# match ethertype ip
switch(config-directflow-Test-1)# match source ip 10.10.10.10

Action Set

The action set (DirectFlow-flow mode) command allows you to configure a packet to be routed out a layer three interface using a DirectFlow entry.

switch(config-directflow-Test-1)# action egress mirror ethernet 7
switch(config-directflow-Test-1)# action set destination mac 0000.aaaa.bbbb

Finalize the Flow

DirectFlow flows do not take effect until you exit the configuration sub-mode for the specified flow. Use the exit command to finalize the flow and put it into effect.

switch(config-directflow-Test-1)# exit
switch(config-directflow)#

Redirect to CPU

The action output interface cpu (DirectFlow-flow mode) command allows you to configure flows so that traffic that matches the matching conditions specified in the flow is redirected to the CPU.

switch(config)# directflow
switch(config-directflow)# flow redirect-http-cpu
switch(config-directflow-redirect-http=cpu)# match ip protocol tcp
switch(config-directflow-redirect-http-cpu)# match destination port 80
switch(config-directflow-redirect-http-cpu)# action output interface cpu

Configuring a Non-persistent Flow

DirectFlow flows are persistent by default. Use the no persistent command to configure non-persistent flows.

switch config)# directflow
switch(config-directflow)# flow example-non-persistent
switch(config-directflow-example-non-persistent)# match input interface ethernet 25
switch(config-directflow-example-non-persistent)# action drop
switch(config-directflow-example-non-persistent)# no persistent 
switch(config-directflow-example-non-persistent)# timeout hard 300

Display Details for Configured Flows

The detail option of the show directflow flows command enables you to display the details of configured flows. You can use this command to verify that a non-persistent flow is deleted after the timeout period configured for the flow has elapsed.

The following example shows the use of this command to view the configuration of a non-persistent flow before the timeout period has elapsed, and a second time, after the timeout period has expired.

The initial use of the command displays the flow configuration (before the timeout expires).

switch(config-directflow)# show directflow flows example-non-persistent detail 
Flow example-non-persistent: (Flow programmed)
 persistent: False
 priority: 0
 hard timeout: 300
 idle timeout: 0
 match:
  ingress interface: 
      Et25
 actions:
  drop
 matched: 0 packets, 0 bytes

The second use of the command displays the flow details (after the timeout expires). The output shows that the flow is no longer programmed.

switch(config-directflow)# show directflow flows example-non-persistent detail
Flow example-non-persistent: (Flow not programmed)
persistent: False
priority: 0
hard timeout: 300
idle timeout: 0
match:
  ingress interface: 
      Et25
actions:
  drop
matched: 0 packets, 0 bytes

DirectFlow Feature Interactions

DirectFlow flow entries can have one of the following actions:
  • A set of egress ports for sending a matched packet
  • Copy to CPU
  • Redirect to CPU
  • Drop
  • No specified action (in this case, the traffic is output normally).

The only exception is the ingress or egress mirroring action, where the DirectFlow entry causes the packet to be mirrored.

When the ingress or egress packets are mirrored, the original traffic is sent out normally.

Bridging Features

  • DirectFlow entries have precedence over all entries in the MAC table, including static MAC entries and static MAC drop entries. Packets that do not match DirectFlow entries are forwarded based on the MAC address table.
  • VLANs: DirectFlow entries can modify the VLAN of a packet. MAC learning takes place in the original VLAN for DirectFlow entries that modify the VLAN. The modified packet will be subject to VLAN membership checks on the egress port. If a packet has no VLAN tag, DirectFlow assumes it came in on the native VLAN for the ingress interface. A VLAN override causes the packet to obey the VLAN rules on the egress port.
  • Q-in-Q: Q-in-Q is supported as DirectFlow entries match only on the outer tag.
  • Counters: All packets that match DirectFlow entries cause interface counters to increment as usual.

Spanning Tree

DirectFlow runs alongside MSTP, RSTP, and PVST. DirectFlow entries do not match on packets that ingress an STP discarding port. DirectFlow entries that cause a packet to be forwarded out an STP discarding port will result in the packets being dropped on egress.

When STP is enabled, BPDUs will always be trapped to the CPU. When STP is disabled, BPDUs will be subject to DirectFlow entries and not be copied to the CPU by default.

LLDP, LAGs, and LACP

  • LLDP packets are always trapped to the CPU. DirectFlow entries can never match LLDP packets.
  • LAGs are fully supported, and can be part of a match criteria and part of an output action to an interface.
  • LACP packets are always trapped to CPU. DirectFlow entries can never match LACP packets.

sFlow

sFlow is unaffected by DirectFlow.

IGMP Snooping

IGMP control packets are trapped to the CPU when IGMP Snooping is enabled. DirectFlow entries can match IGMP Snooping control traffic and override the trap to CPU.

Link-local-multicast packets are flooded in hardware in the VLAN via a TCAM entry. DirectFlow entries can match link-local-multicast packets and change the flooding behavior. As DirectFlow entries have to specify output interfaces or drop, the action will conflict and so matching DirectFlow entries will get precedence.

When IGMP snooping is enabled, unknown IPV4 multicast packets are flooded to the multicast-router ports in the VLAN. If DirectFlow entries match unknown IPV4 multicast packets, they will override the flooding behavior.

Data packets in groups under IGMP snooping control are sent to the group members through a MAC table entry. Matching DirectFlow entries override the MAC table entries.

ACLs

DirectFlow entries are lower priority than any configured Port ACLs (ingress). Packets coming in on a port that match DirectFlow entries obey any configured ACL on that port, and will only apply to packets that have a permit action.

DirectFlow entries are higher priority than any configured RACLs. Packets coming in on an L3 interface that match DirectFlow entries ignore any RACLs configured on that interface.

DirectFlow entries are lower priority than any configured Egress ACLs.

Layer Three Features and DirectFlow

DirectFlow runs alongside IP routing. If a packet is routed out a layer three interface using a DirectFlow entry, the actions associated with the entry will have to specify the new source MAC and destination MAC for the packet, as well as the physical port or LAG. If there are no output ports specified in an entry, packets that match that entry will be dropped.

Unicast Routing

When unicast routing is enabled, DirectFlow entries that match take precedence for all packets that would have been otherwise been routed. The three exceptions are the ingress mirror, egress mirror and copy-to-CPU actions where the packets will be routed normally in addition to the action being performed. Routed packets that do not match DirectFlow entries are forwarding based on the L3 lookup.

Multicast Routing

When multicast routing is enabled, DirectFlow entries that match take precedence for all packets that would have otherwise been multicast routed. The packets are not replicated based on the hardware multicast tables, but are forwarded strictly according to the actions specified by the DirectFlow entry. The entry can specify a set of output interfaces, which will result in the packet being replicated based on the DirectFlow entry.

Displaying DirectFlow Configurations

The show directflow flows command displays the contents of the flow table, showing each entry with its match rules, actions, and packet counters.
  • This example shows the status of a default (persistent) flow.
    switch(config-directflow)# show directflow flows
    Flow Test1:
    priority: 0
    match:
    ingress interface: Ethernet1
       ethertype ip 
    source ip address: 10.10.10.10
    actions:
    output mirror: Ethernet2 
    matched: 0 packets, 0 bytes
    switch(config-directflow)# 

  • This example shows the status of a non-persistent flow. The flow will be deleted once 5 minutes have elapsed.
    switch(config-directflow)# show directflow flows example-non-persistent 
    Flow example-non-persistent:
     persistent: False
     priority: 0
     hard timeout: 300
     idle timeout: 0
     match:
       ingress interface: 
           Et25
     actions:
       drop
     matched: 0 packets, 0 bytes

DirectFlow Commands

action drop (DirectFlow-flow mode)

The action drop command configures packets that match an entry to be dropped.

The no action drop and default action drop commands remove the statement from the DirectFlow configuration mode.

Command Mode

Directflow-flow Configuration

Command Syntax

action drop

no action drop

default action drop

Example

This command sets the action for packets from Test-1 to be dropped.
switch(config-directflow-Test-1)# action drop
switch#

action mirror (DirectFlow-flow mode)

The action mirror command can be used to ingress or egress mirror traffic to a mirror destination. This requires a mirror destination to be setup on the switch. If a packet comes in or goes out an interface that is part of another mirror session, then the destination for that destination as well as the DirectFlow destination will receive a copy of the packet.

The no action mirror and default action mirror commands remove the statement from DirectFlow configuration mode.

Command Mode

Directflow-flow Configuration

Command Syntax

action DIRECTION mirror INT_NAME

no action DIRECTION mirrorINT_NAME

default action DIRECTION mirror INT_NAME

Parameters
  • DIRECTION transmission direction of traffic to be mirrored.
    • ingress mirrors before any rewrites.
    • egress mirrors after rewrites.

  • INT_NAME Source interface for the mirroring session.
    • ethernet e_range Ethernet interfaces specified by e_range.
    • port-channel p_range Port channel interfaces specified by p_range.

Example

This command configures mirror traffic to ethernet 2.
switch(config-directflow)# flow Test1
switch(config-directflow-Test1)# match ethertype ip
switch(config-directflow-Test1)# match source ip 10.10.10.10
switch(config-directflow-Test1)# action egress mirror ethernet 2
switch(config-directflow-Test1)# 

action output (DirectFlow-flow mode)

The action output command configures an Ethernet or port channel interface as the output of a specified port mirroring session.

The no action output and default action outputcommands remove the statement from DirectFlow configuration mode.

Command Mode

Directflow-flow Configuration

Command Syntax

action output DESTINATION

no action output DESTINATION

default action output DESTINATION

Parameters

DESTINATION transmission direction of traffic to be mirrored.
  • all mirrors transmitted and received traffic.
  • flood mirrors received traffic only.
  • interface ethernet e_range Ethernet interfaces specified by e_range.
  • interface port-channel p_range Port channel interfaces specified by p_range.
  • nexthop vrf vrf_name ip_addr. If the next hop is reachable in the default VRF, the default VRF does not need to be specified.

Examples
  • This command configures interface ethernet 7 as the output for the mirroring session.
    switch(config-directflow-Test1)# action output interface ethernet 7
    switch(config-directflow-Test1)#

  • The following commands configure a flow redirecting all traffic from 10.10.1.2 to e_range next hop assuming an appropriately configured TCAM profile.
    switch(config-directflow)# flow flow-sip-10_10_1_2-redirect-to-10_30_1_2
    switch(config-directflow-Test1)# match ethertype ip
    switch(config-directflow-Test1)# match source ip 10.10.1.2
    switch(config-directflow-Test1)# action output nexthop 10.30.1.2
    switch(config-directflow-Test1)#

action output interface cpu (DirectFlow-flow mode)

The action output interface cpu command configures the action (other commands are used to define the traffic matching conditions).

The no action output interface cpu and default action output commands remove the statement from DirectFlow configuration mode.

Command Mode

Directflow-flow Configuration

Command Syntax

action output DESTINATION

no action output DESTINATION

default action output DESTINATION

Parameters

DESTINATION transmission direction of traffic to be mirrored.
  • all mirrors transmitted and received traffic.
  • flood mirrors received traffic only.
  • interface cpu Ethernet interfaces specified by e_range.

Examples
  • This command configures interface ethernet 7 as the output for the mirroring session.
    switch(config-directflow-Test1)# action output interface ethernet 7 
    switch(config-directflow-Test1)#

  • These commands configure the action to redirect traffic matching the flow to the CPU and the matching conditions for the flow.
    switch (config)# directflow
    switch(config-directflow)# flow redirect-http-cpu
    switch(config-directflow-redirect-http=cpu)# match ip protocol tcp
    switch{config-directflow-redirect-http-cpu)# match destination p cpuort 80
    switch(config-directflow-redirect-http-cpu)# action output interface

action set (DirectFlow-flow mode)

The action set command allows you to configure a packet to be routed out a layer three interface using a DirectFlow entry. The actions associated with the entry will have to specify the new source MAC and destination MAC for the packet, as well as the physical port or LAG. If there are no output ports specified in an entry, packets that match that entry will be dropped.

The no action set and default action set commands remove action set statement from DirectFlow configuration mode.

Command Mode

Directflow-flow Configuration

Command Syntax

action set CONDITION

no action set CONDITION

default action set CONDITION

Parameters

CONDITION specifies parameter and value. Options include:
  • cos 0 to 7 Cost of service.
  • destination mac mac_addr Dotted hex notation.
  • ip tos 0 to 255 Type of service.
  • source mac mac_addr Dotted hex notation.
  • traffic-class 0 to 7 Dotted hex notation.
  • vlan 0 to 4094 Number of VLAN.

The no action set and default action set commands require only the CONDITION type without a specific condition value.

Example

These commands change the destination MAC of the frame.
switch(config-directflow)# flow Test1
switch(config-directflow-Test1)# action egress mirror ethernet 7
switch(config-directflow-Test1)# action set destination mac 0000.aaaa.bbbb

directflow

The directflow command places the switch in DirectFlow configuration mode.

The no directflow and default directflow commands delete the DirectFlow configuration mode statements from running-config.

DirectFlow configuration mode is not a group change mode; running-config is changed immediately upon entering commands. The exit command returns the switch to global configuration mode.

Command Mode

Global Configuration

Command Syntax

directflow

no directflow

default directflow

Commands Available in DirectFlow-Flow configuration mode:

Examples
  • This command places the switch in DirectFlow configuration mode.
    switch(config)# directflow
    switch(config-directflow)#

  • This command returns the switch to global management mode.
    switch(config-directflow)# exit
    switch(config)#

flow (DirectFlow)

The flow command places the switch in flow configuration mode.

The flow command specifies the name of the flow that subsequent commands modify and creates a newflow definition if it references a nonexistent flow. All changes in a flow configuration mode edit session are pending until the session ends:
  • The exit command saves pending changes to running-config and returns the switch to DirectFlow configuration mode. Changes are also saved by entering a different configuration mode.
  • The abort command discards pending changes, returning the switch to DirectFlow configuration mode.

The no flow and default flow commands delete the specified role by removing the role and its statements from running-config.

Command Mode

DirectFlow Configuration

Command Syntax

flow flow_name

no flow flow_name

default flow flow_name

Parameter

flow_name Name of flow.

match (DirectFlow-flow mode)

The match command allows you to configure a rule or a flow which could match on L2, L3, L4 fields of a packet and specify a certain action to modify, drop or redirect the packet.

All traffic ingressing on the switch will be matched against the flows installed. In cases where none of the packets match, normal switching or routing behavior will take over. When multiple entries match a packet, precedence is given to the entry that was installed first.

The no match and default match commands remove the match statement from the configuration mode.

Command Mode

Directflow-flow Configuration

Command Syntax

match CONDITION

no match CONDITION

default match CONDITION

Parameters

CONDITION specifies criteria for evaluating a route. Options include:
  • cos 0 to 7 cost of service.
  • destination ip ipv4_sub destination IPv4 subnet. L3 fields valid only if ethertype is IP (0x0800).
  • destination mac mac_addr Add to the existing community. Dotted hex notation.
  • destination mac mac_addr mask mac_mask Add to the sting community. Dotted hex notation.
  • destination port 0 to 65535 Fields accepted only if protocol is TCP|UDP.
  • ethertype 0 to 65535 Layer 4 destination port.
  • ethertype ARP Layer 4 destination port.
  • ethertype IP Layer 4 destination port.
  • icmp code 0 to 255 Fields accepted only if protocol is ICMP.
  • icmp type 0 to 255 Fields accepted only if protocol is ICMP.
  • input interface ethernet e_num Ethernet interface specified by e_num.
  • input interface port-channel p_num Port channel interface specified by p_num.
  • ip protocol 0 to 255 Type of service.
  • ip protocol icmp L3 fields valid only if ethertype is IP (0x0800).
  • ip protocol tcp L3 fields valid only if ethertype is IP (0x0800).
  • ip protocol udp L3 fields valid only if ethertype is IP (0x0800).
  • ip tos 0 to 255 L3 fields valid only if ethertype is IP (0x0800).
  • source ip ipv4_subnet L3 fields valid only if ethertype is IP (0x0800).
  • source mac mac_addr Add to the existing community. Dotted hex notation.
  • source mac mac_addr mask mac_mask Add to the sting community. Dotted hex notation.
  • source port 0 to 65535 Fields accepted only if protocol is TCP| UDP.
  • tcp flag ack Layer 4 destination port.
  • tcp flag fin Layer 4 destination port.
  • tcp flag psh Layer 4 destination port.
  • tcp flag rst Layer 4 destination port.
  • tcp flag syn Layer 4 destination port.
  • tcp flag urg Layer 4 destination port.
  • tcp flag urg Layer 4 destination port.
  • vlan 1 to 4094 mask 1 to 4095 Number of VLAN.

The no match and default match commands require only the CONDITION type without a specific condition value.

Example

This command creates the rules to match on Ethertype IP and Source IP 10.10.10.10.
switch(config-directflow)# flow Test1
switch(config-directflow-Test1)# persistent
switch(config-directflow-Test1)# match ethertype ip
switch(config-directflow-Test1)# match source ip 10.10.10.10

persistent

DirectFlow flows are persistent by default. Once finalized, they appear in the running configuration, and if saved to startup config they will persist over a reboot. The no form of the persistent command prevents the flow from showing up in running config, ensuring that it will not persist over a reboot.

Command Mode

Directflow-flow Configuration

Command Syntax

persistent

no persistent

Example

These commands create and enable a non-persistent DirectFlow flow.
switch(config)# directflow
switch(config-directflow)# flow example-non-persistent
switch(config-directflow-example-non-persistent)# match input interface ethernet 25
switch(config-directflow-example-non-persistent)# action drop
switch(config-directflow-example-non-persistent)# no persistent 
switch(config-directflow-example-non-persistent)# timeout hard 300
switch(config-directflow-example-non-persistent)# exit
switch(config-directflow)#

priority (DirectFlow-flow mode)

The priority command sets the priority for the flow match rules. Each flow-table entry has an optional priority field, with a higher number indicating a higher priority. Flows with the same priority may be loaded in any order, and the order may be changed at any time. If multiple entries match a packet, precedence is given to the entry that was installed first.

Priority numbers range from 0 to 65535. The default is 0. The higher priority rules match first.

The no priority and default priority commands remove priority statement from the DirectFlow configuration mode.

Command Mode

Directflow-flow Configuration

Command Syntax

priority priority_value

no priority

default priority

Parameter

priority_value priority xxx. Value ranges from 0 to 65535. Default is 0.

Example

These commands assign the priority of 150 to flow Test-1.
switch(config-directflow-Test-1)# priority 150
switch(config-directflow-Test-1)#

show directflow

The show directflow command displays summary information for DirectFlow. With the counters or details options, it displays counters or details for all flows configured on the switch.

Command Mode

EXEC

Command Syntax

show directflow [counters | details]

Examples
  • This command displays summary information for DirectFlow.
    switch# show directflow
    DirectFlow configuration: Enabled
    Total matched: 0 packets
    Total programmed flows: 3 flows
    switch#

  • This command displays counters for all DirectFlow flows configured on the switch.
    switch# show directflow counters
    Flow Name      Source      Matched packets      Matched bytes
    ---------      ------      ---------------      -------------
    test3          config      0                     0
    test2          config      0                     0
    test1          config      0                     0
    
    Total matched packets: 0
    switch>

  • This command displays details for all DirectFlow flows configured on the switch.
    switch# show directflow detail
    Flow test3: (Flow programmed)
      persistent: True
      priority: 0
      priorityGroupType: default
      tableType: ifp
      hard timeout: 0
      idle timeout: 0
      match:
        Ethernet type: 0x86dd
        source IPv6 address: fcaa::/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
      actions:
        output interfaces:
            Et32
      source: config
      matched: 0 packets, 0 bytes
    Flow test2: (Flow programmed)
      persistent: True
      priority: 0
      priorityGroupType: default
      tableType: ifp
      hard timeout: 0
      idle timeout: 0
      match:
        Ethernet type: IPv4
        source IPv4 address: 10.1.2.12/255.255.255.255
        IPv4 protocol: TCP
        destination TCP/UDP port or ICMP type: 8080
      actions:
        output interfaces:
            Et3/1
      source: config
      matched: 0 packets, 0 bytes
    Flow test1: (Flow programmed)
      persistent: True
      priority: 0
      priorityGroupType: default
      tableType: ifp
      hard timeout: 0
      idle timeout: 0
      match:
        ingress interface:
            Et1/1
      actions:
        output interfaces:
            Et2/1
      source: config
      matched: 0 packets, 0 bytes
    Flows: 3 programmed, 0 rejected

show directflow flows

The show directflow flows command displays the contents of the flow table, showing each entry with its match rules, actions, and packet counters. Including the name of a specific flow limits the output to information about the specified flow.

Command Mode

EXEC

Command Syntax

show directflow flows [flow_name [counters | detail]]

Parameters
  • flow_name name of flow for which to display information. If no flow name is entered, command displays information for all flows.
  • counters displays DirectFlow counters for the specified flow.
  • detail displays detailed information for the specified flow.

Examples
  • This command displays the contents of the flow table.
    switch# show directflow flows
    Flow test3:
      persistent: True
      priority: 0
      priorityGroupType: default
      tableType: ifp
      hard timeout: 0
      idle timeout: 0
      match:
        Ethernet type: 0x86dd
        source IPv6 address: fcaa::/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
      actions:
        output interfaces:
            Et32
      source: config
      matched: 0 packets, 0 bytes
    Flow test2:
      persistent: True
      priority: 0
      priorityGroupType: default
      tableType: ifp
      hard timeout: 0
      idle timeout: 0
      match:
        Ethernet type: IPv4
        source IPv4 address: 10.1.2.12/255.255.255.255
        IPv4 protocol: TCP
        destination TCP/UDP port or ICMP type: 8080
      actions:
        output interfaces:
            Et3/1
      source: config
      matched: 0 packets, 0 bytes
    Flow test1:
      persistent: True
      priority: 0
      priorityGroupType: default
      tableType: ifp
      hard timeout: 0
      idle timeout: 0
      match:
        ingress interface:
            Et1/1
      actions:
        output interfaces:
            Et2/1
      source: config
      matched: 0 packets, 0 bytes

  • This command displays information about flow test-1.
    switch# show directflow flows test-1
    Flow test1:
      persistent: True
      priority: 0
      priorityGroupType: default
      tableType: ifp
      hard timeout: 0
      idle timeout: 0
      match:
        ingress interface:
            Et1/1
      actions:
        output interfaces:
            Et2/1
      source: config
      matched: 0 packets, 0 bytes

  • This command displays detailed information for flow test-1.

    switch# show directflow flows test-1 detail
    switch>show directflow flows test1 detail
    Flow test1: (Flow programmed)
      persistent: True
      priority: 0
      priorityGroupType: default
      tableType: ifp
      hard timeout: 0
      idle timeout: 0
      match:
        ingress interface:
            Et1/1
        source Ethernet address: 00:aa:aa:aa:aa:aa/ff:ff:ff:ff:ff:ff
        VLAN ID: 10
      actions:
        output interfaces:
      copy ingress to mirror dest interfaces: Ethernet1
        forward normally
      source: config
      matched: 0 packets, 0 bytes

  • This command displays detailed information for all flows regardless of their status as installed, rejected, configured or others.
    switch# show directflow detail
    Flow test-3: (Flow programmed)
      persistent: False
      priority: 0
      priorityGroupType: default
      hard timeout: 0
      idle timeout: 0
      match:
        ingress interface:
            Et11
      actions:
        copy ingress to mirror dest interfaces: Ethernet1
        forward normally
      source: config
      matched: 0 packets, 0 bytes
    Flow test-1: (Flow programmed)
      persistent: True
      priority: 0
      priorityGroupType: default
      hard timeout: 0
      idle timeout: 0
      match:
        ingress interface:
            Et10
        source Ethernet address: 00:aa:aa:aa:aa:aa/ff:ff:ff:ff:ff:ff
        VLAN ID: 10
      actions:
        copy ingress to mirror dest interfaces: Ethernet1
        forward normally
      source: config
      matched: 0 packets, 0 bytes
    Flow test-2: (Flow rejected due to invalid match criteria)
      persistent: True
      priority: 0
      priorityGroupType: default
      hard timeout: 0
      idle timeout: 0
      match:
        Ethernet type: IPv4
        IPv4 protocol: ICMP
        source TCP/UDP port or ICMP type: 3
        destination TCP/UDP port or ICMP type: 6
      actions:
        copy ingress to mirror dest interfaces: Ethernet1
        forward normally
      source: config
      matched: 0 packets, 0 bytes
    Flows: 2 programmed, 1 rejected

  • This command displays counters for flow test-1.
    switch# show directflow flows test-1 counters
    Flow Name     Source      Matched packets    Matched bytes
    ---------     ------      ---------------    -------------
    test1         config                    0                0

  • This command displays match counters per flow.
    switch# show directflow counters
    Flow Name     Source      Matched packets    Matched bytes
    ---------     ------      ---------------    -------------
    test1         config                    0              146
    Total matched packets: 1

shutdown (DirectFlow)

The shutdown command, in DirectFlow mode, disables DirectFlow on the switch. DirectFlow is disabled by default.

The no shutdown command re-enables DirectFlow.

Command Mode

Directflow Configuration

Command Syntax

shutdown

no shutdown

default shutdown

Examples
  • These commands enable DirectFlow on the switch.
    switch(config)# directflow
    switch(config-directflow)# no shutdown
    switch(config-directflow)#

  • This command disables DirectFlow Flow.
    switch(config-directflow-Test1)# shutdown

timeout (DirectFlow-flow mode)

The timeout command, in DirectFlow mode, command configures the connection timeout period for connection sessions. The connection timeout period defines the interval between a users most recently entered command and an automatic connection shutdown. Automatic connection timeout is disabled by setting the idle-timeout to zero, which is the default setting.

Command Mode

Directflow-flow Configuration

Command Syntax

timeout [hard | idle]

no timeout

Parameters
  • idle session idle timeout length.
    • 0 Automatic connection timeout is disabled.
    • 1-4294967295 Automatic timeout period (seconds).

  • hard session hard timeout length.
    • 0 Automatic connection timeout is disabled.
    • 1-4294967295

Example
  • These commands enable a hard timeout period of 5 seconds on the switch.
    switch(config)# directflow 
    switch(config-directflow-Test1)# timeout hard 5
    switch(config-directflow-Test1)#

  • These commands enable DirectFlow on the switch.
    switch(config)# directflow
    switch(config-directflow-Test1)# no timeout hard
    switch(config-directflow-Test1)#