Spec-Zone.ru › Ansible 2.10

cisco.ios.ios_acls – Модуль ресурсов ACL для IOS

Примечание

Этот плагин входит в коллекцию cisco.ios (версия 1.2.1).

Для его установки используйте: ansible-galaxy collection install cisco.ios

Для использования в плейбуке укажите: cisco.ios.ios_acls

Новое в версии 1.0.0: модуля cisco.ios

  • Обзор
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Этот модуль настраивает и управляет именованными или нумерованными ACL на платформах IOS.

Примечание

Этот модуль имеет соответствующий плагин действий.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
config
список / элементы=словарь
Словарь опций ACL.
acls
список / элементы=словарь
Список списков управления доступом (ACL).
aces
список / элементы=словарь
Элементы внутри ACL.
destination
словарь
Укажите пункт назначения пакета.
address
строка
Адрес хоста для сопоставления или любой отдельный адрес хоста.
any
булево
    Варианты:
  • нет
  • да
Сопоставить любой исходный адрес.
host
строка
Один единственный хост назначения
port_protocol
словарь
Укажите порт назначения вместе с протоколом.
Примечание. Действительно с протоколами TCP/UDP protocol_options
eq
строка
Сопоставить только пакеты на заданном номере порта.
gt
строка
Сопоставить только пакеты с большим номером порта.
lt
строка
Сопоставить только пакеты с меньшим номером порта.
neq
строка
Сопоставить только пакеты, которые не находятся на заданном номере порта.
range
словарь
Группа портов.
end
целое число
Укажите конец диапазона портов.
start
целое число
Укажите начало диапазона портов.
wildcard_bits
строка
Маска подстановочных знаков назначения, действительна с адресом IPV4.
dscp
строка
Сопоставить пакеты с заданным значением dscp.
fragments
строка
Проверка фрагментов, отличных от начальных.
grant
строка
    Варианты:
  • разрешить
  • запретить
Укажите действие.
log
строка
Регистрация соответствий по этому элементу.
log_input
строка
Регистрация соответствий по этому элементу, включая интерфейс ввода.
option
словарь
Сопоставить пакеты со значением IP Options.
Действительно только для именованных acls.
add_ext
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с расширенным параметром адреса (147).
any_options
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с любым параметром.
com_security
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с коммерческим параметром безопасности (134).
dps
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с параметром динамического состояния пакета (151).
encode
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с параметром кодирования (15).
eool
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с параметром конца параметров (0).
ext_ip
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с расширенным параметром IP (145).
ext_security
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с расширенным параметром безопасности (133).
finn
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с экспериментальным параметром управления потоком (205).
imitd
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с параметром описания трафика IMI (144).
lsr
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с параметром loose source route (131).
mtup
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с параметром зондирования MTU (11).
mtur
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с параметром ответа MTU (12).
no_op
булево
    Варианты:
  • нет
  • да
Сопоставить пакеты с параметром без операции (1).
nsapa
boolean
    Варианты:
  • нет
  • да
Опция соответствия пакетам с адресами NSAP (150).
record_route
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с опцией Record Route (7).
router_alert
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с опцией Router Alert (148).
sdb
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с опцией Selective Directed Broadcast (149).
security
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с опцией Basic Security (130).
ssr
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с опцией Strict Source Routing (137).
stream_id
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с опцией Stream ID (136).
timestamp
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с опцией Time Stamp (68).
traceroute
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с опцией Trace Route (82).
ump
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с опцией Upstream Multicast Packet (152).
visa
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с экспериментальной опцией контроля доступа (142).
zsu
boolean
    Варианты:
  • нет
  • да
Соответствие пакетам с экспериментальной опцией измерения (10).
precedence
integer
Соответствие пакетам с заданным значением приоритета.
protocol
string
Укажите протокол для соответствия.
Обратитесь к документации поставщика для получения допустимых значений.
protocol_options
dictionary
Тип протокола.
ahp
boolean
    Варианты:
  • нет
  • да
Протокол аутентификации заголовков.
eigrp
boolean
    Варианты:
  • нет
  • да
Протокол маршрутизации EIGRP Cisco.
esp
boolean
    Варианты:
  • нет
  • да
Загрузка защищенной полезной нагрузки.
gre
boolean
    Варианты:
  • нет
  • да
Тунелирование GRE Cisco.
hbh
boolean
    Варианты:
  • нет
  • да
Заголовок опций "от прыжка к прыжку". Действительно для IPV6
icmp
dictionary
Протокол управления сообщениями в Интернете.
administratively_prohibited
boolean
    Варианты:
  • нет
  • да
Административно запрещено
alternate_address
boolean
    Варианты:
  • нет
  • да
Альтернативный адрес
conversion_error
boolean
    Варианты:
  • нет
  • да
Преобразование датаграмм
dod_host_prohibited
boolean
    Варианты:
  • нет
  • да
Запрещенный хост
dod_net_prohibited
boolean
    Варианты:
  • нет
  • да
Запрещенная сеть
echo
boolean
    Варианты:
  • нет
  • да
Эхо (ping)
echo_reply
boolean
    Варианты:
  • нет
  • да
Ответ эхо
general_parameter_problem
boolean
    Варианты:
  • нет
  • да
Проблема с параметром
host_isolated
boolean
    Варианты:
  • нет
  • да
Хост изолирован
host_precedence_unreachable
boolean
    Варианты:
  • нет
  • да
Хост недоступен по приоритету
host_redirect
boolean
    Варианты:
  • нет
  • да
Перенаправление хоста
host_tos_redirect
boolean
    Варианты:
  • нет
  • да
Перенаправление хоста для TOS
host_tos_unreachable
boolean
    Варианты:
  • нет
  • да
Хост недоступен для TOS
host_unknown
boolean
    Варианты:
  • нет
  • да
Хост неизвестен
host_unreachable
boolean
    Варианты:
  • нет
  • да
Хост недоступен
information_reply
boolean
    Варианты:
  • нет
  • да
Ответы с информацией
information_request
boolean
    Варианты:
  • нет
  • да
Запросы информации
mask_reply
boolean
    Варианты:
  • нет
  • да
Ответы маски
mask_request
boolean
    Варианты:
  • нет
  • да
запрос маски
mobile_redirect
boolean
    Варианты:
  • нет
  • да
Переадресация мобильного хоста
net_redirect
boolean
    Варианты:
  • нет
  • да
Переадресация сети
net_tos_redirect
boolean
    Варианты:
  • нет
  • да
Переадресация сети для TOS
net_tos_unreachable
boolean
    Варианты:
  • нет
  • да
Сеть недоступна для TOS
net_unreachable
boolean
    Варианты:
  • нет
  • да
Сеть недоступна
network_unknown
boolean
    Варианты:
  • нет
  • да
Сеть неизвестна
no_room_for_option
boolean
    Варианты:
  • нет
  • да
Требуемый параметр, но нет места
option_missing
boolean
    Варианты:
  • нет
  • да
Требуемый параметр отсутствует
packet_too_big
boolean
    Варианты:
  • нет
  • да
Необходима фрагментация, DF установлен
parameter_problem
boolean
    Варианты:
  • нет
  • да
Все проблемы с параметрами
port_unreachable
boolean
    Варианты:
  • нет
  • да
Порт недоступен
precedence_unreachable
boolean
    Варианты:
  • нет
  • да
Превышение приоритета
protocol_unreachable
boolean
    Варианты:
  • нет
  • да
Протокол недоступен
reassembly_timeout
boolean
    Варианты:
  • нет
  • да
Таймаут повторной сборки
redirect
boolean
    Варианты:
  • нет
  • да
Все переадресации
router_advertisement
boolean
    Варианты:
  • нет
  • да
Реклама маршрутизатора
router_solicitation
boolean
    Варианты:
  • нет
  • да
Запросы маршрутизатора
source_quench
boolean
    Варианты:
  • нет
  • да
Заглушение источника
source_route_failed
boolean
    Варианты:
  • нет
  • да
Источник маршрута не найден
time_exceeded
boolean
    Варианты:
  • нет
  • да
Все таймауты превышены
timestamp_reply
boolean
    Варианты:
  • нет
  • да
Ответы со временем
timestamp_request
boolean
    Варианты:
  • нет
  • да
Запросы со временем
traceroute
boolean
    Варианты:
  • нет
  • да
Traceroute
ttl_exceeded
boolean
    Варианты:
  • нет
  • да
Превышен TTL
недоступный
булево
    Варианты:
  • нет
  • да
Все недоступные
igmp
словарь
Протокол сообщений шлюза Интернет.
dvmrp
булево
    Варианты:
  • нет
  • да
Протокол маршрутизации многоадресной рассылки вектора расстояния (2)
host_query
булево
    Варианты:
  • нет
  • да
Запрос членства в группе IGMP(0)
mtrace_resp
булево
    Варианты:
  • нет
  • да
Ответ на трассировку многоадресной рассылки(7)
mtrace_route
булево
    Варианты:
  • нет
  • да
Трассировка многоадресной рассылки(8)
pim
булево
    Варианты:
  • нет
  • да
Протокол независимой многоадресной рассылки(3)
trace
булево
    Варианты:
  • нет
  • да
Трассировка многоадресной рассылки(4)
v1host_report
булево
    Варианты:
  • нет
  • да
Отчёт о членстве IGMPv1(1)
v2host_report
булево
    Варианты:
  • нет
  • да
Отчёт о членстве IGMPv2(5)
v2leave_group
булево
    Варианты:
  • нет
  • да
Выход из группы IGMPv2(6)
v3host_report
булево
    Варианты:
  • нет
  • да
Отчёт о членстве IGMPv3(9)
ip
булево
    Варианты:
  • нет
  • да
Любой протокол Интернет.
ipinip
булево
    Варианты:
  • нет
  • да
Туннелирование IP в IP.
ipv6
булево
    Варианты:
  • нет
  • да
Любой IPv6.
nos
булево
    Варианты:
  • нет
  • да
Совместимость KA9Q NOS с туннелированием IP поверх IP.
ospf
булево
    Варианты:
  • нет
  • да
Протокол маршрутизации OSPF.
pcp
булево
    Варианты:
  • нет
  • да
Протокол сжатия полезной нагрузки.
pim
булево
    Варианты:
  • нет
  • да
Протокол независимой многоадресной рассылки.
protocol_number
целое
Номер протокола IP
sctp
булево
    Варианты:
  • нет
  • да
Потоковый протокол передачи данных.
tcp
словарь
Сопоставление флагов пакетов TCP
ack
булево
    Варианты:
  • нет
  • да
Сопоставление по биту ACK
established
булево
    Варианты:
  • нет
  • да
Сопоставление установленных соединений
fin
булево
    Варианты:
  • нет
  • да
Сопоставление по биту FIN
psh
булево
    Варианты:
  • нет
  • да
Сопоставление по биту PSH
rst
булево
    Варианты:
  • нет
  • да
Сопоставление по биту RST
syn
булево
    Варианты:
  • нет
  • да
Сопоставление по биту SYN
urg
булево
    Варианты:
  • нет
  • да
Сопоставление по биту URG
udp
булево
    Варианты:
  • нет
  • да
Протокол пользовательских дейтаграмм.
sequence
целое
Номер последовательности для записи управления доступом(ACE).
Обратитесь к документации поставщика для получения допустимых значений.
source
словарь
Укажите источник пакета.
address
строка
Исходный сетевой адрес.
any
булево
    Варианты:
  • нет
  • да
Сопоставить любой исходный адрес.
host
string
Хост-источник
port_protocol
dictionary
Укажите порт назначения вместе с протоколом.
Примечание: Действительно с протоколами TCP/UDP protocol_options
eq
string
Сопоставить только пакеты на заданном номере порта.
gt
string
Сопоставить только пакеты с большим номером порта.
lt
string
Сопоставить только пакеты с меньшим номером порта.
neq
string
Сопоставить только пакеты, не находящиеся на заданном номере порта.
range
dictionary
Группа портов.
end
integer
Укажите конец диапазона портов.
start
integer
Укажите начало диапазона портов.
wildcard_bits
string
Биты маскирования назначения, действительны для адресов IPV4.
time_range
string
Укажите временной диапазон.
tos
dictionary
Сопоставить пакеты с заданным значением TOS.
Примечание, DSCP и TOS взаимоисключающие
max_reliability
boolean
    Варианты:
  • no
  • yes
Сопоставить пакеты с максимальной надёжностью TOS (2).
max_throughput
boolean
    Варианты:
  • no
  • yes
Сопоставить пакеты с максимальной пропускной способностью TOS (4).
min_delay
boolean
    Варианты:
  • no
  • yes
Сопоставить пакеты с минимальной задержкой TOS (8).
min_monetary_cost
boolean
    Варианты:
  • no
  • yes
Сопоставить пакеты с минимальной стоимостью TOS (1).
normal
boolean
    Варианты:
  • no
  • yes
Сопоставить пакеты с нормальным TOS (0).
service_value
integer
Значение типа сервиса
ttl
dictionary
Сопоставить пакеты с заданным значением TTL.
eq
integer
Сопоставить только пакеты на заданном значении TTL.
gt
integer
Сопоставить только пакеты с большим значением TTL.
lt
integer
Сопоставить только пакеты с меньшим значением TTL.
neq
integer
Сопоставить только пакеты, не имеющие заданного значения TTL.
range
dictionary
Сопоставить только пакеты в диапазоне значений TTL.
end
integer
Укажите конец диапазона значений TTL.
start
integer
Укажите начало диапазона значений TTL.
acl_type
string
    Варианты:
  • extended
  • standard
Тип ACL
Примечание: обязательно для именованных ACL, но не обязательно для нумерованных ACL.
name
string / обязательно
Имя или номер ACL.
afi
string / обязательно
    Варианты:
  • ipv4
  • ipv6
Индикатор семейства адресов (AFI) для списков управления доступом (ACL).
running_config
string
Модуль по умолчанию подключается к удалённому устройству и извлекает текущую конфигурацию running-config, чтобы использовать её как базу для сравнения с содержимым источника. Иногда нежелательно запрашивать текущую running-config для каждой задачи в плейбуке. Аргумент running_config позволяет разработчику передать конфигурацию, используемую в качестве базовой конфигурации для сравнения.
state
string
    Варианты:
  • merged ←
  • replaced
  • overridden
  • deleted
  • gathered
  • rendered
  • parsed
Состояние, в котором должна остаться конфигурация
Состояния rendered, gathered и parsed не выполняют никаких изменений на устройстве.
Состояние rendered преобразует конфигурацию в config опцию в платформенно-специфичные CLI команды, которые будут возвращены в ключе rendered в результате. Для состояния rendered активное соединение с удалённым хостом не требуется.
Состояние gathered извлечёт конфигурацию running с устройства и преобразует её в структурированные данные в формате, соответствующем параметрам модуля ресурса, и значение возвращается в ключе gathered в результате.
Состояние parsed считывает конфигурацию из running_config опции и преобразует её в формат JSON в соответствии с параметрами модуля ресурса, а значение возвращается в ключе parsed в результате. Значение опции running_config должно быть таким же, как вывод команды show running-config | include ip route|ipv6 route, выполненной на устройстве. Для состояния parsed активное соединение с удалённым хостом не требуется.

Примечания

Примечание

  • Проверено на Cisco IOSv версии 15.2 на VIRL

Примеры

# Using merged

# Before state:
# -------------
#
# vios#sh access-lists
# Extended IP access list 110
#    10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10

- name: Merge provided configuration with device configuration
  cisco.ios.ios_acls:
    config:
    - afi: ipv4
      acls:
      - name: std_acl
        acl_type: standard
        aces:
        - grant: deny
          source:
            address: 192.168.1.200
        - grant: deny
          source:
            address: 192.168.2.0
            wildcard_bits: 0.0.0.255
      - name: 110
        aces:
        - sequence: 10
          protocol_options:
            icmp:
              traceroute: true
        - grant: deny
          protocol_options:
            tcp:
              ack: true
          source:
            host: 198.51.100.0
          destination:
            host: 198.51.110.0
            port_protocol:
              eq: telnet
      - name: test
        acl_type: extended
        aces:
        - grant: deny
          protocol_options:
            tcp:
              fin: true
          source:
            address: 192.0.2.0
            wildcard_bits: 0.0.0.255
          destination:
            address: 192.0.3.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: www
          option:
            traceroute: true
          ttl:
            eq: 10
      - name: 123
        aces:
        - grant: deny
          protocol_options:
            tcp:
              ack: true
          source:
            address: 198.51.100.0
            wildcard_bits: 0.0.0.255
          destination:
            address: 198.51.101.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: telnet
          tos:
            service_value: 12
        - grant: deny
          protocol_options:
            tcp:
              ack: true
          source:
            address: 192.0.3.0
            wildcard_bits: 0.0.0.255
          destination:
            address: 192.0.4.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: www
          dscp: ef
          ttl:
            lt: 20
    - afi: ipv6
      acls:
      - name: R1_TRAFFIC
        aces:
        - grant: deny
          protocol_options:
            tcp:
              ack: true
          source:
            any: true
            port_protocol:
              eq: www
          destination:
            any: true
            port_protocol:
              eq: telnet
          dscp: af11
    state: merged

# Commands fired:
# ---------------
#
# - ip access-list standard std_acl
# - deny 192.168.1.200
# - deny 192.168.2.0 0.0.0.255
# - ip access-list extended 110
# - no 10
# - 10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
# - deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# - ip access-list extended test
# - deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# - ip access-list extended 123
# - deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
# - deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# - ipv6 access-list R1_TRAFFIC
# - deny tcp any eq www any eq telnet ack dscp af11

# After state:
# ------------
#
# vios#sh access-lists
# Standard IP access list std_acl
#    10 deny   192.168.1.200
#    20 deny   192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
#    10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
#    20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
#    10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
#    20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
#    10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
#    deny tcp any eq www any eq telnet ack dscp af11 sequence 10


# Using replaced

# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
#    10 deny   192.168.1.200
#    20 deny   192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
#    10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
#    20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
#    10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
#    20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
#    10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
#    deny tcp any eq www any eq telnet ack dscp af11 sequence 10


- name: Replaces device configuration of listed acls with provided configuration
  cisco.ios.ios_acls:
    config:
    - afi: ipv4
      acls:
      - name: 110
        aces:
        - grant: deny
          protocol_options:
            tcp:
              syn: true
          source:
            address: 192.0.2.0
            wildcard_bits: 0.0.0.255
          destination:
            address: 192.0.3.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: www
          dscp: ef
          ttl:
            eq: 10
      - name: 150
        aces:
        - grant: deny
          sequence: 20
          protocol_options:
            tcp:
              syn: true
          source:
            address: 198.51.100.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: telnet
          destination:
            address: 198.51.110.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: telnet
          dscp: ef
          ttl:
            eq: 10
    state: replaced

# Commands fired:
# ---------------
#
# - no ip access-list extended 110
# - ip access-list extended 110
# - deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www syn dscp ef ttl eq 10
# - ip access-list extended 150
# - 20 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10

# After state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
#    10 deny   192.168.1.200
#    20 deny   192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
#    10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www syn dscp ef ttl eq 10
# Extended IP access list 123
#    10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
#    20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list 150
#    20 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10
# Extended IP access list test
#    10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
#    deny tcp any eq www any eq telnet ack dscp af11 sequence 10

# Using overridden

# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
#    10 deny   192.168.1.200
#    20 deny   192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
#    10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
#    20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
#    10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
#    20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
#    10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
#    deny tcp any eq www any eq telnet ack dscp af11 sequence 10

- name: Override device configuration of all acls with provided configuration
  cisco.ios.ios_acls:
    config:
    - afi: ipv4
      acls:
      - name: 110
        aces:
        - grant: deny
          sequence: 20
          protocol_options:
            tcp:
              ack: true
          source:
            address: 198.51.100.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: telnet
          destination:
            address: 198.51.110.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: www
          dscp: ef
          ttl:
            eq: 10
      - name: 150
        aces:
        - grant: deny
          sequence: 10
          protocol_options:
            tcp:
              syn: true
          source:
            address: 198.51.100.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: telnet
          destination:
            address: 198.51.110.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: telnet
          dscp: ef
          ttl:
            eq: 10
    state: overridden

# Commands fired:
# ---------------
#
# - no ip access-list standard std_acl
# - no ip access-list extended 110
# - no ip access-list extended 123
# - no ip access-list extended 150
# - no ip access-list extended test
# - no ipv6 access-list R1_TRAFFIC
# - ip access-list extended 150
# - 10 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10
# - ip access-list extended 110
# - 20 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq www ack dscp ef ttl eq 10

# After state:
# -------------
#
# vios#sh access-lists
# Extended IP access list 110
#    20 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq www ack dscp ef ttl eq 10
# Extended IP access list 150
#    10 deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10

# Using Deleted

# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
#    10 deny   192.168.1.200
#    20 deny   192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
#    10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
#    20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
#    10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
#    20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
#    10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
#    deny tcp any eq www any eq telnet ack dscp af11 sequence 10

- name: "Delete ACLs (Note: This won't delete the all configured ACLs)"
  cisco.ios.ios_acls:
    config:
    - afi: ipv4
      acls:
      - name: test
        acl_type: extended
      - name: 110
    - afi: ipv6
      acls:
      - name: R1_TRAFFIC
    state: deleted

# Commands fired:
# ---------------
#
# - no ip access-list extended test
# - no ip access-list extended 110
# - no ipv6 access-list R1_TRAFFIC

# After state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
#    10 deny   192.168.1.200
#    20 deny   192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 123
#    10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
#    20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20

# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
#    10 deny   192.168.1.200
#    20 deny   192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
#    10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
#    20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
#    10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
#    20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
#    10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
#    deny tcp any eq www any eq telnet ack dscp af11 sequence 10

- name: "Delete ACLs based on AFI (Note: This won't delete the all configured ACLs)"
  cisco.ios.ios_acls:
    config:
    - afi: ipv4
    state: deleted

# Commands fired:
# ---------------
#
# - no ip access-list standard std_acl
# - no ip access-list extended test
# - no ip access-list extended 110
# - no ip access-list extended 123

# After state:
# -------------
#
# vios#sh access-lists
# IPv6 access list R1_TRAFFIC
#    deny tcp any eq www any eq telnet ack dscp af11 sequence 10

# Using Deleted without any config passed
#"(NOTE: This will delete all of configured ACLs)"

# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
#    10 deny   192.168.1.200
#    20 deny   192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
#    10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
#    20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
#    10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
#    20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
#    10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
#    deny tcp any eq www any eq telnet ack dscp af11 sequence 10

- name: 'Delete ALL of configured ACLs (Note: This WILL delete the all configured
    ACLs)'
  cisco.ios.ios_acls:
    state: deleted

# Commands fired:
# ---------------
#
# - no ip access-list extended test
# - no ip access-list extended 110
# - no ip access-list extended 123
# - no ip access-list extended test
# - no ipv6 access-list R1_TRAFFIC

# After state:
# -------------
#
# vios#sh access-lists

# Using Gathered

# Before state:
# -------------
#
# vios#sh access-lists
# Standard IP access list std_acl
#    10 deny   192.168.1.200
#    20 deny   192.168.2.0, wildcard bits 0.0.0.255
# Extended IP access list 110
#    10 deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 traceroute dscp ef ttl eq 10
#    20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# Extended IP access list 123
#    10 deny tcp 198.51.100.0 0.0.0.255 198.51.101.0 0.0.0.255 eq telnet ack tos 12
#    20 deny tcp 192.0.3.0 0.0.0.255 192.0.4.0 0.0.0.255 eq www ack dscp ef ttl lt 20
# Extended IP access list test
#    10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www fin option traceroute ttl eq 10
# IPv6 access list R1_TRAFFIC
#    deny tcp any eq www any eq telnet ack dscp af11 sequence 10

- name: Gather listed acls with provided configurations
  cisco.ios.ios_acls:
    config:
    state: gathered

# Module Execution Result:
# ------------------------
#
# "gathered": [
#         {
#             "acls": [
#                 {
#                     "aces": [
#                         {
#                             "destination": {
#                                 "address": "192.0.3.0",
#                                 "wildcard_bits": "0.0.0.255"
#                             },
#                             "dscp": "ef",
#                             "grant": "deny",
#                             "protocol_options": {
#                                 "icmp": {
#                                     "echo": true
#                                 }
#                             },
#                             "sequence": 10,
#                             "source": {
#                                 "address": "192.0.2.0",
#                                 "wildcard_bits": "0.0.0.255"
#                             },
#                             "ttl": {
#                                 "eq": 10
#                             }
#                         }
#                     ],
#                     "acl_type": "extended",
#                     "name": "110"
#                 },
#                 {
#                     "aces": [
#                         {
#                             "destination": {
#                                 "address": "198.51.101.0",
#                                 "port_protocol": {
#                                     "eq": "telnet"
#                                 },
#                                 "wildcard_bits": "0.0.0.255"
#                             },
#                             "grant": "deny",
#                             "protocol_options": {
#                                 "tcp": {
#                                     "ack": true
#                                 }
#                             },
#                             "sequence": 10,
#                             "source": {
#                                 "address": "198.51.100.0",
#                                 "wildcard_bits": "0.0.0.255"
#                             },
#                             "tos": {
#                                 "service_value": 12
#                             }
#                         },
#                         {
#                             "destination": {
#                                 "address": "192.0.4.0",
#                                 "port_protocol": {
#                                     "eq": "www"
#                                 },
#                                 "wildcard_bits": "0.0.0.255"
#                             },
#                             "dscp": "ef",
#                             "grant": "deny",
#                             "protocol_options": {
#                                 "tcp": {
#                                     "ack": true
#                                 }
#                             },
#                             "sequence": 20,
#                             "source": {
#                                 "address": "192.0.3.0",
#                                 "wildcard_bits": "0.0.0.255"
#                             },
#                             "ttl": {
#                                 "lt": 20
#                             }
#                         }
#                     ],
#                     "acl_type": "extended",
#                     "name": "123"
#                 },
#                 {
#                     "aces": [
#                         {
#                             "destination": {
#                                 "address": "192.0.3.0",
#                                 "port_protocol": {
#                                     "eq": "www"
#                                 },
#                                 "wildcard_bits": "0.0.0.255"
#                             },
#                             "grant": "deny",
#                             "option": {
#                                 "traceroute": true
#                             },
#                             "protocol_options": {
#                                 "tcp": {
#                                     "fin": true
#                                 }
#                             },
#                             "sequence": 10,
#                             "source": {
#                                 "address": "192.0.2.0",
#                                 "wildcard_bits": "0.0.0.255"
#                             },
#                             "ttl": {
#                                 "eq": 10
#                             }
#                         }
#                     ],
#                     "acl_type": "extended",
#                     "name": "test_acl"
#                 }
#             ],
#             "afi": "ipv4"
#         },
#         {
#             "acls": [
#                 {
#                     "aces": [
#                         {
#                             "destination": {
#                                 "any": true,
#                                 "port_protocol": {
#                                     "eq": "telnet"
#                                 }
#                             },
#                             "dscp": "af11",
#                             "grant": "deny",
#                             "protocol_options": {
#                                 "tcp": {
#                                     "ack": true
#                                 }
#                             },
#                             "sequence": 10,
#                             "source": {
#                                 "any": true,
#                                 "port_protocol": {
#                                     "eq": "www"
#                                 }
#                             }
#                         }
#                     ],
#                     "name": "R1_TRAFFIC"
#                 }
#             ],
#             "afi": "ipv6"
#         }
#     ]

# Using Rendered

- name: Rendered the provided configuration with the exisiting running configuration
  cisco.ios.ios_acls:
    config:
    - afi: ipv4
      acls:
      - name: 110
        aces:
        - grant: deny
          sequence: 10
          protocol_options:
            tcp:
              syn: true
          source:
            address: 192.0.2.0
            wildcard_bits: 0.0.0.255
          destination:
            address: 192.0.3.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: www
          dscp: ef
          ttl:
            eq: 10
      - name: 150
        aces:
        - grant: deny
          protocol_options:
            tcp:
              syn: true
          source:
            address: 198.51.100.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: telnet
          destination:
            address: 198.51.110.0
            wildcard_bits: 0.0.0.255
            port_protocol:
              eq: telnet
          dscp: ef
          ttl:
            eq: 10
    state: rendered

# Module Execution Result:
# ------------------------
#
# "rendered": [
#         "ip access-list extended 110",
#         "10 deny tcp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 eq www syn dscp ef ttl eq 10",
#         "ip access-list extended 150",
#         "deny tcp 198.51.100.0 0.0.0.255 eq telnet 198.51.110.0 0.0.0.255 eq telnet syn dscp ef ttl eq 10"
#     ]

# Using Parsed

# File: parsed.cfg
# ----------------
#
# ipv6 access-list R1_TRAFFIC
# deny tcp any eq www any eq telnet ack dscp af11

- name: Parse the commands for provided configuration
  cisco.ios.ios_acls:
    running_config: "{{ lookup('file', 'parsed.cfg') }}"
    state: parsed

# Module Execution Result:
# ------------------------
#
# "parsed": [
#         {
#             "acls": [
#                 {
#                     "aces": [
#                         {
#                             "destination": {
#                                 "any": true,
#                                 "port_protocol": {
#                                     "eq": "telnet"
#                                 }
#                             },
#                             "dscp": "af11",
#                             "grant": "deny",
#                             "protocol_options": {
#                                 "tcp": {
#                                     "ack": true
#                                 }
#                             },
#                             "source": {
#                                 "any": true,
#                                 "port_protocol": {
#                                     "eq": "www"
#                                 }
#                             }
#                         }
#                     ],
#                     "name": "R1_TRAFFIC"
#                 }
#             ],
#             "afi": "ipv6"
#         }
#     ]

Возвращаемые значения

Общие значения возвращаемых данных описаны здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
after
список / элементы=строка
при изменении
Конфигурация в виде структурированных данных после завершения модуля.

Пример:
Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше.
before
список / элементы=строка
всегда
Конфигурация в виде структурированных данных до вызова модуля.

Пример:
Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше.
commands
список / элементы=строка
всегда
Набор команд, отправленных на удалённое устройство

Пример:
['ip access-list extended 110', 'deny icmp 192.0.2.0 0.0.0.255 192.0.3.0 0.0.0.255 echo dscp ef ttl eq 10']


Авторы

  • Sumit Jaiswal (@justjais)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/cisco/ios/ios_acls_module.html

Spec-Zone.ru

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