arista.eos.eos_ospfv3 模块 – OSPFv3 资源模块
注意
此模块是 arista.eos 集合 (版本 10.0.1) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install arista.eos
。
要在 playbook 中使用它,请指定: arista.eos.eos_ospfv3
。
arista.eos 1.1.0 中的新增功能
摘要
此模块配置和管理 Arista EOS 平台上 ospfv3 的属性。
参数
参数 |
注释 |
---|---|
ospfv3 的配置列表。 |
|
指定 ospfv3 进程的字典列表。 |
|
启用地址族并进入其配置模式 |
|
配置 OSPF 实例的邻接选项。 |
|
配置 OSPF 实例的 exchange-start 选项。 |
|
同时启动的邻居数量。 |
|
地址族。 选项
|
|
指定 OSPF 区域的配置 |
|
指定以十进制或点分十进制表示的 32 位数字。 |
|
为 ospfv3 中的区域配置身份验证。 |
|
要使用的算法名称。 选项
|
|
如果为 false,则密钥字符串不加密 选项
|
|
如果为 true,则指定将使用隐藏密钥。 选项
|
|
128 位 MD5 密钥或 140 位 SHA1 密钥。 |
|
用于派生身份验证和加密密钥的密码短语字符串。 |
|
指定 SPI 值 |
|
指定存根/NSSA 区域中默认汇总路由的开销。 |
|
配置区域的加密 |
|
要使用的算法名称。 选项
|
|
如果为 false,则密钥字符串不加密 选项
|
|
要使用的加密名称。 选项
|
|
如果为 true,则指定将使用隐藏密钥。 选项
|
|
128 位 MD5 密钥或 140 位 SHA1 密钥。 |
|
用于派生身份验证和加密密钥的密码短语字符串。 |
|
指定 SPI 值 |
|
配置 NSSA 参数。 |
|
启动默认类型 7 LSA。 |
|
默认路由的度量。 |
|
默认路由的度量类型。 |
|
将默认广告限制为此 NSSA 区域。 选项
|
|
如果仅设置了 default information originate,则为 true 选项
|
|
过滤 nssa 区域中的所有类型 3 LSA。 选项
|
|
禁用类型 7 LSA p 位设置 选项
|
|
如果仅设置了 nssa,则为 true 选项
|
|
启用 LSA 转换。 选项
|
|
配置路由汇总。 |
|
IP 地址。 |
|
启用范围的广告。 选项
|
|
配置度量。 |
|
带有掩码长度的 IP 地址 |
|
IP 子网掩码 |
|
存根区域。 |
|
如果仅设置了 stub,则为 true 选项
|
|
如果为 false,则过滤存根区域中的所有类型 3 LSA。 选项
|
|
设置自动开销。 |
|
以兆比特每秒为单位的参考带宽。 |
|
启用 BFD。 |
|
在所有接口上启用 BFD。 选项
|
|
控制默认信息的分配。 |
|
始终通告默认路由。 选项
|
|
默认路由的度量。 |
|
默认路由的度量类型。 |
|
分发默认路由。 选项
|
|
指定要使用的路由映射。 |
|
配置重新分配路由的默认度量。 |
|
指定路由的管理距离。 |
|
使用 FIPS 兼容算法 选项
|
|
启用优雅重启模式。 |
|
指定等待优雅重启完成的最长时间。 |
|
如果为 true,则仅设置 grace_fulrestart 配置。 选项
|
|
如果为 true,则启用优雅重启助手。 选项
|
|
配置 OSPFv3 邻居的链路状态更改和转换。 |
|
如果为 true,则配置交换机以记录所有链路状态更改。 选项
|
|
如果为 true,则仅设置 log_adjacency_changes 配置。 选项
|
|
设置最大度量。 |
|
自启动路由 LSA 中的最大度量。 |
|
使用 max-metric 值覆盖 external-lsa 度量。 |
|
设置外部 LSA 的最大度量值。 |
|
设置 external-lsa 属性。 选项
|
|
设置路由 LSA 中存根链路的最大度量。 选项
|
|
重新引导后暂时设置最大度量。 |
|
让 BGP 决定何时使用正常度量启动路由 LSA 选项
|
|
启动后等待时间(秒)。 |
|
设置 router-lsa 属性。 选项
|
|
使用 max-metric 值覆盖 summary-lsa 度量。 |
|
设置外部 LSA 的最大度量值。 |
|
设置 external-lsa 属性。 选项
|
|
ECMP 路由中最大下一跳数。 |
|
包含接口,但不主动运行 OSPF。 选项
|
|
指定要重新分发的路由。 |
|
指定要使用的路由映射。 |
|
路由类型 (BGP、静态、连接) 选项
|
|
分配给运行 OSPFv3 的路由器的 32 位数字。 |
|
禁用OSPF实例。 选项
|
|
配置OSPF计时器。 |
|
配置OSPFv3 LSA计时器。 |
|
配置OSPFv3 LSA接收/传输计时器。 选项
|
|
初始SPF调度延迟(毫秒)。 |
|
两次SPF之间的最大等待时间(毫秒)。 |
|
两次SPF之间的最小保持时间(毫秒)。 |
|
配置输出延迟计时器。 |
|
配置OSPF数据包配速。 |
|
配置OSPFv3 SPF计时器。 |
|
初始SPF调度延迟(毫秒)。 |
|
两次SPF之间的最大等待时间(毫秒)。 |
|
两次SPF之间的最小保持时间(毫秒)。 |
|
配置 OSPF 实例的邻接选项。 |
|
配置 OSPF 实例的 exchange-start 选项。 |
|
同时启动的邻居数量。 |
|
指定 OSPF 区域的配置 |
|
指定以十进制或点分十进制表示的 32 位数字。 |
|
为 ospfv3 中的区域配置身份验证。 |
|
要使用的算法名称。 选项
|
|
如果为 false,则密钥字符串不加密 选项
|
|
如果为 true,则指定将使用隐藏密钥。 选项
|
|
128 位 MD5 密钥或 140 位 SHA1 密钥。 |
|
用于派生身份验证和加密密钥的密码短语字符串。 |
|
指定 SPI 值 |
|
指定存根/NSSA 区域中默认汇总路由的开销。 |
|
配置区域的加密 |
|
要使用的算法名称。 选项
|
|
如果为 false,则密钥字符串不加密 选项
|
|
要使用的加密名称。 选项
|
|
如果为 true,则指定将使用隐藏密钥。 选项
|
|
128 位 MD5 密钥或 140 位 SHA1 密钥。 |
|
用于派生身份验证和加密密钥的密码短语字符串。 |
|
指定 SPI 值 |
|
配置 NSSA 参数。 |
|
启动默认类型 7 LSA。 |
|
默认路由的度量。 |
|
默认路由的度量类型。 |
|
将默认广告限制为此 NSSA 区域。 选项
|
|
如果仅设置了 default information originate,则为 true 选项
|
|
过滤 nssa 区域中的所有类型 3 LSA。 选项
|
|
禁用类型 7 LSA p 位设置 选项
|
|
如果仅设置了 nssa,则为 true 选项
|
|
启用 LSA 转换。 选项
|
|
存根区域。 |
|
如果仅设置了stub,则为true。 选项
|
|
如果为 false,则过滤存根区域中的所有类型 3 LSA。 选项
|
|
设置自动开销。 |
|
以兆比特每秒为单位的参考带宽。 |
|
启用 BFD。 |
|
在所有接口上启用 BFD。 选项
|
|
使用 FIPS 兼容算法 选项
|
|
启用优雅重启模式。 |
|
指定等待优雅重启完成的最长时间。 |
|
如果为 true,则仅设置 grace_fulrestart 配置。 选项
|
|
如果为 true,则启用优雅重启助手。 选项
|
|
配置 OSPFv3 邻居的链路状态更改和转换。 |
|
如果为 true,则配置交换机以记录所有链路状态更改。 选项
|
|
如果为 true,则仅设置 log_adjacency_changes 配置。 选项
|
|
设置最大度量。 |
|
自启动路由 LSA 中的最大度量。 |
|
使用 max-metric 值覆盖 external-lsa 度量。 |
|
设置外部 LSA 的最大度量值。 |
|
设置 external-lsa 属性。 选项
|
|
设置路由 LSA 中存根链路的最大度量。 选项
|
|
重新引导后暂时设置最大度量。 |
|
让 BGP 决定何时使用正常度量启动路由 LSA 选项
|
|
启动后等待时间(秒)。 |
|
设置 router-lsa 属性。 选项
|
|
使用 max-metric 值覆盖 summary-lsa 度量。 |
|
设置外部 LSA 的最大度量值。 |
|
设置 external-lsa 属性。 选项
|
|
包含接口,但不主动运行 OSPF。 选项
|
|
分配给运行 OSPFv3 的路由器的 32 位数字。 |
|
禁用OSPF实例。 选项
|
|
配置OSPF计时器。 |
|
配置OSPFv3 LSA计时器。 |
|
配置OSPFv3 LSA接收/传输计时器。 选项
|
|
初始SPF调度延迟(毫秒)。 |
|
两次SPF之间的最大等待时间(毫秒)。 |
|
两次SPF之间的最小保持时间(毫秒)。 |
|
配置输出延迟计时器。 |
|
配置OSPF数据包配速。 |
|
配置OSPFv3 SPF计时器。 |
|
初始SPF调度延迟(毫秒)。 |
|
两次SPF之间的最大等待时间(毫秒)。 |
|
两次SPF之间的最小保持时间(毫秒)。 |
|
VRF名称。 |
|
此选项仅在状态为 *已解析* 时使用。 此选项的值应为通过执行命令 **show running-config | section ospfv3** 从EOS设备接收的输出。 状态 *已解析* 从 |
|
配置应保留的状态。 选项
|
注释
注意
针对Arista EOS 4.24.6F进行了测试
此模块与连接
network_cli
协同工作。请参阅 EOS平台选项。
示例
# Using merged
# Before state:
# -------------
# veos#show running-config | section ospfv3
# veos#
- name: Merge the provided configuration with the existing running configuration
arista.eos.eos_ospfv3:
config:
processes:
- address_family:
- timers:
lsa: 22
graceful_restart:
grace_period: 35
afi: "ipv6"
timers:
pacing: 55
fips_restrictions: true
router_id: "2.2.2.2"
vrf: "vrfmerge"
state: merged
# Task output:
# ------------
# before: {}
#
# commands:
# - router ospfv3 vrf vrfmerge
# - address-family ipv6
# - graceful-restart grace-period 35
# - timers lsa arrival 22
# - exit
# - timers pacing flood 55
# - fips restrictions
# - router-id 2.2.2.2
# - exit
#
# after:
# processes:
# - address_family:
# - afi: ipv6
# fips_restrictions: true
# graceful_restart:
# grace_period: 35
# fips_restrictions: true
# router_id: 2.2.2.2
# timers:
# pacing: 55
# vrf: vrfmerge
# After state:
# ------------
# veos#show running-config | section ospfv3
# router ospfv3 vrf vrfmerge
# router-id 2.2.2.2
# test
# fips restrictions
# timers pacing flood 55
# !
# address-family ipv6
# fips restrictions
# timers lsa arrival 22
# graceful-restart grace-period 35
# using replaced
# Before state:
# -------------
# veos#show running-config | section ospfv3
# router ospfv3
# fips restrictions
# area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=
# !
# router ospfv3 vrf vrfmerge
# router-id 2.2.2.2
# fips restrictions
# timers pacing flood 55
# !
# address-family ipv6
# fips restrictions
# timers lsa arrival 22
# graceful-restart grace-period 35
- name: Replace a section of running config with provided config
arista.eos.eos_ospfv3:
config:
processes:
- areas:
- area_id: "0.0.0.0"
encryption:
spi: 43
encryption: "null"
algorithm: "md5"
encrypt_key: false
passphrase: "7hl8FV3lZ6H1mAKpjL47hQ=="
vrf: "default"
address_family:
- afi: "ipv4"
router_id: "7.1.1.1"
state: replaced
# Task output:
# ------------
# before:
# processes:
# - areas:
# - area_id: 0.0.0.0
# encryption:
# algorithm: md5
# encryption: 'null'
# hidden_key: true
# passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
# spi: 43
# fips_restrictions: true
# vrf: default
# - address_family:
# - afi: ipv6
# fips_restrictions: true
# graceful_restart:
# grace_period: 35
# fips_restrictions: true
# router_id: 2.2.2.2
# timers:
# pacing: 55
# vrf: vrfmerge
#
# commands:
# - router ospfv3 vrf vrfmerge
# - address-family ipv6
# - no fips restrictions
# - no graceful-restart
# - no timers lsa arrival 22
# - area 0.0.0.3 range 10.1.2.2/24 advertise
# - area 0.0.0.3 range 60.1.1.1 255.255.0.0 cost 30
# - exit
# - passive-interface default
# - no router-id
# - no fips restrictions
# - no timers pacing flood 55
# - exit
#
# after:
# processes:
# - areas:
# - area_id: 0.0.0.0
# encryption:
# algorithm: md5
# encryption: 'null'
# hidden_key: true
# passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
# spi: 43
# vrf: default
# - address_family:
# - afi: ipv6
# areas:
# - area_id: 0.0.0.3
# ranges:
# - address: 10.1.2.0/24
# - address: 60.1.0.0/16
# cost: 30
# passive_interface: true
# vrf: vrfmerge
# After state:
# ------------
# veos#show running-config | section ospfv3
# router ospfv3
# area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=
# !
# router ospfv3 vrf vrfmerge
# passive-interface default
# !
# address-family ipv6
# area 0.0.0.3 range 10.1.2.0/24
# area 0.0.0.3 range 60.1.0.0/16 cost 30
# using overridden
# Before state:
# -------------
# veos#show running-config | section ospfv3
# router ospfv3
# area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=
# !
# router ospfv3 vrf vrfmerge
# passive-interface default
# !
# address-family ipv6
# area 0.0.0.3 range 10.1.2.0/24
# area 0.0.0.3 range 60.1.0.0/16 cost 30
- name: Override running config with provided config
arista.eos.eos_ospfv3:
config:
processes:
- address_family:
- areas:
- area_id: "0.0.0.3"
ranges:
- address: 10.1.2.2/24
advertise: true
- address: 60.1.1.1
subnet_mask: 255.255.0.0
cost: 30
afi: "ipv6"
passive_interface: true
vrf: "vrfmerge"
state: overridden
# Task output:
# ------------
# before:
# processes:
# - areas:
# - area_id: 0.0.0.0
# encryption:
# algorithm: md5
# encryption: 'null'
# hidden_key: true
# passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
# spi: 43
# vrf: default
# - address_family:
# - afi: ipv6
# areas:
# - area_id: 0.0.0.3
# ranges:
# - address: 10.1.2.0/24
# - address: 60.1.0.0/16
# cost: 30
# passive_interface: true
# vrf: vrfmerge
#
# commands:
# - no router ospfv3
# - router ospfv3 vrf vrfmerge
# - address-family ipv6
# - no area 0.0.0.3 range 10.1.2.0/24
# - no area 0.0.0.3 range 60.1.0.0/16 cost 30
# - area 0.0.0.3 range 10.1.2.2/24 advertise
# - area 0.0.0.3 range 60.1.1.1 255.255.0.0 cost 30
# - exit
# - exit
#
# after:
# processes:
# - address_family:
# - afi: ipv6
# areas:
# - area_id: 0.0.0.3
# ranges:
# - address: 10.1.2.0/24
# - address: 60.1.0.0/16
# cost: 30
# passive_interface: true
# vrf: vrfmerge
# After state:
# ------------
# veos#show running-config | section ospfv3
# router ospfv3 vrf vrfmerge
# passive-interface default
# !
# address-family ipv6
# area 0.0.0.3 range 10.1.2.0/24
# area 0.0.0.3 range 60.1.0.0/16 cost 30
# using deleted
# Before state:
# -------------
# veos#show running-config | section ospfv3
# router ospfv3
# area 0.0.0.0 encryption ipsec spi 43 esp null md5 passphrase 7 h8pZp9eprTYjjoY/NKFFe0Ei7x03Y7dyLotRhI0a5t4=
# !
# router ospfv3 vrf vrfmerge
# passive-interface default
# !
# address-family ipv4
# redistribute connected
# redistribute static route-map MAP01
# area 0.0.0.3 range 10.1.2.0/24
# area 0.0.0.3 range 60.1.0.0/16 cost 30
# !
# address-family ipv6
# area 0.0.0.3 range 10.1.2.0/24
# area 0.0.0.3 range 60.1.0.0/16 cost 30
- name: Delete OSPFv3 config
arista.eos.eos_ospfv3:
config:
state: deleted
# Task output:
# ------------
# before:
# processes:
# - areas:
# - area_id: 0.0.0.0
# encryption:
# algorithm: md5
# encryption: 'null'
# hidden_key: true
# passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
# spi: 43
# vrf: default
# - address_family:
# - afi: ipv4
# areas:
# - area_id: 0.0.0.3
# ranges:
# - address: 10.1.2.0/24
# - address: 60.1.0.0/16
# cost: 30
# redistribute:
# - routes: connected
# - route_map: MAP01
# routes: static
# - afi: ipv6
# areas:
# - area_id: 0.0.0.3
# ranges:
# - address: 10.1.2.0/24
# - address: 60.1.0.0/16
# cost: 30
# passive_interface: true
# vrf: vrfmerge
#
# commands:
#
# - no router ospfv3
#
# after: {}
# After state:
# ------------
# veos#show running-config | section ospfv3
# router ospfv3 vrf vrfmerge
# passive-interface default
# !
# address-family ipv4
# redistribute connected
# redistribute static route-map MAP01
# area 0.0.0.3 range 10.1.2.0/24
# area 0.0.0.3 range 60.1.0.0/16 cost 30
# !
# address-family ipv6
# area 0.0.0.3 range 10.1.2.0/24
# area 0.0.0.3 range 60.1.0.0/16 cost 30
# using parsed
# parsed_ospfv3.cfg
# router ospfv3
# fips restrictions
# area 0.0.0.20 stub
# area 0.0.0.20 authentication ipsec spi 33 sha1 passphrase 7 4O8T3zo4xBdRWXBnsnK934o9SEb+jEhHUN6+xzZgCo2j9EnQBUvtwNxxLEmYmm6w
# area 0.0.0.40 default-cost 45
# area 0.0.0.40 stub
# timers pacing flood 7
# adjacency exchange-start threshold 11
# !
# address-family ipv4
# fips restrictions
# redistribute connected
# !
# address-family ipv6
# router-id 10.1.1.1
# fips restrictions
# !
# router ospfv3 vrf vrf01
# bfd all-interfaces
# fips restrictions
# area 0.0.0.0 encryption ipsec spi 256 esp null sha1 passphrase 7 7hl8FV3lZ6H1mAKpjL47hQ==
# log-adjacency-changes detail
# !
# address-family ipv4
# passive-interface default
# fips restrictions
# redistribute connected route-map MAP01
# maximum-paths 100
# !
# address-family ipv6
# fips restrictions
# area 0.0.0.10 nssa no-summary
# default-information originate route-map DefaultRouteFilter
# max-metric router-lsa external-lsa 25 summary-lsa
# !
# router ospfv3 vrf vrf02
# fips restrictions
# !
# address-family ipv6
# router-id 10.17.0.3
# distance ospf intra-area 200
# fips restrictions
# area 0.0.0.1 stub
# timers spf delay initial 56 56 56
# timers out-delay 10
- name: Parse the provided config
arista.eos.eos_ospfv3:
running_config: "{{ lookup('file', './parsed_ospfv3.cfg') }}"
state: parsed
# Task output:
# ------------
# parsed:
# processes:
# - address_family:
# - afi: ipv4
# fips_restrictions: true
# redistribute:
# - routes: connected
# - afi: ipv6
# fips_restrictions: true
# router_id: 10.1.1.1
# adjacency:
# exchange_start:
# threshold: 11
# areas:
# - area_id: 0.0.0.20
# authentication:
# algorithm: sha1
# hidden_key: true
# passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
# spi: 33
# stub:
# set: true
# - area_id: 0.0.0.40
# default_cost: 45
# stub:
# set: true
# fips_restrictions: true
# timers:
# pacing: 7
# vrf: default
# - address_family:
# - afi: ipv4
# fips_restrictions: true
# maximum_paths: 100
# passive_interface: true
# redistribute:
# - route_map: MAP01
# routes: connected
# - afi: ipv6
# areas:
# - area_id: 0.0.0.10
# nssa:
# no_summary: true
# default_information:
# originate: true
# route_map: DefaultRouteFilter
# fips_restrictions: true
# max_metric:
# router_lsa:
# external_lsa:
# max_metric_value: 25
# summary_lsa:
# set: true
# areas:
# - area_id: 0.0.0.0
# encryption:
# algorithm: sha1
# encryption: 'null'
# hidden_key: true
# passphrase: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER
# spi: 256
# bfd:
# all_interfaces: true
# fips_restrictions: true
# log_adjacency_changes:
# detail: true
# vrf: vrf01
# - address_family:
# - afi: ipv6
# areas:
# - area_id: 0.0.0.1
# stub:
# set: true
# distance: 200
# fips_restrictions: true
# router_id: 10.17.0.3
# timers:
# out_delay: 10
# spf:
# initial: 56
# max: 56
# min: 56
# fips_restrictions: true
# vrf: vrf02
# using gathered
# native config:
# veos#show running-config | section ospfv3
# router ospfv3 vrf vrfmerge
# passive-interface default
# !
# address-family ipv4
# redistribute connected
# redistribute static route-map MAP01
# area 0.0.0.3 range 10.1.2.0/24
# area 0.0.0.3 range 60.1.0.0/16 cost 30
# !
# address-family ipv6
# area 0.0.0.3 range 10.1.2.0/24
# area 0.0.0.3 range 60.1.0.0/16 cost 30
- name: Gather running configuration
arista.eos.eos_ospfv3:
state: gathered
# Task output:
# ------------
# gathered:
# processes:
# - address_family:
# - afi: ipv4
# areas:
# - area_id: 0.0.0.3
# ranges:
# - address: 10.1.2.0/24
# - address: 60.1.0.0/16
# cost: 30
# redistribute:
# - routes: connected
# - route_map: MAP01
# routes: static
# - afi: ipv6
# areas:
# - area_id: 0.0.0.3
# ranges:
# - address: 10.1.2.0/24
# - address: 60.1.0.0/16
# cost: 30
# passive_interface: true
# vrf: vrfmerge
# using rendered
- name: render CLI commands for provided config
arista.eos.eos_ospfv3:
config:
processes:
- address_family:
- timers:
lsa: 22
graceful_restart:
grace_period: 35
afi: "ipv6"
timers:
pacing: 55
fips_restrictions: true
router_id: "2.2.2.2"
vrf: "vrfmerge"
state: rendered
# Task output:
# ------------
# rendered:
# - router ospfv3 vrf vrfmerge
# - address-family ipv6
# - graceful-restart grace-period 35
# - timers lsa arrival 22
# - exit
# - timers pacing flood 55
# - fips restrictions
# - router-id 2.2.2.2
# - exit
返回值
常见的返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
模块执行后的最终配置。 返回:发生更改时 示例: |
|
模块执行之前的配置。 返回:当 *状态* 为 示例: |
|
推送到远程设备的命令集。 返回:当 *状态* 为 示例: |
|
从远程设备收集的关于网络资源的事实信息,以结构化数据形式呈现。 返回:当 *状态* 为 示例: |
|
根据模块argspec将 *running_config* 选项中提供的设备原生配置解析为结构化数据。 返回:当 *状态* 为 示例: |
|
以设备原生格式(离线)呈现的任务中提供的配置。 返回:当 *状态* 为 示例: |