国家 / 地区

Telemetry技术白皮书-6W100

手册下载

Telemetry技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。



Telemetry

1.1  产生背景

随着网络的普及和新技术的涌现,网络规模日益增大,部署的复杂度逐步提升,用户对业务的质量要求也不断提高。为了满足用户需求,网络运维务必更加精细化、智能化。当今网络的运维面临着如下挑战:

·     超大规模:管理的设备数目众多,监控的信息数量非常庞大。

·     快速定位:在复杂的网络中,能够快速地定位故障,达到秒级、甚至亚秒级的故障定位速度。

·     精细监控:监控的数据类型更多,且监控粒度更细,以便完整、准确地反应网络状况,据此预估可能发生的故障,并为网络优化提供有力的数据依据。网络运维不仅需要监控接口上的流量统计信息、每条流上的丢包情况、CPU和内存占用情况,还需要监控每条流的时延抖动、每个报文在传输路径上的时延、每台设备上的缓冲区占用情况等。

传统的网络监控手段(SNMPCLI、日志)已无法满足网络需求:

·     SNMPCLI主要采用“拉模式”获取数据,即发送请求来获取设备上的数据,限制了可以监控的网络设备数量,且无法快速获取数据。

·     SNMP Trap和日志虽然采用“推模式”获取数据,即设备主动将数据上报给监控设备,但仅上报事件和告警,监控的数据内容极其有限,无法准确地反映网络状况。

Telemetry是一项监控设备性能和故障的远程数据采集技术。它采用“推模式”及时获取丰富的监控数据,可以实现网络故障的快速定位,从而解决上述网络运维问题。

1.2  技术优势

Telemetry具有如下优势:

·     支持多种实现方式,满足用户的不同需求。

·     采集数据的精度高,且类型十分丰富,可以充分反映网络状况。

·     一次订阅,持续上报。相比传统网络监控技术的查询一次上报一次,Telemetry仅需配置一次,设备就可以持续上报数据,减轻了设备处理查询请求的压力。

·     故障定位更快速、精准。

1.3  Telemetry网络模型

1所示,Telemetry网络模型中包括如下组成部分:

·     网络设备:接受监控的设备。网络设备对指定的监控数据进行采样,并将采样数据通过gRPCGoogle Remote Procedure CallGoogle远程过程调用)、INTIn-band Telemetry,带内遥测)、ERSPANEncapsulated Remote Switch Port Analyzer,封装远程端口镜像)等方式定时上送给采集器。

·     采集器:用于接收和保存网络设备上报的监控数据。

·     分析器:用于分析采集器接收到的监控数据,并对数据进行处理,例如以图形化界面的形式展现给用户。

·     控制器:通过NETCONF等方式向设备下发配置,实现对网络设备的管理。控制器可以根据分析器提供的分析数据,为网络设备下发配置,对网络设备的转发行为进行调整;也可以控制网络设备对哪些数据进行采样和上报。

图1 Telemetry网络模型

 

1.4  Telemetry实现方式

Telemetry用来高速地采集远程设备上的数据。根据数据上报方式的不同,Telemetry的实现方式包括:

·     基于gRPCTelemetry

gRPCGoogle发布的、基于HTTP 2.0传输层协议的高性能开源软件框架,提供了支持多种编程语言的、对网络设备进行配置和管理的方法。

基于gRPCTelemetry技术可以采集设备的接口流量统计、CPU、告警等数据后,经过Protocol Buffer编码,实时上报给采集器进行接收和存储。

·     基于INTTelemetry

INTBarefootAristaDellIntelVmware提出,是一种从设备上采集数据的网络监控技术。设备主动向采集器上送采集数据,提供实时、高速的数据采集功能,达到对网络设备的性能及网络运行情况进行监控的目的。

INT主要用来采集报文经过的路径和报文传输时延等数据平面信息。INT监控粒度为每个数据包,可以实现完整的网络状态实时监控。

·     基于ERSPANTelemetry

ERSPAN将镜像报文封装为协议号为0x88BEGRE报文,并将封装后的报文发送到远端监控设备。

用户可以根据实际需求定义待镜像的报文,例如镜像TCP三次握手报文以便监控TCP连接建立情况、镜像RDMA信令报文以便监控RDMA会话状态。

1.5  典型组网应用

2所示,网络中可以同时部署多种Telemetry技术,实现全方位、多角度的网络监控;也可以根据实际需要仅部署所需的Telemetry技术,针对某一方面进行实时监控。

gRPCINTERSPAN将采集到的数据发送到采集器后,管理员可以在采集器上以图形化界面展现出来,以便更加清晰地了解网络状态,快速定位网络故障。管理员还可以及时发现网络中潜在的问题,及时优化,以避免网络故障的发生。

图2 Telemetry典型应用

 

基于gRPCTelemetry

采用基于gRPCTelemetry技术时,设备自动读取各种统计信息(CPU、内存、接口等),根据采集器的订阅要求将采集的信息通过gRPC协议上报给采集器,实现了比传统监控方式更加实时、高效的数据采集功能。

2.1  gRPC协议

gRPCGoogle Remote Procedure CallGoogle远程过程调用)是Google发布的基于HTTP 2.0传输层协议承载的高性能开源软件框架,提供了支持多种编程语言的、对网络设备进行配置和管理的方法。通信双方可以基于该软件框架进行二次开发。

2.1.1  gRPC协议分层

图3 gRPC协议栈分层

 

gRPC协议栈分层如3所示。自下而上各层的含义为:

·     TCP传输层:TCP提供面向连接的、可靠的数据链路。

·     TLSTransport Layer Security,传输层安全)传输层:该层是可选的,设备和采集器可以基于TLS协议进行通道加密和双向证书认证,实现安全通信。

·     HTTP 2.0应用层:gRPC承载在HTTP 2.0协议上,利用了该协议的首部数据压缩、单TCP连接支持多路请求、流量控制等性能增强特性。

·     gRPC层:定义了RPCRemote Procedure Call,远程过程调用)的协议交互格式。公共RPC方法定义在公共proto文件中,例如grpc_dialout.proto

·     内容层:用于承载编码后的业务数据。业务数据的编码格式包括:

¡     GPBGoogle Protocol Buffer):高效的二进制编码格式,通过proto文件描述编码使用的数据结构。在设备和采集器之间传输数据时,该编码格式的数据比其他格式(如JSON)的数据具有更高的信息负载能力。

业务数据使用Protocol Buffer格式编码时,需要配合对应的业务模块proto文件才能解码。

目前,设备暂不支持业务数据使用GPB编码格式。

¡     JSONJavaScript Object Notation:轻量级的数据交换格式,采用独立于编程语言的文本格式来存储和表示数据,易于阅读和编写。

业务数据使用JSON格式编码时,通过公共proto文件即可解码,无需对应的业务模块proto文件。

设备和采集器通信时,双方的proto文件必须保持一致才能解码。

2.1.2  gRPC网络架构

4所示,gRPC网络采用客户端/服务器模型,使用HTTP 2.0协议传输报文。

图4 gRPC网络架构

 

gRPC网络的工作机制如下:

(1)     服务器通过监听指定服务端口来等待客户端的连接请求。

(2)     用户通过执行客户端程序登录到服务器。

(3)     客户端调用proto文件提供的gRPC方法发送请求消息。

(4)     服务器回复应答消息。

H3C设备支持作为gRPC服务器或者gRPC客户端。

2.1.3  Dial-in模式和Dial-out模式

设备支持以下两种gRPC对接模式:

·     Dial-in模式:设备作为gRPC服务器,采集器作为gRPC客户端。由采集器主动向设备发起gRPC连接并订阅需要采集的数据信息。

Dial-in模式适用于小规模网络和采集器需要向设备下发配置的场景。

·     Dial-out模式:设备作为gRPC客户端,采集器作为gRPC服务器。设备主动和采集器建立gRPC连接,将设备上配置的订阅数据推送给采集器。

Dial-out模式适用于网络设备较多的情况下向采集器提供设备数据信息。

2.2  Protocol Buffers编码格式

Protocol Buffers编码提供了一种灵活、高效、自动序列化结构数据的机制。Protocol BuffersXMLJSON编码类似,不同之处在于Protocol Buffers是一种二进制编码,性能更高。

1对比了Protocol Buffers编码格式和对应的JSON编码格式。其中业务数据notification均使用JSON编码格式。

表1 Protocol Buffers和对应的JSON编码格式示例

Protocol Buffers编码

对应的JSON编码

{

1:“H3C”

2:“H3C”

3:“H3C Simware”

4:“Syslog/LogBuffer”

5:"notification": {

"Syslog": {

"LogBuffer": {

"BufferSize": 512,

"BufferSizeLimit": 1024,

"DroppedLogsCount": 0,

"LogsCount": 100,

"LogsCountPerSeverity": {

"Alert": 0,

"Critical": 1,

"Debug": 0,

"Emergency": 0,

"Error": 3,

"Informational": 80,

"Notice": 15,

"Warning": 1

},

"OverwrittenLogsCount": 0,

"State": "enable"

}

},

"Timestamp": "1527206160022"

}

}

{

"producerName": "H3C",

"deviceName": "H3C",

"deviceModel": "H3C Simware",

"sensorPath": "Syslog/LogBuffer",

"jsonData": {

"notification": {

"Syslog": {

"LogBuffer": {

"BufferSize": 512,

"BufferSizeLimit": 1024,

"DroppedLogsCount": 0,

"LogsCount": 100,

"LogsCountPerSeverity": {

"Alert": 0,

"Critical": 1,

"Debug": 0,

"Emergency": 0,

"Error": 3,

"Informational": 80,

"Notice": 15,

"Warning": 1

},

"OverwrittenLogsCount": 0,

"State": "enable"

}

},

"Timestamp": "1527206160022"

}

}

}

 

2.3  proto文件

Protocol Buffers编码通过proto文件描述数据结构,用户可以利用Protoc等工具软件根据proto文件自动生成其他编程语言(例如JavaC++)代码,然后基于这些生成的代码进行二次开发,以实现gRPC设备对接。

H3CDial-in模式和Dial-out模式分别提供了proto文件。

2.3.1  Dial-in模式的proto文件

1. 公共proto文件

grpc_service.proto文件定义了Dial-in模式下的公共RPC方法(例如LoginLogout),其内容和含义如下:

syntax = "proto2";

package grpc_service;

message GetJsonReply { //Get方法应答结果

    required string result = 1;

}

message SubscribeReply { //订阅结果

    required string result = 1;

}

message ConfigReply { //配置结果

    required string result = 1;

}

message ReportEvent { //订阅事件结果定义

    required string token_id = 1; //登录token_id

    required string stream_name = 2; //订阅的事件流名称

    required string event_name = 3; //订阅的事件名

    required string json_text = 4; //订阅结果json字符串

}

message GetReportRequest{ //获取事件订阅结果请求

    required string token_id = 1; //登录成功后的token_id

}

message LoginRequest {  //登录请求参数定义

    required string user_name = 1; //登录请求用户名

    required string password = 2; //登录请求密码

}

message LoginReply {  //登录请求应答定义

    required string token_id = 1; //登录成功后返回的token_id

}

message LogoutRequest { //退出登录请求参数定义

    required string token_id = 1; //token_id

}

message LogoutReply { //退出登录返回结果定义

    required string result = 1; //退出登录结果

}

message SubscribeRequest { //定义事件流名称

    required string stream_name = 1;

}

service GrpcService { //定义gRPC方法

    rpc Login (LoginRequest) returns (LoginReply) {}  //登录方法

    rpc Logout (LogoutRequest) returns (LogoutReply) {} //退出登录方法

    rpc SubscribeByStreamName (SubscribeRequest) returns (SubscribeReply) {} //订阅事件流

    rpc GetEventReport (GetReportRequest) returns (stream ReportEvent) {} //获取事件结果

}

2. 业务模块proto文件

Dial-in模式支持DeviceIfmgrIPFWLLDPSyslog等多个业务模块的proto文件,描述具体的业务数据格式。

Device.proto文件为例,该文件定义了Device模块数据的RPC方法,其内容和含义如下:

syntax = "proto2";

import "grpc_service.proto";

package  device;

message DeviceBase { //获取设备基本信息结构定义

    optional string HostName = 1; //设备的名称

    optional string HostOid = 2; //sysoid

    optional uint32 MaxChassisNum = 3; //最大框数

    optional uint32 MaxSlotNum = 4; //最大slot

    optional string HostDescription = 5; //设备描述信息

}

message DevicePhysicalEntities { //设备物理实体信息

    message Entity {

        optional uint32 PhysicalIndex = 1; //实体索引

        optional string VendorType = 2; //vendor类型

        optional uint32 EntityClass = 3;//实体类型

        optional string SoftwareRev = 4; //软件版本

        optional string SerialNumber = 5; //序列号

        optional string Model = 6; //模式

    }

    repeated Entity entity = 1;

}

service DeviceService { //定义的RPC方法

    rpc GetJsonDeviceBase(DeviceBase) returns (grpc_service.GetJsonReply) {} //获取设备基本信息

    rpc GetJsonDevicePhysicalEntities(DevicePhysicalEntities) returns (grpc_service.GetJsonReply) {}

} //获取设备实体信息

2.3.2  Dial-out模式的proto文件

grpc_dialout.proto文件定义了Dial-out模式下的公共RPC方法,其内容和含义如下:

syntax = "proto2";

package grpc_dialout;

message DeviceInfo{ //推送的设备信息

    required string producerName = 1; //厂商名

    required string deviceName = 2; //设备的名称

    required string deviceModel = 3; //设备型号

}

message DialoutMsg{   //推送的消息格式描述

    required DeviceInfo deviceMsg = 1; //DeviceInfo所描述的设备信息

    required string sensorPath = 2; //采样路径,对应netconf表的xpath路径

    required string jsonData = 3; //采样结果数据(JSON格式字符串)

}

message DialoutResponse{  //采集器(gRPC服务器)返回信息,预留(暂不处理返回值,可填充任意值)

    required string response = 1;

}

service gRPCDialout {  //推送方法

    rpc Dialout(stream DialoutMsg) returns (DialoutResponse);

}

2.3.3  获取proto文件的方法

请联系H3C技术支持。

2.4  gRPC支持采集的业务数据类型

Dial-in模式下,设备支持提供设备管理、接口管理、IP转发、LLDP、系统日志等多个业务模块的数据。具体以H3C技术支持提供的业务proto文件为准。

Dial-out模式下,设备支持采集以下两种类型的业务数据:

·     事件触发类型:该类数据的采样没有固定周期,仅由事件触发。相关事件列表请参见对应模块的《NETCONF XML API Event Reference》手册。

·     周期采样类型:该类数据的采样有固定时间间隔。相关数据列表请参见对应模块的除NETCONF XML API Event Reference》之外的其他NETCONF XML API手册。

当同一时刻采样的数据较多时,可能因为瞬时CPU负荷过大,导致采样间隔暂时变长。

可以通过sensor path命令的相关提示来查看设备在Dial-out模式下支持采样的所有业务数据。

基于INTTelemetry

3.1  INT概述

3.1.1  产生背景

近年来,数据中心网络技术发展迅速,但长期缺失对于流量管理和故障监控的关注。随着数据中心网络规模的迅速扩张,由于缺少可靠的自动化管理和运维平台,给网络管理和运维带来很大挑战。

在传统网络中,我们对报文做转发路径探测时,经常会使用雷达探测技术。但是雷达探测技术,需要控制器软件的干预。由于没有硬件的支持,一系列的设计实现都比较复杂,而且还不能完全模拟真实的报文转发。

PingTracert功能虽然可以定位网络延时和路径,但都不是很精确的方法。在对时延要求比较高的网络中,无法精准的定位出在哪台设备的哪个端口上转发最耗时,因而不能有针对性的优化网络架构。INTIn-band Telemetry,带内遥测)技术正是为了满足这一需求而生。

INT作为可视化技术的一个重要组成部分,是让网络管理和运维走向真正自动化的第一步,也是最关键的一步。通过INT技术,我们可以获知报文实际转发路径上的每台网络设备信息、报文在每台设备上的入出端口和队列信息、以及相应的时间戳信息等。

3.1.2  技术优点

通过INT技术,我们可以监测到报文转发路径上每台设备的入出端口和队列信息、入出设备的时间戳信息、队列的拥塞信息等;并且在路径探测的最后一跳上,对监测的数据进行UDP头及IP头封装,发送给采集器。最终通过部署在采集器上的网管软件,对监测数据进行分析,提取有用信息。

INT技术的主要优点有:

·     完备的硬件支持

·     一次配置下发,持续数据上报

·     支持配置镜像原始报文进行INT采集的采样率

·     通过QoS策略,可以灵活地调整需要进行路径探测的原始报文

·     在路径探测的最后一跳,直接封装报文并发送给采集器

·     收集探测路径上每台设备的设备信息、接口信息、队列信息、时间戳信息和转发路径信息等

3.1.3  技术标准化

目前,INT技术已经在IETFInband Flow Analyzer draft-kumar-ifa-00草案中定义。在该草案中,对INT报文的固有头部和meta-data(即监测信息)的数据格式做了详细说明。对于支持该草案的网络设备来说,理论上可以实现INT报文分析处理的互通。

3.2  INT组网模型

图5 INT组网模型

 

5所示,INT组网模型中,主要包括如下部分:

·     首节点Ingress

INT网络中的首台设备,实现报文的采样和镜像到设备内部INT处理器,添加INT报文头(包括固有头部及监测信息meta-data)后,将报文发送给中间节点。

·     中间节点Transit

INT网络中除首节点和尾节点外的设备,实现INT报文的自动识别,添加监测信息,将报文发送给下游节点。

·     尾节点Egress

INT网络中的最后一跳设备,实现INT报文的自动识别,添加监测信息,根据用户配置的报文封装参数,对监测信息进行UDP头及IP头封装,发送给采集器。

·     流量入接口

对于首节点来说,是原始报文的入接口;对于中间节点和尾节点来说,是INT报文的入接口。

·     流量出接口

对于首节点和中间节点来说,是INT报文的出接口;对于尾节点来说,是封装报文的出接口。

·     INT处理器

INT处理器位于设备内部,是CPU中专门用来处理INT报文的处理器。对于首节点的镜像报文来说,需要由INT处理器对其添加INT报文头,生成INT报文;对于尾节点来说,INT处理器将INT报文中监测信息的封装格式做一致性检查,然后对INT报文封装外层UDP头。

3.3  INT报文格式

3.3.1  INT报文头组成及封装位置

INT报文头包括INT Probe HDRINT固有头部)和MD #1N(监测信息meta-data)两部分。INT报文头的封装位置如67所示。根据传输层协议的不同,INT报文分为INT over TCPINT over UDP两种类型:

·     当原始报文为TCP时,镜像并插入INT报文头后的报文,称之为INT over TCP

·     当原始报文为UDP时,镜像并插入INT报文头后的报文,称之为INT over UDP

图6 INT over TCP

 

图7 INT over UDP

 

3.3.2  INT固有头部格式

图8 INT固有头部格式

 

INT报文固有头部格式如8所示,各字段含义如下:

·     Pobe Maker:设备通过此字段识别INT报文,目前固定填充为0xaaaaaaaabbbbbbbb

·     Version:目前固定填充为0x01

·     Message Type:消息类型,目前固定填充为0x01

·     Flags:保留字段,目前固定填充为0x0000

·     Telemetry Request Vector:目前固定填充为0xffffffff

·     Hop Limit:最大跳数

·     Hop Count:报文已经过网络节点数量

·     Maximum LengthINT报文采集数据的最大长度,单位为字节

·     Current LengthINT报文采集数据的当前长度,单位为字节

·     Sender`s Handle:由首节点自动填充,采集器根据此字段识别INT流,唯一标识流

·     Sequence NumberINT流中报文的序号,同一个流中报文的唯一标识

3.3.3  INT监测信息meta-data格式

图9 INT监测信息meta-data格式

 

INT监测信息meta-data格式如9所示,各字段含义如下:

·     Device-ID:设备ID

·     Template-Id:保留字段,目前固定填充为000

·     Congestion:拥塞标志位,即ECN。高3位固定填充0,低2位为ECN域。

·     Egress Port Drop Pkt Byte Cnt Upper:出接口丢包数,单位为字节,目前固定填充为0x00

·     IP_TTL:报文的TTL值。

·     Queue-Id:出接口队列ID,目前固定填充为0x00

·     Rx Timestamp Seconds Upper/Rx Timestamp Seconds:入接口时间戳,单位为秒

·     Rx Timestamp Nano-Seconds Upper:入接口时间戳,单位为纳秒

·     Tx Timestamp Nano-Seconds Upper:出接口时间戳,单位为纳秒

·     Egress Port Utilization [%]:出接口利用率,目前固定填充为0x0000

·     Ingress Port [module, port]:入接口

·     Egress Port [module, port]:出接口

·     Egress Port Drop Pkt Byte Cnt:出接口丢包数,单位为字节,目前固定填充为0x00000000

3.4  运行机制

开启INT功能的设备共同组成INT域。各个INT设备在域内承担着不同的角色,各角色及其实现的功能如下:

·     首节点

通过将QoS策略应用在Ingress接口的入方向上,实现对收到的流量进行流分类,并镜像至INT处理器。INT处理器对镜像报文插入INT固有头部,然后将其送回芯片的转发逻辑,添加监测信息,即meta-data,然后查表转发该报文。

·     中间节点

Transit接口自动识别INT报文,并对其添加监测信息,然后查表转发。

·     尾节点

Egress接口自动识别INT报文,并上送INT处理器,对其进行如下处理:

a.     添加监测信息,即meta-data

b.     在完整的INT报文(包含原始二层头)基础上,封装外层UDP头;

c.     根据用户配置的INT报文封装信息,封装报文的外层IP头;

d.     根据外层IP头中的地址,路由至远端采集器。

3.5  INT可采集的数据信息

INT可监测的数据信息主要有:

·     设备ID

报文转发路径上,每台设备的设备ID,即配置INT功能时指定的设备ID

·     流量入接口ID

报文在INT网络各个节点的逻辑入接口。

·     入接口时间戳

报文从各个节点的流量入接口进入设备时的设备本地时间。对于首节点来说,是INT报文进入环回口的时间。

·     流量出接口ID

报文在INT网络各个节点的逻辑出接口。

·     出接口时间戳

报文从各个节点的流量出接口离开设备时的设备本地时间。

·     缓存信息

¡     队列ID

缓存原始报文的队列ID

¡     ECN信息

基于ERSPANTelemetry

4.1  简介

ERSPANEncapsulated Remote Switch Port Analyzer,封装远程端口镜像)是一种三层远程端口镜像技术,通过复制指定端口、VLANCPU的报文,并通过GRE隧道将复制的报文发送到远程数据监测设备,使用户可以利用数据监测设备分析这些报文(称为镜像报文),以进行网络监控和故障排除。

4.2  网络构成

10所示,ERSPAN网络由以下几部分构成:

·     镜像源:被监控的对象,可以是端口、VLANCPU,分别称为源端口、源VLAN和源CPU。经镜像源收发的报文会被复制一份,并发送到数据监测设备,以便对镜像报文进行监控和分析。

·     源设备:镜像源所在的设备。

·     镜像目的:镜像报文的出端口,该端口称为目的端口。封装后的镜像报文通过目的端口转发到数据检测设备。

·     镜像方向:在镜像源上可复制哪些方向的报文:

¡     入方向:是指仅复制镜像源收到的报文。

¡     出方向:是指仅复制镜像源发出的报文。

¡     双向:是指对镜像源收到和发出的报文都进行复制。

图10 ERSPAN构成

 

4.3  报文封装格式

ERSPAN定义了三种封装格式。目前,设备仅支持Type II封装格式,即ERSPAN将镜像报文封装为协议号为0x88BEGRE报文,如图11所示。

图11 ERSPAN报文封装格式

 

ERSPAN为镜像报文添加ERSPAN头后,重新计算CRC,并为报文添加GRE头和IPv4报文头。GRE头和ERSPAN头中的关键字段含义为:

·     GRE头:

¡     标记位:S比特取值为1,表示可以通过序列号检查报文是否乱序;其余标记位取值为0

¡     版本号:取值为0

¡     协议类型:取值为0x88BE,表示GRE的乘客协议为ERSPAN type II

¡     序列号:报文的序列号,每增加一个报文,序列号加1

·     ERSPAN

¡     版本号:ERSPAN封装的版本,ERSPAN type II取值为1

¡     VLAN:镜像报文的原始VLAN

¡     CoS:镜像报文的原始CoSClass of Service,服务等级)。

¡     EnERSPAN流量源端口的数据帧封装类型。取值00表示不携带VLAN标签;01表示ISL封装;10表示802.1Q封装;11表示数据帧中携带VLAN标签。

¡     T:取值为1表示由于镜像报文超过接口的MTUERSPAN报文中封装的数据帧被进行了分片。

¡     Session IDERSPAN会话的标识,也称为ERSPAN ID。在同一个源和目的设备之间必须唯一。

¡     IndexERSPAN流量源端口和镜像方向的索引。

4.4  工作机制

12所示,ERSPAN镜像报文的转发过程为:

(1)     源设备将经过源端口、源VLAN或源CPU的报文复制一份。

(2)     源设备为复制的报文添加ERSPAN封装,封装的源IP地址为20.1.1.1,目的IP地址为数据监测设备的地址40.1.1.2

(3)     封装后的报文通过GRE隧道发送到数据监测设备。

(4)     数据监测设备对报文进行解封装,并分析镜像报文的内容。

图12 ERSPAN工作机制

 

4.5  应用场景

ERSPAN可以将用户感兴趣的报文(如某个端口接收到的报文)通过GRE隧道镜像到远端数据监测设备。数据监测设备通过分析镜像报文,了解网络的状况,例如镜像TCP三次握手报文以便监控TCP连接建立情况、镜像RDMARemote Direct Memory Access,远程直接内存访问)信令报文以便监控RDMA会话状态。

图13 ERSPAN应用场景

 

联系我们 联系我们
联系我们
回到顶部 回到顶部