端口镜像 流量过滤_技术盛宴 | 流量可视化之ERSPAN的前世今生
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在網絡上端到端的轉發質量評估和預測。
為了實現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會話進行可視化展示。
本期作者:趙爽
銳捷網絡互聯網系統部行業咨詢
【技術盛宴】專欄
銳捷網絡互聯網行業精心打造《技術盛宴》專欄,定期為您帶來網絡通信領域的技術干貨,前沿資訊、尖端技術、潮流科技……
你想看的,這里都有!
往期精彩回顧??技術盛宴 | 基于Rogue AP反制的無線安全技術探討
技術盛宴 | 暢談數據中心網絡運維自動化
技術盛宴 | 如何通過網絡遙測(Network Telemetry)技術實現精細化網絡運維?
技術盛宴 | 淺談物聯網技術之通信協議的紛爭
總結
以上是生活随笔為你收集整理的端口镜像 流量过滤_技术盛宴 | 流量可视化之ERSPAN的前世今生的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell sqlplus执行sql文_
- 下一篇: python最简单的架构_Python实