本文是一份全面的指南,解釋了如何使用nProbe Cento構建一個高效的100 Gbit NetFlow傳感器。旨在幫助大家充分利用NetFlow技術,以監控和分析高速網絡流量。
一
我該用什么樣的硬件
才能處理100 Gbps的全速率?
當需要監控分布式網絡,了解流經上行鏈路或關鍵網段的網絡流量時,NetFlow等技術通常是最佳選擇。
nProbe Pro/Enterprise和nProbe Cento是軟件探針,可用于構建多功能傳感器,以多種不同格式輸出流量信息,包括NetFlow v5/v9/IPFIX、Kafka、Elasticsearch、ClickHouse、MySQL、CSV文件等。nProbe Pro/Enterprise專為低/中速率(1/10 Gbps)而設計,而 nProbe Cento則專為高速運行而設計(如今我們認為 100 Gbit 已是高速鏈路)。
通過將nProbe Cento與 ntopng相結合,可以為100 Gbit分布式網絡構建一個完全成熟的網絡監控解決方案,提供全面的可視性。
想要高速使用nProbe Cento的用戶經常向我們提出的一個問題是:"我需要什么樣的硬件才能處理100 Gbps的全速率?我們希望通過這篇文章提供一些硬件選擇指南。
二
網絡適配器
在高速運行n2disk時,必須使用像Napatech或Silicom/Fiberblaze這樣能在分段模式下運行的FPGA適配器才能獲得最佳轉儲性能,而nProbe Cento則不需要昂貴的適配器。
100 Gbit探頭可以使用低于1千美元的ASIC適配器。這里必須支持的是對稱RSS。RSS用于通過多個數據流將流量負載分散到多個CPU內核上,將物理接口分割成多個邏輯接口,根據數據包頭計算的哈希函數分配流量。使用RSS進行擴展,并結合PF_RING ZC(零拷貝)驅動程序提供最大捕獲性能,可確保在處理流量時在100 Gbit全速下不丟失數據包。
因此,建議在100 Gbit時與nProbe Cento結合使用的適配器包括:
NVIDIA/Mellanox ConnectX 5/6
Intel E810
三
CPU
各種CPU有不同的頻率、內核數量、緩存大小、緩存級別、指令集等。不過,根據我們的經驗來講,現代CPU(例如Xeon Gold 6346 3 Ghz或AMD EPYC 9124)的每個CPU內核通常能夠處理超過10 Mpps(每秒百萬數據包)。考慮到互聯網數據包的平均大小,10 Gbit鏈路通常有13 Mpps。最壞的情況下,10 Gbit鏈路的數據包速度也可達14.88 Mpps。
這意味著,在最壞的情況下,要處理100 Gbps的速度,我們需要一個至少有16個內核、主頻為3 Ghz的CPU。對于頻率較高且高速緩存較大的CPU來說,較少的內核也足夠了。
例如,如果我們要構建基于英特爾的系統,我們可以使用Xeon Gold 6326或6346或更高版本。如果要構建基于AMD的系統,我們可以使用AMD EPYC 9124或更高版本。
四
內存
實現最佳性能的內存配置主要取決于CPU本身:
模塊數量:應與CPU支持的內存通道數量相匹配(請查看CPU的規格說明)
· Intel Xeon Gold目前支持8個內存通道
·AMD EPYC的大多數型號支持12個內存通道
速度:選擇CPU支持的較高速度(請查看CPU規格說明)
容量:考慮到每個模塊的最小容量(816GB),通常選擇較小的可用容量即可(8x 8GB = 64GB)。
五
存儲
許多朋友擔心存儲問題,但是其實在運行nProbe Cento時,存儲空間其實并不重要,因為當使用NetFlow、ZMQ、Kafka或CSV以外的其他導出格式(實際上是寫入本地磁盤)將數據導出到外部收集器時,并不會占用磁盤空間。這意味著一個小型磁盤,或一個RAID1雙磁盤陣列(如果需要對系統磁盤進行數據恢復)就已足夠。
六
軟件配置
nProbe Cento的配置非常簡單。向命令行(或配置文件)提供的實際選項可能會因工作模式和導出格式的不同而有所變化,但在捕獲方面卻非常簡單。大家需要注意兩個主要選項:接口配置(i)和CPU親和性(processingcores)。
1、如果使用的是英特爾適配器,并且配置了帶RSS的ZC驅動程序,那么只需指定RSS接口即可,如下所示:
cento -i zc:eth1@0 -i zc:eth1@1 -i zc:eth1@2 -i zc:eth1@3 ...
2、我們還可以使用快捷方式來實現這一功能,尤其是在運行16個以上RSS流時非常方便:
cento -i zc:eth1@[0-15]
3、如果你使用的瑟吉歐NVIDIA/Mellanox適配器,則可以使用類似的語法:
cento -i mlx:mlx5_0@[0-15]
此時,我們只需添加CPU親和配置,以確保nProbe Cento通過為每個內核綁定一個線程來使用所有可用內核(提供最大的可擴展性和整體性能)。
cento -i mlx:mlx5_0@[0-15] --processing-cores 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
現在,你只需添加控制導出格式的選項。
-
傳感器
+關注
關注
2548文章
50709瀏覽量
752089 -
FPGA
+關注
關注
1626文章
21675瀏覽量
601944 -
網絡流量
+關注
關注
0文章
58瀏覽量
10355
發布評論請先 登錄
相關推薦
評論