陽亦斌,歐盛芬,楊 將
(湖南中車時(shí)代通信信號(hào)有限公司,長沙 410119)
換裝系統(tǒng)的網(wǎng)絡(luò)安全防護(hù)方案充分采用已驗(yàn)證過的功能和技術(shù)。硬件方面采用支持國密算法的高性能安全芯片提供安全的密碼服務(wù)功能,具備接口豐富、配置靈活、安全可靠的特點(diǎn)。軟件方面提供了豐富的業(yè)務(wù)功能和強(qiáng)大的管理功能,為全面提升系統(tǒng)保障和維護(hù)服務(wù)質(zhì)量水平提供有力支撐。LKJ車載數(shù)據(jù)無線換裝系統(tǒng)的網(wǎng)絡(luò)安全防護(hù)方案是1套具有高安全、高可靠、高性價(jià)比、可擴(kuò)展性強(qiáng)、用戶選擇靈活的通用化、系列化成熟解決方案。
其中采用入侵檢測(cè)系統(tǒng)實(shí)時(shí)檢測(cè)網(wǎng)絡(luò)中的違法攻擊行為,與防火墻設(shè)備聯(lián)動(dòng)及時(shí)阻斷攻擊來源設(shè)備。在應(yīng)對(duì)網(wǎng)絡(luò)攻擊時(shí),Snort IDS具有實(shí)時(shí)分析數(shù)據(jù)流量和記錄IP網(wǎng)絡(luò)數(shù)據(jù)包功能。在協(xié)議分析時(shí),根據(jù)規(guī)則對(duì)網(wǎng)絡(luò)數(shù)據(jù)包內(nèi)容進(jìn)行搜索和匹配,進(jìn)而檢測(cè)各種不同的攻擊方式,對(duì)攻擊行為實(shí)時(shí)報(bào)警。作為一個(gè)開源的入侵檢測(cè)系統(tǒng),Snort具有很好的擴(kuò)展性和可移植性。Snort采用實(shí)時(shí)處理網(wǎng)絡(luò)入侵流量的方法,在日益增長的數(shù)據(jù)背景下,網(wǎng)絡(luò)性能已成為瓶頸,需要在入侵檢測(cè)系統(tǒng)中開發(fā)高效率的數(shù)據(jù)包捕獲模塊,以應(yīng)對(duì)龐大的數(shù)據(jù)需求。
Snort IDS體系結(jié)構(gòu)由4大軟件模塊組成:數(shù)據(jù)包嗅探模塊、預(yù)處理模塊、檢測(cè)模塊、報(bào)警/日志模塊。檢測(cè)模塊作為核心模塊,是制約Snort之類入侵檢測(cè)系統(tǒng)的重要因素,其中一個(gè)因素就是對(duì)數(shù)據(jù)處理效率過低。這是由于Snort是基于Libpcap或Winpcap獲取報(bào)文,需要頻繁的內(nèi)存拷貝和系統(tǒng)調(diào)用。而這些軟件大多工作在單線程的工作模式,雖然結(jié)構(gòu)簡單,但是會(huì)使報(bào)文等待隊(duì)列長時(shí)間處于阻塞狀態(tài),使報(bào)文處理能力嚴(yán)重受限。
DPDK對(duì)核心模塊的收包部分進(jìn)行有效提升,與傳統(tǒng)采用中斷方式對(duì)比,DPDK會(huì)在用戶態(tài)采用輪詢的方式對(duì)網(wǎng)絡(luò)包進(jìn)行收取,從而極大地提高收包的速率,最大化利用了程序分析數(shù)據(jù)包的能力。DPDK和Snort結(jié)合使用,會(huì)顯著提高Snort網(wǎng)絡(luò)I/O能力和處理數(shù)據(jù)包的效率。
由于Snort在設(shè)計(jì)之初網(wǎng)絡(luò)數(shù)據(jù)量低,約為100 Mbit/s。面對(duì)當(dāng)前網(wǎng)絡(luò)數(shù)據(jù)量已經(jīng)達(dá)到10~40 Gbit/s的量級(jí)時(shí),Snort網(wǎng)絡(luò)I/O和數(shù)據(jù)包處理能力已無法滿足應(yīng)用需求。針對(duì)LKJ數(shù)據(jù)無線換裝系統(tǒng)高并發(fā)高流量的特點(diǎn),以及Snort的應(yīng)用現(xiàn)狀,本文提出DPDK-Snort方案,采用DPDK技術(shù)對(duì)數(shù)據(jù)包IO進(jìn)行模塊化設(shè)計(jì),引入數(shù)據(jù)捕獲模塊DAQ(Data AcQuisition Library),嘗試在DAQ中加入DPDK的支撐。
換裝系統(tǒng)總體結(jié)構(gòu)包含LKJ車載系統(tǒng)、無線通信網(wǎng)絡(luò)和地面系統(tǒng),地面系統(tǒng)由IT基礎(chǔ)架構(gòu)和防護(hù)系統(tǒng)2部分組成。IT基礎(chǔ)架構(gòu)采用虛擬化、雙機(jī)熱備等技術(shù)保障數(shù)據(jù)換裝業(yè)務(wù)系統(tǒng)穩(wěn)定、可靠運(yùn)行,滿足100臺(tái)機(jī)車同時(shí)并發(fā)性換裝和3 000臺(tái)機(jī)車同時(shí)在線接入需求。防護(hù)系統(tǒng)在IT基礎(chǔ)架構(gòu)基礎(chǔ)上,根據(jù)國家信息安全等級(jí)保護(hù)基本要求對(duì)其進(jìn)行全面的安全風(fēng)險(xiǎn)防范,以滿足系統(tǒng)總體安全性應(yīng)用需求。
換裝系統(tǒng)總體結(jié)構(gòu)如圖1所示(橙色橢圓圈內(nèi)為DPDK高速入侵檢測(cè)系統(tǒng))。
入侵檢測(cè)(Intrusion Detection)作為一種積極主動(dòng)的安全防護(hù)技術(shù),被認(rèn)為是防火墻之后的第二道安全閘門,在不影響網(wǎng)絡(luò)性能的情況下能對(duì)網(wǎng)絡(luò)進(jìn)行監(jiān)測(cè)。在圖1中,入侵檢測(cè)系統(tǒng)部署在車地防火墻和內(nèi)網(wǎng)防火墻網(wǎng)絡(luò)邊界旁路,通過網(wǎng)絡(luò)監(jiān)聽所有設(shè)備的網(wǎng)絡(luò)通信,并通過內(nèi)置的攻擊特征庫識(shí)別網(wǎng)絡(luò)中的攻擊行為,對(duì)網(wǎng)絡(luò)攻擊行為進(jìn)行記錄。當(dāng)發(fā)現(xiàn)存在入侵后,入侵檢測(cè)系統(tǒng)會(huì)及時(shí)作出響應(yīng),包括切斷網(wǎng)絡(luò)連接、記錄事件和報(bào)警等,供系統(tǒng)管理員通過運(yùn)維審計(jì)系統(tǒng)對(duì)攻擊行為進(jìn)行識(shí)別和分析,有效提高了系統(tǒng)的安全管控能力。采用DPDK技術(shù)進(jìn)行網(wǎng)絡(luò)內(nèi)部入侵行為探測(cè)與報(bào)警,在不影響網(wǎng)絡(luò)性能的情況下,及時(shí)發(fā)現(xiàn)非LKJ協(xié)議數(shù)據(jù)并聯(lián)動(dòng)防火墻阻斷,以滿足對(duì)系統(tǒng)網(wǎng)絡(luò)安全防護(hù)的要求。
圖1 LKJ數(shù)據(jù)換裝系統(tǒng)總體結(jié)構(gòu)Fig.1 Overall structure of LKJ data reloading system
傳統(tǒng)的Snort模塊關(guān)系與運(yùn)行架構(gòu)如圖2所示。
圖2 傳統(tǒng)Snort模塊關(guān)系與運(yùn)行架構(gòu)Fig.2 Traditional snort module relationship and operation architecture
最新版本的Snort嗅探軟件中,將數(shù)據(jù)包嗅探模塊修改單獨(dú)分離出來,使Snort可以進(jìn)行用戶自定義式的擴(kuò)展和修改,因此對(duì)于傳統(tǒng)入侵檢測(cè)系統(tǒng)的改進(jìn),可以從改寫數(shù)據(jù)包嗅探模塊DAQ開始進(jìn)行。即修改DAQ的代碼邏輯和架構(gòu),使其可以支持DPDK的核心功能,進(jìn)而達(dá)到高速包捕獲的目的。
核心開發(fā)模塊就是DPDK數(shù)據(jù)包嗅探模塊,其他模塊直接使用Snort原生的模塊往下執(zhí)行即可,加入DPDK后的Snort運(yùn)行架構(gòu)如圖3所示。
圖3 加入DPDK模塊后的Snort調(diào)用Fig.3 Snort call after adding DPDK module
DPDK總體框架如圖4所示,在網(wǎng)卡收包時(shí)底層通過intel提供的UIO接口來實(shí)現(xiàn)用戶態(tài)和內(nèi)核態(tài)數(shù)據(jù)包之間的零拷貝傳遞,然后通過DPDK庫中的Driver驅(qū)動(dòng)將數(shù)據(jù)包交給應(yīng)用層的用戶處理,DPDK框架提供各種功能庫,比如:MEMORY、RING、MBUF、PDM、MEMPOOL等。
2.3.1 DPDK基本原理
DPDK應(yīng)用程序運(yùn)行在操作系統(tǒng)的用戶態(tài),利用自身提供的數(shù)據(jù)平面庫進(jìn)行數(shù)據(jù)包的處理,繞過了Linux的內(nèi)核協(xié)議棧,從而提高了報(bào)文處理效率。DPDK的主要組件含義如下。
1)PMD驅(qū)動(dòng):代表輪詢模式驅(qū)動(dòng),通過非中斷方式和零拷貝機(jī)制,提高發(fā)送和接收數(shù)據(jù)幀的效率。
2)流分類:提供最優(yōu)化的查找算法。
3)無鎖環(huán)隊(duì)列:DPDK基于Linux內(nèi)核的無鎖環(huán)形緩沖kfifo實(shí)現(xiàn)自己的1套無鎖機(jī)制,支持單個(gè)或者多個(gè)數(shù)據(jù)包生產(chǎn)者、單個(gè)數(shù)據(jù)包的消費(fèi)者的出入隊(duì)列操作,有效減少系統(tǒng)開銷。
4)MBUF管理:分配內(nèi)存創(chuàng)建緩沖區(qū),并通過建立MBUF對(duì)象,封裝實(shí)際數(shù)據(jù)幀。
5)EAL抽象層:DPDK的環(huán)境抽象層,包括DPDK核心功能的加載和初始化,CPU親和力處理,各種操作的接口,時(shí)鐘,跟蹤調(diào)試接口等。
綜上所述,DPDK的核心思想。
1)用戶態(tài)模式的PMD驅(qū)動(dòng),不使用中斷而改用輪詢的方式,避免內(nèi)核態(tài)和用戶態(tài)之間來回切換,有效提升I/O的吞吐能力。
2)用戶態(tài)下運(yùn)行,程序的崩潰不會(huì)影響到內(nèi)核,實(shí)現(xiàn)內(nèi)核的安全和穩(wěn)定。
3)使用大頁內(nèi)存技術(shù),減少內(nèi)存Miss發(fā)生的概率。
4)多核設(shè)備上創(chuàng)建多線程,每個(gè)線程綁定到獨(dú)立的物理核,充分利用DPDK對(duì)CPU的親和性,減少線程調(diào)度的開銷,同時(shí)每個(gè)線程對(duì)應(yīng)獨(dú)立免鎖隊(duì)列。
5)向量指令集,提升了流水線效率,降低內(nèi)存等待開銷。
2.3.2 DPDK特點(diǎn)
1)輪詢:處理數(shù)據(jù)包時(shí),在包處理時(shí)利用UIO提供的接口進(jìn)行數(shù)據(jù)包的輪詢,避免中斷使系統(tǒng)狀態(tài)切換的額外開銷。
2)用戶態(tài)驅(qū)動(dòng):避免不必要的內(nèi)存拷貝和系統(tǒng)調(diào)用,便于快速迭代和優(yōu)化。
3)親和性獨(dú)占:DPDK利用CPU的親和性將一個(gè)線程或多個(gè)線程綁定到一個(gè)或多個(gè)CPU上,在線程執(zhí)行過程中,不會(huì)被隨意調(diào)度,減少了線程間的頻繁切換帶來的開銷,避免了CPU緩存的局部失效性,增加了CPU緩存的命中率。
4)降低訪存開銷:利用內(nèi)存大頁hugepages,降低了訪問內(nèi)存轉(zhuǎn)換時(shí)未命中的可能性,DPDK實(shí)現(xiàn)了一組大頁內(nèi)存分配、使用和釋放的API,上層應(yīng)用可以很方便使用API申請(qǐng)使用大頁內(nèi)存。同時(shí)也兼容普通的內(nèi)存申請(qǐng),通過更大的內(nèi)存頁(如1 G內(nèi)存頁),減少TLB(Translation Lookaside Buffer,即快表) Miss,Miss對(duì)報(bào)文轉(zhuǎn)發(fā)性能影響很大。
2.4.1 Snort嗅探技術(shù)
Snort是1套開源的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),主要功能有包嗅探、包記錄和入侵檢測(cè)功能。
Snort能夠?qū)Λ@取到的數(shù)據(jù)包進(jìn)行特征分析,但區(qū)別于其他嗅探器的是它能自己定義分析的規(guī)則,只需要擴(kuò)展它特定的模塊。Snort通過對(duì)獲取的數(shù)據(jù)包,進(jìn)行各規(guī)則的分析后,根據(jù)規(guī)則鏈,可以采取Activation(報(bào)警并啟動(dòng)另外一個(gè)動(dòng)態(tài)規(guī)則鏈)、Dynamic(由其他的規(guī)則包調(diào)用)、Alert(報(bào)警)、Pass(忽略)、Log(不報(bào)警但記錄流量)5種響應(yīng)的機(jī)制。
圖4 DPDK框架圖Fig.4 DPDK frame diagram
Snort有數(shù)據(jù)包嗅探、數(shù)據(jù)包分析、數(shù)據(jù)包檢測(cè)、相應(yīng)處理等多種功能。每個(gè)模塊實(shí)現(xiàn)不同的功能,各個(gè)模塊都是用插件的方式和Snort相結(jié)合,功能擴(kuò)展十分方便。例如預(yù)處理插件的功能就是在規(guī)則匹配誤用檢測(cè)之前運(yùn)行,完成TCP碎片重組、http解碼、telnet解碼等功能,處理插件完成檢查協(xié)議等字段、關(guān)閉連接、攻擊響應(yīng)等功能,輸出插件將各種情況以日志和警告的方式輸出。
體系結(jié)構(gòu)如圖5所示。
圖5 Snort體系結(jié)構(gòu)Fig.5 Snort architecture
由圖5可見,Snort主要由4大軟件模塊構(gòu)成,分別是:
1)數(shù)據(jù)包嗅探模塊:主要是負(fù)責(zé)監(jiān)聽數(shù)據(jù)包,對(duì)抓取到的數(shù)據(jù)包進(jìn)行規(guī)則分析。
2)預(yù)處理模塊:數(shù)據(jù)包被送到各種各樣的預(yù)處理器中,在檢測(cè)引擎處理之前進(jìn)行檢查和操作。每個(gè)預(yù)處理器檢查數(shù)據(jù)包是否應(yīng)該注意、報(bào)警或者修改某些東西。
3)檢測(cè)模塊:是Snort的核心模塊,當(dāng)數(shù)據(jù)包從預(yù)處理器送過來之后,檢測(cè)引擎先根據(jù)規(guī)則檢查數(shù)據(jù),規(guī)則中的每個(gè)關(guān)鍵字選項(xiàng)對(duì)應(yīng)于檢測(cè)引擎插件,能夠提供不同的檢測(cè)功能,只要發(fā)現(xiàn)數(shù)據(jù)包中的內(nèi)容和某些規(guī)則相匹配,就通知報(bào)警模塊。
4)報(bào)警和日志模塊:規(guī)則匹配之后輸出報(bào)警信息,并傳送給日志文件。
2.4.2 Snort模塊調(diào)用
Snort 2.9版本后,為數(shù)據(jù)包的捕獲功能實(shí)現(xiàn)引入了DAQ,也可以稱作數(shù)據(jù)采集庫。DAQ取代了之前版本中對(duì)libpcap或winpcap的直接調(diào)用,具有抽象層的功能,因此可以非常方便地進(jìn)行擴(kuò)展,便于在各種硬件或者軟件接口上操作,調(diào)用Snort執(zhí)行pcap時(shí),也可以設(shè)置DAQ的運(yùn)行類型和模式。
DPDK提供了友好的API,Snort的DAQ模塊的擴(kuò)展規(guī)則是需要符合基本的要求,即可以插入到Snort中,為主要框架流程設(shè)計(jì),如圖6所示。
圖6 DPDK-Snort設(shè)計(jì)框架Fig.6 DPDK-Snort design framework
根據(jù)DPDK提供給的API,再結(jié)合Snort的擴(kuò)展DAQ模塊的編寫規(guī)則,可以編寫出DPDK-DAQ的模塊,以此來拓展Snort的數(shù)據(jù)包嗅探功能,為之后Snort的數(shù)據(jù)分析提供大量可用的數(shù)據(jù)包,以此提升入侵檢測(cè)系統(tǒng)的處理性能。
其中DAQ是Snort的包捕獲模塊,在Snort初始化時(shí),先載入DAQ模塊,如圖7所示。
圖7 Snort初始化過程Fig.7 Snort initialization process
在Snort初始化時(shí)載入DAQ模塊,此時(shí)Snort調(diào)用的API是daq_load_modules,主線程還沒有啟動(dòng)網(wǎng)卡和初始化實(shí)例。在初始化Snort之后(載入默認(rèn)配置,載入DAQ和其他各個(gè)模塊后),Snort進(jìn)入分析數(shù)據(jù)包的階段,此時(shí)起作用的是pig線程,或者更加精確的說,是pig下的analyzer子線程,Snort下開啟n個(gè)pig線程,在pig主線程下再調(diào)用analyzer子線程進(jìn)行數(shù)據(jù)包解析,數(shù)據(jù)包解析的過程是在pig線程中,多線程并行進(jìn)行,在每一個(gè)analyzer線程下都初始化一個(gè)DAQ實(shí)例,并調(diào)用函數(shù)acquire進(jìn)行數(shù)據(jù)包分析,在每一個(gè)DAQ下都使用多個(gè)網(wǎng)卡來獲取數(shù)據(jù),邏輯關(guān)系如圖8所示。
圖8 DAQ線程邏輯關(guān)系Fig.8 DAQ threads logical relationship
從圖8中可以看出,在一個(gè)Snort下面有多個(gè)DAQ instance并行運(yùn)行,每一個(gè)DAQ instance都會(huì)進(jìn)行初始化操作,占用系統(tǒng)資源,獲取網(wǎng)卡信息,數(shù)據(jù)包捕獲與解析,pig線程之間相互獨(dú)立,導(dǎo)致DAQ instance之間也相互獨(dú)立,為單線程運(yùn)行。
根據(jù)以上思想,可以開始DAQ和DPDK的結(jié)合工作,從而在Snort中運(yùn)行模塊修改后的DAQ模塊,從而提高數(shù)據(jù)包捕獲的效率。
在LKJ車載數(shù)據(jù)無線換裝系統(tǒng)實(shí)驗(yàn)室環(huán)境下,實(shí)現(xiàn)對(duì)DPDK-Snort模塊的性能測(cè)試。
1)Snort和包捕獲模塊DAQ的環(huán)境配置和測(cè)試。
2)DAQ模塊擴(kuò)展的嘗試,找到一個(gè)合適的方式,參考DPDK的包捕獲模塊DPDKCAP的核心代碼部分,根據(jù)Snort的DAQ編寫規(guī)則,寫出DPDK-DAQ,加入到Snort中的DAQ包捕獲模塊核心部分,從而提高獲取數(shù)據(jù)包的速度和效率。
3)嘗試擴(kuò)展模塊后,使得入侵檢測(cè)系統(tǒng)能夠高效地獲取數(shù)據(jù)包,從而實(shí)現(xiàn)入侵檢測(cè)。
2.6.1 DAQ模塊安裝
Snort在面臨大數(shù)據(jù)流時(shí)處理效率低,甚至?xí)ㄋ?,此時(shí)使用DPDK開發(fā)加速對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的抓取,從而增大Snort對(duì)數(shù)據(jù)包的分析速率,在最新的Snort2.9版本中,針對(duì)數(shù)據(jù)包I/O提出模塊化的思想,引入數(shù)據(jù)捕獲模塊DAQ,可以嘗試在DAQ中,加入對(duì)DPDK的支持。
首先在IDS虛擬機(jī)中安裝DAQ模塊,使用如下指令,如圖9所示。
圖9 DAQ安裝指令Fig.9 DAQ installation instructions
之后make和make install,提示編譯和安裝完成。
2.6.2 DAQ模塊替換
使用如下指令進(jìn)行DAQ模塊的替換和加載DPDK的Snort的運(yùn)行:
sudo Snort --daq-dir /usr/local/lib/daq/--daq dpdk --daq-var dpdk_args="-c 1" -i dpdk0:dpdk1 -c /usr/local/etc/snort/snort.lua-z 2
其中各個(gè)參數(shù)的含義如下所示:
--daq-dir:DAQ動(dòng)態(tài)運(yùn)行庫的路徑。
--daq dpdk:限定Snort使用DPDK模塊的方式運(yùn)行。
--daq-var dpdk_args="-c 1":DPDK的運(yùn)行參數(shù),按照默認(rèn)配置運(yùn)行。
-i dpdk0:dpdk1:選擇DPDK接口。
-z 2:DPDK的線程設(shè)置,這里選擇2個(gè)包捕獲線程。
之后運(yùn)行加載DPDK的Snort,發(fā)現(xiàn)與普通的Snort運(yùn)行界面無任何區(qū)別,為了檢測(cè)其效果,之后進(jìn)行抓包測(cè)試。
2.6.3 運(yùn)行測(cè)試
為了能夠直觀明了地顯示加載DPDK之后的抓包效果,首先在兩個(gè)客戶機(jī)上部署了相應(yīng)的發(fā)包工具小兵以太網(wǎng)測(cè)試儀,編譯成功后,會(huì)生成一個(gè)./target/xb_ether_tester.exe的程序,運(yùn)行程序后構(gòu)造數(shù)據(jù)包并設(shè)置發(fā)送規(guī)則進(jìn)行測(cè)試。
為了檢測(cè)數(shù)據(jù)包接收效率,首先將客戶機(jī)軟件上發(fā)包工具中的發(fā)包速率部署到一個(gè)非常高的數(shù)值,之后進(jìn)行發(fā)包測(cè)試,經(jīng)過一段時(shí)間后停止,對(duì)比客戶機(jī)上的報(bào)文發(fā)送數(shù)量和Snort面板上的數(shù)據(jù)包接收數(shù)量,進(jìn)行對(duì)比,計(jì)算出收到包和發(fā)送包的比例,從而驗(yàn)證是否存在接收數(shù)據(jù)包效率的提高。
這里在發(fā)包速率上選擇4.46、5.00、5.49、5.97、6.49、6.98、7.49、7.797、8.41、8.93、9.49、9.74、10.00、10.49、10.98、11.5 Gbit/s幾組數(shù)值,每次增加約為0.5 Gbit/s的數(shù)據(jù)包發(fā)送速率,通過兩方對(duì)比得到相應(yīng)的結(jié)果,并繪制折線圖,結(jié)果如圖10所示。
圖10 接收包比例折線圖Fig.10 Scale line chart of receiving package
可以發(fā)現(xiàn)在小于10 Gbit/s的數(shù)據(jù)量時(shí),加載DPDK模塊的Snort可以基本實(shí)現(xiàn)100%的數(shù)據(jù)包接收率。在高于10 Gbit/s后,數(shù)據(jù)包接收比例開始呈現(xiàn)出下降的趨勢(shì)。10 Gbit/s時(shí)約為0.997,10.49 Gbit/s時(shí) 約 為0.92,10.98 Gbit/s時(shí) 約 為0.82,11.5 Gbit/s時(shí)下降到0.7左右。而在傳統(tǒng)的Snort中斷接收下,大約1 Gbit/s,數(shù)據(jù)包的接收效率就難以達(dá)到100%,且經(jīng)常因數(shù)據(jù)量過大而導(dǎo)致應(yīng)用卡死,可以看出在加載DPDK后,數(shù)據(jù)包的接收效率得到了成倍的提高。但是隨著數(shù)據(jù)量的進(jìn)一步增加,DPDK接收的效率也在下降,這也是今后需要進(jìn)一步研究和改善的問題。
通過編程和架構(gòu)設(shè)計(jì),在DPDK平臺(tái)基礎(chǔ)上實(shí)現(xiàn)了高性能的入侵檢測(cè)系統(tǒng),從LKJ車載數(shù)據(jù)無線換裝試驗(yàn)過程中可以驗(yàn)證,在數(shù)據(jù)量進(jìn)一步增加的情況下,傳統(tǒng)的中斷處理方式已經(jīng)越來越難以適應(yīng)需要,需要采用其他方式提高數(shù)據(jù)包收發(fā)效率。DPDK已證明是一個(gè)很好的解決方案,在傳統(tǒng)的Snort下,加入DPDK模塊的支持,可以成倍提高收發(fā)包的效率,從而提高入侵檢測(cè)系統(tǒng)的安全性和健壯性,有效保障了基于公共移動(dòng)通信網(wǎng)絡(luò)進(jìn)行LKJ車載數(shù)據(jù)換裝業(yè)務(wù)的安全性和可靠性。