cisco.iosxr.iosxr_acls – Модуль ресурсов ACL
Примечание
Этот плагин входит в коллекцию cisco.iosxr (версия 1.2.1).
Для его установки используйте: ansible-galaxy collection install cisco.iosxr.
Для использования в плейбуке укажите: cisco.iosxr.iosxr_acls.
Новое в версии 1.0.0: из cisco.iosxr
Обзор
- Этот модуль управляет списками управления доступом (ACL) на устройствах, работающих на IOS-XR.
Примечание
У этого модуля есть соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||||||
|---|---|---|---|---|---|---|---|---|
| config список / элементы=словарь | Список словарей, определяющих конфигурации ACL. | |||||||
| acls список / элементы=словарь | Список списков управления доступом (ACL). | |||||||
| aces список / элементы=словарь | Список записей управления доступом (ACE) для этого списка управления доступом (ACL). | |||||||
| authen логическое значение |
| Соответствие, если заголовок аутентификации присутствует. | ||||||
| capture логическое значение |
| Захватить совпавший пакет. | ||||||
| destination словарь | Указывает пункт назначения пакета. | |||||||
| address строка | IP-адрес пункта назначения для сопоставления. | |||||||
| any логическое значение |
| Сопоставить любой адрес пункта назначения. | ||||||
| host строка | IP-адрес хоста для сопоставления. | |||||||
| port_protocol словарь | Укажите порт источника или протокол. | |||||||
| eq строка | Сопоставить только пакеты на заданном номере порта. | |||||||
| gt строка | Сопоставить только пакеты с большим номером порта. | |||||||
| lt строка | Сопоставить только пакеты с меньшим номером порта. | |||||||
| neq строка | Сопоставить только пакеты, не находящиеся на заданном номере порта. | |||||||
| range словарь | Сопоставить только пакеты в диапазоне номеров портов | |||||||
| end строка | Указать конец диапазона портов | |||||||
| start строка | Указать начало диапазона портов | |||||||
| prefix строка | Префикс сети пункта назначения. | |||||||
| wildcard_bits строка | Биты маскирования для применения к адресу пункта назначения. | |||||||
| destopts логическое значение |
| Сопоставить, если заголовок destopts присутствует. | ||||||
| dscp словарь | Сопоставить пакеты с заданным значением DSCP. | |||||||
| eq строка | Сопоставить только пакеты на заданном значении dscp. | |||||||
| gt строка | Сопоставить только пакеты с большим значением dscp. | |||||||
| lt строка | Сопоставить только пакеты с меньшим значением dscp. | |||||||
| neq строка | Сопоставить только пакеты, не имеющие заданного значения dscp. | |||||||
| range словарь | Сопоставить только пакеты в диапазоне значений dscp. | |||||||
| end строка | Конец диапазона dscp | |||||||
| start строка | Начало диапазона dscp | |||||||
| fragments логическое значение |
| Проверка фрагментов, кроме начального. | ||||||
| grant строка |
| Пересылать или отбрасывать пакеты, соответствующие записи управления доступом (ACE). | ||||||
| hop_by_hop логическое значение |
| Сопоставить, если заголовок hop-by-hop присутствует. | ||||||
| icmp_off логическое значение |
| Включить/выключить сообщение ICMP для этой записи. | ||||||
| line строка | Запись ACE, исключающая номер последовательности. Этот ключ взаимоисключает все другие атрибуты, кроме 'sequence'. При использовании с другими атрибутами значение этого ключа будет иметь приоритет, и другие ключи будут игнорироваться. Это следует использовать только тогда, когда атрибут не существует в argspec, но является допустимым для устройства. Для сбора фактов любая не полностью разобранная запись ACE будет отображаться как значение этого атрибута, исключая номер последовательности, который будет заполнен в качестве значения ключа sequence. псевдонимы: ace | |||||||
| log логическое значение |
| Включить/выключить логирование совпадений по этой записи. | ||||||
| log_input логическое значение |
| Включить/выключить логирование совпадений по этой записи, включая входной интерфейс. | ||||||
| packet_length словарь | Сопоставить пакеты, учитывая длину пакета. | |||||||
| eq целое число | Совпадение только пакетов заданной длины | |||||||
| gt целое число | Совпадение только пакетов с большей длиной | |||||||
| lt целое число | Совпадение только пакетов с меньшей длиной | |||||||
| neq целое число | Совпадение только пакетов, не имеющих заданной длины | |||||||
| range словарь | Совпадение только пакетов в заданном диапазоне длин | |||||||
| end целое число | Конец диапазона длин пакетов | |||||||
| start целое число | Начало диапазона длин пакетов | |||||||
| precedence строка | Совпадение пакетов с заданным значением приоритета | |||||||
| protocol строка | Укажите протокол для сопоставления. Обратитесь к документации поставщика для получения допустимых значений. | |||||||
| protocol_options словарь | Дополнительные подварианты для протокола. | |||||||
| icmp словарь | Настройки протокола управления сообщениями Интернета. | |||||||
| administratively_prohibited логическое значение |
| Административно запрещено | ||||||
| alternate_address логическое значение |
| Альтернативный адрес | ||||||
| conversion_error логическое значение |
| Преобразование датаграммы | ||||||
| dod_host_prohibited логическое значение |
| Запрещенный хост | ||||||
| dod_net_prohibited логическое значение |
| Запрещенная сеть | ||||||
| echo логическое значение |
| Эхо (ping) | ||||||
| echo_reply логическое значение |
| Ответ эха | ||||||
| general_parameter_problem логическое значение |
| Проблема с параметром | ||||||
| host_isolated логическое значение |
| Хост изолирован | ||||||
| host_precedence_unreachable логическое значение |
| Хост недоступен для приоритета | ||||||
| host_redirect логическое значение |
| Переадресация хоста | ||||||
| host_tos_redirect логическое значение |
| Переадресация хоста для TOS | ||||||
| host_tos_unreachable логическое значение |
| Хост недоступен для TOS | ||||||
| host_unknown логическое значение |
| Хост неизвестен | ||||||
| host_unreachable логическое значение |
| Хост недоступен | ||||||
| information_reply логическое значение |
| Ответы с информацией | ||||||
| information_request логическое значение |
| Запросы с информацией | ||||||
| mask_reply логическое значение |
| Ответы маски | ||||||
| mask_request логическое значение |
| Запросы маски | ||||||
| mobile_redirect логическое значение |
| Переадресация мобильного хоста | ||||||
| net_redirect логическое значение |
| Переадресация сети | ||||||
| net_tos_redirect логическое значение |
| Переадресация сети для 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 | ||||||
| unreachable boolean |
| Все недоступные | ||||||
| icmpv6 dictionary | Настройки протокола управления сообщениями Интернета для IPv6. | |||||||
| address_unreachable boolean |
| Адрес недоступен | ||||||
| administratively_prohibited boolean |
| Административно запрещено | ||||||
| beyond_scope_of_source_address boolean |
| Административно запрещено | ||||||
| destination_unreachable boolean |
| Невозможно доставить сообщение по назначению | ||||||
| echo boolean |
| Эхо | ||||||
| echo_reply boolean |
| Эхо-ответ | ||||||
| erroneous_header_field boolean |
| Поле заголовка содержит ошибку | ||||||
| group_membership_query boolean |
| Запрос членства в группе | ||||||
| group_membership_report boolean |
| Отчёт о членстве в группе | ||||||
| group_membership_termination boolean |
| Прекращение членства в группе | ||||||
| host_unreachable boolean |
| Хост недоступен | ||||||
| nd_na boolean |
| Открытие соседа по обнаружению соседей | ||||||
| nd_ns boolean |
| Запрос соседу по обнаружению соседей | ||||||
| neighbor_redirect boolean |
| Перенаправление соседа | ||||||
| no_route_to_destination boolean |
| Маршрут к месту назначения отсутствует | ||||||
| node_information_request_is_refused boolean |
| Запрос информации о узле отклонен | ||||||
| node_information_successful_reply boolean |
| Успешный ответ на запрос информации о узле | ||||||
| packet_too_big boolean |
| Пакет слишком большой | ||||||
| parameter_problem boolean |
| Проблема с параметрами | ||||||
| port_unreachable boolean |
| Порт недоступен | ||||||
| query_subject_is_domainname boolean |
| Предмет запроса - доменное имя | ||||||
| query_subject_is_IPv4address boolean |
| Предмет запроса - IPv4 адрес | ||||||
| query_subject_is_IPv6address boolean |
| Предмет запроса - IPv6 адрес | ||||||
| reassembly_timeout boolean |
| Таймаут повторной сборки | ||||||
| redirect boolean |
| Перенаправление | ||||||
| router_advertisement boolean |
| Объявление маршрутизатора | ||||||
| router_renumbering boolean |
| Перечисление маршрутизаторов | ||||||
| router_solicitation boolean |
| Запрос маршрутизатора | ||||||
| rr_command boolean |
| Команда RR | ||||||
| rr_result boolean |
| Результат RR | ||||||
| rr_seqnum_reset boolean |
| Сброс RR Seqnum | ||||||
| time_exceeded boolean |
| Время истекло | ||||||
| ttl_exceeded boolean |
| TTL истек | ||||||
| unknown_query_type boolean |
| Неизвестный тип запроса | ||||||
| unreachable boolean |
| Недоступно | ||||||
| unrecognized_next_header boolean |
| Неизвестный следующий заголовок | ||||||
| unrecognized_option boolean |
| Неизвестный параметр | ||||||
| whoareyou_reply boolean |
| Ответ Whoareyou | ||||||
| whoareyou_request boolean |
| Запрос Whoareyou | ||||||
| igmp словарь | Настройки протокола IGMP (Internet Group Management Protocol). | |||||||
| dvmrp логический |
| Соответствие протоколу маршрутизации многоадресной рассылки Distance Vector Multicast Routing Protocol (DVMRP). | ||||||
| host_query логический |
| Соответствие запросу хоста. | ||||||
| host_report логический |
| Соответствие сообщению хоста. | ||||||
| mtrace логический |
| Соответствие mtrace. | ||||||
| mtrace_response логический |
| Соответствие ответу mtrace. | ||||||
| pim логический |
| Соответствие протоколу PIM (Protocol Independent Multicast). | ||||||
| trace логический |
| Многоадресная трассировка. | ||||||
| tcp словарь | Соответствие флагам пакетов TCP. | |||||||
| ack логический |
| Соответствие биту ACK. | ||||||
| established логический |
| Соответствие установленным соединениям. | ||||||
| fin логический |
| Соответствие биту FIN. | ||||||
| psh логический |
| Соответствие биту PSH. | ||||||
| rst логический |
| Соответствие биту RST. | ||||||
| syn логический |
| Соответствие биту SYN. | ||||||
| urg логический |
| Соответствие биту URG. | ||||||
| remark строка | Комментарии или описание списка доступа. | |||||||
| routing логический |
| Соответствие, если присутствует заголовок маршрутизации. | ||||||
| sequence целое число | Порядковый номер записи управления доступом (ACE). | |||||||
| source словарь | Указывает источник пакета. | |||||||
| address строка | IP-адрес источника для соответствия. | |||||||
| any логический |
| Соответствие любому источнику адреса. | ||||||
| host строка | IP-адрес хоста для соответствия. | |||||||
| port_protocol словарь | Укажите порт источника или протокол. | |||||||
| eq строка | Соответствие только пакетам на заданном номере порта. | |||||||
| gt строка | Соответствие только пакетам с большим номером порта. | |||||||
| lt строка | Соответствие только пакетам с меньшим номером порта. | |||||||
| neq строка | Соответствие только пакетам, не имеющим заданный номер порта. | |||||||
| range словарь | Соответствие только пакетам в диапазоне номеров портов. | |||||||
| end строка | Укажите конец диапазона портов. | |||||||
| start строка | Укажите начало диапазона портов. | |||||||
| prefix строка | Префикс исходной сети. | |||||||
| wildcard_bits строка | Биты маскирования, применяемые к адресу источника. | |||||||
| ttl словарь | Соответствие заданному значению TTL. | |||||||
| eq целое число | Соответствие только пакетам с точным значением TTL. | |||||||
| gt целое число | Сопоставлять только пакеты с большим значением TTL. | |||||||
| lt целое число | Сопоставлять только пакеты с меньшим значением TTL. | |||||||
| neq целое число | Сопоставлять только пакеты, которые не будут иметь заданное значение TTL. | |||||||
| range словарь | Сопоставлять только пакеты в заданном диапазоне значений TTL. | |||||||
| end целое число | Конец диапазона TTL. | |||||||
| start целое число | Начало диапазона TTL. | |||||||
| name строка | Имя списка управления доступом (ACL). | |||||||
| afi строка / обязательно |
| Индикатор семейства адресов (AFI) для списков управления доступом (ACL). | ||||||
| running_config строка | Модуль по умолчанию подключается к удалённому устройству и извлекает текущую конфигурацию для использования в качестве основы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую конфигурацию для каждой задачи в командном файле. Аргумент running_config позволяет разработчику передать конфигурацию для использования в качестве базовой конфигурации для сравнения. Это значение должно быть результатом выполнения команды show running-config router static на устройстве. | |||||||
| state строка |
| Состояние, в котором должна остаться конфигурация. | ||||||
Примеры
# Using merged to add new ACLs
# Before state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:07:45.767 UTC
# RP/0/RP0/CPU0:ios#
- name: Merge the provided configuration with the exisiting running configuration
cisco.iosxr.iosxr_acls:
config:
- afi: ipv6
acls:
- name: acl6_1
aces:
- sequence: 10
grant: deny
protocol: tcp
source:
prefix: 2001:db8:1234::/48
port_protocol:
range:
start: ftp
end: telnet
destination:
any: true
protocol_options:
tcp:
syn: true
ttl:
range:
start: 180
end: 250
routing: true
authen: true
log: true
- sequence: 20
grant: permit
protocol: icmpv6
source:
any: true
destination:
any: true
protocol_options:
icmpv6:
router_advertisement: true
precedence: network
destopts: true
- afi: ipv4
acls:
- name: acl_1
aces:
- sequence: 16
remark: TEST_ACL_1_REMARK
- sequence: 21
grant: permit
protocol: tcp
source:
host: 192.0.2.10
port_protocol:
range:
start: pop3
end: 121
destination:
address: 198.51.100.0
wildcard_bits: 0.0.0.15
protocol_options:
tcp:
rst: true
- sequence: 23
grant: deny
protocol: icmp
source:
any: true
destination:
prefix: 198.51.100.0/28
protocol_options:
icmp:
reassembly_timeout: true
dscp:
lt: af12
- name: acl_2
aces:
- sequence: 10
remark: TEST_ACL_2_REMARK
state: merged
# After state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:22:57.021 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp host 192.0.2.10 range pop3 121 198.51.100.0 0.0.0.15 rst
# 23 deny icmp any 198.51.100.0 0.0.0.15 reassembly-timeout dscp lt af12
# ipv4 access-list acl_2
# 10 remark TEST_ACL_2_REMARK
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
# Using merged to update existing ACLs
# Before state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:22:57.021 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp host 192.0.2.10 range pop3 121 198.51.100.0 0.0.0.15 rst
# 23 deny icmp any 198.51.100.0 0.0.0.15 reassembly-timeout dscp lt af12
# ipv4 access-list acl_2
# 10 remark TEST_ACL_2_REMARK
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
- name: Update existing ACEs
cisco.iosxr.iosxr_acls:
config:
- afi: ipv4
acls:
- name: acl_1
aces:
- sequence: 21
source:
prefix: 198.51.100.32/28
port_protocol:
range:
start: pop3
end: 121
protocol_options:
tcp:
syn: true
- sequence: 23
protocol_options:
icmp:
router_advertisement: true
dscp:
eq: af23
# After state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:47:18.711 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp 198.51.100.32 0.0.0.15 range pop3 121 198.51.100.0 0.0.0.15 syn
# 23 deny icmp any 198.51.100.0 0.0.0.15 router-advertisement dscp eq af23
# ipv4 access-list acl_2
# 10 remark TEST_ACL_2_REMARK
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
# Using replaced to replace a whole ACL
# Before state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:22:57.021 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp host 192.0.2.10 range pop3 121 198.51.100.0 0.0.0.15 rst
# 23 deny icmp any 198.51.100.0 0.0.0.15 reassembly-timeout dscp lt af12
# ipv4 access-list acl_2
# 10 remark TEST_ACL_2_REMARK
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
- name: Replace device configurations of listed ACL with provided configurations
cisco.iosxr.iosxr_acls:
config:
- afi: ipv4
acls:
- name: acl_2
aces:
- sequence: 11
grant: permit
protocol: igmp
source:
host: 198.51.100.130
destination:
any: true
ttl:
eq: 100
- sequence: 12
grant: deny
source:
any: true
destination:
any: true
protocol: icmp
state: replaced
# After state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 06:19:51.496 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp 198.51.100.32 0.0.0.15 range pop3 121 198.51.100.0 0.0.0.15 syn
# 23 deny icmp any 198.51.100.0 0.0.0.15 router-advertisement dscp eq af23
# ipv4 access-list acl_2
# 11 permit igmp host 198.51.100.130 any ttl eq 100
# 12 deny icmp any any
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
# Using overridden to override all ACLs in the device
# Before state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:22:57.021 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp host 192.0.2.10 range pop3 121 198.51.100.0 0.0.0.15 rst
# 23 deny icmp any 198.51.100.0 0.0.0.15 reassembly-timeout dscp lt af12
# ipv4 access-list acl_2
# 10 remark TEST_ACL_2_REMARK
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
- name: Overridde all ACLs configuration with provided configuration
cisco.iosxr.iosxr_acls:
config:
- afi: ipv4
acls:
- name: acl_1
aces:
- sequence: 10
grant: permit
source:
any: true
destination:
any: true
protocol: tcp
- name: acl_2
aces:
- sequence: 20
grant: permit
source:
any: true
destination:
any: true
protocol: igmp
state: overridden
# After state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 06:31:22.178 UTC
# ipv4 access-list acl_1
# 10 permit tcp any any
# ipv4 access-list acl_2
# 20 permit igmp any any
# Using deleted to delete an entire ACL
# Before state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:22:57.021 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp host 192.0.2.10 range pop3 121 198.51.100.0 0.0.0.15 rst
# 23 deny icmp any 198.51.100.0 0.0.0.15 reassembly-timeout dscp lt af12
# ipv4 access-list acl_2
# 10 remark TEST_ACL_2_REMARK
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
- name: Delete a single ACL
cisco.iosxr.iosxr_acls:
config:
- afi: ipv6
acls:
- name: acl6_1
state: deleted
# After state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:22:57.021 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp host 192.0.2.10 range pop3 121 198.51.100.0 0.0.0.15 rst
# 23 deny icmp any 198.51.100.0 0.0.0.15 reassembly-timeout dscp lt af12
# ipv4 access-list acl_2
# 10 remark TEST_ACL_2_REMARK
# Using deleted to delete all ACLs under one AFI
# Before state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:22:57.021 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp host 192.0.2.10 range pop3 121 198.51.100.0 0.0.0.15 rst
# 23 deny icmp any 198.51.100.0 0.0.0.15 reassembly-timeout dscp lt af12
# ipv4 access-list acl_2
# 10 remark TEST_ACL_2_REMARK
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
- name: Delete all ACLs under one AFI
cisco.iosxr.iosxr_acls:
config:
- afi: ipv4
state: deleted
# After state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:22:57.021 UTC
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
# Using deleted to delete all ACLs from the device
# Before state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:22:57.021 UTC
# ipv4 access-list acl_1
# 16 remark TEST_ACL_1_REMARK
# 21 permit tcp host 192.0.2.10 range pop3 121 198.51.100.0 0.0.0.15 rst
# 23 deny icmp any 198.51.100.0 0.0.0.15 reassembly-timeout dscp lt af12
# ipv4 access-list acl_2
# 10 remark TEST_ACL_2_REMARK
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network destopts
- name: Delete all ACLs from the device
cisco.iosxr.iosxr_acls:
state: deleted
# After state:
# -------------
# RP/0/RP0/CPU0:ios#sh access-lists afi-all
# Thu Feb 20 05:07:45.767 UTC
# RP/0/RP0/CPU0:ios#
# Using gathered to gather ACL facts from the device
- name: Gather ACL interfaces facts using gathered state
cisco.iosxr.iosxr_acls:
state: gathered
# Task Output (redacted)
# -----------------------
#
# "gathered": [
# {
# "acls": [
# {
# "aces": [
# {
# "remark": "TEST_ACL_1_REMARK",
# "sequence": 16
# },
# {
# "destination": {
# "address": "198.51.100.0",
# "wildcard_bits": "0.0.0.15"
# },
# "grant": "permit",
# "protocol": "tcp",
# "protocol_options": {
# "tcp": {
# "rst": true
# }
# },
# "sequence": 21,
# "source": {
# "host": "192.0.2.10",
# "port_protocol": {
# "range": {
# "end": "121",
# "start": "pop3"
# }
# }
# }
# },
# {
# "destination": {
# "address": "198.51.100.0",
# "wildcard_bits": "0.0.0.15"
# },
# "dscp": {
# "lt": "af12"
# },
# "grant": "deny",
# "protocol": "icmp",
# "protocol_options": {
# "icmp": {
# "reassembly_timeout": true
# }
# },
# "sequence": 23,
# "source": {
# "any": true
# }
# }
# ],
# "name": "acl_1"
# },
# {
# "aces": [
# {
# "remark": "TEST_ACL_2_REMARK",
# "sequence": 10
# }
# ],
# "name": "acl_2"
# }
# ],
# "afi": "ipv4"
# },
# {
# "acls": [
# {
# "aces": [
# {
# "authen": true,
# "destination": {
# "any": true
# },
# "grant": "deny",
# "log": true,
# "protocol": "tcp",
# "protocol_options": {
# "tcp": {
# "syn": true
# }
# },
# "routing": true,
# "sequence": 10,
# "source": {
# "port_protocol": {
# "range": {
# "end": "telnet",
# "start": "ftp"
# }
# },
# "prefix": "2001:db8:1234::/48"
# },
# "ttl": {
# "range": {
# "end": 250,
# "start": 180
# }
# }
# },
# {
# "destination": {
# "any": true
# },
# "destopts": true,
# "grant": "permit",
# "precedence": "network",
# "protocol": "icmpv6",
# "protocol_options": {
# "icmpv6": {
# "router_advertisement": true
# }
# },
# "sequence": 20,
# "source": {
# "any": true
# }
# }
# ],
# "name": "acl6_1"
# }
# ],
# "afi": "ipv6"
# }
# ]
# Using rendered
- name: Render platform specific commands (without connecting to the device)
cisco.iosxr.iosxr_acls:
config:
- afi: ipv4
acls:
- name: acl_2
aces:
- sequence: 11
grant: permit
protocol: igmp
source:
host: 198.51.100.130
destination:
any: true
ttl:
eq: 100
- sequence: 12
grant: deny
source:
any: true
destination:
any: true
protocol: icmp
state: rendered
# Task Output (redacted)
# -----------------------
# "rendered": [
# "ipv4 access-list acl_2",
# "11 permit igmp host 198.51.100.130 any ttl eq 100",
# "12 deny icmp any any"
# Using parsed
# parsed.cfg
# ------------
#
# ipv4 access-list acl_1
# 10 remark TEST_ACL_2_REMARK
# ipv4 access-list acl_2
# 11 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 authen routing log
# 21 permit icmpv6 any any router-advertisement precedence network packet-length eq 576 destopts
# ipv6 access-list acl6_1
# 10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 routing authen log
# 20 permit icmpv6 any any router-advertisement precedence network packet-length eq 576 destopts
- name: Parse externally provided ACL config to agnostic model
cisco.iosxr.iosxr_acls:
running_config: "{{ lookup('file', 'parsed.cfg') }}"
state: parsed
# Task Output (redacted)
# -----------------------
# "parsed": [
# {
# "acls": [
# {
# "aces": [
# {
# "remark": "TEST_ACL_2_REMARK",
# "sequence": 10
# }
# ],
# "name": "acl_1"
# },
# {
# "aces": [
# {
# "authen": true,
# "destination": {
# "any": true
# },
# "grant": "deny",
# "log": true,
# "protocol": "tcp",
# "protocol_options": {
# "tcp": {
# "syn": true
# }
# },
# "routing": true,
# "sequence": 11,
# "source": {
# "port_protocol": {
# "range": {
# "end": "telnet",
# "start": "ftp"
# }
# },
# "prefix": "2001:db8:1234::/48"
# },
# "ttl": {
# "range": {
# "end": 250,
# "start": 180
# }
# }
# },
# {
# "destination": {
# "any": true
# },
# "destopts": true,
# "grant": "permit",
# "packet_length": {
# "eq": 576
# },
# "precedence": "network",
# "protocol": "icmpv6",
# "protocol_options": {
# "icmpv6": {
# "router_advertisement": true
# }
# },
# "sequence": 21,
# "source": {
# "any": true
# }
# }
# ],
# "name": "acl_2"
# }
# ],
# "afi": "ipv4"
# },
# {
# "acls": [
# {
# "aces": [
# {
# "authen": true,
# "destination": {
# "any": true
# },
# "grant": "deny",
# "log": true,
# "protocol": "tcp",
# "protocol_options": {
# "tcp": {
# "syn": true
# }
# },
# "routing": true,
# "sequence": 10,
# "source": {
# "port_protocol": {
# "range": {
# "end": "telnet",
# "start": "ftp"
# }
# },
# "prefix": "2001:db8:1234::/48"
# },
# "ttl": {
# "range": {
# "end": 250,
# "start": 180
# }
# }
# },
# {
# "destination": {
# "any": true
# },
# "destopts": true,
# "grant": "permit",
# "packet_length": {
# "eq": 576
# },
# "precedence": "network",
# "protocol": "icmpv6",
# "protocol_options": {
# "icmpv6": {
# "router_advertisement": true
# }
# },
# "sequence": 20,
# "source": {
# "any": true
# }
# }
# ],
# "name": "acl6_1"
# }
# ],
# "afi": "ipv6"
# }
# ]
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| after список / элементы=строка | при изменении | Результат вызова модели конфигурации. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| before список / элементы=строка | всегда | Конфигурация до вызова модели. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| commands список / элементы=строка | всегда | Набор команд, отправленных на удалённое устройство. Пример: ['ipv6 access-list acl6_1', '10 deny tcp 2001:db8:1234::/48 range ftp telnet any syn ttl range 180 250 authen routing log', '20 permit icmpv6 any any router-advertisement precedence network destopts', 'ipv4 access-list acl_1', '16 remark TEST_ACL_1_REMARK', '21 permit tcp host 192.0.2.10 range pop3 121 198.51.100.0 0.0.0.15 rst', '23 deny icmp any 198.51.100.0 0.0.0.15 reassembly-timeout dscp lt af12'] |
Авторы
- Nilashish Chakraborty (@NilashishC)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/cisco/iosxr/iosxr_acls_module.html