arista.eos.eos_acls – Модуль ресурсов ACL
Примечание
Этот плагин входит в коллекцию arista.eos (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install arista.eos.
Для использования в книге задач укажите: arista.eos.eos_acls.
Новый в версии 1.0.0: модуля arista.eos
Обзор
- Этот модуль управляет атрибутами списков доступа IP для интерфейсов Arista EOS.
Примечание
Этот модуль имеет соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||||||
|---|---|---|---|---|---|---|---|---|
| config список / элементы=словарь | Словарь параметров списка IP-списка доступа | |||||||
| acls список / элементы=словарь | Список списков управления доступом (ACL). | |||||||
| aces список / элементы=словарь | Фильтрация данных | |||||||
| destination словарь | Адрес назначения пакета | |||||||
| address строка | Точка-десятичная запись IP-адреса | |||||||
| any логическое |
| Правило соответствует всем адресам источника | ||||||
| host строка | IP-адрес хоста | |||||||
| port_protocol словарь | Укажите порт/протокол назначения вместе с оператором . (вместе с tcp/udp). | |||||||
| subnet_address строка | Адрес подсети | |||||||
| wildcard_bits строка | Биты маски источника | |||||||
| fragment_rules логическое |
| Добавить правила фрагментации | ||||||
| fragments логическое |
| Сопоставление пакетов фрагментов, не являющихся головными | ||||||
| grant строка |
| Действие, которое будет применено к правилу | ||||||
| hop_limit словарь | Значение ограничения переходов. | |||||||
| line строка | Для сбора фактов, любой ACE, который не был полностью проанализирован, будет отображаться как значение этого атрибута. псевдонимы: ace | |||||||
| log логическое |
| Вести журнал совпадений по этому правилу | ||||||
| protocol строка | Укажите протокол для сопоставления. Обратитесь к документации поставщика для получения допустимых значений. | |||||||
| protocol_options словарь | Все возможные подварианты для выбранного протокола. | |||||||
| icmp словарь | Настройки протокола управления сообщениями Интернета. | |||||||
| administratively_prohibited логическое |
| Административно запрещено | ||||||
| alternate_address логическое |
| Альтернативный адрес | ||||||
| conversion_error логическое |
| Преобразование датаграммы | ||||||
| dod_host_prohibited логическое |
| Запрещенный хост | ||||||
| dod_net_prohibited логическое |
| Запрещенная сеть | ||||||
| echo логическое |
| Эхо (ping) | ||||||
| echo_reply логическое |
| Ответ эхо | ||||||
| general_parameter_problem логическое |
| Проблема с параметром | ||||||
| host_isolated логическое |
| Хост изолирован | ||||||
| host_precedence_unreachable логическое |
| Хост недоступен для приоритета | ||||||
| host_redirect логическое |
| Переадресация хоста | ||||||
| host_tos_redirect логическое |
| Переадресация хоста для TOS | ||||||
| host_tos_unreachable логическое |
| Хост недоступен для TOS | ||||||
| host_unknown логическое |
| Хост неизвестен | ||||||
| host_unreachable логическое |
| Хост недоступен | ||||||
| information_reply логическое |
| Ответы с информацией | ||||||
| information_request логическое |
| Запросы информации | ||||||
| mask_reply boolean |
| Маскировка ответов | ||||||
| mask_request boolean |
| Маскировка запросов | ||||||
| message_code integer | Код сообщения ICMP | |||||||
| message_num integer | Номер типа сообщения ICMP. | |||||||
| message_type integer | Тип сообщения ICMP | |||||||
| 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 |
| Пакет слишком большой (требуется фрагментация) | ||||||
| parameter_problem boolean |
| Проблемы с параметрами | ||||||
| port_unreachable boolean |
| Порт недоступен | ||||||
| precedence_unreachable boolean |
| Превышен приоритет | ||||||
| protocol_unreachable boolean |
| Протокол недоступен | ||||||
| reassembly_timeout boolean |
| Таймаут повторной сборки | ||||||
| redirect boolean |
| Все перенаправления | ||||||
| router_advertisement boolean |
| Объявления о маршрутизаторах | ||||||
| router_solicitation boolean |
| Запросы о маршрутизаторах | ||||||
| source_quench boolean |
| Заглушение источника | ||||||
| source_route_failed boolean |
| Сбой маршрута источника | ||||||
| time_exceeded boolean |
| Все превышения времени | ||||||
| timestamp_reply boolean |
| Ответы с метками времени | ||||||
| timestamp_request boolean |
| Запросы с метками времени | ||||||
| traceroute boolean |
| Traceroute | ||||||
| ttl_exceeded boolean |
| Превышен TTL | ||||||
| unreachable boolean |
| Все недоступности | ||||||
| icmpv6 dictionary | Параметры для icmpv6. | |||||||
| address_unreachable boolean |
| Адрес недоступен | ||||||
| beyond_scope boolean |
| beyond_scope | ||||||
| echo_reply boolean |
| echo_reply | ||||||
| echo_request boolean |
| echo request | ||||||
| erroneous_header boolean |
| ошибочный заголовок | ||||||
| fragment_reassembly_exceeded boolean |
| fragment_reassembly_exceeded | ||||||
| hop_limit_exceeded boolean |
| предел переходов превышен | ||||||
| neighbor_advertisement boolean |
| сообщение о соседях | ||||||
| neighbor_solicitation boolean |
| neighbor_solicitation | ||||||
| no_admin boolean |
| нет администратора | ||||||
| no_route boolean |
| маршрута нет | ||||||
| packet_too_big boolean |
| пакет слишком большой | ||||||
| parameter_problem boolean |
| проблема с параметрами | ||||||
| port_unreachable boolean |
| порт недоступен | ||||||
| redirect_message boolean |
| сообщение перенаправления | ||||||
| reject_route boolean |
| отклонить маршрут | ||||||
| router_advertisement boolean |
| router_advertisement | ||||||
| router_solicitation boolean |
| router_solicitation | ||||||
| source_address_failed boolean |
| source_address_failed | ||||||
| source_routing_error boolean |
| ошибка маршрутизации источника | ||||||
| time_exceeded boolean |
| время истекло | ||||||
| unreachable boolean |
| недоступен | ||||||
| unrecognized_ipv6_option boolean |
| неизвестный параметр IPv6 | ||||||
| unrecognized_next_header boolean |
| неизвестный следующий заголовок | ||||||
| ip dictionary | Интернет-протокол. | |||||||
| nexthop_group string | Имя группы nexthop. | |||||||
| ipv6 dictionary | Протокол IPv6. | |||||||
| nexthop_group string | Имя группы nexthop. | |||||||
| tcp dictionary | Параметры протокола tcp. | |||||||
| flags dictionary | Сопоставление флагов пакетов TCP | |||||||
| ack boolean |
| Сопоставление бита ACK | ||||||
| established boolean |
| Сопоставление установленных соединений | ||||||
| fin boolean |
| Сопоставление бита FIN | ||||||
| psh boolean |
| Соответствие биту PSH | ||||||
| rst boolean |
| Соответствие биту RST | ||||||
| syn boolean |
| Соответствие биту SYN | ||||||
| urg boolean |
| Соответствие биту URG | ||||||
| remark string | Укажите комментарий | |||||||
| sequence integer | Порядковый номер для упорядоченного списка правил | |||||||
| source dictionary | Исходный адрес пакета | |||||||
| address string | Точка с запятой десятичной записи IP-адреса | |||||||
| any boolean |
| Правило соответствует всем исходным адресам | ||||||
| host string | IP-адрес узла | |||||||
| port_protocol dictionary | Укажите исходный порт/протокол вместе с оператором. (входит в tcp/udp). | |||||||
| subnet_address string | Адрес подсети | |||||||
| wildcard_bits string | Исходные биты с подстановкой | |||||||
| tracked boolean |
| Сопоставление пакетов в существующих соединениях ICMP/UDP/TCP | ||||||
| ttl dictionary | Сравнивает значение TTL (время жизни) в пакете со значением, заданным пользователем | |||||||
| eq integer | Сопоставление одного значения TTL | |||||||
| gt integer | Соответствие TTL, большему, чем это число | |||||||
| lt integer | Соответствие TTL, меньшему, чем это число | |||||||
| neq integer | Соответствие TTL, не равно этому значению | |||||||
| vlan string | Параметры VLAN | |||||||
| name string / обязательно | Имя списка ACL | |||||||
| standard boolean |
| Стандартный список доступа или нет | ||||||
| afi string / обязательно |
| Индикатор семейства адресов (AFI) для списков управления доступом (ACL). | ||||||
| running_config string | Этот параметр используется только со статусом parsed. Значение этого параметра должно быть результатом выполнения команды show running-config | section access-list на устройстве EOS. Состояние parsed считывает конфигурацию из параметра running_config, преобразует её в структурированные данные Ansible в соответствии с argspec модуля ресурса, а затем возвращает значение в ключе parsed в результате. | |||||||
| state string |
| Состояние, в котором должна остаться конфигурация. | ||||||
Примечания
Примечание
- Проверено на Arista vEOS v4.20.10M
Примеры
# Using merged
# Before state:
# -------------
# show running-config | section access-list
# ip access-list test1
# 10 permit ip 10.10.10.0/24 any ttl eq 200
# 20 permit ip 10.30.10.0/24 host 10.20.10.1
# 30 deny tcp host 10.10.20.1 eq finger www any syn log
# 40 permit ip any any
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
- name: Merge provided configuration with device configuration
arista.eos.eos_acls:
config:
- afi: ipv4
acls:
- name: test1
aces:
- sequence: 35
grant: deny
protocol: ospf
source:
subnet_address: 20.0.0.0/8
destnation:
any: true
state: merged
# After state:
# ------------
#
# show running-config | section access-list
# ip access-list test1
# 10 permit ip 10.10.10.0/24 any ttl eq 200
# 20 permit ip 10.30.10.0/24 host 10.20.10.1
# 30 deny tcp host 10.10.20.1 eq finger www any syn log
# 35 deny ospf 20.0.0.0/8 any
# 40 permit ip any any
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
# Using merged
# Before state:
# -------------
# show running-config | section access-list
# ip access-list test1
# 10 permit ip 10.10.10.0/24 any ttl eq 200
# 20 permit ip 10.30.10.0/24 host 10.20.10.1
# 30 deny tcp host 10.10.20.1 eq finger www any syn log
# 40 permit ip any any
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
- name: Merge to update the given configuration with an existing ace
arista.eos.eos_acls:
config:
- afi: ipv4
acls:
- name: test1
aces:
- sequence: 35
log: true
ttl:
eq: 33
state: merged
# After state:
# ------------
#
# show running-config | section access-list
# ip access-list test1
# 10 permit ip 10.10.10.0/24 any ttl eq 200
# 20 permit ip 10.30.10.0/24 host 10.20.10.1
# 30 deny tcp host 10.10.20.1 eq finger www any syn log
# 35 deny ospf 20.0.0.0/8 any ttl eq 33 log
# 40 permit ip any any
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
# Using replaced
# Before state:
# -------------
# show running-config | section access-list
# ip access-list test1
# 10 permit ip 10.10.10.0/24 any ttl eq 200
# 20 permit ip 10.30.10.0/24 host 10.20.10.1
# 30 deny tcp host 10.10.20.1 eq finger www any syn log
# 40 permit ip any any
# !
# ip access-list test3
# 10 permit ip 35.33.0.0/16 any log
# !
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
- name: Replace device configuration with provided configuration
arista.eos.eos_acls:
config:
- afi: ipv4
acls:
- name: test1
aces:
- sequence: 35
grant: permit
protocol: ospf
source:
subnet_address: 20.0.0.0/8
destination:
any: true
state: replaced
# After state:
# ------------
#
# show running-config | section access-list
# ip access-list test1
# 35 permit ospf 20.0.0.0/8 any
# !
# ip access-list test3
# 10 permit ip 35.33.0.0/16 any log
# !
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
# Using overridden
# Before state:
# -------------
# show running-config | section access-list
# ip access-list test1
# 10 permit ip 10.10.10.0/24 any ttl eq 200
# 20 permit ip 10.30.10.0/24 host 10.20.10.1
# 30 deny tcp host 10.10.20.1 eq finger www any syn log
# 40 permit ip any any
# !
# ip access-list test3
# 10 permit ip 35.33.0.0/16 any log
# !
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
- name: override device configuration with provided configuration
arista.eos.eos_acls:
config:
- afi: ipv4
acls:
- name: test1
aces:
- sequence: 35
action: permit
protocol: ospf
source:
subnet_address: 20.0.0.0/8
destination:
any: true
state: overridden
# After state:
# ------------
#
# show running-config | section access-list
# ip access-list test1
# 35 permit ospf 20.0.0.0/8 any
# !
# Using deleted:
# Before state:
# -------------
# show running-config | section access-list
# ip access-list test1
# 10 permit ip 10.10.10.0/24 any ttl eq 200
# 20 permit ip 10.30.10.0/24 host 10.20.10.1
# 30 deny tcp host 10.10.20.1 eq finger www any syn log
# 40 permit ip any any
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
# !
- name: Delete provided configuration
arista.eos.eos_acls:
config:
- afi: ipv4
state: deleted
# After state:
# ------------
#
# show running-config | section access-list
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
# Before state:
# -------------
# show running-config | section access-list
# ip access-list test1
# 10 permit ip 10.10.10.0/24 any ttl eq 200
# 20 permit ip 10.30.10.0/24 host 10.20.10.1
# 30 deny tcp host 10.10.20.1 eq finger www any syn log
# 40 permit ip any any
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
# !
- name: Delete provided configuration
arista.eos.eos_acls:
config:
- afi: ipv4
acls:
- name: test1
state: deleted
# After state:
# ------------
#
# show running-config | section access-list
# ipv6 access-list test2
# 10 deny icmpv6 any any reject-route hop-limit eq 20
# using gathered
# ip access-list test1
# 35 deny ospf 20.0.0.0/8 any
# ip access-list test2
# 40 permit vlan 55 0xE2 icmpv6 any any log
- name: Gather the exisitng condiguration
arista.eos.eos_acls:
state: gathered
# returns:
# arista.eos.eos_acls:
# config:
# - afi: "ipv4"
# acls:
# - name: test1
# aces:
# - sequence: 35
# grant: "deny"
# protocol: "ospf"
# source:
# subnet_address: 20.0.0.0/8
# destination:
# any: true
# - afi: "ipv6"
# acls:
# - name: test2
# aces:
# - sequence: 40
# grant: "permit"
# vlan: "55 0xE2"
# protocol: "icmpv6"
# log: true
# source:
# any: true
# destination:
# any: true
# using rendered
- name: Delete provided configuration
arista.eos.eos_acls:
config:
- afi: ipv4
acls:
- name: test1
aces:
- sequence: 35
grant: deny
protocol: ospf
source:
subnet_address: 20.0.0.0/8
destination:
any: true
- afi: ipv6
acls:
- name: test2
aces:
- sequence: 40
grant: permit
vlan: 55 0xE2
protocol: icmpv6
log: true
source:
any: true
destination:
any: true
state: rendered
# returns:
# ip access-list test1
# 35 deny ospf 20.0.0.0/8 any
# ip access-list test2
# 40 permit vlan 55 0xE2 icmpv6 any any log
# Using Parsed
# parsed_acls.cfg
# ipv6 access-list standard test2
# 10 permit any log
# !
# ip access-list test1
# 35 deny ospf 20.0.0.0/8 any
# 45 remark Run by ansible
# 55 permit tcp any any
# !
- name: parse configs
arista.eos.eos_acls:
running_config: "{{ lookup('file', './parsed_acls.cfg') }}"
state: parsed
# returns
# "parsed": [
# {
# "acls": [
# {
# "aces": [
# {
# "destination": {
# "any": true
# },
# "grant": "deny",
# "protocol": "ospf",
# "sequence": 35,
# "source": {
# "subnet_address": "20.0.0.0/8"
# }
# },
# {
# "remark": "Run by ansible",
# "sequence": 45
# },
# {
# "destination": {
# "any": true
# },
# "grant": "permit",
# "protocol": "tcp",
# "sequence": 55,
# "source": {
# "any": true
# }
# }
# ],
# "name": "test1"
# }
# ],
# "afi": "ipv4"
# },
# {
# "acls": [
# {
# "aces": [
# {
# "grant": "permit",
# "log": true,
# "sequence": 10,
# "source": {
# "any": true
# }
# }
# ],
# "name": "test2",
# "standard": true
# }
# ],
# "afi": "ipv6"
# }
# ]
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращено | Описание |
|---|---|---|
| after список / элементы=строка | при изменении | Результат вызова модели конфигурации. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| before список / элементы=строка | всегда | Конфигурация до вызова модели. Пример: Возвращаемая конфигурация всегда будет в том же формате, что и параметры выше. |
| commands список / элементы=строка | всегда | Набор команд, переданных удалённому устройству. Пример: ['ipv6 access-list standard test2', '10 permit any log', 'ip access-list test1', '35 deny ospf 20.0.0.0/8 any', '45 remark Run by ansible', '55 permit tcp any any'] |
Авторы
- Gomathiselvi S (@GomathiselviS)
© 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/arista/eos/eos_acls_module.html