dellemc.enterprise_sonic.sonic_l3_acls 模块 – 在 SONiC 上管理三层访问控制列表 (ACL) 配置
注意
此模块是 dellemc.enterprise_sonic 集合 (版本 2.5.1) 的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install dellemc.enterprise_sonic
。
要在剧本中使用它,请指定:dellemc.enterprise_sonic.sonic_l3_acls
。
dellemc.enterprise_sonic 2.1.0 中的新增功能
概要
此模块提供运行 SONiC 的设备中三层访问控制列表 (ACL) 的配置管理。
参数
参数 |
注释 |
---|---|
指定三层 ACL 配置。 |
|
给定地址族ACL的配置列表。 |
|
指定 ACL 名称。 |
|
指定 ACL 的备注。 |
|
带有 ACL 的规则列表。 添加新规则需要 *sequence_num*、*action*、*protocol*、*source* 和 *destination*。 如果 *state=deleted*,则不考虑 *sequence_num* 以外的选项。 |
|
指定对匹配的数据包采取的操作。 选择
|
|
指定数据包的目标。 *any*、*host* 和 *prefix* 是互斥的。 |
|
匹配任何目标网络地址。 选择
|
|
单个目标主机的网络地址。 |
|
指定目标端口(仅对 TCP 或 UDP 有效) 在一个规则中,只能指定一个 port_number 子选项。 |
|
匹配目标端口等于给定端口号的数据包。 范围为 0 到 65535。 |
|
匹配目标端口大于给定端口号的数据包。 范围为 0 到 65534。 |
|
匹配目标端口小于给定端口号的数据包。 范围为 1 到 65535。 |
|
匹配目标端口在给定范围内的分组。 *begin* 和 *end* 必须一起使用。 |
|
指定端口范围的开始。 范围为 0 到 65534。 |
|
指定端口范围的结束。 范围为 1 到 65535。 |
|
以 A.B.C.D/mask (ipv4) 或 A::B/mask (ipv6) 格式表示的目标网络前缀。 |
|
使用 DSCP 值匹配数据包。 在一个规则中,只能指定一个 dscp 子选项。 |
|
匹配具有 AF11 DSCP (001010 - 十进制值 10) 的数据包。 选择
|
|
匹配具有 AF12 DSCP (001100 - 十进制值 12) 的数据包。 选择
|
|
匹配具有 AF13 DSCP (001110 - 十进制值 14) 的数据包。 选择
|
|
匹配具有 AF21 DSCP (010010 - 十进制值 18) 的数据包。 选择
|
|
匹配具有 AF22 DSCP (010100 - 十进制值 20) 的数据包。 选择
|
|
匹配具有 AF23 DSCP (010110 - 十进制值 22) 的数据包。 选择
|
|
匹配具有 AF31 DSCP (011010 - 十进制值 26) 的数据包。 选择
|
|
匹配具有 AF32 DSCP (011100 - 十进制值 28) 的数据包。 选择
|
|
匹配具有 AF33 DSCP (011110 - 十进制值 30) 的数据包。 选择
|
|
匹配具有 AF41 DSCP (100010 - 十进制值 34) 的数据包。 选择
|
|
匹配具有 AF42 DSCP (100100 - 十进制值 36) 的数据包。 选择
|
|
匹配具有 AF43 DSCP (100110 - 十进制值 38) 的数据包。 选择
|
|
匹配具有 CS1 DSCP (001000 - 十进制值 8) 的数据包。 选择
|
|
匹配具有 CS2 DSCP (010000 - 十进制值 16) 的数据包。 选择
|
|
匹配具有 CS3 DSCP (011000 - 十进制值 24) 的数据包。 选择
|
|
匹配具有 CS4 DSCP (100000 - 十进制值 32) 的数据包。 选择
|
|
匹配具有 CS5 DSCP (101000 - 十进制值 40) 的数据包。 选择
|
|
匹配具有 CS6 DSCP (110000 - 十进制值 48) 的数据包。 选择
|
|
匹配具有 CS7 DSCP (111000 - 十进制值 56) 的数据包。 选择
|
|
匹配具有 CS0 DSCP (000000 - 十进制值 0) 的数据包。 选择
|
|
匹配具有 EF DSCP (101110 - 十进制值 46) 的数据包。 选择
|
|
匹配具有给定 DSCP 值的数据包。 范围为 0 到 63。 |
|
匹配具有 VOICE-ADMIT DSCP (101100 - 十进制值 44) 的数据包。 选择
|
|
指定要匹配的协议。 在一个规则中,只能指定一个 protocol 子选项。 |
|
匹配具有给定协议的数据包。
仅IPv6 ACL支持 选择
|
|
匹配具有给定协议号的数据包。 范围是0到255。 |
|
指定所选协议的其他数据包匹配选项。 icmp、icmpv6和tcp互斥。 |
|
ICMP数据包匹配选项。 |
|
匹配具有给定ICMP代码的数据包。 范围是0到255。 |
|
匹配具有给定ICMP类型的数据包。 范围是0到255。 |
|
ICMPv6数据包匹配选项。 |
|
匹配具有给定ICMPv6代码的数据包。 范围是0到255。 |
|
匹配具有给定ICMPv6类型的数据包。 范围是0到255。 |
|
TCP数据包匹配选项。 established和其他TCP标志选项互斥。 |
|
匹配设置了ACK标志的数据包。 选择
|
|
匹配属于已建立TCP会话的数据包。 选择
|
|
匹配设置了FIN标志的数据包。 选择
|
|
匹配清除ACK标志的数据包。 选择
|
|
匹配清除FIN标志的数据包。 选择
|
|
匹配清除PSH标志的数据包。 选择
|
|
匹配清除RST标志的数据包。 选择
|
|
匹配清除SYN标志的数据包。 选择
|
|
匹配清除URG标志的数据包。 选择
|
|
匹配设置了PSH标志的数据包。 选择
|
|
匹配设置了RST标志的数据包。 选择
|
|
匹配设置了SYN标志的数据包。 选择
|
|
匹配设置了URG标志的数据包。 选择
|
|
指定ACL规则的备注。 |
|
指定规则的序列号。 范围为 1 到 65535。 |
|
指定数据包的源。 *any*、*host* 和 *prefix* 是互斥的。 |
|
匹配任何源网络地址。 选择
|
|
单个源主机的网络地址。 |
|
指定源端口(仅对TCP或UDP有效) 在一个规则中,只能指定一个 port_number 子选项。 |
|
匹配源端口等于给定端口号的数据包。 范围为 0 到 65535。 |
|
匹配源端口大于给定端口号的数据包。 范围为 0 到 65534。 |
|
匹配源端口小于给定端口号的数据包。 范围为 1 到 65535。 |
|
匹配源端口在给定范围内的数据包。 *begin* 和 *end* 必须一起使用。 |
|
指定端口范围的开始。 范围为 0 到 65534。 |
|
指定端口范围的结束。 范围为 1 到 65535。 |
|
源网络前缀,格式为A.B.C.D/掩码(ipv4)或A::B/掩码(ipv6)。 |
|
匹配具有给定VLAN ID值的数据包。 |
|
指定ACL的地址族。 选择
|
|
模块完成后的配置状态。
选择
|
注释
注意
支持
check_mode
。
示例
# Using merged
#
# Before State:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit ipv6 host 192:168:1::2 any
# sonic#
- name: Merge provided Layer 3 ACL configurations
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
acls:
- name: 'test'
rules:
- sequence_num: 2
action: 'permit'
protocol:
name: 'icmp'
source:
any: true
destination:
host: '192.168.1.2'
protocol_options:
icmp:
type: 8
- sequence_num: 3
action: 'deny'
protocol:
number: 2
source:
any: true
destination:
any: true
- sequence_num: 4
action: 'deny'
protocol:
name: 'ip'
source:
any: true
destination:
any: true
vlan_id: 10
remark: 'Vlan10'
- name: 'test1'
remark: 'test_ip_acl'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'tcp'
source:
prefix: '10.0.0.0/8'
destination:
any: true
- sequence_num: 2
action: 'deny'
protocol:
name: 'udp'
source:
any: true
destination:
prefix: '20.1.0.0/16'
port_number:
gt: 1024
- sequence_num: 3
action: 'deny'
protocol:
name: 'ip'
source:
any: true
destination:
any: true
dscp:
value: 63
- address_family: 'ipv6'
acls:
- name: 'testv6'
rules:
- sequence_num: 2
action: 'deny'
protocol:
name: 'icmpv6'
source:
any: true
destination:
any: true
- name: 'testv6-1'
remark: 'test_ipv6_acl'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'ipv6'
source:
prefix: '1000::/16'
destination:
any: true
dscp:
af22: true
- sequence_num: 2
action: 'deny'
protocol:
name: 'tcp'
source:
any: true
destination:
prefix: '2000::1000:0/112'
port_number:
range:
begin: 100
end: 1000
- sequence_num: 3
action: 'permit'
protocol:
name: 'tcp'
source:
any: true
destination:
any: true
protocol_options:
tcp:
established: true
- sequence_num: 4
action: 'deny'
protocol:
name: 'udp'
source:
any: true
port_number:
eq: 3000
destination:
any: true
state: merged
# After State:
# ------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.2 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit ipv6 host 192:168:1::2 any
# seq 2 deny icmpv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
# Using replaced
#
# Before State:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.2 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp host 3000::1 any established
# seq 2 permit udp any any
# seq 3 deny icmpv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Replace device configuration of specified Layer 3 ACLs with provided configuration
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
acls:
- name: 'test2'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'tcp'
source:
prefix: '192.168.1.0/24'
destination:
any: true
- address_family: 'ipv6'
acls:
- name: 'testv6'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'tcp'
source:
host: '3000::1'
destination:
any: true
protocol_options:
tcp:
ack: true
syn: true
fin: true
- sequence_num: 2
action: 'deny'
protocol:
name: 'ipv6'
source:
any: true
destination:
any: true
state: replaced
# After State:
# ------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp host 3000::1 any fin syn ack
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
# Using overridden
#
# Before State:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Override device configuration of all Layer 3 ACLs with provided configuration
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
acls:
- name: 'test_acl'
rules:
- sequence_num: 1
action: 'permit'
protocol:
name: 'ip'
source:
prefix: '100.1.1.0/24'
destination:
prefix: '100.1.2.0/24'
- sequence_num: 2
action: 'deny'
protocol:
name: 'udp'
source:
any: true
destination:
any: true
state: overridden
# After State:
# ------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test_acl
# seq 1 permit ip 100.1.1.0/24 100.1.2.0/24
# seq 2 deny udp any any
# sonic#
# sonic# show running-configuration ipv6 access-list
# sonic#
# Using deleted
#
# Before State:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Delete specified Layer 3 ACLs, ACL remark and ACL rule entries
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
acls:
- name: 'test'
rules:
- sequence_num: 2
- name: 'test2'
- address_family: 'ipv6'
acls:
- name: 'testv6-1'
remark: 'test_ipv6_acl'
rules:
- sequence_num: 3
state: deleted
# After State:
# ------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 4 deny udp any eq 3000 any
# sonic#
# Using deleted
#
# Before State:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Delete all Layer 3 ACLs for an address-family
dellemc.enterprise_sonic.sonic_l3_acls:
config:
- address_family: 'ipv4'
state: deleted
# After State:
# ------------
#
# sonic# show running-configuration ip access-list
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
# Using deleted
#
# Before State:
# -------------
#
# sonic# show running-configuration ip access-list
# !
# ip access-list test
# seq 1 permit ip host 192.168.1.2 any
# seq 2 permit icmp any host 192.168.1.3 type 8
# seq 3 deny 2 any any
# seq 4 deny ip any any vlan 10 remark Vlan10
# !
# ip access-list test1
# remark test_ip_acl
# seq 1 permit tcp 10.0.0.0/8 any
# seq 2 deny udp any 20.1.0.0/16 gt 1024
# seq 3 deny ip any any dscp 63
# !
# ip access-list test2
# seq 1 permit tcp 192.168.1.0/24 any
# sonic#
# sonic# show running-configuration ipv6 access-list
# !
# ipv6 access-list testv6
# seq 1 permit tcp 3000::/16 any
# seq 2 deny ipv6 any any
# !
# ipv6 access-list testv6-1
# remark test_ipv6_acl
# seq 1 permit ipv6 1000::/16 any dscp af22
# seq 2 deny tcp any 2000::1000:0/112 range 100 1000
# seq 3 permit tcp any any established
# seq 4 deny udp any eq 3000 any
# sonic#
- name: Delete all Layer 3 ACL configurations
dellemc.enterprise_sonic.sonic_l3_acls:
config:
state: deleted
# After State:
# ------------
#
# sonic# show running-configuration ip access-list
# sonic#
# sonic# show running-configuration ipv6 access-list
# sonic#
返回值
常用返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
模块调用后的结果配置。 返回:当发生更改时 示例: |
|
生成的配置模块调用。 返回:当 示例: |
|
模块调用之前的配置。 返回:始终返回 示例: |
|
推送到远程设备的命令集。 返回:始终返回 示例: |