楊信錕
摘要:快速的網(wǎng)絡(luò)發(fā)展對防火墻性能提出了更高要求.本文提出了一種分布式網(wǎng)絡(luò)防火墻硬件架構(gòu),基于一致性哈希算法的分布式存儲會話信息,基于流的轉(zhuǎn)發(fā)及流量負載均衡,能有效提升防火墻性能.
關(guān)鍵詞:分布式;防火墻;吞吐量;會話;一致性哈希算法
中圖分類號:TP393? 文獻標識碼:A? 文章編號:1673-260X(2019)01-0057-03
1 引言
快速的網(wǎng)絡(luò)發(fā)展對防火墻的性能要求提出了超高吞吐量、并發(fā)連接數(shù)和每秒新建連接數(shù)的全面性能要求;并且安全性能可以按需進行線性擴展,應(yīng)用安全處理能力也需具備高性能與可擴展性.
2 現(xiàn)有方案與問題剖析
1.1 堆疊式架構(gòu)
堆疊式架構(gòu)是將多個系統(tǒng)子模塊疊加成一個大的系統(tǒng).但這種架構(gòu)中系統(tǒng)子模塊之間的容量與性能不能相互支援,跨模塊間的性能較低,無法實現(xiàn)冗余,不便于整個系統(tǒng)的會話管理,資源無法有效利用.
1.2 共享型分布式架構(gòu)
共享型分布式架構(gòu)采用集中會話管理,通過集中式數(shù)據(jù)庫存儲會話信息,通過遠程調(diào)用查找會話信息.若CPU數(shù)量不斷增加,受限于單一的數(shù)據(jù)庫,將會限制此架構(gòu)性能提升,集中式數(shù)據(jù)庫的問題將影響整個系統(tǒng).
1.3 復(fù)制型分布式架構(gòu)
復(fù)制型分布式架構(gòu)采用復(fù)制會話信息的方式,通過本地的會話數(shù)據(jù)庫查找會話信息.若CPU數(shù)量增加,同步復(fù)雜度會隨之提升,內(nèi)耗系統(tǒng)資源.
3 分布式網(wǎng)絡(luò)防火墻原理
本文提出一種分布式網(wǎng)絡(luò)防火墻的硬件架構(gòu),由多張接口卡和業(yè)務(wù)卡組成,管理通道和數(shù)據(jù)通道進行互聯(lián),數(shù)據(jù)包處理在接口卡和業(yè)務(wù)卡上完全分布式進行.數(shù)據(jù)包首先從接口進入防火墻,可以通過接口卡直接獨立快速轉(zhuǎn)發(fā),也可以在業(yè)務(wù)卡上進行分布式處理后,再由接口卡轉(zhuǎn)發(fā),這樣可以實現(xiàn)系統(tǒng)性能的全面線性擴展,保證了系統(tǒng)的高吞吐、高新建、高并發(fā).硬件架構(gòu)如圖1.
高性能硬件防火墻可以支持上億個并發(fā)連接數(shù),集中式會話存儲必然導(dǎo)致大量會話信息同步,消耗大量CPU資源,并存在單點故障問題,因此需要采用分布式方案來存儲會話信息.本文對術(shù)語做如下約定:
(1)RTO(實時動態(tài)信息),表示一個會話或一條流.RTO是指進行數(shù)據(jù)包處理中動態(tài)創(chuàng)建的信息,這些信息包含數(shù)據(jù)處理過程中所需信息,又包含系統(tǒng)監(jiān)控、攻擊防護所需的狀態(tài)信息和計數(shù)器等.
(2)RTO-DB,存儲RTO信息的數(shù)據(jù)庫.
(3)LRTO-DB,本地的RTO-DB.
分布式RTO-DB是在防火墻所有業(yè)務(wù)卡CPU上進行分布式部署.整個RTO-DB完全分布式存儲于各本地的RTO-DB(即LRTO-DB)中,每個本地的RTO-DB由一個CPU負責.RTO信息可以通過五元組(源MAC地址,目的MAC地址,源IP地址,目的IP地址,傳輸層協(xié)議)的哈希值來散列存儲在不同的防火墻業(yè)務(wù)卡的各個CPU上,目的是負載均衡,線性擴展系統(tǒng)性能.本方案所采用的哈希算法必須遵循平衡性、單調(diào)性、分散性原則進行設(shè)計.在分布式架構(gòu)防火墻中,RTO存儲需要考慮防火墻卡添加、刪除、故障等問題.如果采用計算五元組的MD5值,然后再按防火墻卡CPU總數(shù)取模,散列存儲到各個CPU上,那么在有防火墻卡添加或刪除后,無法找到很多原有RTO數(shù)據(jù),嚴重違反單調(diào)性原則.針對RTO的分布式存儲引入一致性哈希算法.
算法流程:(1)環(huán)形Hash空間.環(huán)形Hash空間由0-65535的桶的空間組成KEY,數(shù)字頭尾相連,形似閉環(huán).(2)將業(yè)務(wù)卡通過Hash函數(shù)映射到環(huán)上.通過Hash算法計算出業(yè)務(wù)卡1-3對應(yīng)的KEY,再分布至Hash環(huán)上.(3)將RTO通過Hash函數(shù)映射到環(huán)上.通過Hash算法計算出RTO1-4對應(yīng)的KEY,再分布至Hash環(huán)上,然后以順時針的方向?qū)?yīng)的RTO存儲到離自己最近的業(yè)務(wù)卡中.過程如圖3所示.
會話信息的分布式存儲需要考慮到業(yè)務(wù)卡的添加與刪除時,信息的轉(zhuǎn)儲操作.
(1)業(yè)務(wù)卡的刪除.若業(yè)務(wù)卡2因故障被刪除,基于順時針遷移法,RTO1會被遷移到業(yè)務(wù)卡3中,這樣僅引起RTO1映射位置變化,其他對象無任務(wù)改動:
(2)業(yè)務(wù)卡的添加.若新添業(yè)務(wù)卡4,通過Hash算法計算出KEY4,再分布至Hash環(huán)上,按順時針遷移的規(guī)則,RTO2被遷移到了業(yè)務(wù)卡4中,其他RTO無變化:
綜上所述,算法能保證負載均衡的同時滿足單調(diào)性,但平衡性有所欠缺.例如上文所示,只部署業(yè)務(wù)卡1和業(yè)務(wù)卡3的情況,RTO4被分配到業(yè)務(wù)卡1中,而RTO1、RTO2、RTO3都被分配到業(yè)務(wù)卡3中,出現(xiàn)了不平衡狀態(tài).所以本文在算法中引入虛擬業(yè)務(wù)卡以解決平衡性問題.每個物理業(yè)務(wù)卡對應(yīng)若干個“虛擬業(yè)務(wù)卡”,如圖6所示.
RTO信息從Hash到虛擬業(yè)務(wù)卡到物理業(yè)務(wù)卡的轉(zhuǎn)換如圖7所示:
慢通道(Slow Path):P1:在防火墻接口卡的一個端口處接收報文,將報文傳遞至交換機;P2:將報文傳遞給CPU+FPGA處理單元,使用報文的五元組信息來執(zhí)行一致性哈希查找對應(yīng)的會話(慢通道不存在對應(yīng)的會話);P3:CPU+FPGA處理單元通過數(shù)據(jù)通道向管理板轉(zhuǎn)發(fā)報文;P4:管理板根據(jù)報文的五元組信息找到對應(yīng)的哈希索引對應(yīng)的防火墻業(yè)務(wù)卡及對應(yīng)的CPU并轉(zhuǎn)發(fā)報文到對應(yīng)的防火墻業(yè)務(wù)卡;P5:交換機將報文轉(zhuǎn)發(fā)到對應(yīng)的CPU,對應(yīng)的CPU根據(jù)報文五元組等相關(guān)的信息對應(yīng)的會話信息,并存儲在LRTO-DB中;P6:CPU將報文重新轉(zhuǎn)發(fā)給管理板;P7:管理板轉(zhuǎn)發(fā)報文到對應(yīng)的報文輸出端口所在的防火墻接口卡中的對應(yīng)CPU中;P8:交換機將報文轉(zhuǎn)發(fā)到輸出端口.
快通道(Fast Path):P1:在防火墻接口卡的一個端口處接收報文,將報文傳遞至交換機;P2:將報文傳遞給CPU+FPGA處理單元,使用報文的五元組信息來執(zhí)行一致性哈希查找到對應(yīng)的會話;P3/P4:防火墻業(yè)務(wù)卡將查到的RTO信息通過管理通道發(fā)送給防火墻接口卡;P5:管理板轉(zhuǎn)發(fā)報文到對應(yīng)的報文輸出端口所在的防火墻接口卡中的對應(yīng)CPU中;P6:交換機將報文轉(zhuǎn)發(fā)到輸出端口.
4 結(jié)束語
通過上述原理可以看出,分布式硬件架構(gòu)及基于一致性哈希算法的分布式存儲會話信息可以使得防火墻的性能線性擴展,能夠滿足超高吞吐量、并發(fā)連接數(shù)和每秒新建連接數(shù)的全面性能要求.
參考文獻:
〔1〕楊鴻駿.防火墻硬件架構(gòu)發(fā)展漫談[J].計算機網(wǎng)絡(luò)安全,2010(8):86-86.
〔2〕林波.分布式存儲系統(tǒng)中一致性哈希算法的研究[J].電腦知識與技術(shù),2011,07(22):5295-5296.