天极传媒:
天极网
比特网
IT专家网
52PK游戏网
极客修
全国分站

北京上海广州深港南京福建沈阳成都杭州西安长春重庆大庆合肥惠州青岛郑州泰州厦门淄博天津无锡哈尔滨

产品
  • 网页
  • 产品
  • 图片
  • 报价
  • 下载
全高清投影机 净化器 4K电视曲面电视小家电滚筒洗衣机
您现在的位置: 天极网 > 网络>新闻>流量可视化之ERSPAN的前世今生

流量可视化之ERSPAN的前世今生

天极网网络频道 2018-06-01 17:12 我要吐槽

  【天极网网络频道】时下最常用的网络监控和排错工具非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报文的镜像抓包:

Picture1_Wireshark_Capture

  ERSPAN协议经过长期发展,随着能力的增强形成多个版本,称为"ERSPAN Types”,不同Type具有不同的帧头部格式。

  在ERSPAN头部的第一个Version字段里有作定义:

  另外在GRE头部中的Protocol Type字段也有指明内部的ERSPAN类型,Protocol Type字段值为0x88BE表示是ERSPAN Type II,0x22EB 表示是ERSPAN Type III。

  1. Type I

  Type I的ERSPAN帧直接将IP+GRE封装在原始镜像帧头部之上,这种封装方式在原始帧之上增加了38字节:14(MAC) + 20 (IP) + 4(GRE)。这种格式的优势在于其头部尺寸紧凑,减少传输过程的开支,但因为其将 GRE Flag和Version字段全部设置为0,即不携带任何拓展字段,也导致Type I并没有大规模应用,这里就不过多展开。

  Type I的GRE头部封装格式如下:

  2. 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正确性,我们只能假设仅仅是未损坏的帧被镜像了。

  3. 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在网络上端到端的转发质量评估和预测。

  为了实现RDAM会话可视化,我们需要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会话进行可视化展示。

  感谢您关注锐捷网络技术干货文章!现诚邀您参与有奖调研,您宝贵的意见和建议将帮助我们在技术探索与分享上持续精进。

  点击下方“链接”或扫描二维码参与调研。戳👇

  http://survey.ruijie.com.cn/jq/23928332.aspx

../../../../../../../../Desktop/屏幕快照%202018-06-01%20下午4

请关注天极网天极新媒体 最酷科技资讯
扫码赢大奖
评论
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
DIY整机企业级软件