Spec-Zone.ru › Ansible 2.11

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
    Choices:
  • no
  • yes
Сеть недоступна для TOS
net_unreachable
boolean
    Choices:
  • no
  • yes
Сеть недоступна
network_unknown
boolean
    Choices:
  • no
  • yes
Сеть неизвестна
no_room_for_option
boolean
    Choices:
  • no
  • yes
Недостаточно места для параметра
option_missing
boolean
    Choices:
  • no
  • yes
Требуемый параметр отсутствует
packet_too_big
boolean
    Choices:
  • no
  • yes
Необходима фрагментация, DF установлен
parameter_problem
boolean
    Choices:
  • no
  • yes
Проблемы со всеми параметрами
port_unreachable
boolean
    Choices:
  • no
  • yes
Порт недоступен
precedence_unreachable
boolean
    Choices:
  • no
  • yes
Превышено значение приоритета
protocol_unreachable
boolean
    Choices:
  • no
  • yes
Протокол недоступен
reassembly_timeout
boolean
    Choices:
  • no
  • yes
Таймаут реассомблирования
redirect
boolean
    Choices:
  • no
  • yes
Все перенаправления
router_advertisement
boolean
    Choices:
  • no
  • yes
Объявления о маршрутизаторах
router_solicitation
boolean
    Choices:
  • no
  • yes
Запросы маршрутизаторам
source_quench
boolean
    Choices:
  • no
  • yes
Запросы источника
source_route_failed
boolean
    Choices:
  • no
  • yes
Не удалось определить маршрут источника
time_exceeded
boolean
    Choices:
  • no
  • yes
Превышено время ожидания
timestamp_reply
boolean
    Choices:
  • no
  • yes
Ответы с отметкой времени
timestamp_request
boolean
    Choices:
  • no
  • yes
Запросы с отметкой времени
traceroute
boolean
    Choices:
  • no
  • yes
Traceroute
ttl_exceeded
boolean
    Choices:
  • no
  • yes
Превышен TTL
unreachable
boolean
    Choices:
  • no
  • yes
Все недоступные
icmpv6
dictionary
Настройки протокола управления сообщениями Интернета для IPv6.
address_unreachable
boolean
    Choices:
  • no
  • yes
Адрес недоступен
administratively_prohibited
boolean
    Choices:
  • no
  • yes
Административно запрещено
beyond_scope_of_source_address
boolean
    Choices:
  • no
  • yes
Административно запрещено
destination_unreachable
boolean
    Choices:
  • no
  • yes
Невозможно доставить сообщение по назначению
echo
boolean
    Choices:
  • no
  • yes
Эхо
echo_reply
boolean
    Choices:
  • no
  • yes
Эхо-ответ
erroneous_header_field
boolean
    Choices:
  • no
  • yes
Поле заголовка содержит ошибку
group_membership_query
boolean
    Choices:
  • no
  • yes
Запрос членства в группе
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
строка / обязательно
    Варианты:
  • ipv4
  • ipv6
Индикатор семейства адресов (AFI) для списков управления доступом (ACL).
running_config
строка
Модуль по умолчанию подключается к удалённому устройству и извлекает текущую конфигурацию для использования в качестве основы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую конфигурацию для каждой задачи в командном файле. Аргумент running_config позволяет разработчику передать конфигурацию для использования в качестве базовой конфигурации для сравнения. Это значение должно быть результатом выполнения команды show running-config router static на устройстве.
state
строка
    Варианты:
  • merged ←
  • replaced
  • overridden
  • deleted
  • gathered
  • rendered
  • parsed
Состояние, в котором должна остаться конфигурация.

Примеры

# 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API