Spec-Zone.ru › Ansible 2.11

cisco.ios.ios_acls – Модуль ресурсов ACLs

Примечание

Этот плагин является частью коллекции cisco.ios (версия 1.3.0).

Для его установки используйте: 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.
evaluate
строка
Оценить список доступа
fragments
строка
Проверить фрагменты, отличные от начального.
grant
строка
    Варианты:
  • разрешить
  • запретить
Укажите действие.
log
строка
Регистрировать совпадения по этому элементу.
log_input
строка
Регистрировать совпадения по этому элементу, включая входной интерфейс.
option
словарь
Сопоставить пакеты с заданным значением IP-опций.
Действительно только для именованных acl.
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
логическое значение
    Варианты:
  • нет
  • да
Сопоставить пакеты с опцией маршрута от источника (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
    Варианты:
  • нет
  • да
Сопоставление пакетов с опцией Experimental Access Control (142).
zsu
boolean
    Варианты:
  • нет
  • да
Сопоставление пакетов с опцией Experimental Measurement (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
Недоступный
boolean
    Варианты:
  • нет
  • да
Все недоступные
igmp
словарь
Протокол сообщений шлюза интернет-маршрутизации.
dvmrp
boolean
    Варианты:
  • нет
  • да
Протокол маршрутизации многоадресной рассылки по вектору расстояния(2)
host_query
boolean
    Варианты:
  • нет
  • да
Запрос членства в группе IGMP(0)
mtrace_resp
boolean
    Варианты:
  • нет
  • да
Ответ на трассировку многоадресной рассылки(7)
mtrace_route
boolean
    Варианты:
  • нет
  • да
Трассировка многоадресной рассылки(8)
pim
boolean
    Варианты:
  • нет
  • да
Независимый от протокола многоадресной рассылки(3)
trace
boolean
    Варианты:
  • нет
  • да
Трассировка многоадресной рассылки(4)
v1host_report
boolean
    Варианты:
  • нет
  • да
Отчет о членстве IGMPv1(1)
v2host_report
boolean
    Варианты:
  • нет
  • да
Отчет о членстве IGMPv2(5)
v2leave_group
boolean
    Варианты:
  • нет
  • да
Выход из группы IGMPv2(6)
v3host_report
boolean
    Варианты:
  • нет
  • да
Отчет о членстве IGMPv3(9)
ip
boolean
    Варианты:
  • нет
  • да
Любой интернет-протокол.
ipinip
boolean
    Варианты:
  • нет
  • да
Тунелирование IP в IP.
ipv6
boolean
    Варианты:
  • нет
  • да
Любой IPv6.
nos
boolean
    Варианты:
  • нет
  • да
Совместимость KA9Q NOS с туннелированием IP через IP.
ospf
boolean
    Варианты:
  • нет
  • да
Протокол маршрутизации OSPF.
pcp
boolean
    Варианты:
  • нет
  • да
Протокол сжатия полезной нагрузки.
pim
boolean
    Варианты:
  • нет
  • да
Независимый от протокола многоадресной рассылки.
protocol_number
целое
Номер протокола IP
sctp
boolean
    Варианты:
  • нет
  • да
Потоковый протокол передачи данных.
tcp
словарь
Сопоставление флагов пакетов TCP
ack
boolean
    Варианты:
  • нет
  • да
Сопоставление по биту ACK
established
boolean
    Варианты:
  • нет
  • да
Сопоставление установленных соединений
fin
boolean
    Варианты:
  • нет
  • да
Сопоставление по биту FIN
psh
boolean
    Варианты:
  • нет
  • да
Сопоставление по биту PSH
rst
boolean
    Варианты:
  • нет
  • да
Сопоставление по биту RST
syn
boolean
    Варианты:
  • нет
  • да
Сопоставление по биту SYN
urg
boolean
    Варианты:
  • нет
  • да
Сопоставление по биту URG
udp
boolean
    Варианты:
  • нет
  • да
Протокол пользовательских датаграмм.
sequence
целое
Порядковый номер для записи управления доступом(ACE).
См. документацию поставщика для допустимых значений.
source
словарь
Указать источник пакета.
address
строка
Адрес исходной сети.
any
boolean
    Варианты:
  • нет
  • да
Сопоставить любой адрес источника.
хост
строка
Одиночный хост источника
порт_протокол
словарь
Укажите порт назначения вместе с протоколом.
Примечание. Действительно с протоколами TCP/UDP protocol_options
eq
строка
Сопоставить только пакеты на заданном номере порта.
gt
строка
Сопоставить только пакеты с большим номером порта.
lt
строка
Сопоставить только пакеты с меньшим номером порта.
neq
строка
Сопоставить только пакеты, не находящиеся на заданном номере порта.
range
словарь
Группа портов.
end
целое число
Указать конец диапазона портов.
start
целое число
Указать начало диапазона портов.
wildcard_bits
строка
Бита маскирования назначения, действительны с адресом IPV4.
time_range
строка
Указать диапазон времени.
tos
словарь
Сопоставить пакеты с заданным значением TOS.
Примечание. DSCP и TOS взаимно исключают друг друга
max_reliability
логическое значение
    Варианты:
  • нет
  • да
Сопоставить пакеты с максимальной надёжностью TOS (2).
max_throughput
логическое значение
    Варианты:
  • нет
  • да
Сопоставить пакеты с максимальной пропускной способностью TOS (4).
min_delay
логическое значение
    Варианты:
  • нет
  • да
Сопоставить пакеты с минимальной задержкой TOS (8).
min_monetary_cost
логическое значение
    Варианты:
  • нет
  • да
Сопоставить пакеты с минимальными денежными затратами TOS (1).
normal
логическое значение
    Варианты:
  • нет
  • да
Сопоставить пакеты с обычным TOS (0).
service_value
целое число
Значение типа услуги
ttl
словарь
Сопоставить пакеты с заданным значением TTL.
eq
целое число
Сопоставить только пакеты на заданном номере TTL.
gt
целое число
Сопоставить только пакеты с большим номером TTL.
lt
целое число
Сопоставить только пакеты с меньшим номером TTL.
neq
целое число
Сопоставить только пакеты, не находящиеся на заданном номере TTL.
range
словарь
Сопоставить только пакеты в диапазоне TTL.
end
целое число
Указать конец диапазона портов.
start
целое число
Указать начало диапазона портов.
acl_type
строка
    Варианты:
  • extended
  • standard
Тип ACL
Примечание. Обязателен для именованного ACL, но необязателен для нумерованного ACL.
name
строка / обязательно
Имя или номер ACL.
afi
строка / обязательно
    Варианты:
  • ipv4
  • ipv6
Индикатор семейства адресов (AFI) для списков управления доступом (ACL).
running_config
строка
Этот параметр используется только со статусом parsed.
Значение этого параметра должно соответствовать выводу устройства IOS, полученному при выполнении команды sh access-list.
Состояние parsed считывает конфигурацию из параметра running_config и преобразует её в структурированные данные Ansible, согласно спецификации модуля ресурса, а затем возвращает значение в ключе parsed в результате.
state
строка
    Варианты:
  • merged ←
  • replaced
  • overridden
  • deleted
  • gathered
  • rendered
  • parsed
Состояние, в котором должна оставаться конфигурация
Состояния rendered, gathered и parsed не производят никаких изменений на устройстве.
Состояние rendered преобразует конфигурацию в config в платформенно-специфические команды CLI, которые будут возвращены в ключе rendered в результате. Для состояния rendered активное подключение к удалённому хосту не требуется.
Состояние gathered извлечёт текущую конфигурацию с устройства и преобразует её в структурированные данные в формате согласно спецификации аргументов модуля ресурса, а значение вернётся в ключе 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']


Авторы

  • Сумит Джаисвал (@justjais)

© 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/ios/ios_acls_module.html

Spec-Zone.ru

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