手册下载
H3C数据中心可视化技术专题-6W100-整本手册.pdf (747.19 KB)
H3C数据中心可视化技术专题
S6805系列
S6825系列
S6850系列
S9850系列
S9820-64H交换机
S9820-8C交换机
|
Copyright © 2021 新华三技术有限公司 版权所有,保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部, 并不得以任何形式传播。本文档中的信息可能变动,恕不另行通知。 |
数据中心网络技术迅速发展,对整个网络中端到端的流量管理和故障监控有了更高要求。
· 接入带宽从10Gbps升级到25Gbps/100Gbps,但缓存空间的增长较小,不能和接入带宽增长匹配,这对网络的转发能力和业务保障功能提出了更高要求。
· RDMA(Remote Direct Memory Access,远程直接内存访问)应用增多,RDMA应用需要部署无损以太网来支持,因此需要更精确地缓存监控和流量监控。
传统的网络监控技术存在以下不足,不能很好的应对新挑战。
· 监控设备从业务网络外部发送轮询报文请求获取网络设备状态信息,这种方式一是不能实时获取设备运行数据,二是轮询报文会占用网络带宽。
· 无法看到转发路径和转发时延信息。
Telemetry技术的出现为更好的实现网络运维可视化提供了解决方案。Telemetry技术目前主要包括gRPC(Google Remote Procedure Call,Google远程过程调用)、INT(In-band Network Telemetry,带内遥测)、Telemetry Stream、MOD(Mirror On Drop,丢包镜像)、TCB(Transient Capture Buffer,瞬时抓包缓存)等技术。
· gRPC是Google发布的基于HTTP 2.0传输层协议承载的高性能开源软件框架,提供了支持多种编程语言的、对网络设备进行配置和管理的方法。通信双方可以基于该软件框架进行二次开发。设备集成gRPC应用后,可以将设备的缓存、内存、CPU利用率、日志等运行信息通过Protocol Buffers编码格式进行序列化后,主动推送给采集器。
· INT是一项从数据转发层面收集和报告设备运行状态的网络监控技术。通过INT技术,我们可以获知报文实际转发路径上的每台网络设备信息、报文在每台设备上的入出端口和队列信息,以及相应的时间戳信息等。
· Telemetry Stream与INT类似,可以采集报文入、出接口和时间戳信息,不同的是Telemetry Stream无需全网配置,可以在需要采集数据的设备上单独配置,也可以结合多个节点上报的时间戳,计算出报文在某段路径上转发时产生的时延。
· MOD是一种专门用来监控报文在设备内部转发过程中发生丢包的技术。一旦MOD监控到设备内部发生丢包,就会立即收集丢包发生的时间、丢包原因和丢弃报文特征,并上报给远端采集器,以便管理员及时了解设备内部发生的丢包情况。
· TCB是一种MMU(Memory Management Unit,缓存管理单元)监控队列丢包的技术。开启TCB功能后,系统将持续监控队列。当队列发生丢包时,系统将收集丢包时间、丢包原因、被丢弃报文的原始数据等信息,可通过gRPC方式上报网管,方便网络管理员及时知晓设备上发生的丢包事件。
H3C基于gRPC实现的Telemetry技术(即Dial-out模式gRPC,具体请参见1.3 gRPC技术实现)采用“推”模式将设备运行信息上送采集器(订阅一次,持续返回数据流),避免轮询方式对设备以及网络流量的影响。
图1 “拉”模式和“推”模式对比示意
基于gRPC实现的Telemetry技术还具有响应速度快、实时性强、精度高、采集数据全面、数据结构化的优点。
表1 网管协议对比
|
网管协议 |
工作模式 |
数据范围 |
精度 |
结构化数据 |
|
SNMP get |
拉模式(轮询,性能低,限制规模) |
所有数据 |
分钟级 |
结构化 |
|
SNMP trap |
推模式 |
告警数据 |
秒级 |
结构化 |
|
Syslog |
推模式 |
事件数据 |
秒级 |
非结构化 |
|
gRPC Dial-out |
推模式 |
所有数据 |
秒级 |
结构化 |
INT能够解决转发路径和转发时延不可见的问题。
通过INT技术,我们可以监测到报文转发路径上每台设备的入出端口和队列信息,入出设备的时间戳信息,队列的拥塞信息等;并且在路径探测的最后一跳上,对监测的数据进行UDP头及IP头封装,发送给采集器。最终通过部署在采集器上的网管软件,对监测数据进行分析,提取有用信息。
INT技术的主要优点有:
· 由硬件支持,在数据转发平面进行信息采集和上报,不需要控制平面参与。因此,INT既能体现真实的报文转发情况,又不增加网络设备的CPU负担。
· 一次配置下发,持续数据上报。
· 支持配置原始报文的采样率,可以实现较少的带宽占用。
· 通过QoS策略,可以灵活的匹配需要进行路径探测的原始报文。
Telemetry Stream能够解决转发时延不可见的问题。
通过Telemetry Stream技术,我们可以监测到报文在设备的入端口,出端口和时间戳信息。采集器可以依据单节点上报的时间戳计算出报文在本节点上转发时产生的时延;同时还可以结合多个节点上报的时间戳,计算出报文在某段路径上转发时产生的时延。
Telemetry Stream技术的主要优点有:
· 支持硬件线速上送。
· 一次配置下发,持续数据上报。
· 支持配置原始报文的采样率,可以实现较少的带宽占用。
· 通过ACL,可以灵活的匹配需要进行信息采集的原始报文。
通过Flow Group和ACL可以灵活匹配需要监控的流量;可以根据需要设置多种丢包原因;可以根据需要采用UDP方式或gRPC方式上报采集信息。
· 主动上报异常信息
一旦MMU队列发生丢包,信息主动推送至网管。
· 高效的数据传输
通过gRPC进行数据上传。
· 芯片级的运维手段
能够实现网络设备芯片内部MMU队列的丢包实时监控。
· 保证业务的可靠运行
丢包事件实时感知,将业务的影响降到最低。
· 网络设备内部深度掌控
对设备转发芯片内部的MMU队列进行持续监控,是网络可视化中的重要组成手段之一。
gRPC协议栈分层如表2所示。
表2 gRPC协议栈分层模型
|
分层 |
说明 |
|
内容层 |
业务模块的数据 通信双方需要了解彼此的数据模型,才能正确交互信息 |
|
Protocol Buffers编码层 |
gRPC通过Protocol Buffers编码格式承载数据 |
|
gRPC层 |
远程过程调用,定义了远程过程调用的协议交互格式 |
|
HTTP 2.0层 |
gRPC承载在HTTP 2.0协议上 |
|
TCP层 |
TCP连接提供面向连接的、可靠的、顺序的数据链路 |
如图2所示,gRPC网络采用客户端/服务器模型,使用HTTP 2.0协议传输报文。
图2 gRPC网络架构
gRPC网络的工作机制如下:
(1) 服务器通过监听指定服务端口来等待客户端的连接请求。
(2) 用户通过执行客户端程序登录到服务器。
(3) 客户端调用proto文件提供的gRPC方法发送请求消息。
(4) 服务器回复应答消息。
H3C设备支持作为gRPC服务器或者gRPC客户端。
如图3所示,网络设备和网管系统建立gRPC连接后,网管可以订阅设备上指定模块的数据信息。
图3 基于gRPC的Telemetry技术
1.3.3 图3中,设备支持以下两种gRPC对接模式:
· Dial-in模式:设备作为gRPC服务器,采集器作为gRPC客户端。由采集器主动向设备发起gRPC连接并订阅需要采集的数据信息。
Dial-in模式适用于小规模网络和采集器需要向设备下发配置的场景。
· Dial-out模式:设备作为gRPC客户端,采集器作为gRPC服务器。设备主动和采集器建立gRPC连接,将设备上配置的订阅数据推送给采集器。
Dial-out模式适用于网络设备较多的情况下向采集器提供设备数据信息。
Protocol Buffers编码提供了一种灵活、高效、自动序列化结构数据的机制。Protocol Buffers与XML、JSON编码类似,不同之处在于Protocol Buffers是一种二进制编码,性能更高。
Protocol Buffers编码通过proto文件描述数据结构,用户可以利用Protoc等工具软件根据proto文件自动生成其他编程语言(例如Java、C++)代码,然后基于这些生成的代码进行二次开发,以实现gRPC设备对接。
H3C为Dial-in模式和Dial-out模式分别提供了proto文件。
· 公共proto文件
grpc_service.proto文件定义了Dial-in模式下的公共RPC方法(例如Login、Logout)。
· 业务模块proto文件
Dial-in模式支持Device、Ifmgr、IPFW、LLDP、Syslog等多个业务模块的proto文件,描述具体的业务数据格式。
grpc_dialout.proto文件定义了Dial-out模式下的公共RPC方法。
请联系H3C技术支持。
INT网络由开启INT功能的设备组成,该网络中包含一个首节点、若干中间节点和一个尾节点设备。
图4 INT网络示意图
如图4所示,INT组网模型中,主要包括如下部分:
· 首节点
INT网络中的首台设备,实现报文的采样和镜像到设备内部INT处理器,添加INT头及监测信息后,将报文发送给中间节点。
· 中间节点
INT网络中除首节点和尾节点外的设备,实现INT报文的识别,添加监测信息,将报文发送给下游节点。
· 尾节点
INT网络中的最后一跳设备,实现INT报文的识别,添加监测信息,根据用户配置的报文封装参数,对监测信息进行UDP头及IP头封装,发送给采集器。
· 流量入接口
对于首节点来说,是原始报文的入接口;对于中间节点和尾节点来说,是INT报文的入接口。
· 流量出接口
对于首节点和中间节点来说,是INT报文的出接口;对于尾节点来说,是封装报文的出接口。
· INT处理器
INT处理器是CPU中专门用来处理INT报文的处理器。
INT可监测的数据信息主要有:
· 设备ID
报文转发路径上,每台设备的设备ID,即配置INT功能时指定的设备ID。
· 流量入接口ID
报文在INT网络各个节点的逻辑入接口。
· 入接口时间戳
报文从各个节点的流量入接口进入设备时的设备本地时间。需要注意的是,对于首节点来说,是INT报文进入环回口的时间。
· 流量出接口ID
报文在INT网络各个节点的逻辑出接口。
· 出接口时间戳
报文从各个节点的流量出接口离开设备时的设备本地时间。
· 缓存信息
¡ 队列ID
缓存原始报文的队列ID。
¡ ECN信息
INT报文主要有两种类型:INT over TCP和INT over UDP。
当原始报文为TCP时,镜像并插入INT报文头后的报文,我们称之为INT over TCP;当原始报文为UDP时,镜像并插入INT报文头后的报文,我们称之为INT over UDP。
图5 INT over TCP
图6 INT over UDP
相关字段含义如下:
· INT Probe HDR:INT固有头部
· MD #1~N:meta-data
INT功能支持普通型INT和灵活型INT。普通型INT和灵活型INT在信息采集方面没有差异,但运行机制和配置逻辑稍有不同。
· 普通型INT网络中:每个节点的设备需要在入接口配置设备在INT网络中的角色Ingress、Transit或Egress。首节点通过QoS策略定义数据流,中间节点和尾节点自动识别INT报文并对报文进行相应的INT处理。因此,流量转发路径的每个入接口上都只支持对首节点定义的数据流进行INT处理。
· 灵活型INT网络中:不需要配置设备在INT网络中的角色,每个节点的设备都可以通过ACL定义数据流(对于同一条流,首节点匹配原始报文,中间节点和尾节点匹配INT报文),并针对该数据流配置相应的INT处理动作。设备支持在同一接口上通过ACL匹配多条数据流并针对不同的数据流分别配置INT处理动作。
普通型INT的配置较为简洁,建议优先采用普通型INT。仅当INT节点需要在同一接口对多条数据流进行INT处理的时候采用灵活型INT。
如图7所示,普通型INT中各节点实现功能如下:
· 首节点
流量入接口上通过QoS策略将命中规则的报文镜像、采样至设备内部的INT处理器。处理器对其添加INT报文头,然后将INT报文环回至入接口。入接口根据INT标记自动识别INT报文,添加采集信息,查表转发。出接口添加采集信息,并发送给中间节点。
· 中间节点
流量入接口根据INT标记自动识别INT报文,添加采集信息,查表转发。出接口添加采集信息,发送给尾节点。
· 尾节点
流量入接口根据INT标记自动识别INT报文,添加采集信息,上送至INT处理器加封装后,发送给采集器。
如1. 图7所示,以同一条流的INT处理为例,灵活型INT中各节点实现功能如下:
· 首节点
入接口通过ACL对原始报文进行筛选,命中规则的报文被镜像、采样至设备内部的INT处理器。处理器为其添加INT报文头,然后将INT报文环回至入接口。入接口通过ACL筛选出本机环回INT报文,对其添加采集信息,查表转发。出接口添加采集信息,并发送给中间节点。
· 中间节点
入接口通过ACL筛选出INT报文,为命中规则的报文添加采集信息后,查表转发至出接口,出接口为INT报文添加采集信息,发送给尾节点。
· 尾节点
入接口通过ACL筛选出INT报文,命中规则的报文被镜像至INT处理器,处理器对其进行封装,然后查表转发至出接口,发送给采集器。
以(5)图8 Device B为例,Telemetry Stream工作机制如下:
(1) 在流量入接口通过ACL对原始报文进行筛选,命中规则的报文被复制、采样至设备内部的Telemetry Stream处理器。
(2) Telemetry Stream处理器将报文环回至入接口。
(3) 入接口识别出本机环回报文,对其加采集信息,查表转发至出接口。
(4) 出接口识别出本机环回报文,对其添加采集信息,发给Telemetry Stream处理器。
(5) Telemetry Stream处理器对其加封装,然后封装报文携带采集信息路由至采集器。
多台设备均各自向采集器上报数据,采集器就可以采集到某条特定流所经过的所有设备的采集信息。虽然镜像报文与原始报文不是在同一时刻进入/离开设备,但所经历的转发流程是相同的,所以根据其中携带的时间戳计算出来的时延,即可代表原始报文所经历的时延。
图8 Telemetry Stream工作机制示意图
MOD可以监控匹配Flow Group流表的流量。
Flow Group流表由设备上的Flow Group功能动态生成。配置Flow Group功能时,需要引用一个用于报文过滤的ACL,并指定一组用于生成流表的报文属性(例如下表的五元组)。当设备处理匹配了指定ACL的报文时,Flow Group就会提取报文头中指定属性的字段,并将属性值完全相同的报文视为一条流,为其生成一条Flow Group流表项。
每一条Flow Group流表项都具有老化时间,当该表项匹配上的报文数目在指定的老化时间内不再增加时,该表项将被删除。
|
目的IP地址 |
源IP地址 |
目的端口号 |
源端口号 |
协议类型 |
老化时间(分钟) |
报文计数(包数) |
|
10.0.0.20 |
10.0.0.2 |
3000 |
2000 |
IP |
20 |
5120 |
|
10.0.0.20 |
10.0.0.2 |
3002 |
2000 |
IP |
18 |
25 |
|
10.0.1.20 |
10.0.0.2 |
3000 |
2020 |
IP |
15 |
813 |
Flow Group可以通过如下两种模式为MOD生成流表,它们在设备硬件资源占用方面存在差异:
· MOD模式:占用较多的硬件表项资源,但CPU负担较小。
· 简化版MOD模式:节省硬件表项资源,但会对CPU造成较大负担。
MOD可以监控多种原因的丢包事件,主要支持的丢包原因如表3所示。用户可以结合实际故障的定位需求,在配置MOD功能时指定所关心的丢包原因。
|
取值 |
描述 |
|
higig-header-error |
HiGig报文头错误 |
|
invalid-tpid |
无效的TPID |
|
ip-multicast-error |
IP组播报文错误 |
|
ipv4-dip-miss |
IPv4目的IP未命中路由表(命中缺省路由也上报本丢包原因) |
|
ipv4-l3-header-error |
IPv4报文头错误 |
|
parity-error |
奇偶校验错误 |
|
tunnel-header-error |
隧道报文头错误 |
|
unknown-vlan |
未知VLAN |
当被监控流量发生了丢包,且丢包原因是用户指定的丢包原因时,MOD会收集丢包原因、丢包时间和流量特征,收集到的信息支持通过如下两种方式上报至远端采集器,便于用户及时了解设备内部发生的丢包事件。
· 将收集到的信息封装在UDP报文中,然后根据用户配置的报文封装信息,为UDP报文加封装,最终报文将转发至远端采集器。(缺省上报方式)
· 配置gRPC(Google Remote Procedure Call,Google远程过程调用)订阅,收集到的信息通过gRPC上送至远端采集器。
MMU(Memory Management Unit,缓存管理单元)是交换芯片的重要组成单元。以太网帧进入交换芯片后,依次通过Ingress单元、MMU单元和Egress单元进行处理。其中:
· Ingress单元负责对数据包进行校验、地址学习、VLAN处理、二/三层转发和入方向报文过滤等。
· MMU单元负责对数据包进行缓存和调度等。
· Egress单元负责对数据包进行VLAN处理、CRC计算和出方向限速等。
开启MMU队列的TCB功能后:
(1) TCB会对MMU队列中缓存的报文进行采样,并将采样报文保存到TCB环形Buffer中。同时,TCB会实时将丢包事件记录到Event Buffer中。
(2) 当MMU队列发生丢包时,TCB可以对环形Buffer和Event Buffer中的数据进行本地分析,分析出丢包报文的特征。TCB通过gRPC将丢包原因和报文特征上报给远端网管。
(3) TCB还可以不对数据进行本地分析。丢包时,通过gRPC直接将丢包原因和环形Buffer中的原始数据上报给远端网管。不进行本地分析,可以节约本地设备的资源,减轻设备负载。
当环形Buffer被占满时,环形Buffer中已缓存的报文会被新报文覆盖。
在进行TCB状态机的讲解前,请先了解如下参数的作用。
|
参数 |
说明 |
|
Strat Threshold |
开始抓包的队列长度门限值 |
|
Pre-sample Rate |
TCB功能处于预触发状态时的采样率 |
|
Post-sample Rate |
TCB功能处于触发状态时的采样率 |
|
Stop Threshold |
停止抓包的队列长度门限值 |
|
Frozen Number |
抓包数量 |
|
Frozen Timer |
抓包时间 |
TCB状态机如下图所示。
(1) 开启TCB功能,进入待触发状态。
(2) 当队列长度 > Strat Threshold时,进入预触发状态,并使用Pre-sample Rate采样率进行抓包。
(3) 发生丢包时,进入触发状态,并使用Post-sample Rate采样率进行抓包。
(4) 当队列长度 < Stop Threshold时,进入待触发状态。
(5) 当抓包数量 > Frozen Number,或抓包时间 > Frozen Timer时,进入冻结状态。
(6) 上报丢包原因和报文特征。
(7) 进入待触发状态。
图9 TCB状态机
|
具体特性 |
S6805 S6825 S6850 S9850 |
S9820-64H |
S9820-8C |
|
gRPC |
支持 |
支持 |
支持 |
|
INT |
支持 |
支持,只能做中间节点 |
支持,只能做中间节点 |
|
MOD |
支持 |
支持 |
仅支持简化版MOD |
|
TCB |
支持 |
支持 |
不支持 |
|
Telemetry Stream |
支持 |
支持 |
支持 |
各产品上的配置限制和指导,请参考可视化部署限制和指导。
可视化技术理论上可以适用于各种网络。但是,网络运维可视化的实际应用需求目前主要产生在数据中心网络,因此本文以数据中心网络典型的Spine-Leaf组网(适应数据中心网络东西向流量多的现状)为例来介绍。
在网络设计方面:
· Leaf设备作为服务器网关,Leaf设备和Spine设备之间运行三层ECMP,使服务器之间能够通过多条等价路径实现高速的数据交换,尽可能的减少时延。
· 根据实际的数据交换需求,下行链路和上行链路的带宽比建议可以设计为2:1、3:2或1:1。例如,S6850-56HF交换机作为Leaf交换机,48个25G端口连接服务器,8个100G端口连接Spine设备,则带宽收敛比为3:2。
在网络运维可视化方面:
· 如果希望实现实时的、设备主动推送方式的信息采集,特别是缓存使用情况、丢包情况等(例如Ingress、Egress、headroom Buffer使用,Ingress、Egress Buffer使用超限,Ingress、Egress丢包统计等),请在涉及的设备上配置gRPC功能。
· 如果需要掌握报文转发路径(具体采用了等价路径中的哪条)或每一跳的转发时延,请在报文的转发路径上配置INT功能或Telemetry Stream功能。
· 如果需要排查丢包问题,可以根据需要配置MOD功能或TCB功能。
图10 数据中心Spine-Leaf网络模型
Dial-out模式下,设备通过传感器完成数据的采集。配置传感器的采样路径可以指定需要采样的数据源。传感器的数据采样包括以下2种类型:
· 事件触发:传感器组的数据采样没有固定周期,仅由事件触发。关于事件触发类型的采样路径,请参见对应模块的《业务模块名称 NETCONF XML API Event Reference》手册。
· 周期采样:传感器组以固定的时间间隔来进行数据采样。关于周期采样类型的采样路径,请参见对应模块的《业务模块名称 NETCONF XML API Data Reference》手册或《业务模块名称 GRPC API Reference》手册。
仅部分模块存在《业务模块名称 GRPC API Reference》手册,该手册描述了专用于gRPC方式采样的数据表,其中的全部或部分数据表不支持通过NETCONF方式使用。如果模块存在对应的《业务模块名称 GRPC API Reference》手册,建议先在该手册中查找数据表的格式定义。
Dial-out模式下,设备支持数据采样的业务模块可以在传感器组视图执行sensor path ?查看。以S6850系列交换机R6555P01版本为例:
<System> system-view
[System] telemetry
[System-telemetry] sensor-group test
[System-telemetry-sensor-group-test] sensor path ?
acl/ ACL module
arp/ ARP module
bgp/ BGP module
buffermonitor/ BufferMonitor module
device/ Device module
diagnostic/ Diagnostic module
filesystem/ FileSystem module
fundamentals/ Fundamentals module
ipfw/ IPFW module
ifmgr/ Ifmgr module
lldp/ LLDP module
mac/ MAC module
mqc/ MQC module
route/ Route module
staticroute/ StaticRoute module
syslog/ Syslog module
ifmgr All events of the Ifmgr module
bgp_stream/ bgp_stream stream
bgp_stream All events of the bgp_stream module
diagnostic All events of the Diagnostic module
buffermonitor All events of the BufferMonitor module
lldp All events of the LLDP module
ipfw_event/ ipfw_event stream
ipfw_event All events of the ipfw_event module
syslog All events of the Syslog module
device All events of the Device module
具体模块支持的数据表可以执行sensor path module-name/?命令查看。以buffermonitor(缓存监控)模块为例:
[System-telemetry-sensor-group-path] sensor path buffermonitor/?
buffermonitor/boardconfigurations BoardConfigurations table
buffermonitor/boardegressdrops BoardEgressDrops table
buffermonitor/boardqueconfigurations BoardQueConfigurations table
buffermonitor/bufferusages BufferUsages table
buffermonitor/commbufferusages CommBufferUsages table
buffermonitor/commheadroomusages CommHeadroomUsages table
buffermonitor/commtotalbufferusages CommTotalBufferUsages table
buffermonitor/ecnandwredstatistics EcnAndWredStatistics table
buffermonitor/egressdrops EgressDrops table
buffermonitor/globalconfigurations GlobalConfigurations table
buffermonitor/headroomusages HeadroomUsages table
buffermonitor/ingressdrops IngressDrops table
buffermonitor/overruncounters OverRunCounters table
buffermonitor/pfcspeeds PFCSpeeds table
buffermonitor/pfcstatistics PFCStatistics table
buffermonitor/portqueconfigurations PortQueConfigurations table
buffermonitor/statistics Statistics table
buffermonitor/totalbufferusages TotalBufferUsages table
buffermonitor/boardoverrunevent BoardOverrunEvent event
buffermonitor/portqueoverrunevent PortQueOverrunEvent event
buffermonitor/portquedropevent PortQueDropEvent event
在上述数据表中:boardoverrunevent、portqueoverrunevent、portquedropevent为事件触发类型采样,具体数据格式可以参考“Comware BufferMonitor NETCONF XML API Event Reference”;其余表的数据格式均可以参考“Comware V7 BufferMonitor GRPC API Reference”。
NETCONF XML API文件和GRPC API文件随软件版本发布流程发布,可以在软件版本的配套文档中获取到。
S9820-64H、S9820-8C交换机仅支持作为中间节点。S6805、S6825、S6850和S9850系列交换机支持作为首节点、中间节点和尾节点。
S6805、S6825、S9850系列交换机作为首节点时,需要选择一个接口开启内部环回功能。请选择Ingress接口所属接口组中的任意非Ingress接口开启内部环回功能。通过display qos-acl resource命令可以查看接口所属接口组的信息,同一“Interfaces:”下的接口属于一个接口组。INT内部环回功能需独占接口,此接口不能再做其他用途。
对于S9820-64H交换机,INT报文监测信息meta-data中的Ingress/Egress Port ID与以太网交换机面板口的对应关系,请参见表4。
表4 S9820-64H meta-data中的Ingress/Egress Port ID与以太网交换机面板口的对应关系
|
面板口 |
TimeStamp Port ID |
Ingress/Egress Port ID |
|
|
端口拆分前 |
端口拆分后 |
||
|
H1/0/1 |
TW1/0/1:1 |
0 |
34 |
|
- |
TW1/0/1:2 |
1 |
35 |
|
- |
TW1/0/1:3 |
2 |
36 |
|
H1/0/2 |
TW1/0/1:4 |
3 |
37 |
|
H1/0/3 |
TW1/0/3:1 |
4 |
38 |
|
- |
TW1/0/3:2 |
5 |
39 |
|
- |
TW1/0/3:3 |
6 |
40 |
|
H1/0/4 |
TW1/0/3:4 |
7 |
41 |
|
H1/0/5 |
TW1/0/5:1 |
8 |
42 |
|
- |
TW1/0/5:2 |
9 |
43 |
|
- |
TW1/0/5:3 |
10 |
44 |
|
H1/0/6 |
TW1/0/5:4 |
11 |
45 |
|
H1/0/7 |
TW1/0/7:1 |
12 |
46 |
|
- |
TW1/0/7:2 |
13 |
47 |
|
- |
TW1/0/7:3 |
14 |
48 |
|
H1/0/8 |
TW1/0/7:4 |
15 |
49 |
|
H1/0/9 |
TW1/0/9:1 |
16 |
50 |
|
- |
TW1/0/9:2 |
17 |
51 |
|
- |
TW1/0/9:3 |
18 |
52 |
|
H1/0/10 |
TW1/0/9:4 |
19 |
53 |
|
H1/0/11 |
TW1/0/11:1 |
20 |
54 |
|
- |
TW1/0/11:2 |
21 |
55 |
|
- |
TW1/0/11:3 |
22 |
56 |
|
H1/0/12 |
TW1/0/11:4 |
23 |
57 |
|
H1/0/13 |
TW1/0/13:1 |
24 |
58 |
|
- |
TW1/0/13:2 |
25 |
59 |
|
- |
TW1/0/13:3 |
26 |
60 |
|
H1/0/14 |
TW1/0/13:4 |
27 |
61 |
|
H1/0/15 |
TW1/0/15:1 |
28 |
62 |
|
- |
TW1/0/15:2 |
29 |
63 |
|
- |
TW1/0/15:3 |
30 |
64 |
|
H1/0/16 |
TW1/0/15:4 |
31 |
65 |
|
H1/0/17 |
TW1/0/17:1 |
32 |
68 |
|
- |
TW1/0/17:2 |
33 |
69 |
|
- |
TW1/0/17:3 |
34 |
70 |
|
H1/0/18 |
TW1/0/17:4 |
35 |
71 |
|
H1/0/19 |
TW1/0/19:1 |
36 |
72 |
|
- |
TW1/0/19:2 |
37 |
73 |
|
- |
TW1/0/19:3 |
38 |
74 |
|
H1/0/20 |
TW1/0/19:4 |
39 |
75 |
|
H1/0/21 |
TW1/0/21:1 |
40 |
76 |
|
- |
TW1/0/21:2 |
41 |
77 |
|
- |
TW1/0/21:3 |
42 |
78 |
|
H1/0/22 |
TW1/0/21:4 |
43 |
79 |
|
H1/0/23 |
TW1/0/23:1 |
44 |
80 |
|
- |
TW1/0/23:2 |
45 |
81 |
|
- |
TW1/0/23:3 |
46 |
82 |
|
H1/0/24 |
TW1/0/23:4 |
47 |
83 |
|
H1/0/25 |
TW1/0/25:1 |
48 |
84 |
|
- |
TW1/0/25:2 |
49 |
85 |
|
- |
TW1/0/25:3 |
50 |
86 |
|
H1/0/26 |
TW1/0/25:4 |
51 |
87 |
|
H1/0/27 |
TW1/0/27:1 |
52 |
88 |
|
- |
TW1/0/27:2 |
53 |
89 |
|
- |
TW1/0/27:3 |
54 |
90 |
|
H1/0/28 |
TW1/0/27:4 |
55 |
91 |
|
H1/0/29 |
TW1/0/29:1 |
56 |
92 |
|
- |
TW1/0/29:2 |
57 |
93 |
|
- |
TW1/0/29:3 |
58 |
94 |
|
H1/0/30 |
TW1/0/29:4 |
59 |
95 |
|
H1/0/31 |
TW1/0/31:1 |
60 |
96 |
|
- |
TW1/0/31:2 |
61 |
97 |
|
- |
TW1/0/31:3 |
62 |
98 |
|
H1/0/32 |
TW1/0/31:4 |
63 |
99 |
|
H1/0/33 |
TW1/0/33:1 |
64 |
1 |
|
- |
TW1/0/33:2 |
65 |
2 |
|
- |
TW1/0/33:3 |
66 |
3 |
|
H1/0/34 |
TW1/0/33:4 |
67 |
4 |
|
H1/0/35 |
TW1/0/35:1 |
68 |
5 |
|
- |
TW1/0/35:2 |
69 |
6 |
|
- |
TW1/0/35:3 |
70 |
7 |
|
H1/0/36 |
TW1/0/35:4 |
71 |
8 |
|
H1/0/37 |
TW1/0/37:1 |
72 |
9 |
|
- |
TW1/0/37:2 |
73 |
10 |
|
- |
TW1/0/37:3 |
74 |
11 |
|
H1/0/38 |
TW1/0/37:4 |
75 |
12 |
|
H1/0/39 |
TW1/0/39:1 |
76 |
13 |
|
- |
TW1/0/39:2 |
77 |
14 |
|
- |
TW1/0/39:3 |
78 |
15 |
|
H1/0/40 |
TW1/0/39:4 |
79 |
16 |
|
H1/0/41 |
TW1/0/41:1 |
80 |
17 |
|
- |
TW1/0/41:2 |
81 |
18 |
|
- |
TW1/0/41:3 |
82 |
19 |
|
H1/0/42 |
TW1/0/41:4 |
83 |
20 |
|
H1/0/43 |
TW1/0/43:1 |
84 |
21 |
|
- |
TW1/0/43:2 |
85 |
22 |
|
- |
TW1/0/43:3 |
86 |
23 |
|
H1/0/44 |
TW1/0/43:4 |
87 |
24 |
|
H1/0/45 |
TW1/0/45:1 |
88 |
25 |
|
- |
TW1/0/45:2 |
89 |
26 |
|
- |
TW1/0/45:3 |
90 |
27 |
|
H1/0/46 |
TW1/0/45:4 |
91 |
28 |
|
H1/0/47 |
TW1/0/47:1 |
92 |
29 |
|
- |
TW1/0/47:2 |
93 |
30 |
|
- |
TW1/0/47:3 |
94 |
31 |
|
H1/0/48 |
TW1/0/47:4 |
95 |
32 |
|
H1/0/49 |
TW1/0/49:1 |
96 |
102 |
|
- |
TW1/0/49:2 |
97 |
103 |
|
- |
TW1/0/49:3 |
98 |
104 |
|
H1/0/50 |
TW1/0/49:4 |
99 |
105 |
|
H1/0/51 |
TW1/0/51:1 |
100 |
106 |
|
- |
TW1/0/51:2 |
101 |
107 |
|
- |
TW1/0/51:3 |
102 |
108 |
|
H1/0/52 |
TW1/0/51:4 |
103 |
109 |
|
H1/0/53 |
TW1/0/53:1 |
104 |
110 |
|
- |
TW1/0/53:2 |
105 |
111 |
|
- |
TW1/0/53:3 |
106 |
112 |
|
H1/0/54 |
TW1/0/53:4 |
107 |
113 |
|
H1/0/55 |
TW1/0/55:1 |
108 |
114 |
|
- |
TW1/0/55:2 |
109 |
115 |
|
- |
TW1/0/55:3 |
110 |
116 |
|
H1/0/56 |
TW1/0/55:4 |
111 |
117 |
|
H1/0/57 |
TW1/0/57:1 |
112 |
118 |
|
- |
TW1/0/57:2 |
113 |
119 |
|
- |
TW1/0/57:3 |
114 |
120 |
|
H1/0/58 |
TW1/0/57:4 |
115 |
121 |
|
H1/0/59 |
TW1/0/59:1 |
116 |
122 |
|
- |
TW1/0/59:2 |
117 |
123 |
|
- |
TW1/0/59:3 |
118 |
124 |
|
H1/0/60 |
TW1/0/59:4 |
119 |
125 |
|
H1/0/61 |
TW1/0/61:1 |
120 |
126 |
|
- |
TW1/0/61:2 |
121 |
127 |
|
- |
TW1/0/61:3 |
122 |
128 |
|
H1/0/62 |
TW1/0/61:4 |
123 |
129 |
|
H1/0/63 |
TW1/0/63:1 |
124 |
130 |
|
- |
TW1/0/63:2 |
125 |
131 |
|
- |
TW1/0/63:3 |
126 |
132 |
|
H1/0/64 |
TW1/0/63:4 |
127 |
133 |
设备上只支持配置一个带采样的功能。带采样的镜像、Netstream(包括NetStream和IPv6 NetStream)、sFlow、INT、Telemetry Stream、MOD功能两两互斥。有关镜像、NetStream、IPv6 NetStream和sFlow的详细配置,请参见“网络管理和监控配置指导”中的“镜像”、“NetStream”、“IPv6 NetStream”和“sFlow”。有关Telemetry Stream和MOD的详细配置,请参见“Telemetry配置指导”中的“Telemetry Stream”和“MOD”。
无论是否配置采样,INT和Telemetry Stream都互斥。
S9820-8C设备使用INT功能时,要想和S6805、S6825、S6850、S9850系列设备互通,需要在系统视图配置命令telemetry ifa timestamp-format ts将插入INT报文中的时间戳格式配置为timestamp格式。
Telemetry Stream仅支持在Underlay网络中部署。
使用Telemetry Stream采集多个节点上报的时间戳计算转发路径时延时,需要各设备配置NTP或PTP进行时间同步。
配置Telemetry Stream需要使用业务环回口。
设备上只支持配置一个带采样的功能。带采样的镜像、Netstream(包括NetStream和IPv6 NetStream)、sFlow、INT、Telemetry Stream、MOD功能两两互斥。有关镜像、NetStream、IPv6 NetStream和sFlow的详细配置,请参见“网络管理和监控配置指导”中的“镜像”、“NetStream”、“IPv6 NetStream”和“sFlow”。有关INT和MOD的详细配置,请参见“Telemetry配置指导”中的“INT”和“MOD”。
无论是否配置采样,INT和Telemetry Stream都互斥。
MOD功能仅监控丢包原因列表中的丢包原因,由其他原因引起的丢包,不在MOD功能的监控范围内。
配置MOD模式的Flow Group时,需要先将设备的MAC地址表、ARP表/ND表、路由表的硬件资源模式切换为EM模式,Flow Group功能才能正常使用。有关模式切换命令hardware-resource switch-mode的详细介绍,请参见“基础配置命令参考”中的“设备管理”。配置简化版MOD模式Flow Group不需要切换为EM模式。
MOD模式需要配置采样功能;简化版MOD模式不需要配置采样功能。
在系统视图下开启并配置全局TCB功能对相应slot上所有支持TCB功能的接口生效,在接口视图下开启并配置TCB功能仅对当前接口生效。两种配置方式互斥,如果当前已经使用一种方式开启了TCB功能,需要在该方式下关闭TCB功能后,才能使用另一种方式配置。
使用接口视图下的命令开启TCB功能时,设备仅支持在一个接口下开启TCB功能。
TCB的gRPC采样路径为tcb/tcbpacketinfoevent和tcb/tcbrawpacketinfoevent。
在VXLAN网络中的VTEP上开启TCB功能、对VTEP发往租户网络方向的报文进行丢包监控时,TCB功能获取到的丢包报文特征为VXLAN报文的外层头信息,而非内层头信息。
如图11所示:RDMA网络采用Spine、Leaf两级架构,Spine设备为S9850-32H,Leaf设备为S6850-56HF。Leaf设备作为服务器的网关,Spine、Leaf之间为三层ECMP网络,在进行数据高速转发的同时支持转发路径的冗余备份。
为更好的监控缓存使用情况和转发路径的时延情况,现要求:
· 实现RDMA应用报文(DSCP优先级为46)的无损传输。
· 配置gRPC功能,将队列拥塞统计信息、Egress丢包信息、PFC流控帧统计信息、ECN标记统计信息上报gRPC服务器。
· 配置INT功能,对Host A发送到Host C的报文添加INT标记,在Device E对INT报文进行封装并上送采集器,从而监控报文转发路径和链路时延。
本文以2台Spine设备、3台Leaf设备示例。实际应用中Spine层部署6台S9850-32H设备、Leaf层部署32台S6850-56HF设备可以实现收敛比2:1、低成本、小规模的RDMA网络。
图11 RDMA网络运维可视化组网图

为实现RDMA应用报文的无损传输,我们需要部署PFC功能和ECN功能:
· PFC功能基于优先级队列对报文进行流量控制。RDMA报文携带DSCP优先级46,我们将DSCP优先级46映射到802.1P优先级5,并对802.1P优先级为5的报文开启PFC功能。
RDMA报文转发路径的所有端口都需要配置PFC功能,因此我们在Spine设备与Leaf设备互连的端口、Leaf设备连接Host的端口均开启PFC功能。
· ECN功能提供端到端的拥塞控制。设备检测到拥塞后,对报文的ECN域进行标记。接收端收到ECN标记的报文后,向发送端发送拥塞通知报文,使发送端降低流量发送速率。本例中,当Leaf设备接收的流量大于上行带宽时,Leaf设备与Spine设备互连的端口会产生拥塞,我们在这些端口开启ECN功能。
ECN功能配置的high-limit值(queue queue-id [ drop-level drop-level ] low-limit low-limit high-limit high-limit [ discard-probability discard-prob ])需要小于PFC反压帧触发门限值,以使ECN功能先生效。本例中反压帧触发门限为缺省的静态反压帧触发门限512个cell,我们配置ECN功能的high-limit值为480。
为了掌握每台设备的Buffer使用情况,避免丢包,我们配置gRPC功能订阅如下信息以便网管系统进行分析处理。
· 周期上报Buffer使用信息、Headroom使用信息、ECN标记统计信息、PFC流控帧收发统计信息。
· 实时上报队列超限使用缓冲区事件、队列丢包事件。
为了掌握报文转发路径和时延,我们配置INT功能监控Host A发送到Host C的报文。Host A到Host C有两条转发路径,Host A—〉Device C—〉Device A—〉Device E---〉Host C和Host A—〉Device C—〉Device B—〉Device E---〉Host C,因此我们配置Device C为首节点,Device A和Device B为中间节点,Device E为尾节点。
配置PFC功能时:必须配置接口信任报文自带的802.1p优先级或DSCP优先级(qos trust { dot1p | dscp }),并且转发路径上所有端口的802.1p优先级与本地优先级映射关系以及DSCP优先级与802.1p优先级映射关系必须一致,否则PFC功能将无法正常工作。
配置gRPC订阅数据时:当传感器组中的采样路径为事件触发类型时,请不要配置sample-interval参数,否则该采样路径不生效;当采样路径为周期采样类型时,必须配置sample-interval参数才会采样和推送数据。
在配置INT功能时,建议先配置中间节点和尾节点,最后配置首节点。
· 配置Device A
# 配置HundredGigE1/0/1~HundredGigE1/0/3工作在三层模式,并配置各接口的IP地址。
[DeviceA] interface hundredgige 1/0/1
[DeviceA-HundredGigE1/0/1] port link-mode route
[DeviceA-HundredGigE1/0/1] ip address 10.1.2.2 24
[DeviceA-HundredGigE1/0/1] quit
[DeviceA] interface hundredgige 1/0/2
[DeviceA-HundredGigE1/0/2] port link-mode route
[DeviceA-HundredGigE1/0/2] ip address 20.1.2.2 24
[DeviceA-HundredGigE1/0/2] quit
[DeviceA] interface hundredgige 1/0/3
[DeviceA-HundredGigE1/0/3] port link-mode route
[DeviceA-HundredGigE1/0/3] ip address 30.1.2.2 24
[DeviceA-HundredGigE1/0/3] quit
· 配置Device B
配置设备各接口工作在三层模式,并参考图11配置各接口的IP地址,具体步骤略。
· Device C
# 创建VLAN 10,配置Twenty-FiveGigE1/0/1加入VLAN 10,并配置VLAN 10接口的IP地址。
<DeviceC> system-view
[DeviceC] vlan 10
[DeviceC-vlan10] port twenty-fivegige 1/0/1
[DeviceC-vlan10] quit
[DeviceC] interface vlan-interface 10
[DeviceC-Vlan-interface10] ip address 10.1.1.1 24
[DeviceC-Vlan-interface10] quit
# 配置HundredGigE1/0/25~HundredGigE1/0/26工作在三层模式,并配置各接口的IP地址。
[DeviceC] interface hundredgige 1/0/25
[DeviceC-HundredGigE1/0/25] port link-mode route
[DeviceC-HundredGigE1/0/25] ip address 10.1.2.1 24
[DeviceC-HundredGigE1/0/25] quit
[DeviceC] interface hundredgige 1/0/26
[DeviceC-HundredGigE1/0/26] port link-mode route
[DeviceC-HundredGigE1/0/26] ip address 10.1.3.1 24
[DeviceC-HundredGigE1/0/26] quit
· Device D、Device E
配置与Device C类似,请参考图11所示的VLAN和IP地址进行配置,具体步骤略。
· 配置Device C
# 在接口Twenty-FiveGigE1/0/1上配置广播、组播、未知单播风暴抑制功能,防止接口转发过多泛洪流量,对网络转发功能造成冲击。
[DeviceC] interface twenty-fivegige 1/0/1
[DeviceC-Twenty-FiveGigE1/0/1] broadcast-suppression pps 0
[DeviceC-Twenty-FiveGigE1/0/1] multicast-suppression pps 0
[DeviceC-Twenty-FiveGigE1/0/1] unicast-suppression pps 0
[DeviceC-Twenty-FiveGigE1/0/1] quit
# 在VLAN 10接口上开启本地代理ARP功能,使同一网段的主机之间可以互通。
[DeviceC] interface vlan-interface 10
[DeviceC-Vlan-interface10] local-proxy-arp enable
· 配置Device D、Device E
与Device C配置类似,具体步骤略。
· 配置Device A
# 配置OSPF发布接口所在网段的路由。
[DeviceA] ospf 1 router-id 1.1.1.1
[DeviceA-ospf-1] area 0
[DeviceA-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] network 20.1.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] network 30.1.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] quit
[DeviceA-ospf-1] quit
· 配置Device B
# 配置OSPF发布接口所在网段的路由。
<DeviceB> system-view
[DeviceB] ospf 1 router-id 2.2.2.2
[DeviceB-ospf-1] area 0
[DeviceB-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255
[DeviceB-ospf-1-area-0.0.0.0] network 20.1.3.0 0.0.0.255
[DeviceB-ospf-1-area-0.0.0.0] network 30.1.3.0 0.0.0.255
[DeviceB-ospf-1-area-0.0.0.0] quit
[DeviceB-ospf-1] quit
· 配置Device C
# 配置OSPF发布接口所在网段的路由。
<DeviceC> system-view
[DeviceC] ospf 1 router-id 3.3.3.3
[DeviceC-ospf-1] area 0
[DeviceC-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[DeviceC-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[DeviceC-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255
[DeviceC-ospf-1-area-0.0.0.0] quit
[DeviceC-ospf-1] quit
· 配置Device D
# 配置OSPF发布接口所在网段的路由。
<DeviceD> system-view
[DeviceD] ospf 1 router-id 4.4.4.4
[DeviceD-ospf-1] area 0
[DeviceD-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[DeviceD-ospf-1-area-0.0.0.0] network 20.1.2.0 0.0.0.255
[DeviceD-ospf-1-area-0.0.0.0] network 20.1.3.0 0.0.0.255
[DeviceD-ospf-1-area-0.0.0.0] quit
[DeviceD-ospf-1] quit
· 配置Device E
# 配置OSPF发布接口所在网段的路由。
<DeviceE> system-view
[DeviceE] ospf 1 router-id 5.5.5.5
[DeviceE-ospf-1] area 0
[DeviceE-ospf-1-area-0.0.0.0] network 30.1.1.0 0.0.0.255
[DeviceE-ospf-1-area-0.0.0.0] network 30.1.2.0 0.0.0.255
[DeviceE-ospf-1-area-0.0.0.0] network 30.1.3.0 0.0.0.255
[DeviceE-ospf-1-area-0.0.0.0] quit
[DeviceE-ospf-1] quit
· 配置Device A
# 配置优先级映射表,将DSCP优先级46映射到802.1P优先级5。
[DeviceA] qos map-table dscp-dot1p
[DeviceA-maptbl-dot1p-dot1p] import 46 export 5
[DeviceA-maptbl-dot1p-dot1p] quit
# 在接口HundredGigE1/0/1~HundredGigE1/0/3上配置接口信任报文自带的DSCP优先级,开启接口的PFC功能,并对802.1p优先级5开启PFC功能。
[DeviceA] interface range hundredgige 1/0/1 to hundredgige 1/0/3
[DeviceA-if-range] qos trust dscp
[DeviceA-if-range] priority-flow-control enable
[DeviceA-if-range] priority-flow-control no-drop dot1p 5
# 在接口HundredGigE1/0/1~HundredGigE1/0/3上配置PFC死锁检测周期为10,自动恢复的延迟周期为10,恢复方式为自动恢复方式(缺省即为自动恢复),并开启PFC死锁检测功能。
[DeviceA-if-range] priority-flow-control deadlock cos 5 interval 10
[DeviceA-if-range] priority-flow-control deadlock auto-recover cos 5 delay 10
[DeviceA-if-range] priority-flow-control deadlock recover-mode auto
[DeviceA-if-range] priority-flow-control deadlock enable
[DeviceA-if-range] quit
· 配置Device B
与Device A配置相同,具体步骤略。
· 配置Device C
# 配置优先级映射表,将DSCP优先级46映射到802.1P优先级5。
[DeviceC] qos map-table dscp-dot1p
[DeviceC-maptbl-dot1p-dot1p] import 46 export 5
[DeviceC-maptbl-dot1p-dot1p] quit
# 在接口Twenty-FiveGigE1/0/1、HundredGigE1/0/25、HundredGigE1/0/26上配置接口信任报文自带的DSCP优先级,开启接口的PFC功能,并对802.1p优先级5开启PFC功能。
[DeviceC] interface range twenty-fivegige 1/0/1 hundredgige 1/0/25 to hundredgige 1/0/26
[DeviceC-if-range] qos trust dscp
[DeviceC-if-range] priority-flow-control enable
[DeviceC-if-range] priority-flow-control no-drop dot1p 5
# 在接口Twenty-FiveGigE1/0/1、HundredGigE1/0/25、HundredGigE1/0/26上配置PFC死锁检测周期为10,自动恢复的延迟周期为10,恢复方式为自动恢复方式(缺省即为自动恢复),并开启PFC死锁检测功能。
[DeviceC-if-range] priority-flow-control deadlock cos 5 interval 10
[DeviceC-if-range] priority-flow-control deadlock auto-recover cos 5 delay 10
[DeviceC-if-range] priority-flow-control deadlock recover-mode auto
[DeviceC-if-range] priority-flow-control deadlock enable
[DeviceC-if-range] quit
· 配置Device D、Device E
与Device C配置相同,具体步骤略。
· 配置Device A
# 创建WRED表queue-table5,在WRED表视图配置队列平均长度的下限为100,队列平均长度的上限为480,丢弃概率为20%并开启ECN功能。在接口HundredGigE1/0/1~HundredGigE1/0/3上应用WRED表queue-table5。
[DeviceA] qos wred queue table queue-table5
[DeviceA-wred-table-queue-table5] queue 5 low-limit 100 high-limit 480 discard-probability 20
[DeviceA-wred-table-queue-table5] queue 5 ecn
[DeviceA-wred-table-queue-table5] quit
[DeviceA] interface range hundredgige 1/0/1 to hundredgige 1/0/3
[DeviceA-if-range] qos wred apply queue-table5
[DeviceA-if-range] quit
· 配置Device B
与Device A配置相同,具体步骤略。
· 配置Device C
# 创建WRED表queue-table5,在WRED表视图配置队列平均长度的下限为100,队列平均长度的上限为480,丢弃概率为20%并开启ECN功能。在接口HundredGigE1/0/25~HundredGigE1/0/26上应用WRED表queue-table5。
[DeviceC] qos wred queue table queue-table5
[DeviceC-wred-table-queue-table5] queue 5 low-limit 100 high-limit 480 discard-probability 20
[DeviceC-wred-table-queue-table5] queue 5 ecn
[DeviceC-wred-table-queue-table5] quit
[DeviceC] interface range hundredgige 1/0/25 to hundredgige 1/0/26
[DeviceC-if-range] qos wred apply queue-table5
[DeviceC-if-range] quit
· 配置Device D、Device E
与Device C配置相同,具体步骤略。
· 配置Device A
# 开启发送数据缓冲区超门限告警功能。
[DeviceA] buffer threshold alarm egress enable
# 开启Headroom缓冲区超门限告警功能。
[DeviceA] buffer threshold alarm headroom enable
# 开启数据缓冲区丢包告警功能。
[DeviceA] buffer packet-drop alarm enable
# 开启gRPC功能。
[DeviceA] grpc enable
# 创建传感器组test1,并添加采样路径为bufferusages、headroomusages、egressdrops、pfcstatistics和ecnandwredstatistics。
[DeviceA] telemetry
[DeviceA-telemetry] sensor-group test1
[DeviceA-telemetry-sensor-group-test1] sensor path buffermonitor/bufferusages
[DeviceA-telemetry-sensor-group-test1] sensor path buffermonitor/headroomusages
[DeviceA-telemetry-sensor-group-test1] sensor path buffermonitor/egressdrops
[DeviceA-telemetry-sensor-group-test1] sensor path buffermonitor/pfcstatistics
[DeviceA-telemetry-sensor-group-test1] sensor path buffermonitor/ecnandwredstatistics
[DeviceA-telemetry-sensor-group-test1] quit
# 创建传感器组test2,并添加采样路径为portqueoverrunevent和portquedropevent。
[DeviceA-telemetry] sensor-group test2
[DeviceA-telemetry-sensor-group-test2] sensor path buffermonitor/portqueoverrunevent
[DeviceA-telemetry-sensor-group-test2] sensor path buffermonitor/portquedropevent
[DeviceA-telemetry-sensor-group-test2] quit
# 创建目标组collector1,并配置采集器IP地址为40.1.1.1、接收数据的端口号为50050(需保证Device A与Collector路由可达,具体细节本例不体现)。
[DeviceA-telemetry] destination-group collector1
[DeviceA-telemetry-destination-group-collector1] ipv4-address 40.1.1.1 port 50050
[DeviceA-telemetry-destination-group-collector1] quit
# 创建订阅A,配置传感器组test1、test2关联目标组collector1,设置传感器组test1的数据采样和推送周期为10秒。
[DeviceA-telemetry] subscription A
[DeviceA-telemetry-subscription-A] sensor-group test1 sample-interval 10
[DeviceA-telemetry-subscription-A] sensor-group test2
[DeviceA-telemetry-subscription-A] destination-group collector1
[DeviceA-telemetry-subscription-A] quit
· 配置Device B、Device C、Device D、Device E。
与Device A配置相同,具体步骤略。
· 配置Device E(尾节点)
# 配置INT设备的设备ID为30.1.1.1。
[DeviceE] telemetry ifa device-id 30.1.1.1
# 指定流量的入接口HundredGigE1/0/25~HundredGigE1/0/26为Egress接口。
[DeviceE] interface range hundredgige 1/0/25 to hundredgige 1/0/26
[DeviceE-if-range] telemetry ifa role egress
[DeviceE-if-range] quit
# 配置INT报文上送采集器时的封装参数。
[DeviceE] telemetry ifa collector source 30.1.1.1 destination 40.1.1.1 source-port 12 destination-port 14
# 开启INT功能。
[DeviceE] telemetry ifa global enable
· 配置Device A(中间节点)
# 配置INT设备的设备ID为10.1.2.2。
[DeviceA] telemetry ifa device-id 10.1.2.2
# 指定流量的入接口HundredGigE1/0/1为Transit接口。
[DeviceA] interface hundredgige 1/0/1
[DeviceA-HundredGigE1/0/1] telemetry ifa role transit
[DeviceA-HundredGigE1/0/1] quit
# 开启INT功能。
[DeviceA] telemetry ifa global enable
· 配置Device B(中间节点)
Device B的带内遥测设备ID配置为10.1.3.2,其余配置与Device A相同。具体步骤略。
· 配置Device C(首节点)
# 配置INT设备的设备ID为10.1.1.1。
[DeviceC] telemetry ifa device-id 10.1.1.1
# 创建一个名为samp的采样器,采用随机采样方式,按照2的8次方模式采样,即在256个报文中采样1个报文。
[DeviceC] sampler samp mode random packet-interval n-power 8
# 创建IPv4基本ACL 2000,并配置规则为匹配源IP地址为10.1.1.2的报文。
[DeviceC] acl basic 2000
[DeviceC-acl-ipv4-basic-2000] rule permit source 10.1.1.2 0
[DeviceC-acl-ipv4-basic-2000] quit
# 指定流量的入接口Twenty-FiveGigE1/0/1为Ingress接口。
[DeviceC] interface twenty-fivegige 1/0/1
[DeviceC-Twenty-FiveGigE1/0/1] telemetry ifa role ingress
[DeviceC-Twenty-FiveGigE1/0/1] quit
# 创建类classifier1,匹配ACL 2000。
[DeviceC] traffic classifier classifier1
[DeviceC-classifier-classifier1] if-match acl 2000
[DeviceC-classifier-classifier1] quit
# 创建流行为behavior1,动作为流量镜像到INT处理器,并引用采样器samp。
[DeviceC] traffic behavior behavior1
[DeviceC-behavior-behavior1] mirror-to ifa-processor sampler samp
[DeviceC-behavior-behavior1] quit
# 创建QoS策略,命名为ifa1,将流分类classifier1和流行为behavior1进行关联。
[DeviceC] qos policy ifa1
[DeviceC-qospolicy-ifa1] classifier classifier1 behavior behavior1
[DeviceC-qospolicy-ifa1] quit
# 将QoS策略ifa1应用到接口Twenty-FiveGigE1/0/1的入方向上。
[DeviceC] interface twenty-fivegige 1/0/1
[DeviceC-Twenty-FiveGigE1/0/1] qos apply policy ifa1 inbound
[DeviceC-Twenty-FiveGigE1/0/1] quit
# 开启INT功能。
[DeviceC] telemetry ifa global enable
Device C下连的10台服务器(包括Host A)同时向Host C线速转发流量,有如下结果:
· gRPC采集器能够收到Device C上报的HundredGigE1/0/25和HundredGigE1/0/26 ECN标记统计信息、Egress Buffer超限使用事件、PFC流控帧收发统计信息。
· 服务器先降低发送速率,接着停止发送报文一小段时间,随后恢复报文发送。
· INT采集器能够收到Device E上送的INT报文,从而对转发路径和时延进行分析。
如5.2.1 图12所示,某网络采用Spine、Leaf两级架构。为提高网络质量、监控流量丢包情况,需要在Spine设备和Leaf设备上配置MOD功能,以监控丢包情况是否发生在各个设备的流量转发过程中。MOD将采集到的丢包信息发送给采集器进行分析和处理。
图12 MOD典型配置举例组网图
· 基于Flow Group生成流表,Flow Group的模式设置为MOD模式。
· 基于MOD的丢包原因列表,设备对命中流表项的流量进行丢包监控。
· 配置MOD采样,并将采样报文通过UDP方式上送到采集器。
· 在Flow Group中引用ACL时,仅支持引用一个IPv4 ACL,并且该ACL仅支持匹配报文的五元组(源、目的IP地址,源、目的端口号和协议类型)和DSCP优先级。
· 由于一条流只能属于一个Flow Group,所以在配置ACL时请保证不要将同一条流引至多个Flow Group。
· MOD功能仅对命中Flow Group引用的ACL的流量生效。MOD功能仅监控丢包原因列表中的丢包原因,由其他原因引起的丢包,不在MOD功能的监控范围内。
· 如果需要删除已应用的Flow Group,必须先取消其应用,再删除该Flow Group。
· 设备当前仅支持同时启用同一种模式的Flow Group。
· 对于已存在的Flow Group,名称、模式不支持新增或修改。
· 配置MOD前需要先确保设备的硬件资源模式为EM模式,通过display hardware-resource switch-mode命令查看设备当前的硬件资源模式,通过如下配置将设备切换至EM模式。
# 配置设备的硬件资源运行模式为EM模式,然后保存配置并重启,让EM模式生效。
[DeviceA] hardware-resource switch-mode EM
Do you want to change the specified hardware resource working mode? [Y/N]:y
The hardware resource working mode is changed, please save the configuration and reboot the system to make it effective.
· 请参考以上方法配置Decice B、Decice C、Decice D和Decice E的硬件资源模式,具体配置步骤略。
· 各接口的IP地址
# 配置HundredGigE1/0/1~HundredGigE1/0/3工作在三层模式,并配置各接口的IP地址。
<DeviceA> system-view
[DeviceA] interface hundredgige 1/0/1
[DeviceA-HundredGigE1/0/1] port link-mode route
[DeviceA-HundredGigE1/0/1] ip address 10.1.2.2 24
[DeviceA-HundredGigE1/0/1] quit
[DeviceA] interface hundredgige 1/0/2
[DeviceA-HundredGigE1/0/2] port link-mode route
[DeviceA-HundredGigE1/0/2] ip address 20.1.2.2 24
[DeviceA-HundredGigE1/0/2] quit
[DeviceA] interface hundredgige 1/0/3
[DeviceA-HundredGigE1/0/3] port link-mode route
[DeviceA-HundredGigE1/0/3] ip address 30.1.2.2 24
[DeviceA-HundredGigE1/0/3] quit
· 配置路由协议
# 配置OSPF发布接口所在网段的路由。
[DeviceA] ospf 1 router-id 1.1.1.1
[DeviceA-ospf-1] area 0
[DeviceA-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] network 20.1.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] network 30.1.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] quit
[DeviceA-ospf-1] quit
· 配置Flow Group
# 创建IPv4高级ACL 3000,配置其规则为:匹配目的IP地址为30.1.1.2的报文。
<DeviceA> system-view
[DeviceA] acl advanced 3000
[DeviceA-acl-ipv4-adv-3000] rule permit ip destination 30.1.1.2 0
[DeviceA-acl-ipv4-adv-3000] quit
# 创建ID为1的MOD模式的Flow Group,并引用IPv4高级ACL 3000。
[DeviceA] telemetry flow-group 1
[DeviceA-telemetry-flow-group-1] if-match acl 3000
# 配置流表的生成规则为目的IP地址。
[DeviceA-telemetry-flow-group-1] template destination-ip
[DeviceA-telemetry-flow-group-1] quit
# 配置流表的老化时间为10分钟。
[DeviceA] telemetry flow-group aging-time 10
# 应用Flow Group 1。
[DeviceA] telemetry apply flow-group 1
· 配置MOD
# 配置MOD功能的设备标识ID为10.1.2.2。
[DeviceA] telemetry mod
[DeviceA-telemetry-mod] device-id 10.1.2.2
[DeviceA-telemetry-mod] quit
# 创建采样器samp,采样方式为随机采样,采样器按照2的次方模式采样,采样率为8。
[DeviceA] sampler samp mode random packet-interval n-power 8
# 开启MOD的采样功能,并引用采样器samp。
[DeviceA] telemetry mod
[DeviceA-telemetry-mod] sampler samp
# 配置MOD功能向采集器上送报文的方式为UDP。
[DeviceA-telemetry-mod] transport-protocol udp
# 配置MOD功能上送采集器的报文的封装信息为:源IP地址为10.1.2.2,目的IP地址为40.1.1.1,源端口号为1000,目的端口号为2333。
[DeviceA-telemetry-mod] collector source-ip 10.1.2.2 destination-ip 40.1.1.1 source-port 1000 destination-port 2333
# 配置MOD功能监控的丢包原因列表为所有原因。
[DeviceA-telemetry-mod] reason-list all
[DeviceA-telemetry-mod] quit
Device B、Device C、Device D和Device E上除接口IP地址、OSPF路由的配置、MOD功能的设备标识ID、上送采集器的报文的封装信息中的源IP地址需要与Device A不同外,其他配置与Device A相同,具体配置步骤略。
# 查看ACL配置。
<DeviceA> display acl 3000
Advanced IPv4 ACL 3000, 1 rule,
ACL's step is 5, start ID is 0
rule 0 permit ip destination 30.1.1.2 0
# 查看Flow Group配置。
<DeviceA> display telemetry flow-group 1
Flow group 1 (Successful)
ACL : 3000
Template : destination-ip
Mode : MOD
Aging time: 10 minutes
Rate limit: -
Max-entry : -
# 查看MOD配置。
<DeviceA> display telemetry mod
Status :Successful
Drop reason list:
ipv4-dip-miss
ip-multicase-error
unknown-vlan
ipv4-l3-header-error
tunnel-header-error
parity-error
higig-header-error
invalid-tpid
Sampler : samp
Device ID : 10.1.2.2
Transport protocol : UDP
Collector
Source IP : 10.1.2.2
Destination IP : 40.1.1.1
Source port : 1000
Destination port : 2333
Device B、Device C、Device D和Device E上除接口IP地址、OSPF路由的配置、MOD功能的设备标识ID、上送采集器的报文的封装信息中的源IP地址与Device A不同外,其他配置与Device A相同,具体验证步骤略。
# 在Device A上使用ping命令验证Host C是否可达。
<DeviceA> ping 30.1.1.2
Ping 30.1.1.2 (30.1.1.2): 56 data bytes, press CTRL+C to break
56 bytes from 30.1.1.2: icmp_seq=0 ttl=255 time=4.703 ms
56 bytes from 30.1.1.2: icmp_seq=1 ttl=255 time=1.636 ms
56 bytes from 30.1.1.2: icmp_seq=2 ttl=255 time=1.733 ms
56 bytes from 30.1.1.2: icmp_seq=3 ttl=255 time=1.662 ms
56 bytes from 30.1.1.2: icmp_seq=4 ttl=255 time=1.606 ms
--- Ping statistics for 30.1.1.2 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.606/2.268/4.703/1.218 ms
# 修改Device E的配置。
<DeviceE> system-view
[DeviceE] ospf 1
[DeviceE-ospf-1] area 0
[DeviceE-ospf-1-area-0.0.0.0] undo network 30.1.2.0 0.0.0.255
[DeviceE-ospf-1-area-0.0.0.0] quit
[DeviceE-ospf-1] quit
# 在Device A上使用ping命令验证Host C是否可达。
<DeviceA> ping 30.1.1.2
Ping 30.1.1.2 (30.1.1.2): 56 data bytes, press CTRL+C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- Ping statistics for 30.1.1.2 ---
5 packet(s) transmitted, 0 packet(s) received, 100.0% packet loss
当目的IP地址为Host C的主机地址的报文在Spine设备和Leaf设备上的转发过程中发生丢包时,Collector将会收到设备上送的丢包原因和丢弃报文特征。
本例中,在分析Collector接收到的MOD丢包信息时,发现丢包的设备是Device A,丢包原因是ipv4-dip-miss,丢包原因解释:IPv4目的IP未命中路由表(命中缺省路由也上报本丢包原因),据此判断是Device A没有到达Host C的路由,导致发往Host C的报文被丢弃。恢复Device E的OSPF配置之后,Host C可以正常接收其他设备发来的报文。
如图12所示,某网络采用Spine、Leaf两级架构。为提高网络质量、监控流量丢包情况,需要在Spine设备和Leaf设备上配置MOD功能,以监控丢包情况是否发生在各个设备的流量转发过程中。MOD将采集到的丢包信息发送给采集器进行分析和处理。为了节约硬件表项资源,我们采用简化版MOD方式。
图13 MOD典型配置举例组网图
· 基于Flow Group生成流表,Flow Group的模式设置为简化MOD模式。
· 基于简化MOD的丢包原因列表,设备对命中流表项的流量进行丢包监控。
· 在Flow Group中引用ACL时,仅支持引用一个IPv4 ACL,并且该ACL仅支持匹配报文的五元组(源、目的IP地址,源、目的端口号和协议类型)和DSCP优先级。
· 由于一条流只能属于一个Flow Group,所以在配置ACL时请保证不要将同一条流引至多个Flow Group。
· MOD功能仅对命中Flow Group引用的ACL的流量生效。MOD功能仅监控丢包原因列表中的丢包原因,由其他原因引起的丢包,不在MOD功能的监控范围内。
· 如果需要删除已应用的Flow Group,必须先取消其应用,再删除该Flow Group。
· 设备当前仅支持同时启用同一种模式的Flow Group。
· 对于已存在的Flow Group,名称、模式不支持新增或修改。
· 各接口的IP地址
# 配置HundredGigE1/0/1~HundredGigE1/0/3工作在三层模式,并配置各接口的IP地址。
<DeviceA> system-view
[DeviceA] interface hundredgige 1/0/1
[DeviceA-HundredGigE1/0/1] port link-mode route
[DeviceA-HundredGigE1/0/1] ip address 10.1.2.2 24
[DeviceA-HundredGigE1/0/1] quit
[DeviceA] interface hundredgige 1/0/2
[DeviceA-HundredGigE1/0/2] port link-mode route
[DeviceA-HundredGigE1/0/2] ip address 20.1.2.2 24
[DeviceA-HundredGigE1/0/2] quit
[DeviceA] interface hundredgige 1/0/3
[DeviceA-HundredGigE1/0/3] port link-mode route
[DeviceA-HundredGigE1/0/3] ip address 30.1.2.2 24
[DeviceA-HundredGigE1/0/3] quit
· 配置路由协议
# 配置OSPF发布接口所在网段的路由。
[DeviceA] ospf 1 router-id 1.1.1.1
[DeviceA-ospf-1] area 0
[DeviceA-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] network 20.1.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] network 30.1.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] quit
[DeviceA-ospf-1] quit
· 配置Flow Group
# 创建IPv4高级ACL 3000,配置其规则为:匹配目的IP地址为30.1.1.2的报文。
<DeviceA> system-view
[DeviceA] acl advanced 3000
[DeviceA-acl-ipv4-adv-3000] rule permit ip destination 30.1.1.2 0
[DeviceA-acl-ipv4-adv-3000] quit
# 创建ID为2的简化版MOD模式的Flow Group,并引用IPv4高级ACL 3000。
[DeviceA] telemetry flow-group 2 mode simple-mod
[DeviceA-telemetry-flow-group-2] if-match acl 3000
# 配置流表的生成规则为目的IP地址。
[DeviceA-telemetry-flow-group-2] template destination-ip
[DeviceA-telemetry-flow-group-2] quit
# 配置流表的老化时间为10分钟。
[DeviceA] telemetry flow-group aging-time 10
# 应用Flow Group 2。
[DeviceA] telemetry apply flow-group 2
· 配置简化MOD
# 配置简化MOD功能的设备标识ID为10.1.2.2。
[DeviceA] telemetry mod
[DeviceA-telemetry-mod] device-id 10.1.2.2
# 配置MOD功能向采集器上送报文的方式为UDP。
[DeviceA-telemetry-mod] transport-protocol udp
# 配置简化MOD功能上送采集器的报文的封装信息为:源IP地址为10.1.2.2,目的IP地址为40.1.1.1,源端口号为1000,目的端口号为2333。
[DeviceA-telemetry-mod] collector source-ip 10.1.2.2 destination-ip 40.1.1.1 source-port 1000 destination-port 2333
# 配置MOD功能监控的丢包原因列表为所有原因。
[DeviceA-telemetry-mod] reason-list all
[DeviceA-telemetry-mod] quit
Device B、Device C、Device D和Device E上除接口IP地址、OSPF路由的配置、MOD功能的设备标识ID、上送采集器的报文的封装信息中的源IP地址需要与Device A不同外,其他配置与Device A相同,具体配置步骤略。
# 查看ACL配置。
<DeviceA> display acl 3000
Advanced IPv4 ACL 3000, 1 rule,
ACL's step is 5, start ID is 0
rule 0 permit ip destination 30.1.1.2 0
# 查看Flow Group配置。
<Device> display telemetry flow-group 2
Flow group 2 (Successful)
ACL : 3000
Template : destination-ip
Mode : Simple MOD
Aging time: 10 minutes
Rate limit: -
Max-entry : -
# 查看MOD配置。
<DeviceA> display telemetry mod
Status :Successful
Drop reason list:
ipv4-dip-miss
ip-multicase-error
unknown-vlan
tunnel-header-error
parity-error
higig-header-error
Device ID : 10.1.2.2
Transport protocol : UDP
Collector
Source IP : 10.1.2.2
Destination IP : 40.1.1.1
Source port : 1000
Destination port : 2333
Device B、Device C、Device D和Device E上除接口IP地址、OSPF路由的配置、MOD功能的设备标识ID、上送采集器的报文的封装信息中的源IP地址与Device A不同外,其他配置与Device A相同,具体验证步骤略。
# 在Device A上使用ping命令验证Host C是否可达。
<DeviceA> ping 30.1.1.2
Ping 30.1.1.2 (30.1.1.2): 56 data bytes, press CTRL+C to break
56 bytes from 30.1.1.2: icmp_seq=0 ttl=255 time=4.703 ms
56 bytes from 30.1.1.2: icmp_seq=1 ttl=255 time=1.636 ms
56 bytes from 30.1.1.2: icmp_seq=2 ttl=255 time=1.733 ms
56 bytes from 30.1.1.2: icmp_seq=3 ttl=255 time=1.662 ms
56 bytes from 30.1.1.2: icmp_seq=4 ttl=255 time=1.606 ms
--- Ping statistics for 30.1.1.2 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.606/2.268/4.703/1.218 ms
# 修改Device E的配置。
<DeviceE> system-view
[DeviceE] ospf 1
[DeviceE-ospf-1] area 0
[DeviceE-ospf-1-area-0.0.0.0] undo network 30.1.2.0 0.0.0.255
[DeviceE-ospf-1-area-0.0.0.0] quit
[DeviceE-ospf-1] quit
# 在Device A上使用ping命令验证Host C是否可达。
<DeviceA> ping 30.1.1.2
Ping 30.1.1.2 (30.1.1.2): 56 data bytes, press CTRL+C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- Ping statistics for 30.1.1.2 ---
5 packet(s) transmitted, 0 packet(s) received, 100.0% packet loss
当目的IP地址为Host C的主机地址的报文在Spine设备和Leaf设备上的转发过程中发生丢包时,Collector将会收到设备上送的丢包原因和丢弃报文特征。
本例中,在分析Collector接收到的MOD丢包信息时,发现丢包的设备是Device A,丢包原因是ipv4-dip-miss,丢包原因解释:IPv4目的IP未命中路由表(命中缺省路由也上报本丢包原因),据此判断是Device A没有到达Host C的路由,导致发往Host C的报文被丢弃。恢复Device E的OSPF配置之后,Host C可以正常接收其他设备发来的报文。
如图12所示,服务器Server 1和Server 2均通过以太网交换机Device A和Device B连接Server 3,Device A作为gRPC客户端,并通过Device B与采集器相连。采集器为gRPC服务器。
在Device A上开启并配置TCB与Dial-out模式的gRPC功能。通过TCB监控Device A的egress方向MMU队列丢包。gRPC的对接模式采用Dial-out模式,由设备主动将配置的订阅数据推送给采集器。
图14 TCB典型配置组网图
· 在Device A设备的接口Twenty-FiveGigE1/0/3上开启发送缓冲区的TCB功能,并根据实际要求配置TCB参数,监控MMU队列丢包。
· 在设备上配置gRPC功能,通过gRPC将TCB采集到的数据发送给采集器。采集器作为gRPC服务器,对数据进行解析。
· 在系统视图下开启并配置全局TCB功能对指定slot上所有支持TCB功能的接口生效,在接口视图下开启并配置TCB功能仅对当前接口生效。两种配置方式互斥,如果当前已经使用一种方式开启了TCB功能,需要在该方式下关闭TCB功能后,才能使用另一种方式配置。
· 使用接口视图下的命令开启TCB功能时,设备仅支持在一个接口下开启TCB功能。
· 设备将TCB捕获的所有的丢包信息通过gRPC功能上报给gRPC服务器,但gRPC服务器只支持解析IPv4 TCP或IPv4 UDP报文的丢包信息。
· 在通过display buffer transient-capture packet-drop命令来显示TCB捕获的丢包信息时,最多支持显示三条记录。报文在跨IRF成员设备转发时,如果在egress方向发生了丢包,则通过本命令无法显示VLAN字段。
配置各设备的IP地址,并确保它们之间路由可达,具体配置步骤略。
· 配置TCB
# 创建编号为3000的IPv4高级ACL,并为其创建如下规则:匹配源IP地址为192.168.0.1和192.168.1.1的报文。
<DeviceA> system-view
[DeviceA] acl advanced 3000
[DeviceA-acl-ipv4-adv-3000] rule permit ip source 192.168.0.1 0
[DeviceA-acl-ipv4-adv-3000] rule permit ip source 192.168.1.1 0
[DeviceA-acl-ipv4-adv-3000] quit
# 对接口Twenty-FiveGigE1/0/3出方向队列0中匹配ACL 3000的报文开启TCB功能,进入预触发状态的队列长度门限值为10000字节,退出预触发状态的队列长度门限值为5000字节,抓包数量为1000,抓包时间为500微秒,预触发状态时的采样率为10,触发状态时的采样率为10,数据上报频次为600次/分钟。
[DeviceA] interface twenty-fivegige 1/0/3
[DeviceA-Twenty-FiveGigE1/0/3] buffer transient-capture egress queue 0 enable acl 3000 start-threshold 10000 stop-threshold 5000 frozen-number 1000 frozen-timer 500 pre-sample-rate 10 post-sample-rate 10 poll-frequency 600
[DeviceA-Twenty-FiveGigE1/0/3] quit
· 配置gRPC
# 开启gRPC功能。
[DeviceA] grpc enable
# 创建传感器组test,并添加采样路径tcb/tcbpacketinfoevent和tcb/tcbrawpacketinfoevent。
[DeviceA] telemetry
[DeviceA-telemetry] sensor-group test
[DeviceA-telemetry-sensor-group-test] sensor path tcb/tcbpacketinfoevent
[DeviceA-telemetry-sensor-group-test] sensor path tcb/tcbrawpacketinfoevent
[DeviceA-telemetry-sensor-group-test] quit
# 创建目标组collector1,并配置IP地址为192.168.2.1、端口号为10001的采集器。
[DeviceA-telemetry] destination-group collector1
[DeviceA-telemetry-destination-group-collector1] ipv4-address 192.168.2.1 port 10001
[DeviceA-telemetry-destination-group-collector1] quit
# 创建订阅A,配置关联传感器组为test,关联目标组为collector1。
[DeviceA-telemetry] subscription A
[DeviceA-telemetry-subscription-A] sensor-group test
[DeviceA-telemetry-subscription-A] destination-group collector1
[DeviceA-telemetry-subscription-A] quit
[DeviceA-telemetry] quit
Server 1和Server 2向Server 3线速转发流量,导致Device A的Twenty-FiveGigE1/0/3出方向拥塞丢包,此时采集器将收到设备推送的数据信息,在设备上也能查看到TCB捕获的报文丢包信息。
# 显示设备Device A的slot 1上TCB捕获的IPv4报文的丢包信息。
<DeviceA> display buffer transient-capture packet-drop slot 1 ipv4
TCB STATUS: EgressPort Twenty-FiveGigE1/0/3
--------------------------------------------------------------------------------
No. Time SMAC DMAC VLAN SIP DIP Type SPort DPort Queue IfName Reason
--------------------------------------------------------------------------------
Total Drop Packets in Ring Buffer of XPE 0:2047
0 178a5cc8eb0 0010-9400-0005 0010-9400-0002 100 192.168.0.1 192.168.3.1
UDP 60 60 2 Twenty-FiveGigE1/0/3 2
如5.2.1 图12所示,某网络采用Spine、Leaf两级架构。现Host C发现来自Host A的报文有延迟,需要在报文转发路径的设备上配置Telemetry Stream功能,采集报文上送采集器,以便采集器分析报文的转发时延。
图15 Telemetry Stream典型配置举例组网图
Host A到Host C的报文有两条转发路径,Host A—〉Device C—〉Device A—〉Device E---〉Host C和Host A—〉Device C—〉Device B—〉Device E---〉Host C,因此我们在Device C、Device A、Device B、Device E上配置Telemetry Stream功能。
加入业务环回组的接口会被环回组独占,请注意选择空闲接口。本例以选择Twenty-FiveGigE1/0/5为例。
配置各设备的IP地址,并确保它们之间路由可达,具体配置步骤略。
# 配置Device B的设备ID为40.1.2.1。
<DeviceA> system-view
[DeviceA] telemetry stream device-id 40.1.2.1
# 配置上送采集器的报文的封装信息:源IP地址为40.1.2.1,目的IP地址为40.1.1.1,源端口号为12,目的端口号为14。
[DeviceA] telemetry stream collector source 40.1.2.1 destination 40.1.1.1 source-port 12 destination-port 14
# 配置业务环回组1,并指定其业务类型为Telemetry Stream类型。
[DeviceA] service-loopback group 1 type telemetry-stream
# 将端口Twenty-FiveGigE1/0/5加入业务环回组1。
[DeviceA] interface twenty-fivegige1/0/5
[DeviceA-Twenty-FiveGigE1/0/5] port service-loopback group 1
All configurations on the interface will be lost. Continue?[Y/N]:y
[DeviceA-Twenty-FiveGigE1/0/5] quit
# 开启Telemetry Stream的时间戳功能。
[DeviceA] telemetry stream timestamp enable
# 创建一个名为samp的采样器,采用随机采样方式,按照2的次方模式采样,采样率为8。
[DeviceA] sampler samp mode random packet-interval n-power 8
# 创建IPv4基本ACL 2000,并配置规则为匹配源IP地址为10.1.1.2的报文。
[DeviceA] acl basic 2000
[DeviceA-acl-ipv4-basic-2000] rule permit source 10.1.1.2
[DeviceA-acl-ipv4-basic-2000] quit
# 在流量入接口HundredGigE1/0/1配置Telemetry Stream动作:动作ID为1,引用ACL 2000和采样器samp。
[DeviceA] interface hundredgige 1/0/1
[DeviceA-HundredGigE1/0/1] telemetry stream action 1 acl 2000 sampler samp
[DeviceA-HundredGigE1/0/1] quit
# 开启Telemetry Stream功能。
[DeviceA] telemetry stream enable
Device B、Device C和Device E上除设备标识ID、上送采集器的报文的封装信息中的源IP地址需要与Device A不同外,其他配置与Device A相同,配置步骤略。
[DeviceA] display telemetry stream
Telemetry stream status : Enabled
Telemetry stream timestamp status: Enabled
Telemetry stream device-id : 40.1.2.1
Telemetry stream action:
HundredGigE1/0/1:
Telemetry stream action 1:
ACL : 2000
Sampler: samp
Telemetry stream collector:
Source IP : 40.1.2.1
Destination IP : 40.1.1.1
Source port : 12
Destination port: 14
Device B、Device C和Device E上除设备标识ID、上送采集器的报文的封装信息中的源IP地址与Device A不同外,其他配置与Device A相同,具体验证步骤略。
Collector可以接收到Telemetry Stream采样报文,采样报文包含设备ID、入端口信息、出端口信息、入端口时间戳、出端口时间戳,可以用于分析报文在每个节点上的延迟。
