cisco.iosxr.iosxr_acls – Модуль ресурсов ACL
Примечание
Этот плагин является частью коллекции cisco.iosxr (версия 1.2.0).
Для его установки используйте: 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 логическое значение |
| Соответствие, если заголовок destination opts присутствует. | ||||||
| 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 opts присутствует. | ||||||
| icmp_off логическое значение |
| Включить/выключить сообщение ICMP для этой записи. | ||||||
| line строка | Запись ACE, исключая номер последовательности. Этот ключ несовместим со всеми другими атрибутами, кроме 'sequence'. При использовании с другими атрибутами значение этого ключа будет иметь приоритет, и другие ключи будут игнорироваться. Это следует использовать только тогда, когда атрибут не существует в argspec, но допустим для устройства. Для сбора фактов любая запись ACE, которая не была полностью проанализирована, будет отображаться как значение этого атрибута, исключая номер последовательности, который будет заполнен значением ключа sequence. псевдонимы: ace | |||||||
| log логическое значение |
| Включить/выключить логирование совпадений с этой записью. | ||||||
| log_input логическое значение |
| Включить/выключить логирование совпадений с этой записью, включая входной интерфейс. | ||||||
| packet_length словарь | Соответствие пакетам, заданным длиной пакета. | |||||||
| eq integer | Совпадение только пакетов заданной длины | |||||||
| gt integer | Совпадение только пакетов с большей длиной | |||||||
| lt integer | Совпадение только пакетов с меньшей длиной | |||||||
| neq integer | Совпадение только пакетов, не имеющих заданную длину | |||||||
| range dictionary | Совпадение только пакетов в диапазоне длин | |||||||
| end integer | Конец диапазона длин пакетов | |||||||
| start integer | Начало диапазона длин пакетов | |||||||
| precedence string | Совпадение пакетов с заданным значением приоритета | |||||||
| protocol string | Укажите протокол для сопоставления. Обратитесь к документации поставщика для допустимых значений. | |||||||
| protocol_options dictionary | Дополнительные параметры протокола. | |||||||
| 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 | ||||||
| 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). | |||||||
| dvmrp логическое значение |
| Соответствие протоколу маршрутизации многоадресной рассылки по вектору расстояния | ||||||
| host_query логическое значение |
| Соответствие запросу хоста | ||||||
| host_report логическое значение |
| Соответствие сообщению от хоста | ||||||
| mtrace логическое значение |
| Соответствие команде mtrace | ||||||
| mtrace_response логическое значение |
| Соответствие ответу на команду mtrace | ||||||
| pim логическое значение |
| Соответствие протоколу независимого многоадресной рассылки | ||||||
| trace логическое значение |
| Отслеживание многоадресной рассылки | ||||||
| tcp словарь | Соответствие флагам пакетов TCP | |||||||
| ack логическое значение |
| Соответствие биту ACK | ||||||
| established логическое значение |
| Соответствие установленным соединениям | ||||||
| fin логическое значение |
| Соответствие биту FIN | ||||||
| psh логическое значение |
| Соответствие биту PSH | ||||||
| rst логическое значение |
| Соответствие биту RST | ||||||
| syn логическое значение |
| Соответствие биту SYN | ||||||
| urg логическое значение |
| Соответствие биту URG | ||||||
| примечание строка | Комментарии или описание для списка доступа. | |||||||
| маршрутизация логическое значение |
| Соответствие, если заголовок маршрутизации присутствует. | ||||||
| последовательность целое число | Номер последовательности для записи управления доступом (ACE). | |||||||
| источник словарь | Указывает источник пакета. | |||||||
| адрес строка | IP-адрес источника для сопоставления. | |||||||
| любой логическое значение |
| Соответствие любому IP-адресу источника. | ||||||
| хост строка | IP-адрес хоста для сопоставления. | |||||||
| порт_протокол словарь | Укажите порт источника или протокол. | |||||||
| равно строка | Сопоставить только пакеты на заданном номере порта. | |||||||
| больше строка | Сопоставить только пакеты с большим номером порта. | |||||||
| меньше строка | Сопоставить только пакеты с меньшим номером порта. | |||||||
| неравно строка | Сопоставить только пакеты, которые не находятся на заданном номере порта. | |||||||
| диапазон словарь | Сопоставить только пакеты в диапазоне номеров портов | |||||||
| конец строка | Укажите конец диапазона портов | |||||||
| начало строка | Укажите начало диапазона портов | |||||||
| префикс строка | Префикс сети источника. | |||||||
| биты_маскировки строка | Биты маскировки, применяемые к адресу источника. | |||||||
| ttl словарь | Сопоставить со значением TTL. | |||||||
| равно целое число | Сопоставить только пакеты с точным значением TTL. | |||||||
| gt integer | Сопоставить только пакеты с большим значением TTL. | |||||||
| lt integer | Сопоставить только пакеты с меньшим значением TTL. | |||||||
| neq integer | Сопоставить только пакеты, которые не будут иметь заданное значение TTL. | |||||||
| range dictionary | Сопоставить только пакеты в диапазоне заданных значений TTL. | |||||||
| end integer | Конец диапазона TTL. | |||||||
| start integer | Начало диапазона TTL. | |||||||
| name string | Имя списка управления доступом (ACL). | |||||||
| afi string / required |
| Индикатор семейства адресов (AFI) для списков управления доступом (ACL). | ||||||
| running_config string | Модуль по умолчанию подключается к удалённому устройству и извлекает текущую конфигурацию running-config для использования в качестве основы для сравнения с содержимым источника. В некоторых случаях нежелательно, чтобы задача получала текущую конфигурацию running-config для каждой задачи в игре. Аргумент running_config позволяет реализатору передать конфигурацию для использования в качестве базовой конфигурации для сравнения. Это значение должно быть результатом выполнения команды show running-config router static на устройстве. | |||||||
| state string |
| Состояние, в котором должна остаться конфигурация. | ||||||
Примеры
# 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 list / elements=string | при изменении | Результат вызова модели конфигурации. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| before list / elements=string | всегда | Конфигурация до вызова модели. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| commands list / elements=string | всегда | Набор команд, переданных на удалённое устройство. Пример: ['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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/cisco/iosxr/iosxr_acls_module.html