dellemc.enterprise_sonic.sonic_stp 模块 – 管理 SONiC 上的 STP 配置

注意

此模块是 dellemc.enterprise_sonic 集合 (版本 2.5.1) 的一部分。

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

要安装它,请使用:ansible-galaxy collection install dellemc.enterprise_sonic

要在剧本中使用它,请指定:dellemc.enterprise_sonic.sonic_stp

dellemc.enterprise_sonic 2.3.0 中的新增功能

概要

  • 此模块提供运行 SONiC 的设备的 STP 配置管理。

参数

参数

注释

config

字典

指定 STP 配置

mstppvstrapid_pvst 是互斥的。

global

字典

全局 STP 配置

bpdu_filter

布尔值

启用边缘端口 BPDU 过滤

选项

  • false ← (默认)

  • true

bridge_priority

整数

桥接标识符的可管理组件

值必须是 4096 的倍数,范围为 0-61440

默认值: 32768

disabled_vlans

列表 / 元素=字符串

已禁用的 STP VLAN 列表。列表项的值可以是单个 VLAN ID 或 VLAN ID 范围

由“-”或“..”分隔;例如 70-100 或 70..100。

enabled_protocol

字符串

指定在设备上启用的 STP 类型

选项

  • "mst"

  • "pvst"

  • "rapid_pvst"

fwd_delay

整数

STP 桥接使用的时间延迟(秒),用于将根端口和指定端口转换为转发状态

范围 4-30

默认值: 15

hello_time

整数

指定端口之间定期传输配置消息的时间间隔(秒)

范围 1-10

默认值: 2

loop_guard

布尔值

桥接的环路保护默认设置

选项

  • false ← (默认)

  • true

max_age

整数

桥接作为根桥时传输的信息的最大生存时间(秒)

范围 6-40

默认值: 20

portfast

布尔值

在所有访问端口上全局启用 PortFast

可配置为 pvst 协议

选项

  • false ← (默认)

  • true

root_guard_timeout

整数

指定端口恢复到转发状态之前的根保护恢复超时时间(秒)

范围 5-600

interfaces

列表 / 元素=字典

接口 STP 配置

bpdu_filter

布尔值

启用边缘端口 BPDU 过滤

选项

  • false ← (默认)

  • true

bpdu_guard

布尔值

启用边缘端口 BPDU 保护

选项

  • false ← (默认)

  • true

cost

整数

端口作为根端口时对桥接的根路径成本的贡献

edge_port

布尔值

将接口配置为 STP 边缘端口

选项

  • false ← (默认)

  • true

guard

字符串

启用根保护或环路保护

选项

  • "loop"

  • "root"

  • "none"

intf_name

字符串 / 必需

接口名称

字符串

指定接口的链路类型

选项

  • "point-to-point"

  • "shared"

port_priority

整数

端口标识符的可管理组件

范围 0-240

portfast

布尔值

在指定接口上启用/禁用 portfast

可配置为 pvst 协议

选项

  • false ← (默认)

  • true

shutdown

布尔值

当端口接收到 BPDU 时要关闭的端口

选项

  • false ← (默认)

  • true

stp_enable

布尔值

启用接口上的 STP

选项

  • false

  • true ← (默认)

布尔值

启用上行链路快速

选项

  • false ← (默认)

  • true

mstp

字典

多 STP 配置

fwd_delay

整数

STP 桥接使用的时间延迟(秒),用于将根端口和指定端口转换为转发状态

范围 4-30

hello_time

整数

指定端口之间定期传输配置消息的时间间隔(秒)

范围 1-10

max_age

整数

桥接作为根桥时传输的信息的最大生存时间(秒)

范围 6-40

max_hop

整数

BPDU 在被丢弃之前可以在 MST 区域中遍历的桥接数

mst_instances

列表 / 元素=字典

MST 实例的配置

bridge_priority

整数

桥接标识符的可管理组件

值必须是 4096 的倍数

interfaces

列表 / 元素=字典

已启用 STP 的接口列表

cost

整数

端口作为根端口时对桥接的根路径成本的贡献

intf_name

字符串 / 必需

对 STP 接口的引用

port_priority

整数

端口标识符的可管理组件

mst_id

整数 / 必需

用于标识 MST 实例的值

vlans

列表 / 元素=字符串

映射到 MST 实例的 VLAN 列表。列表项的值可以是单个 VLAN ID 或 VLAN ID 范围

由“-”或“..”分隔;例如 70-100 或 70..100。

mst_name

字符串

MST 配置标识符的名称

revision

整数

MST 配置标识符的修订级别

pvst

列表 / 元素=字典

每个 VLAN 的 STP 配置

bridge_priority

整数

桥接标识符的可管理组件

值必须是 4096 的倍数

fwd_delay

整数

STP 桥接使用的时间延迟(秒),用于将根端口和指定端口转换为转发状态

范围 4-30

hello_time

整数

指定端口之间定期传输配置消息的时间间隔(秒)

范围 1-10

interfaces

列表 / 元素=字典

已启用 STP 的接口列表

cost

整数

端口作为根端口时对桥接的根路径成本的贡献

intf_name

字符串 / 必需

对 STP 接口的引用

port_priority

整数

端口标识符的可管理组件

max_age

整数

桥接作为根桥时传输的信息的最大生存时间(秒)

范围 6-40

vlan_id

整数 / 必需

VLAN 标识符

rapid_pvst

列表 / 元素=字典

快速每个 VLAN 的 STP 配置

bridge_priority

整数

桥接标识符的可管理组件

值必须是 4096 的倍数

fwd_delay

整数

STP 桥接使用的时间延迟(秒),用于将根端口和指定端口转换为转发状态

范围 4-30

hello_time

整数

指定端口之间定期传输配置消息的时间间隔(秒)

范围 1-10

interfaces

列表 / 元素=字典

已启用 STP 的接口列表

cost

整数

端口作为根端口时对桥接的根路径成本的贡献

intf_name

字符串 / 必需

对 STP 接口的引用

port_priority

整数

端口标识符的可管理组件

max_age

整数

桥接作为根桥时传输的信息的最大生存时间(秒)

范围 6-40

vlan_id

整数 / 必需

VLAN 标识符

state

字符串

模块完成后的配置状态

选项

  • "merged" ← (默认)

  • "deleted"

  • "replaced"

  • "overridden"

备注

注意

  • 针对戴尔科技公司提供的企业 SONiC 发行版进行了测试。

  • 支持 check_mode

示例

# Using merged
#
# Before State:
# -------------
#
# sonic# show running-configuration spanning-tree
# (No spanning-tree configuration present)

- name: Merge STP configurations
  dellemc.enterprise_sonic.sonic_stp:
    config:
      global:
        enabled_protocol: mst
        loop_guard: true
        bpdu_filter: true
        disabled_vlans:
          - 4-6
        hello_time: 5
        max_age: 10
        fwd_delay: 20
        bridge_priority: 4096
      interfaces:
        - intf_name: Ethernet20
          edge_port: true
          link_type: shared
          guard: loop
          bpdu_guard: true
          bpdu_filter: true
          uplink_fast: true
          shutdown: true
          cost: 20
          port_priority: 30
          stp_enable: true
      mstp:
        mst_name: mst1
        revision: 1
        max_hop: 3
        hello_time: 6
        max_age: 9
        fwd_delay: 12
        mst_instances:
          - mst_id: 1
            bridge_priority: 2048
            vlans:
              - 1
            interfaces:
              - intf_name: Ethernet20
                cost: 60
                port_priority: 65
    state: merged

# After State:
# ------------
#
# sonic# show running-configuration spanning-tree
#  no spanning-tree vlan 4-6
#  spanning-tree mode mst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree forward-time 20
#  spanning-tree hello-time 5
#  spanning-tree max-age 10
#  spanning-tree loopguard default
#  spanning-tree mst hello-time 6
#  spanning-tree mst forward-time 12
#  spanning-tree mst max-age 9
#  spanning-tree mst max-hops 3
#  spanning-tree mst 1 priority 2048
#  !
#  spanning-tree mst configuration
#   name mst1
#   revision 1
#   instance 1 vlan 1
#   activate
#  !
#  interface Ethernet20
#   spanning-tree bpdufilter enable
#   spanning-tree guard loop
#   spanning-tree bpduguard port-shutdown
#   spanning-tree cost 20
#   spanning-tree link-type shared
#   spanning-tree port-priority 30
#   spanning-tree port type edge
#   spanning-tree uplinkfast
#   spanning-tree mst 1 cost 60
#   spanning-tree mst 1 port-priority 65


# Using replaced
#
# Before State:
# -------------
#
# sonic# show running-configuration spanning-tree
#  no spanning-tree vlan 4-6
#  spanning-tree mode mst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree loopguard default
#  spanning-tree mst hello-time 6
#  spanning-tree mst forward-time 12
#  spanning-tree mst max-age 9
#  spanning-tree mst max-hops 3
#  spanning-tree mst 1 priority 2048
#  !
#  spanning-tree mst configuration
#   name mst1
#   revision 1
#   instance 1 vlan 1
#   activate
#  !
#  interface Ethernet20
#   spanning-tree bpdufilter enable
#   spanning-tree guard loop
#   spanning-tree bpduguard port-shutdown
#   spanning-tree cost 20
#   spanning-tree link-type shared
#   spanning-tree port-priority 30
#   spanning-tree port type edge
#   spanning-tree uplinkfast
#   spanning-tree mst 1 cost 60
#   spanning-tree mst 1 port-priority 65

- name: Replace STP configurations
  dellemc.enterprise_sonic.sonic_stp:
    config:
      interfaces:
        - intf_name: Ethernet20
          cost: 25
          port_priority: 35
      mstp:
        mst_name: mst2
        revision: 2
        max_hop: 4
        hello_time: 7
        max_age: 10
        fwd_delay: 13
    state: replaced

# After State:
# ------------
#
# sonic# show running-configuration spanning-tree
#  no spanning-tree vlan 4-6
#  spanning-tree mode mst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree loopguard default
#  spanning-tree mst hello-time 7
#  spanning-tree mst forward-time 13
#  spanning-tree mst max-age 10
#  spanning-tree mst max-hops 4
#  !
#  spanning-tree mst configuration
#   name mst2
#   revision 2
#   activate
#  !
#  interface Ethernet20
#   spanning-tree cost 25
#   spanning-tree port-priority 35


# Using overridden
#
# Before State:
# -------------
#
# sonic# show running-configuration spanning-tree
#  no spanning-tree vlan 4-6
#  spanning-tree mode mst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree loopguard default
#  spanning-tree mst hello-time 7
#  spanning-tree mst forward-time 13
#  spanning-tree mst max-age 10
#  spanning-tree mst max-hops 4
#  !
#  spanning-tree mst configuration
#   name mst2
#   revision 2
#   activate
#  !
#  interface Ethernet20
#   spanning-tree cost 25
#   spanning-tree port-priority 35

- name: Override STP configurations
  dellemc.enterprise_sonic.sonic_stp:
    config:
      global:
        enabled_protocol: pvst
        bpdu_filter: true
        root_guard_timeout: 25
        portfast: true
        hello_time: 5
        max_age: 10
        fwd_delay: 20
        bridge_priority: 4096
      pvst:
        - vlan_id: 1
          hello_time: 4
          max_age: 6
          fwd_delay: 8
          bridge_priority: 4096
          interfaces:
            - intf_name: Ethernet20
              cost: 10
              port_priority: 50
    state: overridden

# After State:
# ------------
#
# sonic# show running-configuration spanning-tree
#  spanning-tree mode pvst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree forward-time 20
#  spanning-tree guard root timeout 25
#  spanning-tree hello-time 5
#  spanning-tree max-age 10
#  spanning-tree priority 4096
#  spanning-tree portfast default
#  spanning-tree vlan 1 hello-time 4
#  spanning-tree vlan 1 forward-time 8
#  spanning-tree vlan 1 max-age 6
# sonic# show running-configuration interface Ethernet 20 | grep spanning-tree
#  spanning-tree vlan 1 cost 10
#  spanning-tree vlan 1 port-priority 50


# Using deleted
#
# Before State:
# -------------
#
# sonic# show running-configuration spanning-tree
#  spanning-tree mode pvst
#  spanning-tree edge-port bpdufilter default
#  spanning-tree forward-time 20
#  spanning-tree guard root timeout 25
#  spanning-tree hello-time 5
#  spanning-tree max-age 10
#  spanning-tree priority 4096
#  spanning-tree portfast default
#  spanning-tree vlan 1 hello-time 4
#  spanning-tree vlan 1 forward-time 8
#  spanning-tree vlan 1 max-age 6
# sonic# show running-configuration interface Ethernet 20 | grep spanning-tree
#  spanning-tree vlan 1 cost 10
#  spanning-tree vlan 1 port-priority 50

- name: Delete STP configurations
  dellemc.enterprise_sonic.sonic_stp:
    config:
      global:
        bpdu_filter: true
        root_guard_timeout: 25
      pvst:
        - vlan_id: 1
          interfaces:
            - intf_name: Ethernet20
    state: deleted

# After State:
# ------------
#
# sonic# show running-configuration spanning-tree
# spanning-tree mode pvst
# spanning-tree forward-time 20
# spanning-tree hello-time 5
# spanning-tree max-age 10
# spanning-tree priority 4096
# spanning-tree portfast default
# spanning-tree vlan 1 hello-time 4
# spanning-tree vlan 1 forward-time 8
# spanning-tree vlan 1 max-age 6
# sonic# show running-configuration interface Ethernet 20 | grep spanning-tree
# (No spanning-tree configuration present)

返回值

常见的返回值已在 此处 记录,以下是此模块特有的字段

描述

after

列表 / 元素=字符串

模块调用后的结果配置。

返回:发生更改时

示例: ["返回的配置将始终与上面的参数格式相同。\n"]

after(已生成)

列表 / 元素=字符串

生成的配置模块调用。

返回:check_mode

示例: ["返回的配置将始终与上面的参数格式相同。\n"]

之前

列表 / 元素=字符串

模块调用之前的配置。

返回:始终

示例: ["返回的配置将始终与上面的参数格式相同。\n"]

命令

列表 / 元素=字符串

推送到远程设备的命令集。

返回:始终

示例: ["命令 1", "命令 2", "命令 3"]

作者

  • Shade Talabi (@stalabi1)