时下常用的网络监控和排错工具非SPAN(Switch Port Analyzer)莫属了,SPAN也通常被称作端口镜像。它可以让我们以旁路的方式来监控网络流量,不会对现网的业务造成干扰,同时将监控流量的副本发送到本地或远端的设备上,包括Sniffer、IDS、或其他类型的网络分析工具。
一些典型的用法有:
●通过追踪控制/数据帧来排除网络问题;
●通过监控VoIP包来分析延迟和抖动;
●通过监控网络交互来分析时延;
●通过监控网络流量来做异常状态的检测。
SPAN可以在本地操作,将流量镜像到同一个源设备的其他端口,也可以远程镜像到其他与源设备二层相邻的网络设备上(RSPAN)。
今天我们来聊一聊可以跨三层IP传输的远程网络流量监控技术——ERSPAN(Encapsulated Remote Switch Port Analyzer),即在SPAN的基础上扩展了encapsulated remote的特性。
ERSPAN基本操作原理
首先,我们来看一下ERSPAN的特性:
●将源端口报文复制一份通过GRE(Generic Routing Encapsulation)发送到目的服务器进行解析,采集服务器的物理位置不受限制;
●借助芯片的UDF(User Defined Field)特性,通过专家级扩展列表基于Base域进行1~126字节的任意偏移,对会话关键字进行匹配实现会话的可视化,例如针对TCP三次握手、RDMA会话的可视;
●支持设置采样率;
●支持报文截取长度,降低目标服务器压力。
看到以上特性,相信大家就知道为什么ERSPAN是如今数据中心内部网络监控一个必不可少的工具了。
总结一下,ERSPAN主要的作用可以归纳为两点:
●会话可视化:借助ERSPAN把新建TCP、RDMA(Remote Direct Memory Access)等的所有会话都采集到后端服务器进行展示;
●网络排障:当出现网络问题时,去抓取网络流量做故障分析。
为了达到这样的效果,源网络设备需要从海量数据流中将用户感兴趣的流量过滤出来,复制一份,将每个复制帧封装到一个特殊的“超级帧容器”中,这个超级容器会携带足够多的附加信息,以便它被正确的路由到接收设备,并让接收设备能够提取并完全恢复原始监控的流量。
接收设备可以是另外一台支持解封装ERSPAN报文的服务器。
ERSPAN的类型和封装格式分析
ERSPAN的报文基于GRE封装,并通过以太网转发到任何IP路由可达的地方。当前ERSPAN主要应用在IPv4网络,未来对IPv6的支持也会是一个刚需。
关于ERSAPN的通用封装结构,下面是一个ICMP报文的镜像抓包:
ERSPAN协议经过长期发展,随着能力的增强形成多个版本,称为"ERSPAN Types”,不同Type具有不同的帧头部格式。
在ERSPAN头部的第一个Version字段里有作定义:
ERSPAN类型 |
Version字段 |
---|---|
Type I |
0x0 |
Type II |
0x1 |
Type III |
0x2 |
另外在GRE头部中的Protocol Type字段也有指明内部的ERSPAN类型,Protocol Type字段值为0x88BE表示是ERSPAN Type II,0x22EB 表示是ERSPAN Type III。
• Type I
Type I的ERSPAN帧直接将IP+GRE封装在原始镜像帧头部之上,这种封装方式在原始帧之上增加了38字节:14(MAC) + 20 (IP) + 4(GRE)。这种格式的优势在于其头部尺寸紧凑,减少传输过程的开支,但因为其将 GRE Flag和Version字段全部设置为0,即不携带任何拓展字段,也导致Type I并没有大规模应用,这里就不过多展开。
Type I的GRE头部封装格式如下:
• Type II
在Type II中,GRE头部中的C, R, K, S,s, Recur, Flags, Version字段,除了S字段为1,其余字段皆为0,所以Sequence Number字段会出现在Type II的GRE头部中。即意味着Type II可以确保接收GRE报文的次序,不会出现因为网络故障,导致收到一堆无序的GRE报文之后无法排序的情况。
Type II的GRE头部封装格式如下:
另外,ERSPAN Type II的帧格式还增加了8字节的ERSPAN头部在GRE头部和原始镜像帧之间。
Type II的ERSPAN头部封装格式如下:
最后,紧随原始镜像帧之后的,是标准的4字节的以太网循环冗余校验码CRC。
值得注意的是,在实现中,镜像帧并没有包含原始帧的FCS字段,作为替代的是基于整个ERSPAN重新计算的新CRC值。这意味着接收设备无法检验原始帧的CRC正确性,我们只能假设仅仅是未损坏的帧被镜像了。
• Type III
Type III引入了一个更大、更灵活的复合报头,以满足日益复杂和多样化的网络监控场景,包含且不限于网络管理、入侵检测、性能和延迟分析等。这些场景需要知道镜像帧的所有原始参数,并包括那些不存在于原始帧本身的内容。
ERSPAN Type III复合报头包括一个强制的12字节头部和一个可选的8字节平台特定子头部。
Type III的ERSPAN头部封装格式如下:
同样,在原始镜像帧之后的是4字节的CRC。
从Type III的头部格式中可以看到,除了在Type II的基础上保留了Ver、VLAN、COS、T、Session ID字段之外,还新增了很多特有的字段,如:
●BSO:用来表示通过ERSPAN承载的数据帧的负载完整性,00是没问题的帧、11是有问题的帧、01是短帧、11是超大帧;
●Timestamp:从与系统时间同步的硬件时钟里面导出,这32比特的字段至少支持100微秒的时间戳粒度;
●P与FT(Frame Type): 前者用来指明ERSPAN承载的是以太网协议帧(PDU帧),后者用来指明是以太网帧还是IP包;
●HW ID:在系统内ERSPAN引擎的唯一标识符;
●Gra (Timestamp Granularity):用来定义时间戳的颗粒度,如00b代表100微秒粒度,01b代表100纳秒粒度,10b代表IEEE 1588粒度,11b则需要结合平台特定子头部来实现更高精的粒度;
●Platf ID与Platform Specific Info:根据Platf ID不同的值,Platform Specific Info字段会有不同的格式与内容。
应该注意的是,上面所支持的各种报头字段可以在常规的ERSPAN应用中使用,甚至可以镜像错误帧或BPDU帧,并保持原始的Trunk封装和VLAN ID。此外,在镜像帧的过程中,也可以在每个ERSPAN帧中添加关键时间戳信息以及其他信息字段。
通过ERSPAN自身的各种特征头部,我们可以实现更为精细化的网络流量分析,接下来只需要在ERSPAN进程中挂载相应的ACL,来匹配我们感兴趣的网络流量即可。
ERSPAN实现RDMA会话可视化
我们举一个RDMA场景下应用ERSPAN技术来达到RDMA会话可视化的案例:
●RDMA:Remote Direct Memory Access远程直接数据存取,是利用智能网卡和交换机,实现服务器A的网卡可以直接读写服务器B的内存,最终达到高带宽、低延迟和低资源利用率的效果,在大数据和高性能分布式存储场景中有大量的应用。
●RoCEv2:RDMA over Converged Ethernet Version 2,RDMA数据封装在UDP报头中,目的端口号为4791,UDP报头之后是IB BTH,即InfiniBand Base Transport Header。
RDMA日常运维需要采集很多数据,用于收集日常水位基准线和异常报警,以及发生异常的问题定位依据。结合ERSPAN可以快速抓取海量数据,获得交换芯片在微秒级别的转发质量数据、协议交互状态,并通过数据统计与分析,得出RDMA在网络上端到端的转发质量评估和预测。
为了实现RDMA会话可视化,我们需要ERSPAN在镜像流量时,对RDMA交互会话的关键字匹配,这时们需要利用专家级扩展列表。
专家级扩展列表匹配字段定义:
●UDF由五个字段组成:UDF关键字、base域、offset域、value域和mask域。受限于硬件表项容量,当前共有8个UDF可以使用,一个UDF最长可以匹配两个字节。
●UDF关键字:UDF1...UDF8共8个UDF匹配域关键字;
●base域:标识UDF匹配域的起始位置。如下:
●l4_header (适用RG-S6520-64CQ)
●l5_header (适用RG-S6510-48VS8CQ)
●offset域:基于base域的偏移值,范围:0-126;
●value域:匹配值,可以与mask域配合使用,用来配置需要匹配的具体value,有效位两个字节;
●mask域:掩码,有效位两个字节。
(补充:如果多个表项有用到同一个UDF匹配域的话,那么base域和offset域必须保持一致。)
与RDMA会话状态相关的两个关键报文是CNP(Congestion Notification Packet) NAK(Negative Acknowledgment)
前者是RDMA接收端收到交换机(出口Buffer达到阈值时)发出的ECN报文后生成的,包含了导致拥塞的flow或QP的信息;后者是用于表示RDMA传输有丢包的响应报文。
我们接下来看看如何利用专家级扩展列表来匹配这两个报文:
expert access-list extended rdma
permit udp any any any any eq 4791 udf 1 l4_header 8 0x8100 0xFF00 (匹配RG-S6520-64CQ)
permit udp any any any any eq 4791 udf 1 l5_header 0 0x8100 0xFF00 (匹配RG-S6510-48VS8CQ)
expert access-list extended rdma
permit udp any any any any eq 4791 udf 1 l4_header 8 0x1100 0xFF00 udf 2 l4_header 20 0x6000 0xFF00(匹配RG-S6520-64CQ)
permit udp any any any any eq 4791 udf 1 l5_header 0 0x1100 0xFF00 udf 2 l5_header 12 0x6000 0xFF00(匹配RG-S6510-48VS8CQ)
最后一步,将该专家级扩展列表挂载到相应ERSPAN进程中,即可实现RDMA会话的可视化。
写在最后
在数据中心网络规模日益庞大,网络流量日益复杂,而对网络运维要求日益精细的今天,ERSPAN是必不可少的工具之一。
随着运维自动化程度越来越高,Netconf、RESTconf、gRPC等技术在网络自动化运维中受到广大运维同学的欢迎,利用gRPC来作为镜像流量回传的底层协议也具有诸多优势。如:基于HTTP/2协议,可以支持同一连接下串流推送机制;使用ProtoBuf编码,比JSON格式的信息大小降低了一半,可以使数据传输更加快捷和高效。试想一下,如果利用ERSPAN对感兴趣流镜像之后,再利用gRPC上送到分析服务器,是不是就会极大提高网络自动化运维的能力和效率呢?
锐捷网络在25G/100G数据中心的新产品RG-S6510-48VS8CQ和RG-S6520-64CQ,除了可以满足RDMA网络中对PFC+ECN+MMU的管理,能保持较高的协调性,还可以部署RDMA整网的可视化方案,支持利用ERSPAN技术匹配专家级拓展列表对RDMA会话进行可视化展示。
本期作者:赵爽
锐捷网络互联网系统部行业咨询
更多技术博文
-
锐捷Wi-Fi 7高密AP RG-AP9520-RDX 携“动态波束赋形天线”正式登场!
锐捷网络新一代搭载智能天线的Wi-Fi 7高密无线接入点 RG-AP9520-RDX正式上市,该产品采用三射频设计,内置Al Radio智能射频,整机8条空间流,速率高达6.453Gbps,适用于高教、政府、普教、金融、商业等普通室内场景,亦可以满足企业大开间办公区、中大型报告厅、图书馆自习室、室内场馆、室内会场等高密度无线覆盖场景。
-
#无线
-
-
还在为IT运维头疼?锐捷乐享云订阅,让IT运维更简单
在数字化转型的浪潮中,IT系统的复杂性正以惊人的速度增长。大多数企业在IT运维中面临故障定位难、效率低、成本高等问题,在此背景下,锐捷网络“乐享云订阅”服务应运而生,为客户提供持续高效的IT运维管理体验,助力企业增强灵活性并加速投资回报。
-
#统一运维
-
#IT运维
-
#IT运维管理
-
-
锐捷Wi-Fi 7新一代全院零漫游解决方案创新发布,为智慧医院建设注入新动力
在智慧医疗快速发展的今天,医院基础信息化网络正迎来一场革命性的转型。医疗数据流量的爆炸性增长,对网络带宽提出了前所未有的要求;智慧病房的广泛应用,设备无线化趋势明显,部署规模和终端数量急剧膨胀,运维的复杂性也随之水涨船高。此外,医院网络一方面在拥抱开放的物联网,实现智慧病房的多功能融合,同时也需坚守业务安全,满足等保标准。在这样的背景下,怎样的无线网络能支撑起智慧医疗当前与未来?
-
#医疗
-
#医院网络
-
#Wi-Fi 7
-
#无线
-
-
不可忽视的网络安全日志分析
网络安全日志分析是保障数字时代信息安全的关键措施。新一代日志分析与审计系统通过全面收集、标准化处理和智能分析各类网络日志,及时发现安全威胁和异常行为,提供全局视角和深度安全洞见,确保业务的不间断安全运营。
-
#知识百科
-
#安全
-