Note
This plugin is part of the cisco.nxos collection (version 2.7.0).
You might already have this collection installed if you are using the ansible
package. It is not included in ansible-core
. To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install cisco.nxos
.
To use it in a playbook, specify: cisco.nxos.nxos_acls
.
New in version 1.0.0: of cisco.nxos
Note
This module has a corresponding action plugin.
Parameter | Choices/Defaults | Comments | ||||||
---|---|---|---|---|---|---|---|---|
config list / elements=dictionary | A dictionary of ACL options. | |||||||
acls list / elements=dictionary | A list of the ACLs. | |||||||
aces list / elements=dictionary | The entries within the ACL. | |||||||
destination dictionary | Specify the packet destination. | |||||||
address string | Destination network address. | |||||||
any boolean |
| Any destination address. | ||||||
host string | Host IP address. | |||||||
port_protocol dictionary | Specify the destination port or protocol (only for TCP and UDP). | |||||||
eq string | Match only packets on a given port number. | |||||||
gt string | Match only packets with a greater port number. | |||||||
lt string | Match only packets with a lower port number. | |||||||
neq string | Match only packets not on a given port number. | |||||||
range dictionary | Match only packets in the range of port numbers. | |||||||
end string | Specify the end of the port range. | |||||||
start string | Specify the start of the port range. | |||||||
prefix string | Destination network prefix. Only for prefixes of value less than 31 for ipv4 and 127 for ipv6. Prefixes of 32 (ipv4) and 128 (ipv6) should be given in the 'host' key. | |||||||
wildcard_bits string | Destination wildcard bits. | |||||||
dscp string | Match packets with given DSCP value. | |||||||
fragments boolean |
| Check non-initial fragments. | ||||||
grant string |
| Action to be applied on the rule. | ||||||
log boolean |
| Log matches against this entry. | ||||||
precedence string | Match packets with given precedence value. | |||||||
protocol string | Specify the protocol. | |||||||
protocol_options dictionary | All possible suboptions for the protocol chosen. | |||||||
icmp dictionary | ICMP protocol options. | |||||||
administratively_prohibited boolean |
| Administratively prohibited | ||||||
alternate_address boolean |
| Alternate address | ||||||
conversion_error boolean |
| Datagram conversion | ||||||
dod_host_prohibited boolean |
| Host prohibited | ||||||
dod_net_prohibited boolean |
| Net prohibited | ||||||
echo boolean |
| Echo (ping) | ||||||
echo_reply boolean |
| Echo reply | ||||||
echo_request boolean |
| Echo request (ping) | ||||||
general_parameter_problem boolean |
| Parameter problem | ||||||
host_isolated boolean |
| Host isolated | ||||||
host_precedence_unreachable boolean |
| Host unreachable for precedence | ||||||
host_redirect boolean |
| Host redirect | ||||||
host_tos_redirect boolean |
| Host redirect for TOS | ||||||
host_tos_unreachable boolean |
| Host unreachable for TOS | ||||||
host_unknown boolean |
| Host unknown | ||||||
host_unreachable boolean |
| Host unreachable | ||||||
information_reply boolean |
| Information replies | ||||||
information_request boolean |
| Information requests | ||||||
mask_reply boolean |
| Mask replies | ||||||
mask_request boolean |
| Mask requests | ||||||
message_code integer | ICMP message code | |||||||
message_type integer | ICMP message type | |||||||
mobile_redirect boolean |
| Mobile host redirect | ||||||
net_redirect boolean |
| Network redirect | ||||||
net_tos_redirect boolean |
| Net redirect for TOS | ||||||
net_tos_unreachable boolean |
| Network unreachable for TOS | ||||||
net_unreachable boolean |
| Net unreachable | ||||||
network_unknown boolean |
| Network unknown | ||||||
no_room_for_option boolean |
| Parameter required but no room | ||||||
option_missing boolean |
| Parameter required but not present | ||||||
packet_too_big boolean |
| Fragmentation needed and DF set | ||||||
parameter_problem boolean |
| All parameter problems | ||||||
port_unreachable boolean |
| Port unreachable | ||||||
precedence_unreachable boolean |
| Precedence cutoff | ||||||
protocol_unreachable boolean |
| Protocol unreachable | ||||||
reassembly_timeout boolean |
| Reassembly timeout | ||||||
redirect boolean |
| All redirects | ||||||
router_advertisement boolean |
| Router discovery advertisements | ||||||
router_solicitation boolean |
| Router discovery solicitations | ||||||
source_quench boolean |
| Source quenches | ||||||
source_route_failed boolean |
| Source route failed | ||||||
time_exceeded boolean |
| All time exceeded. | ||||||
timestamp_reply boolean |
| Timestamp replies | ||||||
timestamp_request boolean |
| Timestamp requests | ||||||
traceroute boolean |
| Traceroute | ||||||
ttl_exceeded boolean |
| TTL exceeded | ||||||
unreachable boolean |
| All unreachables | ||||||
igmp dictionary | IGMP protocol options. | |||||||
dvmrp boolean |
| Distance Vector Multicast Routing Protocol | ||||||
host_query boolean |
| Host Query | ||||||
host_report boolean |
| Host Report | ||||||
tcp dictionary | TCP flags. | |||||||
ack boolean |
| Match on the ACK bit | ||||||
established boolean |
| Match established connections | ||||||
fin boolean |
| Match on the FIN bit | ||||||
psh boolean |
| Match on the PSH bit | ||||||
rst boolean |
| Match on the RST bit | ||||||
syn boolean |
| Match on the SYN bit | ||||||
urg boolean |
| Match on the URG bit | ||||||
remark string | Access list entry comment. | |||||||
sequence integer | Sequence number. | |||||||
source dictionary | Specify the packet source. | |||||||
address string | Source network address. | |||||||
any boolean |
| Any source address. | ||||||
host string | Host IP address. | |||||||
port_protocol dictionary | Specify the destination port or protocol (only for TCP and UDP). | |||||||
eq string | Match only packets on a given port number. | |||||||
gt string | Match only packets with a greater port number. | |||||||
lt string | Match only packets with a lower port number. | |||||||
neq string | Match only packets not on a given port number. | |||||||
range dictionary | Match only packets in the range of port numbers. | |||||||
end string | Specify the end of the port range. | |||||||
start string | Specify the start of the port range. | |||||||
prefix string | Source network prefix. Only for prefixes of mask value less than 31 for ipv4 and 127 for ipv6. Prefixes of mask 32 (ipv4) and 128 (ipv6) should be given in the 'host' key. | |||||||
wildcard_bits string | Source wildcard bits. | |||||||
name string / required | Name of the ACL. | |||||||
afi string / required |
| The Address Family Indicator (AFI) for the ACL. | ||||||
running_config string | This option is used only with state parsed. The value of this option should be the output received from the NX-OS device by executing the command show running-config | section 'ip(v6* access-list). The state parsed reads the configuration from running_config option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the parsed key within the result. | |||||||
state string |
| The state the configuration should be left in |
Note
# Using merged # Before state: # ------------- # - name: Merge new ACLs configuration cisco.nxos.nxos_acls: config: - afi: ipv4 acls: - name: ACL1v4 aces: - grant: deny destination: address: 192.0.2.64 wildcard_bits: 0.0.0.255 source: any: true port_protocol: lt: 55 protocol: tcp protocol_options: tcp: ack: true fin: true sequence: 50 - afi: ipv6 acls: - name: ACL1v6 aces: - grant: permit sequence: 10 source: any: true destination: prefix: 2001:db8:12::/32 protocol: sctp state: merged # After state: # ------------ # # ip access-list ACL1v4 # 50 deny tcp any lt 55 192.0.2.64 0.0.0.255 ack fin # ipv6 access-list ACL1v6 # 10 permit sctp any any # Using replaced # Before state: # ---------------- # # ip access-list ACL1v4 # 10 permit ip any any # 20 deny udp any any # ip access-list ACL2v4 # 10 permit ahp 192.0.2.0 0.0.0.255 any # ip access-list ACL1v6 # 10 permit sctp any any # 20 remark IPv6 ACL # ip access-list ACL2v6 # 10 deny ipv6 any 2001:db8:3000::/36 # 20 permit tcp 2001:db8:2000:2::2/128 2001:db8:2000:ab::2/128 - name: Replace existing ACL configuration with provided configuration cisco.nxos.nxos_acls: config: - afi: ipv4 - afi: ipv6 acls: - name: ACL1v6 aces: - sequence: 20 grant: permit source: any: true destination: any: true protocol: pip - remark: Replaced ACE - name: ACL2v6 state: replaced # After state: # --------------- # # ipv6 access-list ACL1v6 # 20 permit pip any any # 30 remark Replaced ACE # ipv6 access-list ACL2v6 # Using overridden # Before state: # ---------------- # # ip access-list ACL1v4 # 10 permit ip any any # 20 deny udp any any # ip access-list ACL2v4 # 10 permit ahp 192.0.2.0 0.0.0.255 any # ip access-list ACL1v6 # 10 permit sctp any any # 20 remark IPv6 ACL # ip access-list ACL2v6 # 10 deny ipv6 any 2001:db8:3000::/36 # 20 permit tcp 2001:db8:2000:2::2/128 2001:db8:2000:ab::2/128 - name: Override existing configuration with provided configuration cisco.nxos.nxos_acls: config: - afi: ipv4 acls: - name: NewACL aces: - grant: deny source: address: 192.0.2.0 wildcard_bits: 0.0.255.255 destination: any: true protocol: eigrp - remark: Example for overridden state state: overridden # After state: # ------------ # # ip access-list NewACL # 10 deny eigrp 192.0.2.0 0.0.255.255 any # 20 remark Example for overridden state # Using deleted: # # Before state: # ------------- # # ip access-list ACL1v4 # 10 permit ip any any # 20 deny udp any any # ip access-list ACL2v4 # 10 permit ahp 192.0.2.0 0.0.0.255 any # ip access-list ACL1v6 # 10 permit sctp any any # 20 remark IPv6 ACL # ip access-list ACL2v6 # 10 deny ipv6 any 2001:db8:3000::/36 # 20 permit tcp 2001:db8:2000:2::2/128 2001:db8:2000:ab::2/128 - name: Delete all ACLs cisco.nxos.nxos_acls: config: state: deleted # After state: # ----------- # # Before state: # ------------- # # ip access-list ACL1v4 # 10 permit ip any any # 20 deny udp any any # ip access-list ACL2v4 # 10 permit ahp 192.0.2.0 0.0.0.255 any # ip access-list ACL1v6 # 10 permit sctp any any # 20 remark IPv6 ACL # ip access-list ACL2v6 # 10 deny ipv6 any 2001:db8:3000::/36 # 20 permit tcp 2001:db8:2000:2::2/128 2001:db8:2000:ab::2/128 - name: Delete all ACLs in given AFI cisco.nxos.nxos_acls: config: - afi: ipv4 state: deleted # After state: # ------------ # # ip access-list ACL1v6 # 10 permit sctp any any # 20 remark IPv6 ACL # ip access-list ACL2v6 # 10 deny ipv6 any 2001:db8:3000::/36 # 20 permit tcp 2001:db8:2000:2::2/128 2001:db8:2000:ab::2/128 # Before state: # ------------- # # ip access-list ACL1v4 # 10 permit ip any any # 20 deny udp any any # ip access-list ACL2v4 # 10 permit ahp 192.0.2.0 0.0.0.255 any # ipv6 access-list ACL1v6 # 10 permit sctp any any # 20 remark IPv6 ACL # ipv6 access-list ACL2v6 # 10 deny ipv6 any 2001:db8:3000::/36 # 20 permit tcp 2001:db8:2000:2::2/128 2001:db8:2000:ab::2/128 - name: Delete specific ACLs cisco.nxos.nxos_acls: config: - afi: ipv4 acls: - name: ACL1v4 - name: ACL2v4 - afi: ipv6 acls: - name: ACL1v6 state: deleted # After state: # ------------ # ipv6 access-list ACL2v6 # 10 deny ipv6 any 2001:db8:3000::/36 # 20 permit tcp 2001:db8:2000:2::2/128 2001:db8:2000:ab::2/128 # Using parsed - name: Parse given config to structured data cisco.nxos.nxos_acls: running_config: | ip access-list ACL1v4 50 deny tcp any lt 55 192.0.2.64 0.0.0.255 ack fin ipv6 access-list ACL1v6 10 permit sctp any any state: parsed # returns: # parsed: # - afi: ipv4 # acls: # - name: ACL1v4 # aces: # - grant: deny # destination: # address: 192.0.2.64 # wildcard_bits: 0.0.0.255 # source: # any: true # port_protocol: # lt: 55 # protocol: tcp # protocol_options: # tcp: # ack: true # fin: true # sequence: 50 # # - afi: ipv6 # acls: # - name: ACL1v6 # aces: # - grant: permit # sequence: 10 # source: # any: true # destination: # prefix: 2001:db8:12::/32 # protocol: sctp # Using gathered: # Before state: # ------------ # # ip access-list ACL1v4 # 50 deny tcp any lt 55 192.0.2.64 0.0.0.255 ack fin # ipv6 access-list ACL1v6 # 10 permit sctp any any - name: Gather existing configuration cisco.nxos.nxos_acls: state: gathered # returns: # gathered: # - afi: ipv4 # acls: # - name: ACL1v4 # aces: # - grant: deny # destination: # address: 192.0.2.64 # wildcard_bits: 0.0.0.255 # source: # any: true # port_protocol: # lt: 55 # protocol: tcp # protocol_options: # tcp: # ack: true # fin: true # sequence: 50 # - afi: ipv6 # acls: # - name: ACL1v6 # aces: # - grant: permit # sequence: 10 # source: # any: true # destination: # prefix: 2001:db8:12::/32 # protocol: sctp # Using rendered - name: Render required configuration to be pushed to the device cisco.nxos.nxos_acls: config: - afi: ipv4 acls: - name: ACL1v4 aces: - grant: deny destination: address: 192.0.2.64 wildcard_bits: 0.0.0.255 source: any: true port_protocol: lt: 55 protocol: tcp protocol_options: tcp: ack: true fin: true sequence: 50 - afi: ipv6 acls: - name: ACL1v6 aces: - grant: permit sequence: 10 source: any: true destination: prefix: 2001:db8:12::/32 protocol: sctp state: rendered # returns: # rendered: # ip access-list ACL1v4 # 50 deny tcp any lt 55 192.0.2.64 0.0.0.255 ack fin # ipv6 access-list ACL1v6 # 10 permit sctp any any
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
after dictionary | when changed | The resulting configuration model invocation. Sample: The configuration returned will always be in the same format of the parameters above. |
before dictionary | always | The configuration prior to the model invocation. Sample: The configuration returned will always be in the same format of the parameters above. |
commands list / elements=string | always | The set of commands pushed to the remote device. Sample: ['ip access-list ACL1v4', '10 permit ip any any precedence critical log', '20 deny tcp any lt smtp host 192.0.2.64 ack fin'] |
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/cisco/nxos/nxos_acls_module.html