ingress_acl - openconfig/featureprofiles GitHub Wiki
The test verifies securing device control-plane access with an ingress access-control-list (ACL).
- DUT has an single ingress port with IPv4/IPv6 enabled.
ATE <> DUT
-
Configure test address on the device loopback (secondary)
-
Configure IPv4/IPv6 ACL/filters with following terms:
- Allow gRPC from any (lab management access)
- Allow SSH from MGMT-SRC
- Allow ICMP from MGMT-SRC
- Explicit deny
-
Apply filter to control-plane ingress.
Generate ICMP traffic to device loopback from MGMT-SRC Generate SSH SYN packets to device loopback from MGMT-SRC
Verify:
- ACL counters for corresponding ACL entries are incrementing.
- Device responds to ICMP permitted
- Device sends TCP-ACK for SSH session
Generate ICMP traffic to device loopback from UNKNOWN-SRC Generate SSH SYN packets to device loopback from UNKNOWN-SRC
Verify:
- Explicit deny ACL counter is incrementing.
- Device does not respond to ICMP
- Device sends TCP-ACK for SSH session
paths:
# acl definition
/acl/acl-sets/acl-set/config/name:
/acl/acl-sets/acl-set/config/type:
/acl/acl-sets/acl-set/config/description:
/acl/acl-sets/acl-set/acl-entries/acl-entry/config/sequence-id:
/acl/acl-sets/acl-set/acl-entries/acl-entry/config/description:
/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/config/source-address:
/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv4/config/protocol:
/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/config/source-address:
/acl/acl-sets/acl-set/acl-entries/acl-entry/ipv6/config/protocol:
/acl/acl-sets/acl-set/acl-entries/acl-entry/transport/config/destination-port:
# acl application
/system/control-plane-traffic/ingress/acl/acl-set/config/set-name:
/system/control-plane-traffic/ingress/acl/acl-set/config/type:
# telemetry
/system/control-plane-traffic/ingress/acl/acl-set/state/set-name:
/system/control-plane-traffic/ingress/acl/acl-set/acl-entries/acl-entry/state/sequence-id:
/system/control-plane-traffic/ingress/acl/acl-set/acl-entries/acl-entry/state/matched-packets:
rpcs:
gnmi:
gNMI.Set:
union_replace: true
replace: true
gNMI.Subscribe:
on_change: true
- MFF
- FFF
- VRX