验证网络协议和服务操作

除了默认每小时运行的验证检查外,NetQ 还允许您按需或根据计划验证网络中运行的协议和服务的操作。这两种类型都可以自定义,以包含或排除特定的测试或设备。

按需验证允许您立即验证一个或多个网络协议和服务的操作。

计划验证允许您根据计划运行验证。您可以创建和计划最多 15 个自定义验证检查。每小时的默认验证检查不计入此限制。

创建验证

使用 NetQ UI,您可以同时为多个协议或服务创建按需或计划验证。当协议在可能的问题方面密切相关,或者您只想创建一个验证请求时,这非常方便。

在 UI 中创建验证

  1. 在工作台标题中,选择 验证,然后选择 创建验证。选择验证应在所有设备上运行还是在 设备组 上运行。

  2. 选择要包含在验证中的协议或服务。默认情况下,包含所有 构成验证的测试,但您可以选择单个测试以将其从验证检查中排除。将鼠标悬停在单个测试上,然后选择 自定义 以配置过滤器,这些过滤器可以从验证中排除单个设备或失败原因。然后单击 下一步

  1. 选择时间和频率参数,并指定验证结果应显示的工作台。然后选择 运行计划
  1. 如果您选择立即运行验证,结果将显示在您在上一步中指定的工作台上。如果您选择了多个协议或服务,则每个选择都会打开一个卡片。要查看有关报告错误的更多信息,请将鼠标悬停在检查上,然后单击 查看详细信息。要查看给定协议的所有按需验证结果的所有数据,请单击 显示所有结果

如果您计划稍后运行验证,NetQ 将显示一个仪表板,其中包含所有现有的验证检查,包括您刚刚创建的验证检查。如果您想立即运行您计划稍后运行的验证,请在标题中选择 验证,然后选择 现有验证。选择一个或多个验证,然后单击 查看结果。相关的验证结果卡将在您的工作台上打开。

要查看给定协议或服务的测试列表,请使用 netq show unit-tests

要运行按需验证,请使用 netq check 命令。

您可以通过包含或排除 测试的编号 来包含或排除验证期间执行的一个或多个不同测试。check 命令的 <protocol-number-range-list> 值与 includeexclude 选项一起使用,以指示要包含哪些测试。它是由逗号分隔的数字列表,或使用破折号的范围,或这些的组合。逗号后不要使用空格。例如

  • include 1,3,5
  • include 1-5
  • include 1,3-5
  • exclude 6,7
  • exclude 6-7
  • exclude 3,4-7,9

您可以使用 netq add check filter 命令创建过滤器,以基于主机名、失败原因和其他参数来抑制验证失败。

以下示例显示了 BGP 验证中包含的所有检查的列表,以及它们各自的测试编号和过滤器(如果有)。

cumulus@switch:~$ netq show unit-tests bgp
   0 : Session Establishment     - check if BGP session is in established state
   1 : Address Families          - check if tx and rx address family advertisement is consistent between peers of a BGP session
   2 : Router ID                 - check for BGP router id conflict in the network
   3 : Hold Time                 - check for mismatch of hold time between peers of a BGP session
   4 : Keep Alive Interval       - check for mismatch of keep alive interval between peers of a BGP session
   5 : Ipv4 Stale Path Time      - check for mismatch of ipv4 stale path timer between peers of a BGP session
   6 : Ipv6 Stale Path Time      - check for mismatch of ipv6 stale path timer between peers of a BGP session
   7 : Interface MTU             - check for consistency of Interface MTU for BGP peers

Configured global result filters:

Configured per test result filters:

以下 BGP 验证仅包括会话建立(测试编号 0)和路由器 ID(测试编号 2)测试。请注意,您可以使用 includeexclude 选项中的任何一个获得相同的结果,并且未运行的测试标记为 skipped

cumulus@switch:~$ netq check bgp include 0,2
bgp check result summary:

Total nodes         : 13
Checked nodes       : 0
Failed nodes        : 0
Rotten nodes        : 13
Warning nodes       : 0
Skipped nodes       : 0

Additional summary:
Failed Sessions     : 0
Total Sessions      : 0

Session Establishment Test   : passed
Address Families Test        : skipped
Router ID Test               : passed
Hold Time Test               : skipped
Keep Alive Interval Test     : skipped
Ipv4 Stale Path Time Test    : skipped
Ipv6 Stale Path Time Test    : skipped
Interface MTU Test           : skipped

要创建包含对单个协议或服务进行检查的请求,请运行 netq add validation type 命令。使用此命令会添加可在 UI 中访问的验证结果。

要创建计划验证,请运行 netq add validation 命令。

以下示例创建一个每 15 分钟运行一次的 BGP 验证

cumulus@switch:~$ netq add validation name Bgp15m type bgp interval 15m
Successfully added Bgp15m running every 15m

为每个额外的计划验证重新运行此命令。

管理验证

要查看根据计划运行的所有验证的仪表板,请在标题中选择 验证,然后单击 计划验证

编辑或删除计划验证

您可以编辑或删除您创建的任何计划验证。这将创建一个新的验证请求,并且原始验证的名称应用了 (旧) 标签。旧的验证不再可编辑。默认验证不能编辑或删除,但可以禁用。

编辑或删除计划验证

  1. 单击 验证,然后单击 计划验证

  2. 将鼠标悬停在验证上,然后单击 编辑 删除

  1. 如果编辑,请选择要从验证请求中添加或删除哪些检查,然后单击 更新

  2. 更改验证的计划,然后单击 更新

    您可以立即运行修改后的验证,或等待它按照您指定的计划运行。

  1. 使用以下命令确定要删除的计划验证的名称
netq show validation summary
    [name <text-validation-name>]
    type (addr | agents | bgp | evpn | interfaces | mlag | mtu | ntp | roce | sensors | vlan | vxlan)
    [around <text-time-hr>]
    [json]

此示例显示了 BGP 的所有计划验证

cumulus@switch:~$ netq show validation summary type bgp
Name            Type             Job ID       Checked Nodes              Failed Nodes             Total Nodes            Timestamp
--------------- ---------------- ------------ -------------------------- ------------------------ ---------------------- -------------------------
    Bgp30m          scheduled        4c78cdf3-24a 0                          0                        0                      Thu Nov 12 20:38:20 2020
                                    6-4ecb-a39d-
                                    0c2ec265505f
    Bgp15m          scheduled        2e891464-637 10                         0                        10                     Thu Nov 12 20:28:58 2020
                                    a-4e89-a692-
                                    3bf5f7c8fd2a
    Bgp30m          scheduled        4c78cdf3-24a 0                          0                        0                      Thu Nov 12 20:24:14 2020
                                    6-4ecb-a39d-
                                    0c2ec265505f
    Bgp30m          scheduled        4c78cdf3-24a 0                          0                        0                      Thu Nov 12 20:15:20 2020
                                    6-4ecb-a39d-
                                    0c2ec265505f
    Bgp15m          scheduled        2e891464-637 10                         0                        10                     Thu Nov 12 20:13:57 2020
                                    a-4e89-a692-
                                    3bf5f7c8fd2a
    ...
  1. 要删除验证,请运行
netq del validation <text-validation-name>

此示例删除名为 Bgp15m 的计划验证。

cumulus@switch:~$ netq del validation Bgp15m
 Successfully deleted validation Bgp15m
  1. 重复这些步骤以删除其他计划验证。

拓扑验证

拓扑验证将从 LLDP 遥测数据导出的实际网络拓扑与您上传到 UI 的拓扑蓝图(Graphviz DOT 格式)进行比较。

配置 LLDP

您必须在拓扑蓝图中定义的交换机和主机上配置 LLDP 服务,以发送与拓扑 DOT 文件中定义的连接匹配的端口 ID 子类型。lldpd 服务 允许您通过使用 configure lldp portidsubtype [ifname | macaddress] 命令指定接口名称 (ifname) 或 MAC 地址 (macaddress) 来配置端口 ID。

例如,如果您的主机配置为在 LLDP 端口 ID 字段中发送接口名称,请在拓扑 DOT 文件中定义接口名称

"switch1":"swp1" -- "host5":"eth1"

▼ DOT 文件示例

如果您的主机配置为在 LLDP 端口 ID 字段中发送 MAC 地址,请在拓扑 DOT 文件中定义 MAC 地址

"switch1":"swp1" -- "host5":"mac:48:b0:2d:f5:6b:b5"

您可以使用 lldpctl 命令验证从连接设备接收到的当前端口 ID。

  • 如果您未在拓扑蓝图中配置所有网络设备,则验证结果卡中计算的设备总数可能包含 NetQ 已从中接收 LLDP 数据的其他设备。
  • 如果您从 UI 下载拓扑蓝图文件并编辑其参数,请在重新上传之前为该文件指定不同的名称。 

创建拓扑验证

  1. 在工作台标题中,选择 验证,然后选择 创建验证

  2. 选择 拓扑 并上传拓扑蓝图文件。NetQ 将用于验证拓扑的蓝图文件的名称将显示在屏幕上。要使用其他文件,请将其上传到 UI,然后选择 管理蓝图文件。选择 激活 以指示您希望 NetQ 使用的蓝图文件。

  3. 完成后,仪表板会显示未通过拓扑验证的设备,以及列出布线问题的表格。NetQ 仅显示在拓扑蓝图中定义的网络链接。

  1. 将拓扑蓝图文件上传到 UI。

  2. 运行 netq check topology 命令。