dellemc.enterprise_sonic.sonic_l3_acls модуль — Управление конфигурациями списков управления доступом (ACL) уровня 3 на устройствах SONiC
Примечание
Этот модуль входит в коллекцию dellemc.enterprise_sonic (версия 2.5.1).
У вас, возможно, уже установлена эта коллекция, если вы используете пакет 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
Обзор
- Этот модуль обеспечивает управление конфигурацией списков управления доступом (ACL) уровня 3 на устройствах, работающих под управлением SONiC.
Параметры
Параметр | Комментарии |
|---|---|
config list / elements=dictionary | Задает конфигурации ACL уровня 3. |
|
acls list / elements=dictionary |
Список конфигураций ACL для заданного семейства адресов. |
|
name string / required |
Задает имя 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 |
Соответствие пакетов с VOICE-ADMIT DSCP (101100 - десятичное значение 44). Варианты:
|
|
protocol dictionary |
Задает протокол для сопоставления. Для протокола в правиле может быть указан только один допопция. |
|
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. Choices:
|
|
psh boolean |
Сопоставлять пакеты с установленным флагом PSH. Choices:
|
|
rst boolean |
Сопоставлять пакеты с установленным флагом RST. Choices:
|
|
syn boolean |
Сопоставлять пакеты с установленным флагом SYN. Choices:
|
|
urg boolean |
Сопоставлять пакеты с установленным флагом URG. Choices:
|
|
remark string |
Указывает замечание для правила ACL. |
|
sequence_num integer / required |
Указывает порядковый номер правила. Диапазон от 1 до 65535. |
|
source dictionary |
Указывает источник пакета. any, host и prefix являются взаимоисключающими. |
|
any boolean |
Сопоставлять любой сетевой адрес источника. Choices:
|
|
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 / required |
Указывает семейство адресов ACL. Choices:
|
state string | Состояние конфигурации после завершения работы модуля.
Choices:
|
Примечания
Примечание
- Поддерживает
check_mode.
Примеры
# Using merged
#
# 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
#
# 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
#
# 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
#
# 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
#
# 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
#
# 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 список / элементы=строка | Вызов модуля конфигурации в результате. Возвращается: при изменении Пример: |
after(generated) список / элементы=строка | Вызов модуля сгенерированной конфигурации. Возвращается: при Пример: |
before список / элементы=строка | Конфигурация до вызова модуля. Возвращается: всегда Пример: |
commands список / элементы=строка | Набор команд, отправленных на удалённое устройство. Возвращается: всегда Пример: |
Ссылки на сборку
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/dellemc/enterprise_sonic/sonic_l3_acls_module.html