Модуль dellemc.enterprise_sonic.sonic_l3_acls — управление конфигурациями списков контроля доступа уровня 3 (ACL) в SONiC
Примечание
Этот модуль входит в коллекцию dellemc.enterprise_sonic (версия 3.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install dellemc.enterprise_sonic.
Чтобы использовать её в плейбуке, укажите: dellemc.enterprise_sonic.sonic_l3_acls.
Добавлено в dellemc.enterprise_sonic 2.1.0
Краткое описание
- Этот модуль обеспечивает управление конфигурацией списков контроля доступа уровня 3 (ACL) на устройствах под управлением SONiC.
Параметры
Параметр | Комментарии |
|---|---|
config list / elements=dictionary | Задает конфигурацию ACL уровня 3. |
|
acls list / elements=dictionary |
Список конфигураций ACL для указанного семейства адресов. |
|
name string / обязательный |
Задает имя ACL. |
|
remark string |
Задает примечание для ACL. |
|
rules list / elements=dictionary |
Список правил ACL. sequence_num, action, protocol, source и destination обязательны для добавления нового правила. Если state=deleted, учитывается только параметр sequence_num. |
|
action string |
Задает действие, применяемое к совпавшему пакету. Варианты:
|
|
destination dictionary |
Задает назначение пакета. any, host и prefix являются взаимоисключающими параметрами. |
|
any boolean |
Совпадение с любым сетевым адресом назначения. Варианты:
|
|
host string |
Сетевой адрес одного узла назначения. |
|
port_number dictionary |
Задает порт назначения (допустимо только для TCP или UDP). Для port_number в правиле можно указать только один вложенный параметр. |
|
eq integer |
Совпадение с пакетами, у которых порт назначения равен указанному номеру порта. Диапазон: от 0 до 65535. |
|
gt integer |
Совпадение с пакетами, у которых порт назначения больше указанного номера порта. Диапазон: от 0 до 65534. |
|
lt integer |
Совпадение с пакетами, у которых порт назначения меньше указанного номера порта. Диапазон: от 1 до 65535. |
|
range dictionary |
Совпадение с пакетами, порт назначения которых входит в указанный диапазон. Параметры begin и end необходимо указывать вместе. |
|
begin integer |
Задает начало диапазона портов. Диапазон: от 0 до 65534. |
|
end integer |
Задает конец диапазона портов. Диапазон: от 1 до 65535. |
|
prefix string |
Сетевой префикс назначения в формате A.B.C.D/mask (ipv4) или A::B/mask (ipv6). |
|
dscp dictionary |
Сопоставление пакетов по значению DSCP. Для dscp в правиле можно указать только один вложенный параметр. |
|
af11 boolean |
Совпадение с пакетами, имеющими DSCP AF11 (001010 — десятичное значение 10). Варианты:
|
|
af12 boolean |
Совпадение с пакетами, имеющими DSCP AF12 (001100 — десятичное значение 12). Варианты:
|
|
af13 boolean |
Совпадение с пакетами, имеющими DSCP AF13 (001110 — десятичное значение 14). Варианты:
|
|
af21 boolean |
Совпадение с пакетами, имеющими DSCP AF21 (010010 — десятичное значение 18). Варианты:
|
|
af22 boolean |
Совпадение с пакетами, имеющими DSCP AF22 (010100 — десятичное значение 20). Варианты:
|
|
af23 boolean |
Совпадение с пакетами, имеющими DSCP AF23 (010110 — десятичное значение 22). Варианты:
|
|
af31 boolean |
Совпадение с пакетами, имеющими DSCP AF31 (011010 — десятичное значение 26). Варианты:
|
|
af32 boolean |
Совпадение с пакетами, имеющими DSCP AF32 (011100 — десятичное значение 28). Варианты:
|
|
af33 boolean |
Совпадение с пакетами, имеющими DSCP AF33 (011110 — десятичное значение 30). Варианты:
|
|
af41 boolean |
Совпадение с пакетами, имеющими DSCP AF41 (100010 — десятичное значение 34). Варианты:
|
|
af42 boolean |
Совпадение с пакетами, имеющими DSCP AF42 (100100 — десятичное значение 36). Варианты:
|
|
af43 boolean |
Совпадение с пакетами, имеющими DSCP AF43 (100110 — десятичное значение 38). Варианты:
|
|
cs1 boolean |
Совпадение с пакетами, имеющими DSCP CS1 (001000 — десятичное значение 8). Варианты:
|
|
cs2 boolean |
Совпадение с пакетами, имеющими DSCP CS2 (010000 — десятичное значение 16). Варианты:
|
|
cs3 boolean |
Совпадение с пакетами, имеющими DSCP CS3 (011000 — десятичное значение 24). Варианты:
|
|
cs4 boolean |
Совпадение с пакетами, имеющими DSCP CS4 (100000 — десятичное значение 32). Варианты:
|
|
cs5 boolean |
Совпадение с пакетами, имеющими DSCP CS5 (101000 — десятичное значение 40). Варианты:
|
|
cs6 boolean |
Совпадение с пакетами, имеющими DSCP CS6 (110000 — десятичное значение 48). Варианты:
|
|
cs7 boolean |
Совпадение с пакетами, имеющими DSCP CS7 (111000 — десятичное значение 56). Варианты:
|
|
default boolean |
Совпадение с пакетами, имеющими DSCP CS0 (000000 — десятичное значение 0). Варианты:
|
|
ef boolean |
Совпадение с пакетами, имеющими DSCP EF (101110 — десятичное значение 46). Варианты:
|
|
value integer |
Совпадение с пакетами, имеющими указанное значение DSCP. Диапазон: от 0 до 63. |
|
voice_admit boolean |
Совпадение с пакетами, имеющими DSCP VOICE-ADMIT (101100 — десятичное значение 44). Варианты:
|
|
protocol dictionary |
Задает протокол для сопоставления. Для protocol в правиле можно указать только один вложенный параметр. |
|
name string |
Совпадение с пакетами указанного протокола.
Варианты:
|
|
number integer |
Совпадение с пакетами, имеющими указанный номер протокола. Диапазон: от 0 до 255. |
|
protocol_options dictionary |
Задает дополнительные параметры сопоставления пакетов для выбранного протокола. icmp, icmpv6 и tcp являются взаимоисключающими параметрами. |
|
icmp dictionary |
Параметры сопоставления пакетов для ICMP. |
|
code integer |
Совпадение с пакетами, имеющими указанный код ICMP. Диапазон: от 0 до 255. |
|
type integer |
Совпадение с пакетами, имеющими указанный тип ICMP. Диапазон: от 0 до 255. |
|
icmpv6 dictionary |
Параметры сопоставления пакетов для ICMPv6. |
|
code integer |
Совпадение с пакетами, имеющими указанный код ICMPv6. Диапазон: от 0 до 255. |
|
type integer |
Совпадение с пакетами, имеющими указанный тип ICMPv6. Диапазон: от 0 до 255. |
|
tcp dictionary |
Параметры сопоставления пакетов для TCP. established и другие параметры флагов TCP являются взаимоисключающими. |
|
ack boolean |
Совпадение с пакетами, в которых установлен флаг ACK. Варианты:
|
|
established boolean |
Совпадение с пакетами, относящимися к установленному сеансу TCP. Варианты:
|
|
fin boolean |
Совпадение с пакетами, в которых установлен флаг FIN. Варианты:
|
|
not_ack boolean |
Соответствует пакетам со сброшенным флагом ACK. Варианты:
|
|
not_fin boolean |
Соответствует пакетам со сброшенным флагом FIN. Варианты:
|
|
not_psh boolean |
Соответствует пакетам со сброшенным флагом PSH. Варианты:
|
|
not_rst boolean |
Соответствует пакетам со сброшенным флагом RST. Варианты:
|
|
not_syn boolean |
Соответствует пакетам со сброшенным флагом SYN. Варианты:
|
|
not_urg boolean |
Соответствует пакетам со сброшенным флагом URG. Варианты:
|
|
psh boolean |
Соответствует пакетам с установленным флагом PSH. Варианты:
|
|
rst boolean |
Соответствует пакетам с установленным флагом RST. Варианты:
|
|
syn boolean |
Соответствует пакетам с установленным флагом SYN. Варианты:
|
|
urg boolean |
Соответствует пакетам с установленным флагом URG. Варианты:
|
|
remark string |
Задает примечание для правила ACL. |
|
sequence_num integer / обязательный |
Задает порядковый номер правила. Диапазон: от 1 до 65535. |
|
source dictionary |
Задает источник пакета. any, host и prefix являются взаимоисключающими. |
|
any boolean |
Соответствует любому адресу исходной сети. Варианты:
|
|
host string |
Сетевой адрес отдельного исходного узла. |
|
port_number dictionary |
Задает исходный порт (допустимо только для TCP или UDP). В правиле можно указать только один параметр port_number. |
|
eq integer |
Соответствует пакетам, исходный порт которых равен заданному номеру порта. Диапазон: от 0 до 65535. |
|
gt integer |
Соответствует пакетам, исходный порт которых больше заданного номера порта. Диапазон: от 0 до 65534. |
|
lt integer |
Соответствует пакетам, исходный порт которых меньше заданного номера порта. Диапазон: от 1 до 65535. |
|
range dictionary |
Соответствует пакетам, исходный порт которых входит в заданный диапазон. Параметры begin и end необходимо указывать вместе. |
|
begin integer |
Задает начало диапазона портов. Диапазон: от 0 до 65534. |
|
end integer |
Задает конец диапазона портов. Диапазон: от 1 до 65535. |
|
prefix string |
Префикс исходной сети в формате A.B.C.D/mask (ipv4) или A::B/mask (ipv6). |
|
vlan_id integer |
Соответствует пакетам с указанным значением VLAN ID. |
|
address_family string / обязательный |
Задает семейство адресов ACL. Варианты:
|
state string | Состояние конфигурации после завершения работы модуля.
Варианты:
|
Примечания
Примечание
- Поддерживает
check_mode.
Примеры
# Using "merged" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit ipv6 host 192:168:1::2 any
# sonic#
- name: Merge provided Layer 3 ACL configurations
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
acls:
- name: 'test'
rules:
- sequence_num: 2
action: 'permit'
protocol:
name: 'icmp'
source:
any: true
destination:
host: '192.168.1.2'
protocol_options:
icmp:
type: 8
- sequence_num: 3
action: 'deny'
protocol:
number: 2
source:
any: true
destination:
any: true
- sequence_num: 4
action: 'deny'
protocol:
name: 'ip'
source:
any: true
destination:
any: true
vlan_id: 10
remark: 'Vlan10'
- name: 'test1'
remark: 'test_ip_acl'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'tcp'
source:
prefix: '10.0.0.0/8'
destination:
any: true
- sequence_num: 2
action: 'deny'
protocol:
name: 'udp'
source:
any: true
destination:
prefix: '20.1.0.0/16'
port_number:
gt: 1024
- sequence_num: 3
action: 'deny'
protocol:
name: 'ip'
source:
any: true
destination:
any: true
dscp:
value: 63
- address_family: 'ipv6'
acls:
- name: 'testv6'
rules:
- sequence_num: 2
action: 'deny'
protocol:
name: 'icmpv6'
source:
any: true
destination:
any: true
- name: 'testv6-1'
remark: 'test_ipv6_acl'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'ipv6'
source:
prefix: '1000::/16'
destination:
any: true
dscp:
af22: true
- sequence_num: 2
action: 'deny'
protocol:
name: 'tcp'
source:
any: true
destination:
prefix: '2000::1000:0/112'
port_number:
range:
begin: 100
end: 1000
- sequence_num: 3
action: 'permit'
protocol:
name: 'tcp'
source:
any: true
destination:
any: true
protocol_options:
tcp:
established: true
- sequence_num: 4
action: 'deny'
protocol:
name: 'udp'
source:
any: true
port_number:
eq: 3000
destination:
any: true
state: merged
# After state:
# ------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.2 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit ipv6 host 192:168:1::2 any
# seq 2 deny icmpv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
# Using "replaced" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.2 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp host 3000::1 any established
# seq 2 permit udp any any
# seq 3 deny icmpv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Replace device configuration of specified Layer 3 ACLs with provided configuration
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
acls:
- name: 'test2'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'tcp'
source:
prefix: '192.168.1.0/24'
destination:
any: true
- address_family: 'ipv6'
acls:
- name: 'testv6'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'tcp'
source:
host: '3000::1'
destination:
any: true
protocol_options:
tcp:
ack: true
syn: true
fin: true
- sequence_num: 2
action: 'deny'
protocol:
name: 'ipv6'
source:
any: true
destination:
any: true
state: replaced
# After state:
# ------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp host 3000::1 any fin syn ack
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
# Using "overridden" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Override device configuration of all Layer 3 ACLs with provided configuration
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
acls:
- name: 'test_acl'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'ip'
source:
prefix: '100.1.1.0/24'
destination:
prefix: '100.1.2.0/24'
- sequence_num: 2
action: 'deny'
protocol:
name: 'udp'
source:
any: true
destination:
any: true
state: overridden
# After state:
# ------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test_acl
# seq 1 permit ip 100.1.1.0/24 100.1.2.0/24
# seq 2 deny udp any any
# sonic#
# sonic# show running-configuration ipv6 access-list
# sonic#
# Using "deleted" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Delete specified Layer 3 ACLs, ACL remark and ACL rule entries
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
acls:
- name: 'test'
rules:
- sequence_num: 2
- name: 'test2'
- address_family: 'ipv6'
acls:
- name: 'testv6-1'
remark: 'test_ipv6_acl'
rules:
- sequence_num: 3
state: deleted
# After state:
# ------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 4 deny udp any eq 3000 any
# sonic#
# Using "deleted" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Delete all Layer 3 ACLs for an address-family
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
state: deleted
# After state:
# ------------
#
# sonic# show running-configuration ip access-list
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
# Using "deleted" state
#
# Before state:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Delete all Layer 3 ACL configurations
dellemc.enterprise_sonic.sonic_l3_acls:
config:
state: deleted
# After state:
# ------------
#
# sonic# show running-configuration ip access-list
# sonic#
# sonic# show running-configuration ipv6 access-list
# sonic#
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
after list / elements=string | Итоговая конфигурация после вызова модуля. Возвращается: при изменении Пример: |
after(generated) list / elements=string | Сгенерированная конфигурация после вызова модуля. Возвращается: при Пример: |
before list / elements=string | Конфигурация до вызова модуля. Возвращается: всегда Пример: |
commands list / elements=string | Набор команд, отправленных на удаленное устройство. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/dellemc/enterprise_sonic/sonic_l3_acls_module.html