Spec-Zone.ru › Ansible 2.10

arista.eos.eos_acls – Модуль ресурсов ACL

Примечание

Этот плагин входит в коллекцию arista.eos (версия 1.2.0).

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

Для использования в плейбуке укажите: arista.eos.eos_acls.

Добавлен в версии 1.0.0: модуля arista.eos

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

Обзор

  • Этот модуль управляет атрибутами списка управления доступом (ACL) 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
    Варианты:
  • нет
  • да
Требуется фрагментация, и бит 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
unreachable
boolean
    Варианты:
  • нет
  • да
Все недоступности
icmpv6
dictionary
Параметры для icmpv6.
address_unreachable
boolean
    Варианты:
  • нет
  • да
адрес недоступен
beyond_scope
boolean
    Варианты:
  • нет
  • да
вне области
echo_reply
boolean
    Варианты:
  • нет
  • да
ответ с дублированием
echo_request
boolean
    Варианты:
  • нет
  • да
запрос с дублированием
erroneous_header
boolean
    Варианты:
  • нет
  • да
ошибочный заголовок
fragment_reassembly_exceeded
boolean
    Варианты:
  • нет
  • да
превышен лимит фрагментации
hop_limit_exceeded
boolean
    Варианты:
  • нет
  • да
превышен предел переходов
neighbor_advertisement
boolean
    Варианты:
  • нет
  • да
объявление о соседях
neighbor_solicitation
boolean
    Варианты:
  • нет
  • да
запрос о соседях
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_solicitation
boolean
    Варианты:
  • нет
  • да
запрос к маршрутизатору
source_address_failed
boolean
    Варианты:
  • нет
  • да
сбой адреса источника
source_routing_error
boolean
    Варианты:
  • нет
  • да
ошибка маршрутизации источника
time_exceeded
boolean
    Варианты:
  • нет
  • да
время истекло
unreachable
boolean
    Варианты:
  • нет
  • да
недоступен
unrecognized_ipv6_option
boolean
    Варианты:
  • нет
  • да
неизвестный параметр IPv6
unrecognized_next_header
boolean
    Варианты:
  • нет
  • да
неизвестный следующий заголовок
ip
dictionary
Интернет-протокол.
nexthop_group
string
Имя группы следующего узла.
ipv6
dictionary
Протокол IPv6.
nexthop_group
string
Имя группы следующего узла.
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 / required
Имя списка ACL
standard
boolean
    Варианты:
  • нет ←
  • да
Стандартный список управления доступом или нет
afi
string / required
    Варианты:
  • ipv4
  • ipv6
Индикатор семейства адресов (AFI) для списков управления доступом (ACL).
running_config
string
Этот параметр используется только с состоянием parsed.
Значение этого параметра должно быть выводом устройства EOS, полученным при выполнении команды show running-config | section access-list.
Состояние 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
list / elements=string
при изменении
Результат вызова модели конфигурации.

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

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

Пример:
['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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/arista/eos/eos_acls_module.html

Spec-Zone.ru

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