成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux內核實現多路鏡像流量聚合和復制

安全
我們在進行安全性監控、測試的過程中,難免會遇到這樣的問題:需要部署大量基于鏡像流量的安全設備,如IPS,異常流量,數據庫審計,流量分析等,可是交換機上可以做鏡像流量的端口數量有限制,購買專業的設備又太昂貴。

應用場景

 

我們在進行安全性監控、測試的過程中,難免會遇到這樣的問題:需要部署大量基于鏡像流量的安全設備,如IPS,異常流量,數據庫審計,流量分析等,可是交換機上可以做鏡像流量的端口數量有限制,購買專業的設備又太昂貴。

本文就針對此種情況,從Linux內核模塊對網絡數據庫包進行處理,解決上述問題。這里也感謝“白金PT”給予的幫助。

架構設計

Linux內核實現多路鏡像流量聚合和復制

內核模塊的流程比較簡單,轉發配置從用戶態提交給內核模塊,如”eth1@eth2_eth1@eth3_eth1/eth4@eth5“,這段的配置是:

來自eth1的流量,復制給eth2和eth3

來自eth1和eth4的流量,聚合給eth5

MIRROR內核模塊中,只需要實現參數讀取,配置分析,網卡判斷(源,目的)即可。

算法、代碼實現

參數輸入

Linux內核實現多路鏡像流量聚合和復制

這段代碼的功能是,將前面提到的如“eth1@eth2_eth1@eth3_eth1/eth4@eth5“這樣的參數,按照”_”進行拆分,分段提交給參數設置函數”option_setup”

參數設置

Linux內核實現多路鏡像流量聚合和復制

 

這里我們把得到的參數”eth0@eth1”進行進一步的拆分,分出了源網卡eth0,目的網卡eth1,在內核模塊的全局變量中,有一個結構

”__read_mostly __u8 ethout_bits[MAX_OUT] ={0};“

用來存儲每個網卡對應分發的網卡號,可以這樣理解,如果服務器有8個網卡,那么每個網都會有一個8位的二進制數來標明它的轉發,比如eth0復制到eth1,那么ethout_bits[0]就等于01000000,以此類推,如果我要把eth0復制到其他所有網卡,就會是01111111。

同時用一個全局的8字節變量,來存儲哪些網卡是鏡像流量口,防止多余的資源浪費。

__read_mostly__u8 ifindex_bits = 0;

Skb包復制和轉發

Linux內核實現多路鏡像流量聚合和復制

 

當Linux內核收到一個skb結構的數據包時,判斷這個數據包是不是在轉發列表里,也就是網卡是不是鏡像源。

Linux內核實現多路鏡像流量聚合和復制

 

接著我用了一個循環,來遍歷存儲的轉發目的網口,如果匹配的話,就使用skb_clone函數將數據包復制一份,然后通過dev_queue_xmit函數直接發送出去。

***清理skb_buff結構。

啟動腳本

為了方便調試和快速提交參數,可以使用如下的shell腳本:

Linux內核實現多路鏡像流量聚合和復制

實測效果

編譯,填充參數并執行

執行sh sh.sh

Dmesg輸出

Linux內核實現多路鏡像流量聚合和復制

鏡像流量效果

Linux內核實現多路鏡像流量聚合和復制

這里可以看到流量統計由于網卡速率,時間差等,并不會100%一樣,是正常的。

CPU占用

當流量已經達到400M左右的時候,CPU占用仍然比較低。

Linux內核實現多路鏡像流量聚合和復制

MIRROR.c源代碼

責任編輯:藍雨淚 來源: FreeBuf
相關推薦

2022-08-27 10:53:15

C語言Linux內核

2020-06-04 08:36:55

Linux內核線程

2023-01-27 18:08:35

eBPF云原生

2023-03-11 11:19:07

loopbackSocket

2010-06-04 14:04:06

2023-12-13 09:45:49

模型程序

2010-05-27 10:43:29

Linux流量控制

2010-06-11 11:28:39

Linux流量監控

2014-08-28 15:08:35

Linux內核

2010-06-10 17:41:47

2016-08-18 15:45:35

2010-06-04 10:49:58

Linux流量控制

2023-01-04 12:48:28

Arch LinuxLinux

2020-10-14 07:35:43

Linux 5.10

2012-07-25 13:21:17

ibmdw

2023-07-25 15:17:38

Linux操作系統開發

2010-06-04 14:24:12

Linux 查看網絡流

2010-06-13 15:08:05

Linux 查看網絡流

2021-11-14 07:29:55

Linux 內核靜態追蹤Linux 系統

2021-11-15 04:00:07

Linux 內核動態
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人二区 | 国产一区二区麻豆 | 国产欧美日韩精品在线观看 | 久久精品国产亚洲 | 成人高清在线 | www操操 | 手机看片1 | 黄色大片毛片 | 亚洲一区二区视频 | 欧美极品视频 | 国产成人精品一区二区三区四区 | 国产精品一区二区在线 | 亚洲精品永久免费 | 日日天天| 超碰成人免费观看 | 国产精品自产av一区二区三区 | 国产精品一二区 | 国产精品视频免费观看 | 亚洲精品无 | 午夜av电影 | 久久久久一区 | 精品videossex高潮汇编 | 国产精品国产精品国产专区不卡 | 亚洲精彩免费视频 | 毛片免费看 | 91豆花视频 | 国产在线永久免费 | 97精品国产97久久久久久免费 | 国产精品第2页 | 欧美高清视频在线观看 | 性色av网站| 色综合久 | 午夜欧美 | 日韩有码一区二区三区 | 日韩成人 | 国产欧美视频一区 | www.99热| 综合久久av | 一区二区三区在线看 | 久草青青草 | 午夜精品一区二区三区在线视频 |