Skip to content

IPv6 Access List

IPv6 access lists provide packet filtering and traffic classification for IPv6 traffic on NX-OS through ordered sequences of permit/deny rules that match on Layer 3 and Layer 4 header fields including protocol, source/destination IPv6 prefixes, ports, DSCP, flow labels, and TCP flags. Each ACL supports per-ACE statistics, fragment handling policies, extension header filtering, address and port groups for object-based matching, ICMPv6 type/code filtering, HTTP method matching, packet length operators, time-range restrictions, VLAN/VNI-based filtering, capture sessions, telemetry actions, and redirect options. IPv6 access lists are applied to interfaces for ingress/egress traffic filtering and referenced by other features for comprehensive IPv6 traffic control and security enforcement.

Diagram
NameTypeConstraintMandatoryDefault Value
ipv6_access_listsList[ipv6_access_lists]No

ipv6_access_lists (nxos.devices.configuration)

Section titled “ipv6_access_lists (nxos.devices.configuration)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
extension_headerChoicepermit-all, deny-allNo
fragmentsChoicepermit-all, deny-allNo
ignore_routableBooleantrue, falseNo
statistics_per_entryBooleantrue, falseNo
entriesList[entries]No

entries (nxos.devices.configuration.ipv6_access_lists)

Section titled “entries (nxos.devices.configuration.ipv6_access_lists)”
NameTypeConstraintMandatoryDefault Value
sequence_numberIntegermin: 1, max: 4294967295Yes
remarkStringNo
actionChoicepermit, denyNo
protocolAnyChoice[ipv6, tcp, udp, gre, esp, ahp, icmp, eigrp, ospf, nos, pim, pcp, sctp, udf] or String or Integer or String[Regex: ^.*[\$\%]\{.*$]No
sourceClass[source]No
destinationClass[destination]No
dscpIntegermin: 0, max: 63No
flow_labelIntegermin: 0, max: 1048576No
fragmentBooleantrue, falseNo
logBooleantrue, falseNo
establishedBooleantrue, falseNo
ackBooleantrue, falseNo
finBooleantrue, falseNo
pshBooleantrue, falseNo
rstBooleantrue, falseNo
synBooleantrue, falseNo
urgBooleantrue, falseNo
icmp_typeIntegermin: 0, max: 255No
icmp_codeIntegermin: 0, max: 255No
icmp_messageStringNo
http_methodChoiceget, put, head, post, delete, trace, connectNo
time_rangeStringNo
redirectStringNo
packet_length_operatorChoicenone, eq, neq, lt, gt, rangeNo
packet_length_1Integermin: 19, max: 9210No
packet_length_2Integermin: 19, max: 9210No
vlanIntegermin: 0, max: 4095No
vniIntegermin: 0, max: 16777216No
revBooleantrue, falseNo
tcp_flags_maskIntegermin: 0, max: 64No
tcp_option_lengthIntegermin: 0, max: 41No
capture_sessionIntegermin: 0, max: 48No
dscp_maskIntegermin: 0, max: 63No
load_shareBooleantrue, falseNo
priority_allBooleantrue, falseNo
protocol_maskStringNo
redirect_all_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
redirect_all_interface_idAnyString or Integer[min: 0]No
telemetry_pathBooleantrue, falseNo
telemetry_queueBooleantrue, falseNo

source (nxos.devices.configuration.ipv6_access_lists.entries)

Section titled “source (nxos.devices.configuration.ipv6_access_lists.entries)”
NameTypeConstraintMandatoryDefault Value
prefixAnyIP or Choice[any] or String[Regex: ^.*[\$\%]\{.*$]No
prefix_lengthIntegermin: 0, max: 128No
prefix_maskStringNo
addrgroupStringNo
port_operatorChoicenone, eq, neq, lt, gt, rangeNo
port_1AnyString or Integer or String[Regex: ^.*[\$\%]\{.*$]No
port_2AnyString or Integer or String[Regex: ^.*[\$\%]\{.*$]No
portgroupStringNo

destination (nxos.devices.configuration.ipv6_access_lists.entries)

Section titled “destination (nxos.devices.configuration.ipv6_access_lists.entries)”
NameTypeConstraintMandatoryDefault Value
prefixAnyIP or Choice[any] or String[Regex: ^.*[\$\%]\{.*$]No
prefix_lengthIntegermin: 0, max: 128No
prefix_maskStringNo
addrgroupStringNo
port_operatorChoicenone, eq, neq, lt, gt, rangeNo
port_1AnyString or Integer or String[Regex: ^.*[\$\%]\{.*$]No
port_2AnyString or Integer or String[Regex: ^.*[\$\%]\{.*$]No
portgroupStringNo

Example 1: Management plane protection ACL — restrict SSH and SNMP access to trusted IPv6 subnets

nxos:
devices:
- name: SPINE1
configuration:
ipv6_access_lists:
- name: ACLv6-MGMT-ACCESS
statistics_per_entry: true
entries:
- sequence_number: 10
remark: "Allow SSH from management subnet"
- sequence_number: 20
action: permit
protocol: tcp
source:
prefix: "2001:db8:cafe::"
prefix_length: 48
destination:
prefix: any
port_operator: eq
port_1: 22
- sequence_number: 30
remark: "Allow SNMP from monitoring servers"
- sequence_number: 40
action: permit
protocol: udp
source:
prefix: "2001:db8:cafe:100::"
prefix_length: 64
destination:
prefix: any
port_operator: eq
port_1: 161
- sequence_number: 1000
action: deny
protocol: ipv6
source:
prefix: any
destination:
prefix: any
log: true

Example 2: Data center tenant ACL with ICMPv6 neighbor discovery, TCP flags, and DSCP

nxos:
devices:
- name: LEAF1
configuration:
ipv6_access_lists:
- name: ACLv6-TENANT-IN
statistics_per_entry: true
fragments: deny-all
entries:
- sequence_number: 10
remark: "Allow ICMPv6 neighbor discovery"
- sequence_number: 20
action: permit
protocol: icmp
source:
prefix: any
destination:
prefix: any
icmp_message: nd-ns
- sequence_number: 30
action: permit
protocol: icmp
source:
prefix: any
destination:
prefix: any
icmp_message: nd-na
- sequence_number: 40
remark: "Allow established TCP sessions"
- sequence_number: 50
action: permit
protocol: tcp
source:
prefix: any
destination:
prefix: "2001:db8:10::"
prefix_length: 48
established: true
- sequence_number: 60
remark: "Allow HTTPS inbound with DSCP EF"
- sequence_number: 70
action: permit
protocol: tcp
source:
prefix: any
destination:
prefix: "2001:db8:10::"
prefix_length: 48
port_operator: eq
port_1: 443
dscp: 46
- sequence_number: 1000
action: deny
protocol: ipv6
source:
prefix: any
destination:
prefix: any
log: true

Example 3: Advanced IPv6 ACL with extension header filtering, flow label, and capture session

nxos:
devices:
- name: BORDER-LEAF1
configuration:
ipv6_access_lists:
- name: ACLv6-SECURITY
statistics_per_entry: true
extension_header: deny-all
ignore_routable: true
entries:
- sequence_number: 10
remark: "Capture suspicious traffic for analysis"
- sequence_number: 20
action: permit
protocol: tcp
source:
prefix: "2001:db8:99::"
prefix_length: 48
destination:
prefix: any
port_operator: eq
port_1: 443
capture_session: 1
telemetry_queue: true
- sequence_number: 30
remark: "Allow DNS queries"
- sequence_number: 40
action: permit
protocol: udp
source:
prefix: any
destination:
prefix: "2001:db8:10::53"
prefix_length: 128
port_operator: eq
port_1: 53
- sequence_number: 50
remark: "Allow ICMPv6 echo for troubleshooting"
- sequence_number: 60
action: permit
protocol: icmp
source:
prefix: any
destination:
prefix: any
icmp_message: echo-request
- sequence_number: 1000
action: deny
protocol: ipv6
source:
prefix: any
destination:
prefix: any
log: true