dellemc.enterprise_sonic.sonic_ospfv2 模块 – 在 SONiC 上配置全局 OSPFv2 协议设置。

注意

此模块是 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_ospfv2

dellemc.enterprise_sonic 2.5.0 中的新增功能

概要

  • 此模块提供对运行 SONiC 的设备上的全局 OSPFv2 参数的配置管理。

  • 在 VRF 中配置 OSPF 之前,请先配置 VRF 实例。

参数

参数

注释

config

列表 / 元素=字典

指定 OSPFv2 相关的配置。

非被动接口被动接口 是互斥的。

default_passive=True 时,无法配置 passive_interfaces

default_passive=False 时,无法配置 non_passive_interfaces

abr_type

字符串

配置路由器 ABR 类型。

cisco - Cisco 实现类型的 ABR。

ibm - IBM 实现类型的 ABR。

shortcut - 快捷 ABR。

standard - RFC2328 标准实现 ABR。

选项

  • "cisco"

  • "ibm"

  • "shortcut"

  • "standard"

auto_cost_reference_bandwidth

整数

配置接口自动成本参考带宽 (1 到 4294967)。

default_metric

整数

配置重新分配路由的度量值 (0 到 16777214)。

default_passive

布尔值

抑制所有接口上的 OSPFv2 路由更新。

选项

  • false

  • true

distance

字典

配置路由管理距离。

all

整数

所有类型路由的距离值 (1 到 255)。

external

整数

外部路由的距离值 (1 到 255)。

inter_area

整数

区域间路由的距离值 (1 到 255)。

intra_area

整数

区域内路由的距离值 (1 到 255)。

graceful_restart

字典

OSPF 非停止转发 (NSF),也称为 OSPF Graceful Restart。

enable

布尔值

启用优雅重启。

选项

  • false

  • true

grace_period

整数

宽限期的最大长度,以秒为单位 (1 到 1800)。

helper

字典

OSPF GR 助手。

advertise_router_id

列表 / 元素=字符串

通告路由器 ID。

enable

布尔值

启用助手支持。

选项

  • false

  • true

planned_only

布尔值

仅支持计划重启。

选项

  • false

  • true

strict_lsa_checking

布尔值

启用严格的 LSA 检查。

选项

  • false

  • true

supported_grace_time

整数

支持的宽限间隔,以秒为单位 (10 到 1800)。

log_adjacency_changes

字符串

启用 OSPFv2 邻接状态日志。

选项

  • "brief"

  • "detail"

max_metric

字典

在 OSPFv2 LSA 中启用无限度量值通告。

administrative

布尔值

启用管理类型的无限度量值通告。

选项

  • false

  • true

external_lsa_all

整数

配置外部 LSA 所有前缀最大度量值通告。

配置最大度量值 (1 到 16777215)。

external_lsa_connected

整数

配置外部 LSA 连接前缀最大度量值通告。

配置最大度量值 (1 到 16777215)。

on_startup

整数

在 OSPFv2 路由器启动时启用无限度量值通告 (5 到 86400)。

router_lsa_all

整数

配置路由器 LSA 所有链路最大度量值通告。

配置最大度量值 (1 到 16777215)。

router_lsa_stub

整数

配置路由器 LSA 存根链路最大度量值通告。

配置最大度量值 (1 到 16777215)。

maximum_paths

整数

配置 ECMP 支持的多个路径的最大数量 (1 到 256)。

non_passive_interfaces

列表 / 元素=字典

配置非被动接口类型。

addresses

列表 / 元素=字符串

配置接口 IPv4 地址。

interface

字符串 / 必需

第 3 层接口的全名,例如 Eth1/1。

opaque_lsa_capability

布尔值

启用不透明 LSA 功能。

选项

  • false

  • true

passive_interfaces

列表 / 元素=字典

配置被动接口类型。

addresses

列表 / 元素=字符串

配置接口 IPv4 地址。

interface

字符串 / 必需

第 3 层接口的全名,例如 Eth1/1。

redistribute

列表 / 元素=字典

将路由重新分配到 OSPFv2 路由器。

always

布尔值

始终启用将默认路由重新分配到 OSPF。

仅适用于 protocol=default_route

选项

  • false

  • true

metric

整数

重新分配路由的度量值 (0 到 16777214)。

metric_type

整数

重新分配路由的度量类型。

选项

  • 1

  • 2

protocol

字符串 / 必需

配置要重新分配到 OSPF 的协议类型。

单独删除 protocol 也会删除 redistribute 下的所有其他配置。

bgp - 边界网关协议。

connected - 直接连接或连接的子网和主机。

default_route - 默认路由。

kernel - 除 FRR 安装路由之外的内核路由。

static - 静态配置的路由。

选项

  • "bgp"

  • "connected"

  • "default_route"

  • "kernel"

  • "static"

route_map

字符串

用于过滤重新分配路由的路由映射。

预先配置路由映射。

refresh_timer

整数

配置 LSA 刷新间隔,以秒为单位 (10 到 1800)。

rfc1583_compatible

布尔值

启用 OSPFv2 RFC 兼容性。

选项

  • false

  • true

router_id

字符串

配置 OSPFv2 路由器标识符 (A.B.C.D)。

timers

字典

配置路由器计时器。

lsa_min_arrival

整数

LSA 最小到达计时器,以毫秒为单位 (0 到 600000)。

throttle_lsa_all

整数

LSA 传输之间的延迟,以毫秒为单位 (0 到 5000)。

throttle_spf

字典

OSPFv2 SPF 计时器。

delay_timeinitial_hold_timemaximum_hold_time 必须一起使用。

delay_time

整数

SPF 延迟时间,以毫秒为单位 (0 到 600000)。

initial_hold_time

整数

SPF 初始保持时间,以毫秒为单位 (0 到 600000)。

maximum_hold_time

整数

SPF 最大保持时间,以毫秒为单位 (0 到 600000)。

vrf_name

字符串

指定 VRF 名称。

默认值: "default"

write_multiplier

整数

指定每次写入最多服务多少个接口 (1 到 100)

state

字符串

指定要在设备上配置的 OSPFv2 进程上执行的操作。

如果选择合并 (merged),输入配置将与设备上现有的 OSPFv2 配置合并。

如果选择删除 (deleted),将从设备中移除现有的 OSPFv2 配置。

如果选择覆盖 (overridden),将删除所有现有的 OSPFv2 配置,并安装指定的输入配置。

如果选择替换 (replaced),设备上现有的 OSPFv2 配置将被剧本中为每个 VRF 组配置的配置替换。

选项

  • "merged" ← (默认)

  • "deleted"

  • "replaced"

  • "overridden"

注释

注意

  • 支持 check_mode

示例

# Using deleted

# Before state:
# -------------
#
#sonic# show running-configuration ospf
#router ospf vrf Vrf_1
# default-metric 100
# max-metric router-lsa external-lsa all 2
# passive-interface default
# timers throttle spf 50 20 10
# timers throttle lsa all 300
# redistribute bgp metric 15 metric-type 2 route-map RMAP
# no passive-interface Eth1/1 2.2.2.2
# no passive-interface Eth1/2 2.2.2.2
#!
#router ospf
# ospf router-id 20.20.20.20
# distance 30
# distance ospf external 20
# refresh timer 300
# write-multiplier 20
# maximum-paths 200
# passive-interface Eth1/2 3.3.3.3
# passive-interface Eth1/3
#!
#sonic#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#sonic# show running-configuration ip prefix-list
#!
#ip prefix-list PRF_LIST seq 1 permit 1.1.1.1/24
#ip prefix-list PRF_LIST2 seq 1 permit 1.1.1.1/24
#sonic# show running-configuration route-map
#!
#route-map RMAP permit 1
#sonic#

  - name: Delete the OSPFv2 configurations
    sonic_ospf:
      config:
        - vrf_name: 'default'
          router_id: "20.20.20.20"
          distance:
            external: 20
          default_passive: false
          maximum_paths: 200
          passive_interfaces:
            interfaces:
              - interface: 'Eth1/3'
          redistribute:
            - protocol: "bgp"
              metric: 15
              metric_type: 2
              route_map: "RMAP"
          refresh_timer: 300
        - vrf_name: "Vrf_1"
          timers:
            throttle_spf:
              delay_time: 50
              initial_hold_time: 20
              maximum_hold_time: 10
          default_metric: 100
          max_metric:
            external_lsa_all: 2
          non_passive_interfaces:
            interfaces:
              - interface: "Eth1/2"
                addresses:
                  - "2.2.2.2"
      state: deleted

# After state:
# ------------
#
#sonic# show running-configuration ospf
#router ospf vrf Vrf_1
# passive-interface default
# timers throttle lsa all 300
# no passive-interface Eth1/1 2.2.2.2
# no passive-interface Eth1/2 2.2.2.2
#!
#router ospf
# distance 30
# write-multiplier 20
# passive-interface Eth1/2 3.3.3.3
#!
#sonic#


# Using deleted

# Before state:
# -------------
#
#sonic# show running-configuration ospf
#router ospf vrf Vrf_1
# passive-interface default
# timers throttle lsa all 300
# no passive-interface Eth1/1 2.2.2.2
# no passive-interface Eth1/2 2.2.2.2
#!
#router ospf
# distance 30
# write-multiplier 20
# passive-interface Eth1/2 3.3.3.3
#!
#sonic#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#sonic# show running-configuration ip prefix-list
#!
#ip prefix-list PRF_LIST seq 1 permit 1.1.1.1/24
#ip prefix-list PRF_LIST2 seq 1 permit 1.1.1.1/24
#sonic# show running-configuration route-map
#!
#route-map RMAP permit 1
#sonic#

  - name: Delete the OSPFv2 configurations
    sonic_ospf:
      config:
        - vrf_name: "Vrf_1"
      state: deleted

# After state:
# ------------
#
#sonic# show running-configuration ospf
#router ospf
# distance 30
# write-multiplier 20
# passive-interface Eth1/2 3.3.3.3
#!
#sonic#


# Using merged

# Before state:
# -------------
#
# sonic# show running-configuration ospf
# (No ospf configuration present)
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#sonic# show running-configuration ip prefix-list
#!
#ip prefix-list PRF_LIST seq 1 permit 1.1.1.1/24
#ip prefix-list PRF_LIST2 seq 1 permit 1.1.1.1/24
#sonic# show running-configuration route-map
#!
#route-map RMAP permit 1
#sonic#

  - name: Add the OSPFv2 configurations
    sonic_ospf:
      config:
        - vrf_name: 'default'
          router_id: "10.10.10.10"
          distance:
            external: 20
          auto_cost_reference_bandwidth: 100
        - vrf_name: "Vrf_1"
          timers:
            throttle_lsa_all: 300
            throttle_spf:
              delay_time: 10
              initial_hold_time: 20
              maximum_hold_time: 50
          redistribute:
            - protocol: "bgp"
              metric: 15
              metric_type: 2
              route_map: "RMAP"
          default_passive: true
          non_passive_interfaces:
            interfaces:
              - interface: "Eth1/1"
                addresses:
                  - "2.2.2.2"
      state: merged

# After state:
# ------------
#
#sonic# show running-configuration ospf
#router ospf vrf Vrf_1
# passive-interface default
# timers throttle spf 10 20 50
# timers throttle lsa all 300
# redistribute bgp metric 15 metric-type 2 route-map RMAP
# no passive-interface Eth1/1 2.2.2.2
#!
#router ospf
# auto-cost reference-bandwidth 100
# ospf router-id 10.10.10.10
# distance ospf external 20
#!
#sonic#


# Using merged

# Before state:
# -------------
#
#sonic# show running-configuration ospf
#router ospf vrf Vrf_1
# passive-interface default
# timers throttle spf 10 20 50
# timers throttle lsa all 300
# redistribute bgp metric 15 metric-type 2 route-map RMAP
# no passive-interface Eth1/1 2.2.2.2
#!
#router ospf
# ospf router-id 10.10.10.10
# distance ospf external 20
#!
#sonic#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#sonic# show running-configuration ip prefix-list
#!
#ip prefix-list PRF_LIST seq 1 permit 1.1.1.1/24
#ip prefix-list PRF_LIST2 seq 1 permit 1.1.1.1/24
#sonic# show running-configuration route-map
#!
#route-map RMAP permit 1
#sonic#

  - name: Add the OSPFv2 configurations
    sonic_ospf:
      config:
        - vrf_name: 'default'
          write_multiplier: 20
          router_id: "20.20.20.20"
          distance:
            all: 30
          default_passive: false
          graceful_restart:
            enable: true
            grace_period: 100
            helper:
              enable: true
              planned_only: true
              advertise_router_id:
                - '1.1.1.1'
                - '2.2.2.2'
          passive_interfaces:
            interfaces:
              - interface: 'Eth1/2'
                addresses:
                  - '3.3.3.3'
              - interface: 'Eth1/3'
          log_adjacency_changes: 'detail'
        - vrf_name: "Vrf_1"
          timers:
            throttle_spf:
              delay_time: 50
              initial_hold_time: 20
              maximum_hold_time: 10
          max_metric:
            external_lsa_all: 30
          log_adjacency_changes: 'brief'
          default_passive: true
          non_passive_interfaces:
            interfaces:
              - interface: "Eth1/2"
                addresses:
                  - "2.2.2.2"
      state: merged

# After state:
# ------------
#
#sonic# show running-configuration ospf
#router ospf vrf Vrf_1
# log-adjacency-changes
# max-metric router-lsa external-lsa all 30
# passive-interface default
# timers throttle spf 50 20 10
# timers throttle lsa all 300
# redistribute bgp metric 15 metric-type 2 route-map RMAP
# no passive-interface Eth1/1 2.2.2.2
# no passive-interface Eth1/2 2.2.2.2
#!
#router ospf
# ospf router-id 20.20.20.20
# distance 30
# distance ospf external 20
# log-adjacency-changes detail
# graceful-restart grace-period 100
# graceful-restart helper enable
# graceful-restart helper planned-only
# graceful-restart helper enable 1.1.1.1
# graceful-restart helper enable 2.2.2.2
# write-multiplier 20
# passive-interface Eth1/2 3.3.3.3
# passive-interface Eth1/3
#!
#sonic#


# Using replaced

# Before state:
# -------------
#
#sonic# show running-configuration ospf
#router ospf vrf Vrf_1
# max-metric router-lsa external-lsa all 2
# passive-interface default
# timers throttle spf 50 20 10
# timers throttle lsa all 300
# redistribute bgp metric 15 metric-type 2 route-map RMAP
# no passive-interface Eth1/1 2.2.2.2
# no passive-interface Eth1/2 2.2.2.2
#!
#router ospf
# ospf router-id 20.20.20.20
# distance 30
# distance ospf external 20
# write-multiplier 20
# passive-interface Eth1/2 3.3.3.3
# passive-interface Eth1/3
#!
#sonic#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#sonic# show running-configuration ip prefix-list
#!
#ip prefix-list PRF_LIST seq 1 permit 1.1.1.1/24
#ip prefix-list PRF_LIST2 seq 1 permit 1.1.1.1/24
#sonic# show running-configuration route-map
#!
#route-map RMAP permit 1
#route-map RMAP2 permit 2
#sonic#

  - name: Replace the OSPFv2 vrf default configurations
    sonic_ospf:
      config:
        - vrf_name: 'default'
          router_id: "20.20.20.20"
          redistribute:
            - protocol: "connected"
              metric: 15
              metric_type: 2
              route_map: "RMAP2"
            - protocol: "default_route"
              always: true
              route_map: "RMAP"
          distance:
            all: 20
          abr_type: cisco
          opaque_lsa_capability: true
      state: replaced

# After state:
# ------------
#
#sonic# show running-configuration ospf
#router ospf vrf Vrf_1
# max-metric router-lsa external-lsa all 2
# passive-interface default
# timers throttle spf 50 20 10
# timers throttle lsa all 300
# redistribute bgp metric 15 metric-type 2 route-map RMAP
# no passive-interface Eth1/1 2.2.2.2
# no passive-interface Eth1/2 2.2.2.2
#!
#router ospf
# capability opaque
# ospf router-id 20.20.20.20
# default-information originate always route-map RMAP
# distance 20
# ospf abr-type cisco
# redistribute connected metric 15 metric-type 2 route-map RMAP2
#!


# Using overridden

# Before state:
# -------------
#
#sonic# show running-configuration ospf
#router ospf vrf Vrf_1
# max-metric router-lsa external-lsa all 2
# passive-interface default
# timers throttle spf 50 20 10
# timers throttle lsa all 300
# redistribute bgp metric 15 metric-type 2 route-map RMAP
# no passive-interface Eth1/1 2.2.2.2
# no passive-interface Eth1/2 2.2.2.2
#!
#router ospf
# ospf router-id 20.20.20.20
# distance 30
# distance ospf external 20
# write-multiplier 20
# passive-interface Eth1/2 3.3.3.3
# passive-interface Eth1/3
#!
#sonic#
#sonic# show running-configuration vrf Vrf_1
#!
#ip vrf Vrf_1
#sonic# show running-configuration ip prefix-list
#!
#ip prefix-list PRF_LIST seq 1 permit 1.1.1.1/24
#ip prefix-list PRF_LIST2 seq 1 permit 1.1.1.1/24
#sonic# show running-configuration route-map
#!
#route-map RMAP permit 1
#route-map RMAP2 permit 2
#sonic#

  - name: Override the OSPFv2 configurations
    sonic_ospf:
      config:
        - vrf_name: 'default'
          router_id: "20.20.20.20"
          redistribute:
            - protocol: "connected"
              metric: 15
              metric_type: 2
              route_map: "RMAP2"
          distance:
            all: 20
          rfc1583_compatible: true
      state: overridden

# After state:
# ------------
#
#sonic# show running-configuration ospf
#router ospf
# compatible rfc1583
# ospf router-id 20.20.20.20
# distance 20
# redistribute connected metric 15 metric-type 2 route-map RMAP2
#!

返回值

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

描述

after

列表 / 元素=字符串

模块调用后的最终配置。

返回:发生更改时

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

after(generated)

列表 / 元素=字符串

生成的模块调用配置。

返回:当使用 check_mode

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

before

列表 / 元素=字符串

模块调用前的配置。

返回:始终返回

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

commands

列表 / 元素=字符串

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

返回:始终返回

示例: ["command 1", "command 2", "command 3"]

作者

  • Santhosh kumar T (@santhosh-kt)