本發明專利技術涉及一種Linux系統下主從模式網口綁定時接收流量的監控方法,屬于Linux軟件開發技術領域。本發明專利技術提供了一種Linux系統下主從模式網口綁定時的流量監控方法,該方法通過對Linux操作系統內核層原理的研究,深入到Linux操作系統內核層進行改造,設計了一種修改網口綁定模塊的代碼,在模塊內部的工作流程中構建監控點,并實現用戶層的接口技術實現路線,從而實現了對主用鏈路與從用鏈路的無流量復制的接收流量的監控,該方法僅重新定制常規作為外掛模塊的網口綁定模塊即可實現,且經過對多個Linux內核版本的調研,可以發現網口綁定這一模塊的代碼在相同Linux內核大版本下變化較小,因此該方法實用性強。因此該方法實用性強。因此該方法實用性強。
【技術實現步驟摘要】
一種Linux系統下主從模式網口綁定時接收流量的監控方法
[0001]本專利技術屬于Linux軟件開發
,具體涉及一種Linux系統下主從模式網口綁定時接收流量的監控方法。
技術介紹
[0002]Linux操作系統是嵌入式軟件開發中常用的操作系統,而Linux中主從模式的網口綁定也是常用的網絡配置方法。該方法一般可以將兩條網絡鏈路分為主用鏈路和從用鏈路,交替使用。但是Linux系統原生的配置,不能做到同時對主用鏈路與從用鏈路的無流量復制的接收流量的監控。
技術實現思路
[0003](一)要解決的技術問題
[0004]本專利技術要解決的技術問題是:如何設計一種能夠在主從模式的網口綁定配置下,方便高效地對主、從兩個網口進行流量監控的方法。
[0005](二)技術方案
[0006]為了解決上述技術問題,本專利技術提供了一種Linux系統下主從模式網口綁定時接收流量的監控方法,該方法通過構造主用鏈路的監控點及從用鏈路的監控點,并構造流量監控查詢接口實現。
[0007]優選地,該方法中,主用鏈路的監控點構造方法為:
[0008]修改端口綁定模塊源代碼的bond_main.c中的bond_arp_rcv函數,在其中添加對輸入參數struct sk_buff*類型的skb的檢查功能,具體檢查的參數為構造流量監控查詢接口時統計的參數。
[0009]優選地,構造主用鏈路的監控點時,不對skb的數據有任何修改。
[0010]優選地,該方法中,從用鏈路的監控點構造方法為:
[0011]構建一個參數為struct sk_buff**類型的流量監控函數,實現對參數中報文數據的檢查功能,具體檢查的參數為構造流量監控查詢接口時統計的參數,通過調用netdev_rx_handler_register方法,將構造的所述流量監控函數注冊給從用鏈路的網口,在主用鏈路和從用鏈路切換時,調用netdev_rx_handler_unregister方法解除原有監控,并重新調用netdev_rx_handler_register方法注冊。
[0012]優選地,構造從用鏈路的監控點時,不對skb的數據有任何修改。
[0013]優選地,流量監控查詢接口的構造方法為:
[0014]利用內存文件式的接口實現從用戶層控制和查詢流量監控結果,并實現包括以下功能的接口,主用鏈路與從用鏈路分開統計:
[0015]1)配置需要監控報文的特征,例如報文的某個字節需要為某些特征值;
[0016]2)統計從配置生效開始累積接收到的特征報文數量;
[0017]3)監控報文的統計周期,簡稱為T時間;
[0018]4)統計從配置生效開始平均每T時間收到的特征報文的數量;
[0019]5)統計從配置生效開始特征報文之間的平均間隔時間;
[0020]6)統計從配置生效開始特征報文之間的最大間隔時間;
[0021]7)統計最近T時間內收到的特征報文的數量;
[0022]8)統計最近T時間內特征報文之間的平均間隔時間;
[0023]9)統計最近T時間內特征報文之間的最大間隔時間。
[0024]優選地,還包括基于所述流量監控查詢接口的構造過程中得到的統計和配置信息,對監控的鏈路的健康狀態進行監控的步驟。
[0025]優選地,流量監控查詢接口的構造過程中,統計的第4
?
6條數據是從開始統計到當前的歷史狀態,若歷史工作狀態一直為正常,則可以建立網口狀態的基準值。
[0026]優選地,流量監控查詢接口的構造過程中,基于統計的第7
?
9條數據可以綜合判斷網口當前的工作狀態,通過與所述基準值對比,能夠判斷當前網口是否工作正常。
[0027]本專利技術還提供了一種所述方法在網口綁定模塊中的應用。
[0028](三)有益效果
[0029]本專利技術提供了一種Linux系統下主從模式網口綁定時的流量監控方法,該方法通過對Linux操作系統內核層原理的研究,深入到Linux操作系統內核層進行改造,設計了一種修改網口綁定模塊的代碼,在模塊內部的工作流程中構建監控點,并實現用戶層的接口技術實現路線,從而實現了對主用鏈路與從用鏈路的無流量復制的接收流量的監控,該方法僅重新定制常規作為外掛模塊的網口綁定模塊即可實現,且經過對多個Linux內核版本的調研,可以發現網口綁定這一模塊的代碼在相同Linux內核大版本下變化較小,因此該方法實用性強。
附圖說明
[0030]圖1為主從模式網口綁定的操作系統網絡結構示意圖;
[0031]圖2為本專利技術實施例提供的主從模式網口綁定的添加流量監控點后的操作系統網絡結構示意圖。
具體實施方式
[0032]為使本專利技術的目的、內容、和優點更加清楚,下面結合附圖和實施例,對本專利技術的具體實施方式作進一步詳細描述。
[0033]Linux操作系統中常見的網絡流量監控方法,都是基于socket通信中內建的一套方法來實現的,該方法在網絡流量進入上層協議棧(如圖1)之前,將原本正常工作的網絡流量復制一份鏡像,將鏡像后的數據推送給基于socket通信的監控方法,實現對網絡流量的監控。Linux中常用的tcpdump和wireshark都是采用的這套方案。
[0034]該監控方法存在幾個缺點,首先,當網絡流量較大時候,復制一份流量的鏡像,對系統的開銷是很大的,對于很多需求,例如對網絡通信狀態監控,沒有必要獲得詳細的網絡流量信息;其二,對于使用主從模式的網口綁定的配置方案的網絡系統,僅能較方便的監控主用鏈路,不能有效地對從用鏈路進行監控,極大地限制了對從用鏈路狀態的監控。
[0035]因此,如果希望實現一種能夠在主從模式的網口綁定配置下,方便高效地對主從
兩個網口的流量監控的方法,僅僅在用戶層調用Linux操作系統預制的接口是做不到的,需要深入到內核層進行改造。
[0036]通過對Linux操作系統內核層原理的研究,我們發現,有兩個技術路線能夠實現本專利技術需要實現的效果。其一是對以太網協議棧底層的代碼進行修改,構建自制的網絡報文監控點,并實現可供用戶層控制和查詢的流量監控;其二是修改網口綁定模塊的代碼,在模塊內部的工作流程中構建監控點,并實現用戶層的接口。
[0037]綜合對比兩種技術路線我們可以發現,盡管第一種方法能夠較為通用地實現所需功能,且即使不使用網口綁定功能也能夠實現所需的流量監控,但是一般來說網絡協議棧在常見的Linux操作系統內核使用中,是編譯在內核本體中,并不作為外掛模塊實現。這樣帶來的問題是技術路線實現代價較大,畢竟構建不同版本的完整內核是工作量很大的。而第二種方法則更加靈活,僅重新定制常規作為外掛模塊的網口綁定模塊即可,且經過對多個Linux內核版本的調研,可以發現網口綁定這一模塊的代碼在相同Linux內核大版本下變化較小,因此本專利技術選擇了第二種技術路線。
[0038]本專利技術實施例提供一種Linu本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種Linux系統下主從模式網口綁定時接收流量的監控方法,其特征在于,該方法通過構造主用鏈路的監控點及從用鏈路的監控點,并構造流量監控查詢接口實現。2.如權利要求1所述的方法,其特征在于,該方法中,主用鏈路的監控點構造方法為:修改端口綁定模塊源代碼的bond_main.c中的bond_arp_rcv函數,在其中添加對輸入參數struct sk_buff*類型的skb的檢查功能,具體檢查的參數為構造流量監控查詢接口時統計的參數。3.如權利要求2所述的方法,其特征在于,構造主用鏈路的監控點時,不對skb的數據有任何修改。4.如權利要求3所述的方法,其特征在于,該方法中,從用鏈路的監控點構造方法為:構建一個參數為struct sk_buff**類型的流量監控函數,實現對參數中報文數據的檢查功能,具體檢查的參數為構造流量監控查詢接口時統計的參數,通過調用netdev_rx_handler_register方法,將構造的所述流量監控函數注冊給從用鏈路的網口,在主用鏈路和從用鏈路切換時,調用netdev_rx_handler_unregister方法解除原有監控,并重新調用netdev_rx_handler_register方法注冊。5.如權利要求4所述的方法,其特征在于,構造從用鏈路的監控點時,不對skb的數據有任何修改。6.如權利要求5所述的方法,其特征在于,流量監控查詢接口的構...
【專利技術屬性】
技術研發人員:趙繼偉,李家彥,牛俊慧,
申請(專利權)人:天津津航計算技術研究所,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。