C114通信網  |  通信人家園

技術
2018/6/1 16:53

技術盛宴 | 流量可視化之ERSPAN的前世今生

C114中國通信網  趙爽

時下最常用的網絡監(jiān)控和排錯工具非SPAN(Switch Port Analyzer)莫屬了,SPAN也通常被稱作端口鏡像。它可以讓我們以旁路的方式來監(jiān)控網絡流量,不會對現網的業(yè)務造成干擾,同時將監(jiān)控流量的副本發(fā)送到本地或遠端的設備上,包括Sniffer、IDS、或其他類型的網絡分析工具。

一些典型的用法有:

●通過追蹤控制/數據幀來排除網絡問題;

●通過監(jiān)控VoIP包來分析延遲和抖動;

●通過監(jiān)控網絡交互來分析時延;

●通過監(jiān)控網絡流量來做異常狀態(tài)的檢測。

SPAN可以在本地操作,將流量鏡像到同一個源設備的其他端口,也可以遠程鏡像到其他與源設備二層相鄰的網絡設備上(RSPAN)。

今天我們來聊一聊可以跨三層IP傳輸的遠程網絡流量監(jiān)控技術——ERSPAN(Encapsulated Remote Switch Port Analyzer),即在SPAN的基礎上擴展了encapsulated remote的特性。

ERSPAN基本操作原理

首先,我們來看一下ERSPAN的特性:

●將源端口報文復制一份通過GRE(Generic Routing Encapsulation)發(fā)送到目的服務器進行解析,采集服務器的物理位置不受限制;

●借助芯片的UDF(User Defined Field)特性,通過專家級擴展列表基于Base域進行1~126字節(jié)的任意偏移,對會話關鍵字進行匹配實現會話的可視化,例如針對TCP三次握手、RDMA會話的可視;

●支持設置采樣率;

●支持報文截取長度,降低目標服務器壓力。

看到以上特性,相信大家就知道為什么ERSPAN是如今數據中心內部網絡監(jiān)控一個必不可少的工具了。

總結一下,ERSPAN主要的作用可以歸納為兩點:

●會話可視化:借助ERSPAN把新建TCP、RDMA(Remote Direct Memory Access)等的所有會話都采集到后端服務器進行展示;

●網絡排障:當出現網絡問題時,去抓取網絡流量做故障分析。

為了達到這樣的效果,源網絡設備需要從海量數據流中將用戶感興趣的流量過濾出來,復制一份,將每個復制幀封裝到一個特殊的“超級幀容器”中,這個超級容器會攜帶足夠多的附加信息,以便它被正確的路由到接收設備,并讓接收設備能夠提取并完全恢復原始監(jiān)控的流量。

接收設備可以是另外一臺支持解封裝ERSPAN報文的服務器。

ERSPAN的類型和封裝格式分析

ERSPAN的報文基于GRE封裝,并通過以太網轉發(fā)到任何IP路由可達的地方。當前ERSPAN主要應用在IPv4網絡,未來對IPv6的支持也會是一個剛需。

關于ERSAPN的通用封裝結構,下面是一個ICMP報文的鏡像抓包:

ERSPAN協(xié)議經過長期發(fā)展,隨著能力的增強形成多個版本,稱為"ERSPAN Types”,不同Type具有不同的幀頭部格式。

在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字節(jié):14(MAC) + 20 (IP) + 4(GRE)。這種格式的優(yōu)勢在于其頭部尺寸緊湊,減少傳輸過程的開支,但因為其將 GRE Flag和Version字段全部設置為0,即不攜帶任何拓展字段,也導致Type I并沒有大規(guī)模應用,這里就不過多展開。

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字節(jié)的ERSPAN頭部在GRE頭部和原始鏡像幀之間。

Type II的ERSPAN頭部封裝格式如下:

最后,緊隨原始鏡像幀之后的,是標準的4字節(jié)的以太網循環(huán)冗余校驗碼CRC。

值得注意的是,在實現中,鏡像幀并沒有包含原始幀的FCS字段,作為替代的是基于整個ERSPAN重新計算的新CRC值。這意味著接收設備無法檢驗原始幀的CRC正確性,我們只能假設僅僅是未損壞的幀被鏡像了。

Type III

Type III引入了一個更大、更靈活的復合報頭,以滿足日益復雜和多樣化的網絡監(jiān)控場景,包含且不限于網絡管理、入侵檢測、性能和延遲分析等。這些場景需要知道鏡像幀的所有原始參數,并包括那些不存在于原始幀本身的內容。

ERSPAN Type III復合報頭包括一個強制的12字節(jié)頭部和一個可選的8字節(jié)平臺特定子頭部。

Type III的ERSPAN頭部封裝格式如下:

同樣,在原始鏡像幀之后的是4字節(jié)的CRC。

從Type III的頭部格式中可以看到,除了在Type II的基礎上保留了Ver、VLAN、COS、T、Session ID字段之外,還新增了很多特有的字段,如:

●BSO:用來表示通過ERSPAN承載的數據幀的負載完整性,00是沒問題的幀、11是有問題的幀、01是短幀、11是超大幀;

●Timestamp:從與系統(tǒng)時間同步的硬件時鐘里面導出,這32比特的字段至少支持100微秒的時間戳粒度;

●P與FT(Frame Type): 前者用來指明ERSPAN承載的是以太網協(xié)議幀(PDU幀),后者用來指明是以太網幀還是IP包;

●HW ID:在系統(tǒng)內ERSPAN引擎的唯一標識符;

●Gra (Timestamp Granularity):用來定義時間戳的顆粒度,如00b代表100微秒粒度,01b代表100納秒粒度,10b代表IEEE 1588粒度,11b則需要結合平臺特定子頭部來實現更高精的粒度;

●Platf ID與Platform Specific Info:根據Platf ID不同的值,Platform Specific Info字段會有不同的格式與內容。

應該注意的是,上面所支持的各種報頭字段可以在常規(guī)的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日常運維需要采集很多數據,用于收集日常水位基準線和異常報警,以及發(fā)生異常的問題定位依據。結合ERSPAN可以快速抓取海量數據,獲得交換芯片在微秒級別的轉發(fā)質量數據、協(xié)議交互狀態(tài),并通過數據統(tǒng)計與分析,得出RDMA在網絡上端到端的轉發(fā)質量評估和預測。

為了實現RDAM會話可視化,我們需要ERSPAN在鏡像流量時,對RDMA交互會話的關鍵字匹配,這時們需要利用專家級擴展列表。

專家級擴展列表匹配字段定義:

●UDF由五個字段組成:UDF關鍵字、base域、offset域、value域和mask域。受限于硬件表項容量,當前共有8個UDF可以使用,一個UDF最長可以匹配兩個字節(jié)。

●UDF關鍵字:UDF1...UDF8共8個UDF匹配域關鍵字;

●base域:標識UDF匹配域的起始位置。如下:

●l4_header (適用RG-S6520-64CQ)

●l5_header (適用RG-S6510-48VS8CQ)

●offset域:基于base域的偏移值,范圍:0-126;

●value域:匹配值,可以與mask域配合使用,用來配置需要匹配的具體value,有效位兩個字節(jié);

●mask域:掩碼,有效位兩個字節(jié)。

(補充:如果多個表項有用到同一個UDF匹配域的話,那么base域和offset域必須保持一致。)

與RDMA會話狀態(tài)相關的兩個關鍵報文是CNP(Congestion Notification Packet) NAK(Negative Acknowledgment)

前者是RDMA接收端收到交換機(出口Buffer達到閾值時)發(fā)出的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會話的可視化。

寫在最后

在數據中心網絡規(guī)模日益龐大,網絡流量日益復雜,而對網絡運維要求日益精細的今天,ERSPAN是必不可少的工具之一。

隨著運維自動化程度越來越高,Netconf、RESTconf、gRPC等技術在網絡自動化運維中受到廣大運維同學的歡迎,利用gRPC來作為鏡像流量回傳的底層協(xié)議也具有諸多優(yōu)勢。如:基于HTTP/2協(xié)議,可以支持同一連接下串流推送機制;使用ProtoBuf編碼,比JSON格式的信息大小降低了一半,可以使數據傳輸更加快捷和高效。試想一下,如果利用ERSPAN對感興趣流鏡像之后,再利用gRPC上送到分析服務器,是不是就會極大提高網絡自動化運維的能力和效率呢?

銳捷網絡在25G/100G數據中心的新產品RG-S6510-48VS8CQ和RG-S6520-64CQ,除了可以滿足RDMA網絡中對PFC+ECN+MMU的管理,能保持較高的協(xié)調性,還可以部署RDMA整網的可視化方案,支持利用ERSPAN技術匹配專家級拓展列表對RDMA會話進行可視化展示。

感謝您關注銳捷網絡技術干貨文章!現誠邀您參與有獎調研,您寶貴的意見和建議將幫助我們在技術探索與分享上持續(xù)精進。

點擊下方“鏈接”或掃描二維碼參與調研。戳

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

給作者點贊
0 VS 0
寫得不太好

免責聲明:本文僅代表作者個人觀點,與C114通信網無關。其原創(chuàng)性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。

熱門文章
    最新視頻
    為您推薦

      C114簡介 | 聯系我們 | 網站地圖 | 手機版

      Copyright©1999-2024 c114 All Rights Reserved | 滬ICP備12002291號

      C114 通信網 版權所有 舉報電話:021-54451141