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
。
要在 playbook 中使用它,请指定: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)的数据包。 选择
|
|
指定要匹配的协议。 在规则中只能为协议指定一个子选项。 |
|
匹配具有给定协议的数据包。
选择
|
|
匹配具有给定协议编号的数据包。 范围从 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/mask (ipv4) 或 A::B/mask (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#
返回值
通用返回值记录在 这里,以下是此模块独有的字段
键 |
描述 |
---|---|
生成的配置模块调用。 返回: 当更改时 示例: |
|
生成的配置模块调用。 返回: 当 示例: |
|
模块调用之前的配置。 返回: 总是 示例: |
|
推送到远程设备的命令集。 返回: 总是 示例: |