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