Group-based policy ACLs

Micro-segmentation is a security capability for data centers and enterprises intended to prevent lateral movement of security threats within the network. It divides networks into smaller, isolated zones (known as micro-segments) and establishes rules to restrict traffic between them. A group-based policy (GBP) is a way to control access between network segments using micro-segmentation.

Group-based policies use a type of ACL called a GBP ACL. A GBP ACL is similar to an interface ACL, with the exception that IP addresses are replaced with micro-segmentation group names to enforce security policies within the network-instance.

For information about micro-segmentation and configuring GBPs, see the ​SR Linux VPN Services Guide.

Within the group-based-policy context for a network-instance, you can configure a GBP ACL. A GBP ACL contains match criteria specific to GBP filtering, including source and destination group names. The GBP ACL is common for both IPv4 and IPv6 traffic in the network-instance.

The following match conditions are supported concurrently in a GBP ACL:

  • source group
  • destination group
  • TCP/UDP source port (range)
  • TCP/UDP destination port (range)
  • IP version (IPv4 or IPv6)
  • IP protocol type (IPv4 protocol type field or IPv6 next-header field)
  • TCP flags, specified as an expression using &, |, and ! logical operators and the TCP flag names: rst, syn, and ack.

The following actions are supported in a GBP ACL:

  • accept
  • drop
  • log
  • collect-stats

A GBP ACL filter is not assigned to subinterfaces manually; instead it is configured within the network-instance group-based policy and applies automatically to all ingress packets on all subinterfaces within the network-instance.

Assigning a subinterface IPv4 ACL, IPv6 ACL, or MAC ACL to subinterfaces in a network-instance where a GBP ACL is also configured results in the system executing both ACLs as follows:

  • A packet drop by either ACL resulting from a drop or rate-limit action takes priority over the action in the other ACL
  • A packet subject to log action in both the GBP ACL entry and subinterface ACL entry is only logged once; in this case, the subinterface ACL takes priority.

Creating a GBP ACL

To configure a GBP ACL filter within a network-instance, you specify one or more entries consisting of match conditions and the action to take for traffic that matches the conditions.

The following is an example of a GBP ACL filter with one entry. In this example, traffic with source group grp1 and destination group grp2 is accepted. The GBP ACL filter applies to both IPv4 and IPv6 traffic.

--{ +* candidate shared default }--[  ]--
# info with-context network-instance gbpex group-based-policy acl
    network-instance gbpex {
        group-based-policy {
            acl {
                entry 100 {
                    match {
                        source-group [
                            grp1
                        ]
                        destination-group [
                            grp2
                        ]
                    }
                    action {
                        accept {
                        }
                    }
                }
            }
        }
    }

Displaying GBP ACL information

You can display information about specific GBP ACL entries. For example:

--{ running }--[  ]--
# show acl gbp-filter test entry 10
============================================================================
Network Instance: test
Entries         : 1
----------------------------------------------------------------------------
Entry 10
  Match               : protocol=<undefined>, [RED:1](*)->[BLUE:2](*)
  Action              : accept
  Collect Stats       : false
  Match Packets       : 0
  Last Match          : never
----------------------------------------------------------------------------

Clearing GBP ACL statistics

To reset GBP ACL statistics counters to zero, use the tools network-instance group-based-policy acl statistics clear command. For example:

--{ running }--[  ]--
# tools network-instance gbpex group-based-policy acl statistics clear

The following example clears statistics for a specific entry in the GBP ACL:

--{ running }--[  ]--
# tools network-instance gbpex group-based-policy acl entry 10 statistics clear