涂曉軍 孫 權(quán),2 蔡立志
1(中國銀聯(lián)股份有限公司 上海 201201)2(復(fù)旦大學(xué) 上海 200433)3(上海計算機(jī)軟件技術(shù)開發(fā)中心上海市計算機(jī)軟件評測重點實驗室 上海 201112)
近年來,隨著金融云建設(shè)的深入以及金融科技的發(fā)展,金融云的組網(wǎng)面臨著轉(zhuǎn)型與升級的可能。其中的驅(qū)動力主要由業(yè)務(wù)與技術(shù)的雙重因素所決定[1-3]。
隨著斷直連監(jiān)管措施的落地,銀聯(lián)接入了大量小額高頻的交易,對信息系統(tǒng)的并發(fā)度提出了很高的要求。銀聯(lián)核心的互聯(lián)網(wǎng)產(chǎn)品云閃付也發(fā)展迅猛,帶來了巨大的互聯(lián)網(wǎng)流量[4]。整個金融行業(yè)的整合正在加速,尤其在金融科技的技術(shù)棧越做越深之后,頭部金融機(jī)構(gòu)主導(dǎo)的行業(yè)化服務(wù)正在興起,大型的金融行業(yè)云逐步形成,互聯(lián)網(wǎng)流量將大量接入。DMZ網(wǎng)絡(luò)區(qū)域是金融行業(yè)非常典型的一個網(wǎng)絡(luò)區(qū)域,用于隔離不可信外網(wǎng)與可信內(nèi)網(wǎng)之間的網(wǎng)絡(luò)流量。如何構(gòu)建架構(gòu)簡單、高吞吐量,以支撐海量的互聯(lián)網(wǎng)入口流量是金融機(jī)構(gòu)普遍關(guān)注的一個問題。
通常,金融數(shù)據(jù)中心的外網(wǎng)流量通過DMZ區(qū)進(jìn)行接入。DMZ網(wǎng)絡(luò)區(qū)域是金融行業(yè)非常典型的一個區(qū)域,它的主要作用是隔離、代理不可信外網(wǎng)與可信內(nèi)網(wǎng)之間的網(wǎng)絡(luò)流量。針對當(dāng)前DMZ區(qū)的實現(xiàn)存在吞吐不足、成本高的問題,普遍的做法是采用昂貴的F5專用負(fù)載均衡設(shè)備,數(shù)十臺交換機(jī)用于流量轉(zhuǎn)發(fā),上千臺服務(wù)器做Web反向代理,如圖1所示。該方案存在如下問題:

圖1 基于F5的DMZ網(wǎng)絡(luò)方案
1) 成本高昂:構(gòu)建一個DMZ區(qū)需要用到大量的設(shè)備,包括昂貴的F5專用負(fù)載均衡設(shè)備、數(shù)十臺交換機(jī)和上千臺服務(wù)器。
2) 吞吐能力不足:即使采用了上述大量的設(shè)備,DMZ區(qū)的吞吐能力仍然較低,通常小于100 Gbit·s-1。這對于銀行業(yè)大流量的互聯(lián)網(wǎng)業(yè)務(wù)(例如云閃付、融e聯(lián)等)來說,在開展商業(yè)促銷活動時會遇到瓶頸,無法滿足未來的需求。
3) 無法水平擴(kuò)展:整個集群的最大吞吐能力受限于最前端的F5負(fù)載均衡設(shè)備,擴(kuò)容量只能更換新型號設(shè)備,無法水平擴(kuò)展。
本節(jié)針對現(xiàn)有DMZ區(qū)域成本高昂、吞吐性能無法水平擴(kuò)展等問題,提出一種極簡架構(gòu)、超高吞吐的金融DMZ區(qū)實現(xiàn)方法,在大幅減小DMZ區(qū)部署設(shè)備數(shù)量與復(fù)雜度的同時能夠極大地提升吞吐性能,如圖2所示。

圖2 新型DMZ網(wǎng)絡(luò)架構(gòu)圖
整個DMZ區(qū)僅由一臺可編程交換機(jī)和一個加強(qiáng)型服務(wù)器集群構(gòu)成??删幊探粨Q機(jī)側(cè)主要負(fù)責(zé)入口流量的四層報文的處理,其中涉及的功能如下:
1) 四層的防火墻:依據(jù)黑白名單的地址以及內(nèi)置檢測DDoS的算法,對一部分非法流量進(jìn)行預(yù)清理。
2) 四層的負(fù)載均衡:依據(jù)所訪問的服務(wù)目的地址(通常是一個服務(wù)的IP),通過查找表項以及Hash算法將目的地址轉(zhuǎn)換為實際的服務(wù)實例。
3) 流量轉(zhuǎn)發(fā):將流量導(dǎo)入至服務(wù)器進(jìn)行更高層的報文處理。
在加強(qiáng)型服務(wù)器集群中,為了使服務(wù)器端七層的報文處理達(dá)到更高的性能,需要配置加解密卡和25 Gbit智能網(wǎng)卡,以便于將部分的工作從CPU卸載至專用硬件上。加解密卡用于卸載HTTPS加解密的流量處理,例如Intel QAT卡;25 Gbit智能網(wǎng)卡用于實現(xiàn)25 Gbit·s-1的高吞吐,同時其還具備Vxlan、UDP分片、TCP校驗等硬件處理功能,從而可以最大限度地降低CPU的處理負(fù)擔(dān),并且使得報文的處理延時能夠有確定性的保障。軟件層面采用Nginx服務(wù)器做七層的負(fù)載均衡、http反向代理、深度包檢測過濾等工作。
本文方法流程如圖3所示,Internet流量進(jìn)入后,包括3個步驟:

圖3 新型DMZ網(wǎng)絡(luò)流向示意圖
1) 交換機(jī)先處理四層的流量,包括四層DDoS防護(hù)、四層負(fù)載均衡。
2) 服務(wù)器集群負(fù)責(zé)七層報文解析,包括DPI深度包檢測、HTTPS加密流量卸載、HTTP反向代理。
3) 將清洗過后的流量引到核心App區(qū)。
本文方案在網(wǎng)關(guān)處采用了P4 SDN可編程交換的技術(shù)以及可編程交換芯片實現(xiàn)超高的吞吐量級[5-7]。P4的可編程模型是相對于傳統(tǒng)固定流水線的交換芯片而言的,它的架構(gòu)是基于PISA(Protocol Independent Switch Arch)全流水線可編程的架構(gòu)。可編程交換芯片示意圖如圖4所示。

圖4 可編程交換芯片示意圖
該架構(gòu)的基本單元是match-action table,其中match單元可以匹配任意報文的偏移與字段長度;action單元則有相對比較豐富的報文編輯功能;此外,片上的存儲資源SRAM與TCAM也可以進(jìn)行全局靈活的配置。
整個P4的控制過程包括包頭解析、可編程入流水線、可配置緩存管理TM,以及可編程出流水線的處理。對應(yīng)的編程框架包括:自定義報文頭,match-action表項的定義、全流水線控制流的串接??梢钥闯?,P4模型的核心特征仍然是基于網(wǎng)絡(luò)包處理的高速交換,它可以實現(xiàn)Packet通信相關(guān)事件的處理,靈活匹配,靈活編輯,以及小容量的高速存儲查找。
2015年Facebook利用Tofino商用芯片的P4可編程技術(shù)實現(xiàn)了能夠存儲1 000萬條表項的有狀態(tài)四層負(fù)載均衡,單交換芯片的能力相當(dāng)于一百臺服務(wù)器的軟負(fù)載均衡性能。本文方案也是借助于P4的可編程模型,實現(xiàn)有狀態(tài)的四層負(fù)載均衡,其流水線如圖5所示。

圖5 負(fù)載均衡流水線示意圖
負(fù)載均衡方案的實現(xiàn)難點是PCC(Per Connection Consistency)有狀態(tài)連接保持,需要控制面參與配合,并且在流表中記錄下每個新建連接的狀態(tài)。此外,為了實現(xiàn)負(fù)載均衡的地址池,以及來回報文的原路處理,在去程還需要實現(xiàn)DNAT,回程需要實現(xiàn)SNAT,并且定期需要廣播或者響應(yīng)虛地址的ARP請求。
吞吐量和DMZ網(wǎng)關(guān)的重要指標(biāo)。我們以6.4 Tbit·s-1規(guī)格的可編程交換機(jī)(采用Barefoot Tofino交換芯片)為例,設(shè)計和規(guī)劃整個系統(tǒng)的吞吐容量。
6.4 Tbit·s-1規(guī)格的可編程交換機(jī)有64個100 Gbit·s-1的端口,其中:
(1) 10個端口用于接收外部進(jìn)入的流量(100 Gbit·s-1×10=1 Tbit·s-1)。
(2) 50個端口用于掛載服務(wù)器,每個服務(wù)器配置25 Gbit·s-1網(wǎng)卡,因此可以掛載100 Gbit/25 Gbit×50=200臺的服務(wù)器用于處理。
(3) 剩余4個端口用于流量的輸出(100 Gbit·s-1×4=400 Gbit·s-1),輸出到最終的App區(qū)。
(4) 交換機(jī)的片上資源(SRAM+TCAM)可用于存儲表項,約可以存儲100萬條的有狀態(tài)四層連接。
通過64個端口的規(guī)劃設(shè)計,整個DMZ集群的吞吐量可以達(dá)到Tbit·s-1級別,并且在交換機(jī)中可以實現(xiàn)高達(dá)100萬條有狀態(tài)流表的負(fù)載均衡,性能已經(jīng)遠(yuǎn)超市場上現(xiàn)有的四層負(fù)載均衡設(shè)備。
前述的原型設(shè)計中,前端只有一臺可編程交換機(jī)設(shè)備,在實際的生產(chǎn)應(yīng)用中,必須有高可用的保障。
由于單臺交換機(jī)已經(jīng)能夠達(dá)到很高的吞吐性能,利用2臺可編程交換機(jī),實現(xiàn)主備高可用,所有的服務(wù)器均雙聯(lián)至兩臺交換機(jī),同時出入口的鏈路也進(jìn)行雙聯(lián),如圖6所示。

圖6 高可用設(shè)計示意圖
正常狀態(tài)下,備用交換機(jī)的鏈路上沒有流量。當(dāng)有新的流創(chuàng)建時,控制平面同時寫入兩臺交換機(jī)的表項之中,使得備用交換機(jī)可以與主交換機(jī)擁有相同的流狀態(tài)表項。當(dāng)主交換機(jī)異常時(通過監(jiān)控其指標(biāo)狀態(tài)),則控制服務(wù)器立刻切換出入口的流量到備用交換機(jī)。由于備用交換機(jī)與主交換機(jī)擁有相同的流狀態(tài)表項,因此連接的出口依舊能夠保持,所有的流并不會中斷,由此實現(xiàn)平滑切換。
在實際的生產(chǎn)應(yīng)用中,還需要考慮未來的容量可擴(kuò)展方案。在此提出兩種可擴(kuò)展的方式:
一是縱向擴(kuò)展方法(scale up),即換用更高規(guī)格的交換機(jī)。當(dāng)前12.8 Tbit·s-1規(guī)格的交換機(jī)也已經(jīng)出現(xiàn)(交換機(jī)的規(guī)格一般2~3年可以增長一倍),所對應(yīng)的吞吐能力可以翻番。
二是橫向擴(kuò)展方法(scale out),需要兩層的交換機(jī),如圖7所示。第一層交換機(jī)先依據(jù)IP前綴等簡單規(guī)則對報文先做一次分流到下一級的交換機(jī),下一級的交換機(jī)再實現(xiàn)嚴(yán)格的四層負(fù)載均衡,由此可以實現(xiàn)整個集群最高十倍以上的橫向吞吐擴(kuò)展。

圖7 橫向擴(kuò)展示意圖
圖8展現(xiàn)了傳統(tǒng)DMZ網(wǎng)絡(luò)方案與本文所提出的新型DMZ網(wǎng)絡(luò)方案的實現(xiàn)對比。

(a) 傳統(tǒng)DMZ方案 (b) 本文方案圖8 實現(xiàn)對比示意圖
本文方案主要有以下優(yōu)勢:
1) 單對交換機(jī)+服務(wù)器集群的極簡架構(gòu)。相較于F5方案,本文方案將F5四層與七層的負(fù)載均衡功能分別下沉到交換機(jī)與服務(wù)器的位置進(jìn)行處理,構(gòu)成了單對交換機(jī)+服務(wù)器集群的極簡架構(gòu),極大提升了系統(tǒng)的可維護(hù)性。
2) 使用更少的硬件資源。相比傳統(tǒng)的方案昂貴的F5專用負(fù)載均衡設(shè)備,數(shù)十臺交換機(jī)用于流量轉(zhuǎn)發(fā),大量服務(wù)器做Web反向代理,本文方案硬件成本僅為F5實現(xiàn)方案的20%。
3) 實現(xiàn)更好的網(wǎng)絡(luò)性能。根據(jù)實測結(jié)果對比,新型DMZ方案達(dá)到10倍以上的吞吐量提升,達(dá)到Tbit·s-1級別,能有效應(yīng)對互聯(lián)網(wǎng)入口的巨大流量。
表1對比了本文方案與基于軟件轉(zhuǎn)發(fā)的實現(xiàn)和專用硬件實現(xiàn)的技術(shù)參數(shù)與成本[8-10]。

表1 DMZ區(qū)方案實現(xiàn)對比
本文針對現(xiàn)有金融DMZ區(qū)域成本高昂、吞吐性能無法水平擴(kuò)展等問題,提出一種精簡架構(gòu)、超高吞吐的金融DMZ區(qū)實現(xiàn)方法,在大幅減小DMZ區(qū)部署設(shè)備數(shù)量與復(fù)雜度的同時可以極大地提升吞吐性能;通過一對可編程交換機(jī)加服務(wù)器集群的精簡設(shè)備組,實現(xiàn)原有10倍以上的吞吐能力。本文方案中交換機(jī)同時負(fù)責(zé)轉(zhuǎn)發(fā)流程和四層負(fù)載均衡,服務(wù)器負(fù)責(zé)七層負(fù)載均衡,將原有F5負(fù)載均衡的能力分布到了交換機(jī)與服務(wù)器集群中。同時,還充分利用加密卡、25 Gbit智能網(wǎng)卡等硬件設(shè)備的加速特性以提升整體集群的性能。