Модуль cisco.ios.ios_acls — Модуль ресурсов для настройки ACL.
Примечание
Этот модуль входит в коллекцию cisco.ios (версия 8.0.0).
Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install cisco.ios.
Чтобы использовать её в плейбуке, укажите: cisco.ios.ios_acls.
Добавлен в cisco.ios 1.0.0
Обзор
- Этот модуль настраивает и управляет именованными или пронумерованными ACL на платформах IOS.
Псевдонимы: acls
Параметры
Параметр | Комментарии |
|---|---|
config list / elements=dictionary | Список параметров конфигурации ACL. |
|
acls list / elements=dictionary |
Список атрибутов списков контроля доступа (ACL). |
|
aces list / elements=dictionary |
Записи внутри ACL. |
|
destination dictionary |
Укажите назначение пакета. |
|
address string |
Адрес узла для сопоставления или любой отдельный адрес узла. |
|
any boolean |
Сопоставить любой исходный адрес. Варианты:
|
|
host string |
Один целевой хост |
|
object_group string |
Целевая группа сетевых объектов |
|
port_protocol dictionary |
Укажите целевой порт вместе с протоколом. Примечание. Действительно с параметрами протокола TCP/UDP |
|
eq string |
Сопоставлять только пакеты с заданным номером порта. |
|
gt string |
Сопоставлять только пакеты с большим номером порта. |
|
lt string |
Сопоставлять только пакеты с меньшим номером порта. |
|
neq string |
Сопоставлять только пакеты, не имеющие заданного номера порта. |
|
range dictionary |
Группа портов. |
|
end integer |
Укажите конец диапазона портов. |
|
start integer |
Укажите начало диапазона портов. |
|
wildcard_bits string |
Биты маски для адреса назначения, действительны для адреса IPV4. |
|
dscp string |
Сопоставлять пакеты с заданным значением DSCP. |
|
enable_fragments boolean |
Включить фрагменты, отличные от начальных. Варианты:
|
|
evaluate string |
Оценить список доступа |
|
fragments string |
Проверить фрагменты, отличные от начальных. Этот параметр УСТАРЕЛ и заменен на enable_fragments, который принимает bool в качестве входных данных. Этот атрибут будет удален после 2024-01-01. |
|
grant string |
Укажите действие. Варианты:
|
|
log dictionary |
Регистрировать совпадения с этой записью. |
|
set boolean |
Включить регистрацию совпадений с этой записью Варианты:
|
|
user_cookie string |
Пользовательское cookie (максимум 64 символа) |
|
log_input dictionary |
Регистрировать совпадения с этой записью, включая входной интерфейс. |
|
set boolean |
Включить логирование совпадений для этой записи, включая входной интерфейс. Choices:
|
|
user_cookie string |
Пользовательское cookie (максимум 64 символа) |
|
option dictionary |
Сопоставлять пакеты с заданным значением параметров IP. Действительно только для именованных ACL. |
|
add_ext boolean |
Сопоставлять пакеты с параметром расширения адреса (147). Choices:
|
|
any_options boolean |
Сопоставлять пакеты с ЛЮБЫМ параметром. Choices:
|
|
com_security boolean |
Сопоставлять пакеты с параметром коммерческой безопасности (134). Choices:
|
|
dps boolean |
Сопоставлять пакеты с параметром динамического состояния пакета (151). Choices:
|
|
encode boolean |
Сопоставлять пакеты с параметром кодирования (15). Choices:
|
|
eool boolean |
Сопоставлять пакеты с параметром End of Options (0). Choices:
|
|
ext_ip boolean |
Сопоставлять пакеты с расширенным параметром IP (145). Choices:
|
|
ext_security boolean |
Сопоставлять пакеты с расширенным параметром безопасности (133). Choices:
|
|
finn boolean |
Сопоставлять пакеты с экспериментальным параметром управления потоком (205). Choices:
|
|
imitd boolean |
Сопоставлять пакеты с параметром описателя трафика IMI (144). Choices:
|
|
lsr boolean |
Сопоставлять пакеты с параметром Loose Source Route (131). Choices:
|
|
mtup boolean |
Сопоставлять пакеты с параметром MTU Probe (11). Choices:
|
|
mtur boolean |
Сопоставлять пакеты с параметром MTU Reply (12). Choices:
|
|
no_op boolean |
Сопоставлять пакеты с параметром No Operation (1). Choices:
|
|
nsapa boolean |
Сопоставлять пакеты с параметром NSAP Addresses (150). Choices:
|
|
record_route boolean |
Сопоставлять пакеты с параметром Record Route (7). Choices:
|
|
router_alert boolean |
Сопоставлять пакеты с параметром Router Alert (148). Choices:
|
|
sdb boolean |
Сопоставление пакетов с опцией выборочной направленной широковещательной рассылки (149). Choices:
|
|
security boolean |
Сопоставление пакетов с базовой опцией безопасности (130). Choices:
|
|
ssr boolean |
Сопоставление пакетов с опцией строгой маршрутизации источника (137). Choices:
|
|
stream_id boolean |
Сопоставление пакетов с опцией идентификатора потока (136). Choices:
|
|
timestamp boolean |
Сопоставление пакетов с опцией метки времени (68). Choices:
|
|
traceroute boolean |
Сопоставление пакетов с опцией трассировки маршрута (82). Choices:
|
|
ump boolean |
Сопоставление пакетов с опцией пакета многоадресной рассылки вверх по потоку (152). Choices:
|
|
visa boolean |
Сопоставление пакетов с экспериментальной опцией управления доступом (142). Choices:
|
|
zsu boolean |
Сопоставление пакетов с экспериментальной опцией измерения (10). Choices:
|
|
precedence string |
Сопоставление пакетов с заданным значением приоритета. |
|
protocol string |
Укажите протокол для сопоставления. Обратитесь к документации поставщика для получения допустимых значений. |
|
protocol_options dictionary |
тип протокола. |
|
ahp boolean |
Протокол заголовка аутентификации. Choices:
|
|
eigrp boolean |
Маршрутизирующий протокол Cisco EIGRP. Choices:
|
|
esp boolean |
Полезная нагрузка безопасности инкапсуляции. Choices:
|
|
gre boolean |
Тунелирование Cisco GRE. Choices:
|
|
hbh boolean |
Заголовок опций «по шагам». Действительно для IPV6 Choices:
|
|
icmp dictionary |
Протокол управления интернет-сообщениями. |
|
administratively_prohibited boolean |
Административно запрещено Choices:
|
|
alternate_address boolean |
Альтернативный адрес Choices:
|
|
conversion_error boolean |
Преобразование датаграмм Choices:
|
|
dod_host_prohibited boolean |
Хост запрещен Choices:
|
|
dod_net_prohibited boolean |
Сеть запрещена Choices:
|
|
echo boolean |
Эхо (ping) Choices:
|
|
echo_reply boolean |
Ответ эхо-запроса Choices:
|
|
general_parameter_problem boolean |
Проблема с параметрами Choices:
|
|
host_isolated boolean |
Хост изолирован Choices:
|
|
host_precedence_unreachable boolean |
Хост недоступен для приоритета Choices:
|
|
host_redirect boolean |
Перенаправление хоста Choices:
|
|
host_tos_redirect boolean |
Перенаправление хоста для TOS Choices:
|
|
host_tos_unreachable boolean |
Хост недоступен для TOS Choices:
|
|
host_unknown boolean |
Хост неизвестен Choices:
|
|
host_unreachable boolean |
Хост недоступен Choices:
|
|
information_reply boolean |
Ответы на запросы информации Choices:
|
|
information_request boolean |
Запросы информации Choices:
|
|
mask_reply boolean |
Ответы на запросы маски Choices:
|
|
mask_request boolean |
mask_request Choices:
|
|
mobile_redirect boolean |
Перенаправление мобильного хоста Choices:
|
|
net_redirect boolean |
Перенаправление сети Choices:
|
|
net_tos_redirect boolean |
Перенаправление сети для TOS Choices:
|
|
net_tos_unreachable boolean |
Сеть недоступна для TOS Choices:
|
|
net_unreachable boolean |
Сеть недоступна Choices:
|
|
network_unknown boolean |
Неизвестная сеть Choices:
|
|
no_room_for_option boolean |
Необходимо параметр, но места нет Choices:
|
|
option_missing boolean |
Необходимый параметр отсутствует Choices:
|
|
packet_too_big boolean |
Необходима фрагментация, но установлен флаг DF Choices:
|
|
parameter_problem boolean |
Все проблемы с параметрами Choices:
|
|
port_unreachable boolean |
Порт недоступен Choices:
|
|
precedence_unreachable boolean |
Превышен приоритет Choices:
|
|
protocol_unreachable boolean |
Протокол недоступен Choices:
|
|
reassembly_timeout boolean |
Превышено время сборки Choices:
|
|
redirect boolean |
Все перенаправления Choices:
|
|
router_advertisement boolean |
Объявления обнаружения маршрутизатора Choices:
|
|
router_solicitation boolean |
Запросы обнаружения маршрутизатора Choices:
|
|
source_quench boolean |
Заглушение источника Choices:
|
|
source_route_failed boolean |
Ошибка маршрута источника Choices:
|
|
time_exceeded boolean |
Все истечения времени Choices:
|
|
timestamp_reply boolean |
Ответы метки времени Choices:
|
|
timestamp_request boolean |
Запросы метки времени Choices:
|
|
traceroute boolean |
Трассировка маршрута Choices:
|
|
ttl_exceeded boolean |
Превышено время жизни (TTL) Choices:
|
|
unreachable boolean |
Все сообщения о недоступности Choices:
|
|
igmp dictionary |
Протокол сообщений шлюза Интернета. |
|
dvmrp boolean |
Протокол многоадресной маршрутизации с вектором расстояния (2) Choices:
|
|
host_query boolean |
Запрос членства IGMP (0) Choices:
|
|
mtrace_resp boolean |
Ответ трассировки многоадресной рассылки (7) Choices:
|
|
mtrace_route boolean |
Трассировка многоадресной рассылки (8) Choices:
|
|
pim boolean |
Протокол независимой многоадресной рассылки (3) Choices:
|
|
trace boolean |
Трассировка многоадресной рассылки (4) Choices:
|
|
v1host_report boolean |
Отчет о членстве IGMPv1 (1) Choices:
|
|
v2host_report boolean |
Отчет о членстве IGMPv2 (5) Choices:
|
|
v2leave_group boolean |
IGMPv2 Покинуть группу (6) Choices:
|
|
v3host_report boolean |
Отчет о членстве IGMPv3 (9) Choices:
|
|
ip boolean |
Любой протокол IP. Choices:
|
|
ipinip boolean |
Туннелирование IP в IP. Choices:
|
|
ipv6 boolean |
Любой IPv6. Choices:
|
|
nos boolean |
Туннелирование IP поверх IP, совместимое с KA9Q NOS. Choices:
|
|
ospf boolean |
Маршрутизирующий протокол OSPF. Choices:
|
|
pcp boolean |
Протокол сжатия полезной нагрузки. Choices:
|
|
pim boolean |
Независимый от протокола multicast. Choices:
|
|
protocol_number integer |
Номер протокола IP |
|
sctp boolean |
Протокол управления потоковой передачей. Choices:
|
|
tcp dictionary |
Сопоставление флагов пакетов TCP |
|
ack boolean |
Сопоставление по биту ACK Choices:
|
|
established boolean |
Сопоставление установленных соединений Choices:
|
|
fin boolean |
Сопоставление по биту FIN Choices:
|
|
psh boolean |
Сопоставление по биту PSH Choices:
|
|
rst boolean |
Сопоставление по биту RST Choices:
|
|
syn boolean |
Сопоставление по биту SYN Choices:
|
|
urg boolean |
Сопоставление по биту URG Choices:
|
|
udp boolean |
Протокол пользовательских дейтаграмм. Choices:
|
|
remarks list / elements=string |
Замечания/описание ACL. Атрибут remarks, используемый в ace с номером последовательности или без него, создаст замечания, которые будут размещены перед записью ace. Запись remarks, используемая в качестве единственного ключа в качестве параметра списка, создаст замечания, не относящиеся к ace; эти замечания будут размещены в конце всех записей ace для acl. Remarks обрабатывается как блок; при каждом обновлении remarks для ace все remarks аннулируются и добавляются обратно для сохранения порядка упомянутых remarks. Поскольку устройство удаляет все remarks после обновления ace, набор remarks будет повторно применен, что является ожидаемым поведением. |
|
sequence integer |
Номер последовательности для записи контроля доступа (ACE). Обратитесь к документации поставщика для допустимых значений. |
|
source dictionary |
Укажите источник пакета. |
|
address string |
Исходный сетевой адрес. |
|
any boolean |
Сопоставить любой исходный адрес. Choices:
|
|
host string |
Один исходный хост |
|
object_group string |
Группа объектов исходной сети |
|
port_protocol dictionary |
Укажите исходный порт вместе с протоколом. Примечание. Допустимо с параметрами протокола TCP/UDP |
|
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 |
Соответствие пакетам с максимальным надежным TOS (2). Варианты:
|
|
max_throughput boolean |
Соответствие пакетам с максимальной пропускной способностью TOS (4). Варианты:
|
|
min_delay boolean |
Соответствие пакетам с минимальной задержкой TOS (8). Варианты:
|
|
min_monetary_cost boolean |
Соответствие пакетам с минимальной стоимостью TOS (1). Варианты:
|
|
normal boolean |
Соответствие пакетам с нормальным 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 |
Укажите конец диапазона портов. |
|
start integer |
Укажите начало диапазона портов. |
|
acl_type string |
Тип ACL Примечание. Это обязательно и требуется для именованного ACL, но для нумерованного ACL это необязательно. Варианты:
|
|
name строка / обязательно |
Имя или номер ACL. |
|
afi строка / обязательно |
Индикатор семейства адресов (AFI) для списков управления доступом (ACL). Варианты:
|
running_config строка | Этот параметр используется только с состоянием parsed. Значение этого параметра должно быть выводом с устройства IOS, полученным при выполнении команды sh access-list. Состояние parsed считывает конфигурацию из параметра |
state строка | Состояние, в котором должна остаться конфигурация. Состояние merged — это состояние по умолчанию, которое объединяет конфигурацию want и have, но для модуля ACL, поскольку платформа IOS не допускает обновления ACE над существующей последовательностью ACE в ACL, аналогично тому, как модуль ресурса ACL выдаст ошибку в соответствующем сценарии, и допускается только добавление нового ACE над новой последовательностью при состоянии merge. Состояния rendered, gathered и parsed не выполняют никаких изменений на устройстве. Состояние rendered преобразует конфигурацию в параметре Состояние gathered извлечёт текущую конфигурацию с устройства и преобразует её в структурированные данные в формате, соответствующем argspec модуля ресурса, и значение будет возвращено в ключе gathered в результате. Состояние parsed считывает конфигурацию из параметра Состояние overridden, изменяет/добавляет определённые ACL, удаляет все остальные ACL. Состояние replaced, изменяет/добавляет только ACE определённых ACL. Оно не выполняет никаких других изменений на устройстве. Состояние deleted, удаляет только указанные ACL или все, если не указано. Варианты:
|
Примечания
Примечание
- Проверено на Cisco IOSXE версии 17.3 на CML.
- Поведение модуля не идемпотентно, когда не указана последовательность для ACE.
- Этот модуль работает с подключением
network_cli. См. https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html
Примеры
# Using merged
# Before state:
# -------------
#
# vios#sh running-config | section access-list
# ip access-list extended 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
source:
address: 192.168.3.0
wildcard_bits: 255.255.255.0
destination:
any: true
grant: permit
- grant: deny
protocol_options:
tcp:
ack: true
source:
host: 198.51.100.0
destination:
host: 198.51.110.0
port_protocol:
eq: telnet
- name: extended_acl_1
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:
- remarks:
- "remarks for extended ACL 1"
- "check ACL"
- 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
# Task Output
# -----------
#
# before:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: icmp
# 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: '100'
# afi: ipv4
# commands:
# - ip access-list extended 110
# - deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# - 30 permit icmp 192.168.3.0 255.255.255.0 any traceroute
# - ip access-list extended extended_acl_1
# - 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 standard std_acl
# - deny 192.168.1.20
# - deny 192.168.2.0 0.0.0.255
# - 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
# - remark remarks for extended ACL 1
# - remark check ACL
# - ipv6 access-list R1_TRAFFIC
# - deny tcp any eq www any eq telnet ack dscp af11
# after:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: icmp
# protocol_options:
# icmp:
# echo: true
# sequence: 10
# source:
# address: 192.0.2.0
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# - destination:
# host: 198.51.110.0
# port_protocol:
# eq: telnet
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 20
# source:
# host: 198.51.100.0
# - destination:
# any: true
# grant: permit
# protocol: icmp
# protocol_options:
# icmp:
# traceroute: true
# sequence: 30
# source:
# address: 0.0.0.0
# wildcard_bits: 255.255.255.0
# 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: tcp
# 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: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 20
# source:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# ttl:
# lt: 20
# - remarks:
# - remarks for extended ACL 1
# - check ACL
# 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: tcp
# 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: extended_acl_1
# - aces:
# - grant: deny
# sequence: 10
# source:
# host: 192.168.1.20
# - grant: deny
# sequence: 20
# source:
# address: 192.168.2.0
# wildcard_bits: 0.0.0.255
# acl_type: standard
# name: std_acl
# afi: ipv4
# - acls:
# - aces:
# - destination:
# any: true
# port_protocol:
# eq: telnet
# dscp: af11
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# name: R1_TRAFFIC
# afi: ipv6
# After state:
# ------------
#
# vios#sh running-config | section access-list
# ip access-list standard std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0 0.0.0.255
# ip access-list extended 100
# 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
# ip access-list extended 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
# ip access-list extended 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
# ip access-list extended 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
# sequence 10 deny tcp any eq www any eq telnet ack dscp af11
# vios#show running-config | include ip(v6)* access-list|remark
# ip access-list standard std_acl
# ip access-list extended extended_acl_1
# ip access-list extended 110
# ip access-list extended 123
# remark remarks for extended ACL 1
# remark check ACL
# ipv6 access-list R1_TRAFFIC
# Using merged (update existing ACE - will fail)
# Before state:
# -------------
#
# vios#sh running-config | section access-list
# ip access-list extended 100
# 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: 100
aces:
- sequence: 10
protocol_options:
icmp:
traceroute: true
state: merged
# After state:
# ------------
#
# Play Execution fails, with error:
# Cannot update existing sequence 10 of ACLs 100 with state merged.
# Please use state replaced or overridden.
# Using replaced
# Before state:
# -------------
#
# vios#sh running-config | section access-list
# ip access-list standard std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0 0.0.0.255
# ip access-list extended 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
# ip access-list extended 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
# ip access-list extended R1_TRAFFIC
# 10 deny tcp any eq www any eq telnet ack dscp af11
# ip access-list extended 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
- 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
# Task Output
# -----------
#
# before:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: icmp
# protocol_options:
# icmp:
# traceroute: true
# sequence: 10
# source:
# address: 192.0.2.0
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# - destination:
# host: 198.51.110.0
# port_protocol:
# eq: telnet
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 20
# source:
# host: 198.51.100.0
# 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: tcp
# 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: tcp
# 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:
# any: true
# port_protocol:
# eq: telnet
# dscp: af11
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# acl_type: extended
# name: R1_TRAFFIC
# - aces:
# - grant: deny
# sequence: 10
# source:
# host: 192.168.1.200
# - grant: deny
# sequence: 20
# source:
# address: 192.168.2.0
# wildcard_bits: 0.0.0.255
# acl_type: standard
# name: std_acl
# - aces:
# - destination:
# address: 192.0.3.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# grant: deny
# option:
# traceroute: true
# protocol: tcp
# 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
# afi: ipv4
# commands:
# - ip access-list extended 110
# - no 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
# - no 20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# - 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:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# syn: 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: tcp
# 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: tcp
# 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: 198.51.110.0
# port_protocol:
# eq: telnet
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# syn: true
# sequence: 20
# source:
# address: 198.51.100.0
# port_protocol:
# eq: telnet
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# acl_type: extended
# name: '150'
# - aces:
# - destination:
# any: true
# port_protocol:
# eq: telnet
# dscp: af11
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# acl_type: extended
# name: R1_TRAFFIC
# - aces:
# - grant: deny
# sequence: 10
# source:
# host: 192.168.1.200
# - grant: deny
# sequence: 20
# source:
# address: 192.168.2.0
# wildcard_bits: 0.0.0.255
# acl_type: standard
# name: std_acl
# - aces:
# - destination:
# address: 192.0.3.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# grant: deny
# option:
# traceroute: true
# protocol: tcp
# 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
# afi: ipv4
# After state:
# -------------
#
# vios#sh access-lists
# ip access-list standard std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0 0.0.0.255
# 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 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
# 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
# ip access-list extended 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
# sequence 10 deny tcp any eq www any eq telnet ack dscp af11
# Using replaced - example remarks specific
# Before state:
# -------------
#
# vios#show running-config | section access-list
# ip access-list extended TEST
# 10 remark FIRST REMARK BEFORE LINE 10
# 10 remark ============
# 10 remark ALLOW HOST FROM TEST 10
# 10 permit ip host 1.1.1.1 any
# 20 remark FIRST REMARK BEFORE LINE 20
# 20 remark ============
# 20 remark ALLOW HOST remarks AFTER LINE 20
# 20 permit ip host 2.2.2.2 any
# 30 remark FIRST REMARK BEFORE LINE 30
# 30 remark ============
# 30 remark ALLOW HOST remarks AFTER LINE 30
# 30 permit ip host 3.3.3.3 any
- name: Replace remarks of ace with sequence 10
# check_mode: true
cisco.ios.ios_acls:
state: replaced
config:
- acls:
- aces:
- destination:
any: true
grant: permit
protocol: ip
remarks:
- The new first remarks before 10
- ============new
- The new second remarks before 10
sequence: 10
source:
host: 1.1.1.1
- destination:
any: true
grant: permit
protocol: ip
remarks:
- FIRST REMARK BEFORE LINE 20
- ============
- ALLOW HOST remarks AFTER LINE 20
sequence: 20
source:
host: 2.2.2.2
- destination:
any: true
grant: permit
protocol: ip
remarks:
- FIRST REMARK BEFORE LINE 30
- ============
- ALLOW HOST remarks AFTER LINE 30
sequence: 30
source:
host: 3.3.3.3
acl_type: extended
name: TEST
afi: ipv4
# Task Output
# -----------
#
# before:
# - acls:
# - aces:
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE LINE 10
# - ===========1=
# - ALLOW HOST FROM TEST 10
# sequence: 10
# source:
# host: 1.1.1.1
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE LINE 20
# - ============
# - ALLOW HOST remarks AFTER LINE 20
# sequence: 20
# source:
# host: 2.2.2.2
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE LINE 30
# - ============
# - ALLOW HOST remarks AFTER LINE 30
# sequence: 30
# source:
# host: 3.3.3.3
# acl_type: extended
# name: TEST
# afi: ipv4
# commands:
# - ip access-list extended TEST
# - no 10 remark
# - 10 remark The new first remarks before 10
# - 10 remark ============new
# - 10 remark The new second remarks before 10
# after:
# - acls:
# - aces:
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - The new first remarks before 10
# - ============new
# - The new second remarks before 10
# sequence: 10
# source:
# host: 1.1.1.1
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE LINE 20
# - ============
# - ALLOW HOST remarks AFTER LINE 20
# sequence: 20
# source:
# host: 2.2.2.2
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE LINE 30
# - ============
# - ALLOW HOST remarks AFTER LINE 30
# sequence: 30
# source:
# host: 3.3.3.3
# acl_type: extended
# name: TEST
# afi: ipv4
# After state:
# -------------
#
# foo#show running-config | section access-list
# ip access-list extended TEST
# 10 remark The new first remarks before 10
# 10 remark ============new
# 10 remark The new second remarks before 10
# 10 permit ip host 1.1.1.1 any
# 20 remark FIRST REMARK BEFORE LINE 20
# 20 remark ============
# 20 remark ALLOW HOST remarks AFTER LINE 20
# 20 permit ip host 2.2.2.2 any
# 30 remark FIRST REMARK BEFORE LINE 30
# 30 remark ============
# 30 remark ALLOW HOST remarks AFTER LINE 30
# 30 permit ip host 3.3.3.3 any
# Using replaced - example remarks specific on targeted sequence
# Before state:
# -------------
#
# vios#show running-config | section access-list
# ip access-list extended TEST
# 10 permit ip host 1.1.1.1 any
# 20 remark FIRST REMARK BEFORE LINE 20
# 20 remark ============
# 20 remark ALLOW HOST remarks AFTER LINE 20
# 20 permit ip host 2.2.2.2 any
# 30 remark FIRST REMARK BEFORE LINE 30
# 30 remark ============
# 30 remark ALLOW HOST remarks AFTER LINE 30
# 30 permit ip host 3.3.3.3 any
- name: Replace remarks of ace with sequence 10
# check_mode: true
cisco.ios.ios_acls:
state: replaced
config:
- acls:
- aces:
- destination:
any: true
grant: permit
protocol: ip
remarks:
- The new first remarks before 10
- ============new
- The new second remarks before 10
sequence: 10
source:
host: 1.1.1.1
- destination:
any: true
grant: permit
protocol: ip
remarks:
- FIRST REMARK BEFORE LINE 20
- ============
- ALLOW HOST remarks AFTER LINE 20
sequence: 20
source:
host: 2.2.2.2
- destination:
any: true
grant: permit
protocol: ip
remarks:
- FIRST REMARK BEFORE LINE 30
- ============
- ALLOW HOST remarks AFTER LINE 30
sequence: 30
source:
host: 3.3.3.3
acl_type: extended
name: TEST
afi: ipv4
# Task Output
# -----------
#
# before:
# - acls:
# - aces:
# - destination:
# any: true
# grant: permit
# protocol: ip
# sequence: 10
# source:
# host: 1.1.1.1
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE LINE 20
# - ============
# - ALLOW HOST remarks AFTER LINE 20
# sequence: 20
# source:
# host: 2.2.2.2
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE LINE 30
# - ============
# - ALLOW HOST remarks AFTER LINE 30
# sequence: 30
# source:
# host: 3.3.3.3
# acl_type: extended
# name: TEST
# afi: ipv4
# commands:
# - ip access-list extended TEST
# - 10 remark The new first remarks before 10
# - 10 remark ============new
# - 10 remark The new second remarks before 10
# after:
# - acls:
# - aces:
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - The new first remarks before 10
# - ============new
# - The new second remarks before 10
# sequence: 10
# source:
# host: 1.1.1.1
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE LINE 20
# - ============
# - ALLOW HOST remarks AFTER LINE 20
# sequence: 20
# source:
# host: 2.2.2.2
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE LINE 30
# - ============
# - ALLOW HOST remarks AFTER LINE 30
# sequence: 30
# source:
# host: 3.3.3.3
# acl_type: extended
# name: TEST
# afi: ipv4
# After state:
# -------------
#
# foo#show running-config | section access-list
# ip access-list extended TEST
# 10 remark The new first remarks before 10
# 10 remark ============new
# 10 remark The new second remarks before 10
# 10 permit ip host 1.1.1.1 any
# 20 remark FIRST REMARK BEFORE LINE 20
# 20 remark ============
# 20 remark ALLOW HOST remarks AFTER LINE 20
# 20 permit ip host 2.2.2.2 any
# 30 remark FIRST REMARK BEFORE LINE 30
# 30 remark ============
# 30 remark ALLOW HOST remarks AFTER LINE 30
# 30 permit ip host 3.3.3.3 any
# Using overridden
# Before state:
# -------------
#
# vios#sh access-lists
# ip access-list standard std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0 0.0.0.255
# ip access-list extended 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
# ip access-list extended 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
# ip access-list extended R1_TRAFFIC
# 10 deny tcp any eq www any eq telnet ack dscp af11
# ip access-list extended 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
- 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
# Task Output
# -----------
#
# before:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: icmp
# protocol_options:
# icmp:
# traceroute: true
# sequence: 10
# source:
# address: 192.0.2.0
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# - destination:
# host: 198.51.110.0
# port_protocol:
# eq: telnet
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 20
# source:
# host: 198.51.100.0
# 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: tcp
# 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: tcp
# 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:
# any: true
# port_protocol:
# eq: telnet
# dscp: af11
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# acl_type: extended
# name: R1_TRAFFIC
# - aces:
# - grant: deny
# sequence: 10
# source:
# host: 192.168.1.200
# - grant: deny
# sequence: 20
# source:
# address: 192.168.2.0
# wildcard_bits: 0.0.0.255
# acl_type: standard
# name: std_acl
# - aces:
# - destination:
# address: 192.0.3.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# grant: deny
# option:
# traceroute: true
# protocol: tcp
# 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
# afi: ipv4
# commands:
# - ip access-list extended 110
# - no 20 deny tcp host 198.51.100.0 host 198.51.110.0 eq telnet ack
# - no 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 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
# - 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
# - no ip access-list extended 123
# - no ip access-list extended R1_TRAFFIC
# - no ip access-list standard std_acl
# - no ip access-list extended test
# after:
# - acls:
# - aces:
# - destination:
# address: 198.51.110.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 20
# source:
# address: 198.51.100.0
# port_protocol:
# eq: telnet
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# acl_type: extended
# name: '110'
# - aces:
# - destination:
# address: 198.51.110.0
# port_protocol:
# eq: telnet
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# syn: true
# sequence: 10
# source:
# address: 198.51.100.0
# port_protocol:
# eq: telnet
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# acl_type: extended
# name: '150'
# afi: ipv4
# After state:
# -------------
#
# vios#sh running-config | section access-list
# 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
# 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
# Using overridden - example remarks specific on multiple sequence
# Before state:
# -------------
#
# vios#show running-config | section access-list
# ip access-list extended TEST
# 10 remark FIRST REMARK BEFORE SEQUENCE 10
# 10 remark ============
# 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE
# 20 remark FIRST REMARK BEFORE SEQUENCE 20
# 20 remark ============
# 20 remark ALLOW HOST FROM SEQUENCE 20
# 20 permit ip host 1.1.1.1 any
# 30 remark FIRST REMARK BEFORE SEQUENCE 30
# 30 remark ============
# 30 remark ALLOW HOST FROM SEQUENCE 30
# 30 permit ip host 2.2.2.2 any
# 40 remark FIRST REMARK BEFORE SEQUENCE 40
# 40 remark ============
# 40 remark ALLOW NEW HOST FROM SEQUENCE 40
# 40 permit ip host 3.3.3.3 any
# remark Remark not specific to sequence
# remark ============
# remark End Remarks
# ip access-list extended test_acl
# 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
# ip access-list extended 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
# ip access-list extended 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
# ipv6 access-list R1_TRAFFIC
# sequence 10 deny tcp any eq www any eq telnet ack dscp af11
- name: Override remarks and ace configurations
cisco.ios.ios_acls:
config:
- afi: ipv4
acls:
- name: TEST
acl_type: extended
aces:
- sequence: 10
remarks:
- "FIRST REMARK BEFORE SEQUENCE 10"
- "============"
- "REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE"
grant: permit
protocol: ip
source:
host: 1.1.1.1
destination:
any: true
- sequence: 20
remarks:
- "FIRST REMARK BEFORE SEQUENCE 20"
- "============"
- "ALLOW HOST FROM SEQUENCE 20"
grant: permit
protocol: ip
source:
host: 192.168.0.1
destination:
any: true
- sequence: 30
remarks:
- "FIRST REMARK BEFORE SEQUENCE 30"
- "============"
- "ALLOW HOST FROM SEQUENCE 30 updated"
grant: permit
protocol: ip
source:
host: 2.2.2.2
destination:
any: true
- sequence: 40
remarks:
- "FIRST REMARK BEFORE SEQUENCE 40"
- "============"
- "ALLOW NEW HOST FROM SEQUENCE 40"
grant: permit
protocol: ip
source:
host: 3.3.3.3
destination:
any: true
- remarks:
- "Remark not specific to sequence"
- "============"
- "End Remarks 1"
state: overridden
# Task Output
# -----------
#
# before:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: icmp
# 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: tcp
# 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: tcp
# 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:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE SEQUENCE 20
# - ============
# - ALLOW HOST FROM SEQUENCE 20
# sequence: 20
# source:
# host: 1.1.1.1
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE SEQUENCE 30
# - ============
# - ALLOW HOST FROM SEQUENCE 30
# sequence: 30
# source:
# host: 2.2.2.2
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE SEQUENCE 40
# - ============
# - ALLOW NEW HOST FROM SEQUENCE 40
# sequence: 40
# source:
# host: 3.3.3.3
# - remarks:
# - FIRST REMARK BEFORE SEQUENCE 10
# - ============
# - REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE
# sequence: 10
# - remarks:
# - Remark not specific to sequence
# - ============
# - End Remarks
# acl_type: extended
# name: TEST
# - aces:
# - destination:
# address: 192.0.3.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# grant: deny
# option:
# traceroute: true
# protocol: tcp
# 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: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# name: R1_TRAFFIC
# afi: ipv6
# commands:
# - no ipv6 access-list R1_TRAFFIC
# - ip access-list extended TEST
# - no 10 # removes all remarks and ace entry for sequence 10
# - no 20 permit ip host 1.1.1.1 any # removing the ace automatically removes the remarks
# - no 30 remark # just remove remarks for sequence 30
# - no remark # remove all remarks at end of acl, that has no sequence
# - 10 remark FIRST REMARK BEFORE SEQUENCE 10
# - 10 remark ============
# - 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE
# - 10 permit ip host 1.1.1.1 any
# - 20 remark FIRST REMARK BEFORE SEQUENCE 20
# - 20 remark ============
# - 20 remark ALLOW HOST FROM SEQUENCE 20
# - 20 permit ip host 192.168.0.1 any
# - 30 remark FIRST REMARK BEFORE SEQUENCE 30
# - 30 remark ============
# - 30 remark ALLOW HOST FROM SEQUENCE 30 updated
# - remark Remark not specific to sequence
# - remark ============
# - remark End Remarks 1
# - no ip access-list extended 110
# - no ip access-list extended 123
# - no ip access-list extended test_acl
# after:
# - acls:
# - aces:
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE SEQUENCE 10
# - ============
# - REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE
# sequence: 10
# source:
# host: 1.1.1.1
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE SEQUENCE 20
# - ============
# - ALLOW HOST FROM SEQUENCE 20
# sequence: 20
# source:
# host: 192.168.0.1
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE SEQUENCE 30
# - ============
# - ALLOW HOST FROM SEQUENCE 30 updated
# sequence: 30
# source:
# host: 2.2.2.2
# - destination:
# any: true
# grant: permit
# protocol: ip
# remarks:
# - FIRST REMARK BEFORE SEQUENCE 40
# - ============
# - ALLOW NEW HOST FROM SEQUENCE 40
# sequence: 40
# source:
# host: 3.3.3.3
# - remarks:
# - Remark not specific to sequence
# - ============
# - End Remarks 1
# acl_type: extended
# name: TEST
# afi: ipv4
# After state:
# -------------
#
# foo#show running-config | section access-list
# ip access-list extended TEST
# 10 remark FIRST REMARK BEFORE SEQUENCE 10
# 10 remark ============
# 10 remark REMARKS FOR SEQUENCE 10 NO FOLLOWING ACE
# 10 permit ip host 1.1.1.1 any
# 20 remark FIRST REMARK BEFORE SEQUENCE 20
# 20 remark ============
# 20 remark ALLOW HOST FROM SEQUENCE 20
# 20 permit ip host 192.168.0.1 any
# 30 remark FIRST REMARK BEFORE SEQUENCE 30
# 30 remark ============
# 30 remark ALLOW HOST FROM SEQUENCE 30 updated
# 30 permit ip host 2.2.2.2 any
# 40 remark FIRST REMARK BEFORE SEQUENCE 40
# 40 remark ============
# 40 remark ALLOW NEW HOST FROM SEQUENCE 40
# 40 permit ip host 3.3.3.3 any
# remark Remark not specific to sequence
# remark ============
# remark End Remarks 1
# Using deleted - delete ACL(s)
# Before state:
# -------------
#
# vios#sh access-lists
# ip access-list standard std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0 0.0.0.255
# ip access-list extended 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
# ip access-list extended 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
# ip access-list extended extended_acl_1
# 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
- name: "Delete ACLs (Note: This won't delete the all configured ACLs)"
cisco.ios.ios_acls:
config:
- afi: ipv4
acls:
- name: extended_acl_1
acl_type: extended
- name: 110
state: deleted
# Task Output
# -----------
#
# before:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: icmp
# protocol_options:
# icmp:
# traceroute: true
# sequence: 10
# source:
# address: 192.0.2.0
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# - destination:
# host: 198.51.110.0
# port_protocol:
# eq: telnet
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 20
# source:
# host: 198.51.100.0
# 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: tcp
# 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: tcp
# 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:
# - grant: deny
# sequence: 10
# source:
# host: 192.168.1.200
# - grant: deny
# sequence: 20
# source:
# address: 192.168.2.0
# wildcard_bits: 0.0.0.255
# acl_type: standard
# name: std_acl
# - aces:
# - destination:
# address: 192.0.3.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# grant: deny
# option:
# traceroute: true
# protocol: tcp
# 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: extended_acl_1
# afi: ipv4
# commands:
# - no ip access-list extended 110
# - no ip access-list extended extended_acl_1
# after:
# - acls:
# - aces:
# - destination:
# address: 198.51.101.0
# port_protocol:
# eq: telnet
# wildcard_bits: 0.0.0.255
# grant: deny
# protocol: tcp
# 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: tcp
# 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:
# - grant: deny
# sequence: 10
# source:
# host: 192.168.1.200
# - grant: deny
# sequence: 20
# source:
# address: 192.168.2.0
# wildcard_bits: 0.0.0.255
# acl_type: standard
# name: std_acl
# afi: ipv4
# After state:
# -------------
#
# vios#sh running-config | section access-list
# ip access-list standard std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0 0.0.0.255
# ip access-list extended 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
# Using deleted - delete ACLs based on AFI
# Before state:
# -------------
#
# vios#sh running-config | section access-list
# ip access-list standard std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0 0.0.0.255
# ip access-list extended 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
# ip access-list extended 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
# ip access-list extended 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
# sequence 10 deny tcp any eq www any eq telnet ack dscp af11
- name: "Delete ACLs based on AFI (Note: This won't delete the all configured ACLs)"
cisco.ios.ios_acls:
config:
- afi: ipv4
state: deleted
# Task Output
# -----------
#
# before:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: icmp
# protocol_options:
# icmp:
# traceroute: true
# sequence: 10
# source:
# address: 192.0.2.0
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# - destination:
# host: 198.51.110.0
# port_protocol:
# eq: telnet
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 20
# source:
# host: 198.51.100.0
# 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: tcp
# 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: tcp
# 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:
# - grant: deny
# sequence: 10
# source:
# host: 192.168.1.200
# - grant: deny
# sequence: 20
# source:
# address: 192.168.2.0
# wildcard_bits: 0.0.0.255
# acl_type: standard
# name: std_acl
# - aces:
# - destination:
# address: 192.0.3.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# grant: deny
# option:
# traceroute: true
# protocol: tcp
# 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
# afi: ipv4
# - acls:
# - aces:
# - destination:
# any: true
# port_protocol:
# eq: telnet
# dscp: af11
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# name: R1_TRAFFIC
# afi: ipv6
# commands:
# - no ip access-list extended 110
# - no ip access-list extended 123
# - no ip access-list standard std_acl
# - no ip access-list extended test
# after:
# - acls:
# - aces:
# - destination:
# any: true
# port_protocol:
# eq: telnet
# dscp: af11
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# name: R1_TRAFFIC
# afi: ipv6
# After state:
# -------------
#
# vios#sh running-config | section access-list
# ipv6 access-list R1_TRAFFIC
# sequence 10 deny tcp any eq www any eq telnet ack dscp af11
# Using deleted - delete all ACLs
# Before state:
# -------------
#
# vios#sh access-lists
# ip access-list standard std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0 0.0.0.255
# ip access-list extended 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
# ip access-list extended 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
# ip access-list extended 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
# sequence 10 deny tcp any eq www any eq telnet ack dscp af11
- name: Delete ALL of configured ACLs
cisco.ios.ios_acls:
state: deleted
# Task Output
# -----------
#
# before:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: icmp
# protocol_options:
# icmp:
# traceroute: true
# sequence: 10
# source:
# address: 192.0.2.0
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# - destination:
# host: 198.51.110.0
# port_protocol:
# eq: telnet
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 20
# source:
# host: 198.51.100.0
# 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: tcp
# 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: tcp
# 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:
# - grant: deny
# sequence: 10
# source:
# host: 192.168.1.200
# - grant: deny
# sequence: 20
# source:
# address: 192.168.2.0
# wildcard_bits: 0.0.0.255
# acl_type: standard
# name: std_acl
# - aces:
# - destination:
# address: 192.0.3.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# grant: deny
# option:
# traceroute: true
# protocol: tcp
# 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
# afi: ipv4
# - acls:
# - aces:
# - destination:
# any: true
# port_protocol:
# eq: telnet
# dscp: af11
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# name: R1_TRAFFIC
# afi: ipv6
# commands:
# - 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: []
# After state:
# -------------
#
# vios#sh running-config | section access-list
# Using gathered
# Before state:
# -------------
#
# vios#sh access-lists
# ip access-list standard std_acl
# 10 deny 192.168.1.200
# 20 deny 192.168.2.0 0.0.0.255
# ip access-list extended 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
# ip access-list extended 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
# ip access-list extended 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
# sequence 10 deny tcp any eq www any eq telnet ack dscp af11
- name: Gather ACLs configuration from target device
cisco.ios.ios_acls:
state: gathered
# Module Execution Result:
# ------------------------
#
# before:
# - acls:
# - aces:
# - destination:
# address: 192.0.3.0
# wildcard_bits: 0.0.0.255
# dscp: ef
# grant: deny
# protocol: icmp
# protocol_options:
# icmp:
# traceroute: true
# sequence: 10
# source:
# address: 192.0.2.0
# wildcard_bits: 0.0.0.255
# ttl:
# eq: 10
# - destination:
# host: 198.51.110.0
# port_protocol:
# eq: telnet
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 20
# source:
# host: 198.51.100.0
# 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: tcp
# 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: tcp
# 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:
# - grant: deny
# sequence: 10
# source:
# host: 192.168.1.200
# - grant: deny
# sequence: 20
# source:
# address: 192.168.2.0
# wildcard_bits: 0.0.0.255
# acl_type: standard
# name: std_acl
# - aces:
# - destination:
# address: 192.0.3.0
# port_protocol:
# eq: www
# wildcard_bits: 0.0.0.255
# grant: deny
# option:
# traceroute: true
# protocol: tcp
# 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
# afi: ipv4
# - acls:
# - aces:
# - destination:
# any: true
# port_protocol:
# eq: telnet
# dscp: af11
# grant: deny
# protocol: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# name: R1_TRAFFIC
# afi: ipv6
# Using rendered
- name: Render the provided configuration into platform specific configuration lines
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: tcp
# protocol_options:
# tcp:
# ack: true
# sequence: 10
# source:
# any: true
# port_protocol:
# eq: www
# name: R1_TRAFFIC
# afi: ipv6
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
Ключ | Описание |
|---|---|
after словарь | Результирующая конфигурация после выполнения модуля. Возвращается: при изменении Пример: |
before словарь | Конфигурация до выполнения модуля. Возвращается: когда state — Пример: |
commands список / элементы=строка | Набор команд, отправленных на удалённое устройство. Возвращается: когда state — Пример: |
gathered список / элементы=строка | Факты о сетевом ресурсе, собранные с удалённого устройства в виде структурированных данных. Возвращается: когда state — Пример: |
parsed список / элементы=строка | Родная конфигурация устройства, предоставленная в параметре running_config, проанализированная в структурированные данные в соответствии с argspec модуля. Возвращается: когда state — Пример: |
rendered список / элементы=строка | Предоставленная конфигурация в задаче, представленная в формате командной строки устройства (оффлайн). Возвращается: когда state — Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/cisco/ios/ios_acls_module.html