热点:

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

      [  中关村在线   ]  

     时下最常用的网络监控和排错工具非SPAN(SwitchPortAnalyzer)莫属了,SPAN也通常被称作端口镜像。它可以让我们以旁路的方式来监控网络流量,不会对现网的业务造成干扰,同时将监控流量的副本发送到本地或远端的设备上,包括Sniffer、IDS、或其他类型的网络分析工具。

      一些典型的用法有:

      o通过追踪控制/数据帧来排除网络问题;

      o通过监控VoIP包来分析延迟和抖动;

      o通过监控网络交互来分析时延;

      o通过监控网络流量来做异常状态的检测。

      SPAN可以在本地操作,将流量镜像到同一个源设备的其他端口,也可以远程镜像到其他与源设备二层相邻的网络设备上(RSPAN)。

      今天我们来聊一聊可以跨三层IP传输的远程网络流量监控技术--ERSPAN(EncapsulatedRemoteSwitchPortAnalyzer),即在SPAN的基础上扩展了encapsulatedremote的特性。

      ERSPAN基本操作原理

      首先,我们来看一下ERSPAN的特性:

      o将源端口报文复制一份通过GRE(GenericRoutingEncapsulation)发送到目的服务器进行解析,采集服务器的物理位置不受限制;

      o借助芯片的UDF(UserDefinedField)特性,通过专家级扩展列表基于Base域进行1~126字节的任意偏移,对会话关键字进行匹配实现会话的可视化,例如针对TCP三次握手、RDMA会话的可视;

      o支持设置采样率;

      o支持报文截取长度,降低目标服务器压力。

      看到以上特性,相信大家就知道为什么ERSPAN是如今数据中心内部网络监控一个必不可少的工具了。

      总结一下,ERSPAN主要的作用可以归纳为两点:

      o会话可视化:借助ERSPAN把新建TCP、RDMA(RemoteDirectMemoryAccess)等的所有会话都采集到后端服务器进行展示;

      o网络排障:当出现网络问题时,去抓取网络流量做故障分析。

      为了达到这样的效果,源网络设备需要从海量数据流中将用户感兴趣的流量过滤出来,复制一份,将每个复制帧封装到一个特殊的"超级帧容器"中,这个超级容器会携带足够多的附加信息,以便它被正确的路由到接收设备,并让接收设备能够提取并完全恢复原始监控的流量。

      接收设备可以是另外一台支持解封装ERSPAN报文的服务器。

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

      ERSPAN的类型和封装格式分析

      ERSPAN的报文基于GRE封装,并通过以太网转发到任何IP路由可达的地方。当前ERSPAN主要应用在IPv4网络,未来对IPv6的支持也会是一个刚需。

      关于ERSAPN的通用封装结构,下面是一个ICMP报文的镜像抓包:

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

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

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

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

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

      1.TypeI

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

      TypeI的GRE头部封装格式如下:

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

      2.TypeII

      在TypeII中,GRE头部中的C,R,K,S,s,Recur,Flags,Version字段,除了S字段为1,其余字段皆为0,所以SequenceNumber字段会出现在TypeII的GRE头部中。即意味着TypeII可以确保接收GRE报文的次序,不会出现因为网络故障,导致收到一堆无序的GRE报文之后无法排序的情况。

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

      TypeII的GRE头部封装格式如下:

      另外,ERSPANTypeII的帧格式还增加了8字节的ERSPAN头部在GRE头部和原始镜像帧之间。

      TypeII的ERSPAN头部封装格式如下:

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

      最后,紧随原始镜像帧之后的,是标准的4字节的以太网循环冗余校验码CRC。

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

      值得注意的是,在实现中,镜像帧并没有包含原始帧的FCS字段,作为替代的是基于整个ERSPAN重新计算的新CRC值。这意味着接收设备无法检验原始帧的CRC正确性,我们只能假设仅仅是未损坏的帧被镜像了。

      3.TypeIII

      TypeIII引入了一个更大、更灵活的复合报头,以满足日益复杂和多样化的网络监控场景,包含且不限于网络管理、入侵检测、性能和延迟分析等。这些场景需要知道镜像帧的所有原始参数,并包括那些不存在于原始帧本身的内容。

      ERSPANTypeIII复合报头包括一个强制的12字节头部和一个可选的8字节平台特定子头部。

      TypeIII的ERSPAN头部封装格式如下:

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

      同样,在原始镜像帧之后的是4字节的CRC。

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

      从TypeIII的头部格式中可以看到,除了在TypeII的基础上保留了Ver、VLAN、COS、T、SessionID字段之外,还新增了很多特有的字段,如:

      oBSO:用来表示通过ERSPAN承载的数据帧的负载完整性,00是没问题的帧、11是有问题的帧、01是短帧、11是超大帧;

      oTimestamp:从与系统时间同步的硬件时钟里面导出,这32比特的字段至少支持100微秒的时间戳粒度;

      oP与FT(FrameType):前者用来指明ERSPAN承载的是以太网协议帧(PDU帧),后者用来指明是以太网帧还是IP包;

      oHWID:在系统内ERSPAN引擎的唯一标识符;

      oGra(TimestampGranularity):用来定义时间戳的颗粒度,如00b代表100微秒粒度,01b代表100纳秒粒度,10b代表IEEE1588粒度,11b则需要结合平台特定子头部来实现更高精的粒度;

      oPlatfID与PlatformSpecificInfo:根据PlatfID不同的值,PlatformSpecificInfo字段会有不同的格式与内容。

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

      应该注意的是,上面所支持的各种报头字段可以在常规的ERSPAN应用中使用,甚至可以镜像错误帧或BPDU帧,并保持原始的Trunk封装和VLANID。此外,在镜像帧的过程中,也可以在每个ERSPAN帧中添加关键时间戳信息以及其他信息字段。

      通过ERSPAN自身的各种特征头部,我们可以实现更为精细化的网络流量分析,接下来只需要在ERSPAN进程中挂载相应的ACL,来匹配我们感兴趣的网络流量即可。

      ERSPAN实现RDMA会话可视化

      我们举一个RDMA场景下应用ERSPAN技术来达到RDMA会话可视化的案例:

      RDMA:RemoteDirectMemoryAccess远程直接数据存取,是利用智能网卡和交换机,实现服务器A的网卡可以直接读写服务器B的内存,最终达到高带宽、低延迟和低资源利用率的效果,在大数据和高性能分布式存储场景中有大量的应用。

      RoCEv2:RDMAoverConvergedEthernetVersion2,RDMA数据封装在UDP报头中,目的端口号为4791,UDP报头之后是IBBTH,即InfiniBandBaseTransportHeader。

      RDMA日常运维需要采集很多数据,用于收集日常水位基准线和异常报警,以及发生异常的问题定位依据。结合ERSPAN可以快速抓取海量数据,获得交换芯片在微秒级别的转发质量数据、协议交互状态,并通过数据统计与分析,得出RDMA在网络上端到端的转发质量评估和预测。

      为了实现RDAM会话可视化,我们需要ERSPAN在镜像流量时,对RDMA交互会话的关键字匹配,这时我们需要利用专家级扩展列表。

      专家级扩展列表匹配字段定义:

      UDF由五个字段组成:UDF关键字、base域、offset域、value域和mask域。受限于硬件表项容量,当前共有8个UDF可以使用,一个UDF最长可以匹配两个字节。

      oUDF关键字:UDF1...UDF8共8个UDF匹配域关键字

      obase域:标识UDF匹配域的起始位置。如下

      l4_header(适用RG-S6520-64CQ)

      l5_header(适用RG-S6510-48VS8CQ)

      ooffset域:基于base域的偏移值,范围:0-126

      ovalue域:匹配值,可以与mask域配合使用,用来配置需要匹配的具体value,有效位两个字节

      omask域:掩码,有效位两个字节

      (补充:如果多个表项有用到同一个UDF匹配域的话,那么base域和offset域必须保持一致。)

      与RDMA会话状态相关的两个关键报文是CNP(CongestionNotificationPacket)与NAK(NegativeAcknowledgment):

      前者是RDMA接收端收到交换机(出口Buffer达到阈值时)发出的ECN报文后生成的,包含了导致拥塞的flow或QP的信息;后者是用于表示RDMA传输有丢包的响应报文。

      我们接下来看看如何利用专家级扩展列表来匹配这两个报文:

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

      expertaccess-listextendedrdma

      permitudpanyanyanyanyeq4791udf1l4_header80x81000xFF00(匹配RG-S6520-64CQ)

      permitudpanyanyanyanyeq4791udf1l5_header00x81000xFF00(匹配RG-S6510-48VS8CQ)

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

      expertaccess-listextendedrdma

      permitudpanyanyanyanyeq4791udf1l4_header80x11000xFF00udf2l4_header200x60000xFF00(匹配RG-S6520-64CQ)

      permitudpanyanyanyanyeq4791udf1l5_header00x11000xFF00udf2l5_header120x60000xFF00(匹配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会话进行可视化展示。

    net.zol.com.cn true http://net.zol.com.cn/691/6918559.html report 7715  时下最常用的网络监控和排错工具非SPAN(SwitchPortAnalyzer)莫属了,SPAN也通常被称作端口镜像。它可以让我们以旁路的方式来监控网络流量,不会对现网的业务造成干扰,同时将监控流量的副本发送到本地或远端的设备上,包括Sniffer、IDS、或其他类型的网络分析工具。...
    • 猜你喜欢
    • 最新
    • 相关
    推荐经销商
    投诉欺诈商家: 400-688-1999
    • 北京
    • 上海
    周关注排行榜
    • 路由器
    • 交换机
    • 无线路由
    • 无线AP
    推荐问答
    提问
    0

    下载ZOL APP
    秒看最新热品