arista.eos.eos_acls 模块 – ACL 资源模块

注意

此模块是 arista.eos 集合 (版本 10.0.1) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install arista.eos

要在 playbook 中使用它,请指定: arista.eos.eos_acls

arista.eos 1.0.0 中的新增功能

概要

  • 此模块管理 Arista EOS 接口的 IP 访问列表属性。

参数

参数

注释

config

列表 / 元素=字典

IP 访问列表选项的字典

acls

列表 / 元素=字典

访问控制列表 (ACL) 列表。

aces

列表 / 元素=字典

过滤数据

destination

字典

数据包的目标地址

address

字符串

IP 地址的点分十进制表示法

any

布尔值

规则匹配所有源地址

选项

  • false

  • true

host

字符串

主机 IP 地址

port_protocol

字典

指定目标端口/协议,以及运算符。(与 tcp/udp 一起使用)。

subnet_address

字符串

子网地址

wildcard_bits

字符串

源通配符位

fragment_rules

布尔值

添加碎片规则

选项

  • false

  • true

fragments

布尔值

匹配非头部碎片数据包

选项

  • false

  • true

grant

字符串

应用于规则的操作

选项

  • "permit"

  • "deny"

hop_limit

字典

跳数限制值。

line

别名:ace

字符串

对于事实收集,任何未完全解析的 ACE 都会显示为此属性的值。

log

布尔值

记录与该规则匹配的内容

选项

  • false

  • true

protocol

字符串

指定要匹配的协议。

请参阅供应商文档以了解有效值。

protocol_options

字典

所选协议的所有可能的子选项。

icmp

字典

互联网控制消息协议设置。

administratively_prohibited

布尔值

管理上禁止

选项

  • false

  • true

alternate_address

布尔值

备用地址

选项

  • false

  • true

conversion_error

布尔值

数据报转换

选项

  • false

  • true

dod_host_prohibited

布尔值

主机禁止

选项

  • false

  • true

dod_net_prohibited

布尔值

网络禁止

选项

  • false

  • true

echo

布尔值

回显(ping)

选项

  • false

  • true

echo_reply

布尔值

回显回复

选项

  • false

  • true

general_parameter_problem

布尔值

参数问题

选项

  • false

  • true

host_isolated

布尔值

主机隔离

选项

  • false

  • true

host_precedence_unreachable

布尔值

主机对于优先级不可达

选项

  • false

  • true

host_redirect

布尔值

主机重定向

选项

  • false

  • true

host_tos_redirect

布尔值

针对 TOS 的主机重定向

选项

  • false

  • true

host_tos_unreachable

布尔值

主机对于 TOS 不可达

选项

  • false

  • true

host_unknown

布尔值

主机未知

选项

  • false

  • true

host_unreachable

布尔值

主机不可达

选项

  • false

  • true

information_reply

布尔值

信息回复

选项

  • false

  • true

information_request

布尔值

信息请求

选项

  • false

  • true

mask_reply

布尔值

掩码回复

选项

  • false

  • true

mask_request

布尔值

掩码请求

选项

  • false

  • true

message_code

整数

ICMP 消息代码

message_num

整数

icmp 消息类型编号。

message_type

整数

ICMP 消息类型

mobile_redirect

布尔值

移动主机重定向

选项

  • false

  • true

net_redirect

布尔值

网络重定向

选项

  • false

  • true

net_tos_redirect

布尔值

针对 TOS 的网络重定向

选项

  • false

  • true

net_tos_unreachable

布尔值

网络对于 TOS 不可达

选项

  • false

  • true

net_unreachable

布尔值

网络不可达

选项

  • false

  • true

network_unknown

布尔值

网络未知

选项

  • false

  • true

no_room_for_option

布尔值

需要参数但空间不足

选项

  • false

  • true

option_missing

布尔值

需要参数但不存在

选项

  • false

  • true

packet_too_big

布尔值

需要分片且 DF 设置

选项

  • false

  • true

parameter_problem

布尔值

所有参数问题

选项

  • false

  • true

port_unreachable

布尔值

端口不可达

选项

  • false

  • true

precedence_unreachable

布尔值

优先级截止

选项

  • false

  • true

protocol_unreachable

布尔值

协议不可达

选项

  • false

  • true

reassembly_timeout

布尔值

重新组装超时

选项

  • false

  • true

redirect

布尔值

所有重定向

选项

  • false

  • true

router_advertisement

布尔值

路由器发现广告

选项

  • false

  • true

router_solicitation

布尔值

路由器发现请求

选项

  • false

  • true

source_quench

布尔值

源抑制

选项

  • false

  • true

source_route_failed

布尔值

源路由失败

选项

  • false

  • true

time_exceeded

布尔值

所有超时

选项

  • false

  • true

timestamp_reply

布尔值

时间戳回复

选项

  • false

  • true

timestamp_request

布尔值

时间戳请求

选项

  • false

  • true

traceroute

布尔值

traceroute

选项

  • false

  • true

ttl_exceeded

布尔值

TTL 超时

选项

  • false

  • true

unreachable

布尔值

所有不可达

选项

  • false

  • true

icmpv6

字典

icmpv6 的选项。

address_unreachable

布尔值

地址不可达

选项

  • false

  • true

beyond_scope

布尔值

beyond_scope

选项

  • false

  • true

echo_reply

布尔值

echo_reply

选项

  • false

  • true

echo_request

布尔值

回显请求

选项

  • false

  • true

erroneous_header

布尔值

错误的报头

选项

  • false

  • true

fragment_reassembly_exceeded

布尔值

fragment_reassembly_exceeded

选项

  • false

  • true

hop_limit_exceeded

布尔值

跳数限制超过

选项

  • false

  • true

neighbor_advertisement

布尔值

邻居通告

选项

  • false

  • true

neighbor_solicitation

布尔值

neighbor_solicitation

选项

  • false

  • true

no_admin

布尔值

无管理员

选项

  • false

  • true

no_route

布尔值

无路由

选项

  • false

  • true

packet_too_big

布尔值

数据包太大

选项

  • false

  • true

parameter_problem

布尔值

参数问题

选项

  • false

  • true

port_unreachable

布尔值

端口不可达

选项

  • false

  • true

redirect_message

布尔值

重定向消息

选项

  • false

  • true

reject_route

布尔值

拒绝路由

选项

  • false

  • true

router_advertisement

布尔值

router_advertisement

选项

  • false

  • true

router_solicitation

布尔值

router_solicitation

选项

  • false

  • true

source_address_failed

布尔值

source_address_failed

选项

  • false

  • true

source_routing_error

布尔值

source_routing_error

选项

  • false

  • true

time_exceeded

布尔值

time_exceeded

选项

  • false

  • true

unreachable

布尔值

unreachable

选项

  • false

  • true

unrecognized_ipv6_option

布尔值

unrecognized_ipv6_option

选项

  • false

  • true

unrecognized_next_header

布尔值

unrecognized_next_header

选项

  • false

  • true

ip

字典

互联网协议。

nexthop_group

字符串

下一跳组名称。

ipv6

字典

互联网 V6 协议。

nexthop_group

字符串

下一跳组名称。

tcp

字典

tcp 协议的选项。

flags

字典

匹配 TCP 数据包标志

ack

布尔值

匹配 ACK 位

选项

  • false

  • true

established

布尔值

匹配已建立的连接

选项

  • false

  • true

fin

布尔值

匹配 FIN 位

选项

  • false

  • true

psh

布尔值

匹配PSH位

选项

  • false

  • true

rst

布尔值

匹配RST位

选项

  • false

  • true

syn

布尔值

匹配SYN位

选项

  • false

  • true

urg

布尔值

匹配URG位

选项

  • false

  • true

remark

字符串

指定注释

sequence

整数

规则有序列表的序号

source

字典

数据包的源地址

address

字符串

IP 地址的点分十进制表示法

any

布尔值

规则匹配所有源地址

选项

  • false

  • true

host

字符串

主机 IP 地址

port_protocol

字典

指定源端口/协议,以及运算符。(与tcp/udp一起使用)。

subnet_address

字符串

子网地址

wildcard_bits

字符串

源通配符位

tracked

布尔值

匹配现有ICMP/UDP/TCP连接中的数据包

选项

  • false

  • true

ttl

字典

将数据包中的TTL(生存时间)值与指定值进行比较

eq

整数

匹配单个TTL值

gt

整数

匹配TTL大于此数值

lt

整数

匹配TTL小于此数值

neq

整数

匹配TTL不等于此值

vlan

字符串

VLAN选项

name

字符串 / 必需

ACL列表的名称

standard

布尔值

标准访问列表或非标准访问列表

选项

  • false

  • true

afi

字符串 / 必需

访问控制列表 (ACL) 的地址族指示符 (AFI)。

选项

  • "ipv4"

  • "ipv6"

running_config

字符串

此选项仅在状态为 *parsed* 时使用。

此选项的值应为通过执行命令 **show running-config | section access-list** 从EOS设备接收到的输出。

状态 *parsed* 从 running_config 选项读取配置,并根据资源模块的argspec将其转换为Ansible结构化数据,然后在结果中的 *parsed* 密钥中返回该值。

state

字符串

配置应保留的状态。

选项

  • "deleted"

  • "merged" ← (默认)

  • "overridden"

  • "replaced"

  • "gathered"

  • "rendered"

  • "parsed"

备注

注意

  • 已在 Arista EOS 4.24.6F 上测试

示例

# 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
                destination:
                  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
                grant: 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
        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 existing configuration
  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

列表 / 元素=字符串

生成的配置模型调用。

返回:发生更改时

示例: ["返回的配置始终采用与上述参数相同的格式\n"]

before

列表 / 元素=字符串

模型调用之前的配置。

返回:始终返回

示例: ["返回的配置始终采用与上述参数相同的格式\n"]

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)