cisco.ios.ios_acls – Модуль ресурсов ACL для IOS
Примечание
Этот плагин входит в коллекцию cisco.ios (версия 1.2.1).
Для его установки используйте: ansible-galaxy collection install cisco.ios
Для использования в плейбуке укажите: cisco.ios.ios_acls
Новое в версии 1.0.0: модуля cisco.ios
Обзор
- Этот модуль настраивает и управляет именованными или нумерованными ACL на платформах IOS.
Примечание
Этот модуль имеет соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||||||
|---|---|---|---|---|---|---|---|---|
| config список / элементы=словарь | Словарь опций ACL. | |||||||
| acls список / элементы=словарь | Список списков управления доступом (ACL). | |||||||
| aces список / элементы=словарь | Элементы внутри ACL. | |||||||
| destination словарь | Укажите пункт назначения пакета. | |||||||
| address строка | Адрес хоста для сопоставления или любой отдельный адрес хоста. | |||||||
| any булево |
| Сопоставить любой исходный адрес. | ||||||
| host строка | Один единственный хост назначения | |||||||
| port_protocol словарь | Укажите порт назначения вместе с протоколом. Примечание. Действительно с протоколами TCP/UDP protocol_options | |||||||
| eq строка | Сопоставить только пакеты на заданном номере порта. | |||||||
| gt строка | Сопоставить только пакеты с большим номером порта. | |||||||
| lt строка | Сопоставить только пакеты с меньшим номером порта. | |||||||
| neq строка | Сопоставить только пакеты, которые не находятся на заданном номере порта. | |||||||
| range словарь | Группа портов. | |||||||
| end целое число | Укажите конец диапазона портов. | |||||||
| start целое число | Укажите начало диапазона портов. | |||||||
| wildcard_bits строка | Маска подстановочных знаков назначения, действительна с адресом IPV4. | |||||||
| dscp строка | Сопоставить пакеты с заданным значением dscp. | |||||||
| fragments строка | Проверка фрагментов, отличных от начальных. | |||||||
| grant строка |
| Укажите действие. | ||||||
| log строка | Регистрация соответствий по этому элементу. | |||||||
| log_input строка | Регистрация соответствий по этому элементу, включая интерфейс ввода. | |||||||
| option словарь | Сопоставить пакеты со значением IP Options. Действительно только для именованных acls. | |||||||
| add_ext булево |
| Сопоставить пакеты с расширенным параметром адреса (147). | ||||||
| any_options булево |
| Сопоставить пакеты с любым параметром. | ||||||
| com_security булево |
| Сопоставить пакеты с коммерческим параметром безопасности (134). | ||||||
| dps булево |
| Сопоставить пакеты с параметром динамического состояния пакета (151). | ||||||
| encode булево |
| Сопоставить пакеты с параметром кодирования (15). | ||||||
| eool булево |
| Сопоставить пакеты с параметром конца параметров (0). | ||||||
| ext_ip булево |
| Сопоставить пакеты с расширенным параметром IP (145). | ||||||
| ext_security булево |
| Сопоставить пакеты с расширенным параметром безопасности (133). | ||||||
| finn булево |
| Сопоставить пакеты с экспериментальным параметром управления потоком (205). | ||||||
| imitd булево |
| Сопоставить пакеты с параметром описания трафика IMI (144). | ||||||
| lsr булево |
| Сопоставить пакеты с параметром loose source route (131). | ||||||
| mtup булево |
| Сопоставить пакеты с параметром зондирования MTU (11). | ||||||
| mtur булево |
| Сопоставить пакеты с параметром ответа MTU (12). | ||||||
| no_op булево |
| Сопоставить пакеты с параметром без операции (1). | ||||||
| nsapa boolean |
| Опция соответствия пакетам с адресами NSAP (150). | ||||||
| record_route boolean |
| Соответствие пакетам с опцией Record Route (7). | ||||||
| router_alert boolean |
| Соответствие пакетам с опцией Router Alert (148). | ||||||
| sdb boolean |
| Соответствие пакетам с опцией Selective Directed Broadcast (149). | ||||||
| security boolean |
| Соответствие пакетам с опцией Basic Security (130). | ||||||
| ssr boolean |
| Соответствие пакетам с опцией Strict Source Routing (137). | ||||||
| stream_id boolean |
| Соответствие пакетам с опцией Stream ID (136). | ||||||
| timestamp boolean |
| Соответствие пакетам с опцией Time Stamp (68). | ||||||
| traceroute boolean |
| Соответствие пакетам с опцией Trace Route (82). | ||||||
| ump boolean |
| Соответствие пакетам с опцией Upstream Multicast Packet (152). | ||||||
| visa boolean |
| Соответствие пакетам с экспериментальной опцией контроля доступа (142). | ||||||
| zsu boolean |
| Соответствие пакетам с экспериментальной опцией измерения (10). | ||||||
| precedence integer | Соответствие пакетам с заданным значением приоритета. | |||||||
| protocol string | Укажите протокол для соответствия. Обратитесь к документации поставщика для получения допустимых значений. | |||||||
| protocol_options dictionary | Тип протокола. | |||||||
| ahp boolean |
| Протокол аутентификации заголовков. | ||||||
| eigrp boolean |
| Протокол маршрутизации EIGRP Cisco. | ||||||
| esp boolean |
| Загрузка защищенной полезной нагрузки. | ||||||
| gre boolean |
| Тунелирование GRE Cisco. | ||||||
| hbh boolean |
| Заголовок опций "от прыжка к прыжку". Действительно для IPV6 | ||||||
| icmp dictionary | Протокол управления сообщениями в Интернете. | |||||||
| administratively_prohibited boolean |
| Административно запрещено | ||||||
| alternate_address boolean |
| Альтернативный адрес | ||||||
| conversion_error boolean |
| Преобразование датаграмм | ||||||
| dod_host_prohibited boolean |
| Запрещенный хост | ||||||
| dod_net_prohibited boolean |
| Запрещенная сеть | ||||||
| echo boolean |
| Эхо (ping) | ||||||
| echo_reply boolean |
| Ответ эхо | ||||||
| general_parameter_problem boolean |
| Проблема с параметром | ||||||
| host_isolated boolean |
| Хост изолирован | ||||||
| host_precedence_unreachable boolean |
| Хост недоступен по приоритету | ||||||
| host_redirect boolean |
| Перенаправление хоста | ||||||
| host_tos_redirect boolean |
| Перенаправление хоста для TOS | ||||||
| host_tos_unreachable boolean |
| Хост недоступен для TOS | ||||||
| host_unknown boolean |
| Хост неизвестен | ||||||
| host_unreachable boolean |
| Хост недоступен | ||||||
| information_reply boolean |
| Ответы с информацией | ||||||
| information_request boolean |
| Запросы информации | ||||||
| mask_reply boolean |
| Ответы маски | ||||||
| mask_request boolean |
| запрос маски | ||||||
| mobile_redirect boolean |
| Переадресация мобильного хоста | ||||||
| net_redirect boolean |
| Переадресация сети | ||||||
| net_tos_redirect boolean |
| Переадресация сети для TOS | ||||||
| net_tos_unreachable boolean |
| Сеть недоступна для TOS | ||||||
| net_unreachable boolean |
| Сеть недоступна | ||||||
| network_unknown boolean |
| Сеть неизвестна | ||||||
| no_room_for_option boolean |
| Требуемый параметр, но нет места | ||||||
| option_missing boolean |
| Требуемый параметр отсутствует | ||||||
| packet_too_big boolean |
| Необходима фрагментация, DF установлен | ||||||
| parameter_problem boolean |
| Все проблемы с параметрами | ||||||
| port_unreachable boolean |
| Порт недоступен | ||||||
| precedence_unreachable boolean |
| Превышение приоритета | ||||||
| protocol_unreachable boolean |
| Протокол недоступен | ||||||
| reassembly_timeout boolean |
| Таймаут повторной сборки | ||||||
| redirect boolean |
| Все переадресации | ||||||
| router_advertisement boolean |
| Реклама маршрутизатора | ||||||
| router_solicitation boolean |
| Запросы маршрутизатора | ||||||
| source_quench boolean |
| Заглушение источника | ||||||
| source_route_failed boolean |
| Источник маршрута не найден | ||||||
| time_exceeded boolean |
| Все таймауты превышены | ||||||
| timestamp_reply boolean |
| Ответы со временем | ||||||
| timestamp_request boolean |
| Запросы со временем | ||||||
| traceroute boolean |
| Traceroute | ||||||
| ttl_exceeded boolean |
| Превышен TTL | ||||||
| недоступный булево |
| Все недоступные | ||||||
| igmp словарь | Протокол сообщений шлюза Интернет. | |||||||
| dvmrp булево |
| Протокол маршрутизации многоадресной рассылки вектора расстояния (2) | ||||||
| host_query булево |
| Запрос членства в группе IGMP(0) | ||||||
| mtrace_resp булево |
| Ответ на трассировку многоадресной рассылки(7) | ||||||
| mtrace_route булево |
| Трассировка многоадресной рассылки(8) | ||||||
| pim булево |
| Протокол независимой многоадресной рассылки(3) | ||||||
| trace булево |
| Трассировка многоадресной рассылки(4) | ||||||
| v1host_report булево |
| Отчёт о членстве IGMPv1(1) | ||||||
| v2host_report булево |
| Отчёт о членстве IGMPv2(5) | ||||||
| v2leave_group булево |
| Выход из группы IGMPv2(6) | ||||||
| v3host_report булево |
| Отчёт о членстве IGMPv3(9) | ||||||
| ip булево |
| Любой протокол Интернет. | ||||||
| ipinip булево |
| Туннелирование IP в IP. | ||||||
| ipv6 булево |
| Любой IPv6. | ||||||
| nos булево |
| Совместимость KA9Q NOS с туннелированием IP поверх IP. | ||||||
| ospf булево |
| Протокол маршрутизации OSPF. | ||||||
| pcp булево |
| Протокол сжатия полезной нагрузки. | ||||||
| pim булево |
| Протокол независимой многоадресной рассылки. | ||||||
| protocol_number целое | Номер протокола IP | |||||||
| sctp булево |
| Потоковый протокол передачи данных. | ||||||
| tcp словарь | Сопоставление флагов пакетов TCP | |||||||
| ack булево |
| Сопоставление по биту ACK | ||||||
| established булево |
| Сопоставление установленных соединений | ||||||
| fin булево |
| Сопоставление по биту FIN | ||||||
| psh булево |
| Сопоставление по биту PSH | ||||||
| rst булево |
| Сопоставление по биту RST | ||||||
| syn булево |
| Сопоставление по биту SYN | ||||||
| urg булево |
| Сопоставление по биту URG | ||||||
| udp булево |
| Протокол пользовательских дейтаграмм. | ||||||
| sequence целое | Номер последовательности для записи управления доступом(ACE). Обратитесь к документации поставщика для получения допустимых значений. | |||||||
| source словарь | Укажите источник пакета. | |||||||
| address строка | Исходный сетевой адрес. | |||||||
| any булево |
| Сопоставить любой исходный адрес. | ||||||
| host string | Хост-источник | |||||||
| port_protocol dictionary | Укажите порт назначения вместе с протоколом. Примечание: Действительно с протоколами TCP/UDP protocol_options | |||||||
| eq string | Сопоставить только пакеты на заданном номере порта. | |||||||
| gt string | Сопоставить только пакеты с большим номером порта. | |||||||
| lt string | Сопоставить только пакеты с меньшим номером порта. | |||||||
| neq string | Сопоставить только пакеты, не находящиеся на заданном номере порта. | |||||||
| range dictionary | Группа портов. | |||||||
| end integer | Укажите конец диапазона портов. | |||||||
| start integer | Укажите начало диапазона портов. | |||||||
| wildcard_bits string | Биты маскирования назначения, действительны для адресов IPV4. | |||||||
| time_range string | Укажите временной диапазон. | |||||||
| tos dictionary | Сопоставить пакеты с заданным значением TOS. Примечание, DSCP и TOS взаимоисключающие | |||||||
| max_reliability boolean |
| Сопоставить пакеты с максимальной надёжностью TOS (2). | ||||||
| max_throughput boolean |
| Сопоставить пакеты с максимальной пропускной способностью TOS (4). | ||||||
| min_delay boolean |
| Сопоставить пакеты с минимальной задержкой TOS (8). | ||||||
| min_monetary_cost boolean |
| Сопоставить пакеты с минимальной стоимостью TOS (1). | ||||||
| normal boolean |
| Сопоставить пакеты с нормальным TOS (0). | ||||||
| service_value integer | Значение типа сервиса | |||||||
| ttl dictionary | Сопоставить пакеты с заданным значением TTL. | |||||||
| eq integer | Сопоставить только пакеты на заданном значении TTL. | |||||||
| gt integer | Сопоставить только пакеты с большим значением TTL. | |||||||
| lt integer | Сопоставить только пакеты с меньшим значением TTL. | |||||||
| neq integer | Сопоставить только пакеты, не имеющие заданного значения TTL. | |||||||
| range dictionary | Сопоставить только пакеты в диапазоне значений TTL. | |||||||
| end integer | Укажите конец диапазона значений TTL. | |||||||
| start integer | Укажите начало диапазона значений TTL. | |||||||
| acl_type string |
| Тип ACL Примечание: обязательно для именованных ACL, но не обязательно для нумерованных ACL. | ||||||
| name string / обязательно | Имя или номер ACL. | |||||||
| afi string / обязательно |
| Индикатор семейства адресов (AFI) для списков управления доступом (ACL). | ||||||
| running_config string | Модуль по умолчанию подключается к удалённому устройству и извлекает текущую конфигурацию running-config, чтобы использовать её как базу для сравнения с содержимым источника. Иногда нежелательно запрашивать текущую running-config для каждой задачи в плейбуке. Аргумент running_config позволяет разработчику передать конфигурацию, используемую в качестве базовой конфигурации для сравнения. | |||||||
| state string |
| Состояние, в котором должна остаться конфигурация Состояния rendered, gathered и parsed не выполняют никаких изменений на устройстве. Состояние rendered преобразует конфигурацию в config опцию в платформенно-специфичные CLI команды, которые будут возвращены в ключе rendered в результате. Для состояния rendered активное соединение с удалённым хостом не требуется.Состояние gathered извлечёт конфигурацию running с устройства и преобразует её в структурированные данные в формате, соответствующем параметрам модуля ресурса, и значение возвращается в ключе gathered в результате. Состояние parsed считывает конфигурацию из running_config опции и преобразует её в формат JSON в соответствии с параметрами модуля ресурса, а значение возвращается в ключе parsed в результате. Значение опции running_config должно быть таким же, как вывод команды show running-config | include ip route|ipv6 route, выполненной на устройстве. Для состояния parsed активное соединение с удалённым хостом не требуется. | ||||||
Примечания
Примечание
- Проверено на Cisco IOSv версии 15.2 на VIRL
Примеры
# Using merged
# Before state:
# -------------
#
# vios#sh access-lists
# Extended IP access list 110
# 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10
- name: Merge provided configuration with device configuration
cisco.ios.ios_acls:
config:
- afi: ipv4
acls:
- name: std_acl
acl_type: standard
aces:
- grant: deny
source:
address: 192.168.1.200
- grant: deny
source:
address: 192.168.2.0
wildcard_bits: 0.0.0.255
- name: 110
aces:
- sequence: 10
protocol_options:
icmp:
traceroute: true
- grant: deny
protocol_options:
tcp:
ack: true
source:
host: 198.51.100.0
destination:
host: 198.51.110.0
port_protocol:
eq: telnet
- name: test
acl_type: extended
aces:
- grant: deny
protocol_options:
tcp:
fin: true
source:
address: 192.0.2.0
wildcard_bits: 0.0.0.255
destination:
address: 192.0.3.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: www
option:
traceroute: true
ttl:
eq: 10
- name: 123
aces:
- grant: deny
protocol_options:
tcp:
ack: true
source:
address: 198.51.100.0
wildcard_bits: 0.0.0.255
destination:
address: 198.51.101.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: telnet
tos:
service_value: 12
- grant: deny
protocol_options:
tcp:
ack: true
source:
address: 192.0.3.0
wildcard_bits: 0.0.0.255
destination:
address: 192.0.4.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: www
dscp: ef
ttl:
lt: 20
- afi: ipv6
acls:
- name: R1_TRAFFIC
aces:
- grant: deny
protocol_options:
tcp:
ack: true
source:
any: true
port_protocol:
eq: www
destination:
any: true
port_protocol:
eq: telnet
dscp: af11
state: merged
# Commands fired:
# ---------------
#
# - ip access-list standard std_acl
# - deny 192.168.1.200
# - deny 192.168.2.0 0.0.0.255
# - ip access-list extended 110
# - no 10
# - 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
# - deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# - ip access-list extended test
# - deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# - ip access-list extended 123
# - deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# - deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# - ipv6 access-list R1_TRAFFIC
# - deny tcp any eq www any eq telnet ack dscp af11
# After state:
# ------------
#
# vios#sh access-lists
# Standard IP access list std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
# 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
# 20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11 sequence 10
# Using replaced
# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
# 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
# 20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11 sequence 10
- name: Replaces device configuration of listed acls with provided configuration
cisco.ios.ios_acls:
config:
- afi: ipv4
acls:
- name: 110
aces:
- grant: deny
protocol_options:
tcp:
syn: true
source:
address: 192.0.2.0
wildcard_bits: 0.0.0.255
destination:
address: 192.0.3.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: www
dscp: ef
ttl:
eq: 10
- name: 150
aces:
- grant: deny
sequence: 20
protocol_options:
tcp:
syn: true
source:
address: 198.51.100.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: telnet
destination:
address: 198.51.110.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: telnet
dscp: ef
ttl:
eq: 10
state: replaced
# Commands fired:
# ---------------
#
# - no ip access-list extended 110
# - ip access-list extended 110
# - deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www syn dscp ef ttl eq 10
# - ip access-list extended 150
# - 20 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10
# After state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www syn dscp ef ttl eq 10
# Extended IP access list 123
# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list 150
# 20 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10
# Extended IP access list test
# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11 sequence 10
# Using overridden
# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
# 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
# 20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11 sequence 10
- name: Override device configuration of all acls with provided configuration
cisco.ios.ios_acls:
config:
- afi: ipv4
acls:
- name: 110
aces:
- grant: deny
sequence: 20
protocol_options:
tcp:
ack: true
source:
address: 198.51.100.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: telnet
destination:
address: 198.51.110.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: www
dscp: ef
ttl:
eq: 10
- name: 150
aces:
- grant: deny
sequence: 10
protocol_options:
tcp:
syn: true
source:
address: 198.51.100.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: telnet
destination:
address: 198.51.110.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: telnet
dscp: ef
ttl:
eq: 10
state: overridden
# Commands fired:
# ---------------
#
# - no ip access-list standard std_acl
# - no ip access-list extended 110
# - no ip access-list extended 123
# - no ip access-list extended 150
# - no ip access-list extended test
# - no ipv6 access-list R1_TRAFFIC
# - ip access-list extended 150
# - 10 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10
# - ip access-list extended 110
# - 20 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq www ack dscp ef ttl eq 10
# After state:
# -------------
#
# vios#sh access-lists
# Extended IP access list 110
# 20 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq www ack dscp ef ttl eq 10
# Extended IP access list 150
# 10 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10
# Using Deleted
# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
# 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
# 20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11 sequence 10
- name: "Delete ACLs (Note: This won't delete the all configured ACLs)"
cisco.ios.ios_acls:
config:
- afi: ipv4
acls:
- name: test
acl_type: extended
- name: 110
- afi: ipv6
acls:
- name: R1_TRAFFIC
state: deleted
# Commands fired:
# ---------------
#
# - no ip access-list extended test
# - no ip access-list extended 110
# - no ipv6 access-list R1_TRAFFIC
# After state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 123
# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
# 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
# 20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11 sequence 10
- name: "Delete ACLs based on AFI (Note: This won't delete the all configured ACLs)"
cisco.ios.ios_acls:
config:
- afi: ipv4
state: deleted
# Commands fired:
# ---------------
#
# - no ip access-list standard std_acl
# - no ip access-list extended test
# - no ip access-list extended 110
# - no ip access-list extended 123
# After state:
# -------------
#
# vios#sh access-lists
# IPv6 access list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11 sequence 10
# Using Deleted without any config passed
#"(NOTE: This will delete all of configured ACLs)"
# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
# 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
# 20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11 sequence 10
- name: 'Delete ALL of configured ACLs (Note: This WILL delete the all configured
ACLs)'
cisco.ios.ios_acls:
state: deleted
# Commands fired:
# ---------------
#
# - no ip access-list extended test
# - no ip access-list extended 110
# - no ip access-list extended 123
# - no ip access-list extended test
# - no ipv6 access-list R1_TRAFFIC
# After state:
# -------------
#
# vios#sh access-lists
# Using Gathered
# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
# 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
# 20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
# 10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# 20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
# 10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11 sequence 10
- name: Gather listed acls with provided configurations
cisco.ios.ios_acls:
config:
state: gathered
# Module Execution Result:
# ------------------------
#
# "gathered": [
# {
# "acls": [
# {
# "aces": [
# {
# "destination": {
# "address": "192.0.3.0",
# "wildcard_bits": "0.0.0.255"
# },
# "dscp": "ef",
# "grant": "deny",
# "protocol_options": {
# "icmp": {
# "echo": true
# }
# },
# "sequence": 10,
# "source": {
# "address": "192.0.2.0",
# "wildcard_bits": "0.0.0.255"
# },
# "ttl": {
# "eq": 10
# }
# }
# ],
# "acl_type": "extended",
# "name": "110"
# },
# {
# "aces": [
# {
# "destination": {
# "address": "198.51.101.0",
# "port_protocol": {
# "eq": "telnet"
# },
# "wildcard_bits": "0.0.0.255"
# },
# "grant": "deny",
# "protocol_options": {
# "tcp": {
# "ack": true
# }
# },
# "sequence": 10,
# "source": {
# "address": "198.51.100.0",
# "wildcard_bits": "0.0.0.255"
# },
# "tos": {
# "service_value": 12
# }
# },
# {
# "destination": {
# "address": "192.0.4.0",
# "port_protocol": {
# "eq": "www"
# },
# "wildcard_bits": "0.0.0.255"
# },
# "dscp": "ef",
# "grant": "deny",
# "protocol_options": {
# "tcp": {
# "ack": true
# }
# },
# "sequence": 20,
# "source": {
# "address": "192.0.3.0",
# "wildcard_bits": "0.0.0.255"
# },
# "ttl": {
# "lt": 20
# }
# }
# ],
# "acl_type": "extended",
# "name": "123"
# },
# {
# "aces": [
# {
# "destination": {
# "address": "192.0.3.0",
# "port_protocol": {
# "eq": "www"
# },
# "wildcard_bits": "0.0.0.255"
# },
# "grant": "deny",
# "option": {
# "traceroute": true
# },
# "protocol_options": {
# "tcp": {
# "fin": true
# }
# },
# "sequence": 10,
# "source": {
# "address": "192.0.2.0",
# "wildcard_bits": "0.0.0.255"
# },
# "ttl": {
# "eq": 10
# }
# }
# ],
# "acl_type": "extended",
# "name": "test_acl"
# }
# ],
# "afi": "ipv4"
# },
# {
# "acls": [
# {
# "aces": [
# {
# "destination": {
# "any": true,
# "port_protocol": {
# "eq": "telnet"
# }
# },
# "dscp": "af11",
# "grant": "deny",
# "protocol_options": {
# "tcp": {
# "ack": true
# }
# },
# "sequence": 10,
# "source": {
# "any": true,
# "port_protocol": {
# "eq": "www"
# }
# }
# }
# ],
# "name": "R1_TRAFFIC"
# }
# ],
# "afi": "ipv6"
# }
# ]
# Using Rendered
- name: Rendered the provided configuration with the exisiting running configuration
cisco.ios.ios_acls:
config:
- afi: ipv4
acls:
- name: 110
aces:
- grant: deny
sequence: 10
protocol_options:
tcp:
syn: true
source:
address: 192.0.2.0
wildcard_bits: 0.0.0.255
destination:
address: 192.0.3.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: www
dscp: ef
ttl:
eq: 10
- name: 150
aces:
- grant: deny
protocol_options:
tcp:
syn: true
source:
address: 198.51.100.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: telnet
destination:
address: 198.51.110.0
wildcard_bits: 0.0.0.255
port_protocol:
eq: telnet
dscp: ef
ttl:
eq: 10
state: rendered
# Module Execution Result:
# ------------------------
#
# "rendered": [
# "ip access-list extended 110",
# "10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www syn dscp ef ttl eq 10",
# "ip access-list extended 150",
# "deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10"
# ]
# Using Parsed
# File: parsed.cfg
# ----------------
#
# ipv6 access-list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11
- name: Parse the commands for provided configuration
cisco.ios.ios_acls:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Module Execution Result:
# ------------------------
#
# "parsed": [
# {
# "acls": [
# {
# "aces": [
# {
# "destination": {
# "any": true,
# "port_protocol": {
# "eq": "telnet"
# }
# },
# "dscp": "af11",
# "grant": "deny",
# "protocol_options": {
# "tcp": {
# "ack": true
# }
# },
# "source": {
# "any": true,
# "port_protocol": {
# "eq": "www"
# }
# }
# }
# ],
# "name": "R1_TRAFFIC"
# }
# ],
# "afi": "ipv6"
# }
# ]
Возвращаемые значения
Общие значения возвращаемых данных описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| after список / элементы=строка | при изменении | Конфигурация в виде структурированных данных после завершения модуля. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| before список / элементы=строка | всегда | Конфигурация в виде структурированных данных до вызова модуля. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| commands список / элементы=строка | всегда | Набор команд, отправленных на удалённое устройство Пример: ['ip access-list extended 110', 'deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10'] |
Авторы
- Sumit Jaiswal (@justjais)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/cisco/ios/ios_acls_module.html