涂曉軍 孫 權(quán),2 蔡立志
1(中國(guó)銀聯(lián)股份有限公司 上海 201201)2(復(fù)旦大學(xué) 上海 200433)3(上海計(jì)算機(jī)軟件技術(shù)開(kāi)發(fā)中心上海市計(jì)算機(jī)軟件評(píng)測(cè)重點(diǎn)實(shí)驗(yàn)室 上海 201112)
近年來(lái),隨著金融云建設(shè)的深入以及金融科技的發(fā)展,金融云的組網(wǎng)面臨著轉(zhuǎn)型與升級(jí)的可能。其中的驅(qū)動(dòng)力主要由業(yè)務(wù)與技術(shù)的雙重因素所決定[1-3]。
隨著斷直連監(jiān)管措施的落地,銀聯(lián)接入了大量小額高頻的交易,對(duì)信息系統(tǒng)的并發(fā)度提出了很高的要求。銀聯(lián)核心的互聯(lián)網(wǎng)產(chǎn)品云閃付也發(fā)展迅猛,帶來(lái)了巨大的互聯(lián)網(wǎng)流量[4]。整個(gè)金融行業(yè)的整合正在加速,尤其在金融科技的技術(shù)棧越做越深之后,頭部金融機(jī)構(gòu)主導(dǎo)的行業(yè)化服務(wù)正在興起,大型的金融行業(yè)云逐步形成,互聯(lián)網(wǎng)流量將大量接入。DMZ網(wǎng)絡(luò)區(qū)域是金融行業(yè)非常典型的一個(gè)網(wǎng)絡(luò)區(qū)域,用于隔離不可信外網(wǎng)與可信內(nèi)網(wǎng)之間的網(wǎng)絡(luò)流量。如何構(gòu)建架構(gòu)簡(jiǎn)單、高吞吐量,以支撐海量的互聯(lián)網(wǎng)入口流量是金融機(jī)構(gòu)普遍關(guān)注的一個(gè)問(wèn)題。
通常,金融數(shù)據(jù)中心的外網(wǎng)流量通過(guò)DMZ區(qū)進(jìn)行接入。DMZ網(wǎng)絡(luò)區(qū)域是金融行業(yè)非常典型的一個(gè)區(qū)域,它的主要作用是隔離、代理不可信外網(wǎng)與可信內(nèi)網(wǎng)之間的網(wǎng)絡(luò)流量。針對(duì)當(dāng)前DMZ區(qū)的實(shí)現(xiàn)存在吞吐不足、成本高的問(wèn)題,普遍的做法是采用昂貴的F5專(zhuān)用負(fù)載均衡設(shè)備,數(shù)十臺(tái)交換機(jī)用于流量轉(zhuǎn)發(fā),上千臺(tái)服務(wù)器做Web反向代理,如圖1所示。該方案存在如下問(wèn)題:
圖1 基于F5的DMZ網(wǎng)絡(luò)方案
1) 成本高昂:構(gòu)建一個(gè)DMZ區(qū)需要用到大量的設(shè)備,包括昂貴的F5專(zhuān)用負(fù)載均衡設(shè)備、數(shù)十臺(tái)交換機(jī)和上千臺(tái)服務(wù)器。
2) 吞吐能力不足:即使采用了上述大量的設(shè)備,DMZ區(qū)的吞吐能力仍然較低,通常小于100 Gbit·s-1。這對(duì)于銀行業(yè)大流量的互聯(lián)網(wǎng)業(yè)務(wù)(例如云閃付、融e聯(lián)等)來(lái)說(shuō),在開(kāi)展商業(yè)促銷(xiāo)活動(dòng)時(shí)會(huì)遇到瓶頸,無(wú)法滿足未來(lái)的需求。
3) 無(wú)法水平擴(kuò)展:整個(gè)集群的最大吞吐能力受限于最前端的F5負(fù)載均衡設(shè)備,擴(kuò)容量只能更換新型號(hào)設(shè)備,無(wú)法水平擴(kuò)展。
本節(jié)針對(duì)現(xiàn)有DMZ區(qū)域成本高昂、吞吐性能無(wú)法水平擴(kuò)展等問(wèn)題,提出一種極簡(jiǎn)架構(gòu)、超高吞吐的金融DMZ區(qū)實(shí)現(xiàn)方法,在大幅減小DMZ區(qū)部署設(shè)備數(shù)量與復(fù)雜度的同時(shí)能夠極大地提升吞吐性能,如圖2所示。
圖2 新型DMZ網(wǎng)絡(luò)架構(gòu)圖
整個(gè)DMZ區(qū)僅由一臺(tái)可編程交換機(jī)和一個(gè)加強(qiáng)型服務(wù)器集群構(gòu)成??删幊探粨Q機(jī)側(cè)主要負(fù)責(zé)入口流量的四層報(bào)文的處理,其中涉及的功能如下:
1) 四層的防火墻:依據(jù)黑白名單的地址以及內(nèi)置檢測(cè)DDoS的算法,對(duì)一部分非法流量進(jìn)行預(yù)清理。
2) 四層的負(fù)載均衡:依據(jù)所訪問(wèn)的服務(wù)目的地址(通常是一個(gè)服務(wù)的IP),通過(guò)查找表項(xiàng)以及Hash算法將目的地址轉(zhuǎn)換為實(shí)際的服務(wù)實(shí)例。
3) 流量轉(zhuǎn)發(fā):將流量導(dǎo)入至服務(wù)器進(jìn)行更高層的報(bào)文處理。
在加強(qiáng)型服務(wù)器集群中,為了使服務(wù)器端七層的報(bào)文處理達(dá)到更高的性能,需要配置加解密卡和25 Gbit智能網(wǎng)卡,以便于將部分的工作從CPU卸載至專(zhuān)用硬件上。加解密卡用于卸載HTTPS加解密的流量處理,例如Intel QAT卡;25 Gbit智能網(wǎng)卡用于實(shí)現(xiàn)25 Gbit·s-1的高吞吐,同時(shí)其還具備Vxlan、UDP分片、TCP校驗(yàn)等硬件處理功能,從而可以最大限度地降低CPU的處理負(fù)擔(dān),并且使得報(bào)文的處理延時(shí)能夠有確定性的保障。軟件層面采用Nginx服務(wù)器做七層的負(fù)載均衡、http反向代理、深度包檢測(cè)過(guò)濾等工作。
本文方法流程如圖3所示,Internet流量進(jìn)入后,包括3個(gè)步驟:
圖3 新型DMZ網(wǎng)絡(luò)流向示意圖
1) 交換機(jī)先處理四層的流量,包括四層DDoS防護(hù)、四層負(fù)載均衡。
2) 服務(wù)器集群負(fù)責(zé)七層報(bào)文解析,包括DPI深度包檢測(cè)、HTTPS加密流量卸載、HTTP反向代理。
3) 將清洗過(guò)后的流量引到核心App區(qū)。
本文方案在網(wǎng)關(guān)處采用了P4 SDN可編程交換的技術(shù)以及可編程交換芯片實(shí)現(xiàn)超高的吞吐量級(jí)[5-7]。P4的可編程模型是相對(duì)于傳統(tǒng)固定流水線的交換芯片而言的,它的架構(gòu)是基于PISA(Protocol Independent Switch Arch)全流水線可編程的架構(gòu)??删幊探粨Q芯片示意圖如圖4所示。
圖4 可編程交換芯片示意圖
該架構(gòu)的基本單元是match-action table,其中match單元可以匹配任意報(bào)文的偏移與字段長(zhǎng)度;action單元?jiǎng)t有相對(duì)比較豐富的報(bào)文編輯功能;此外,片上的存儲(chǔ)資源SRAM與TCAM也可以進(jìn)行全局靈活的配置。
整個(gè)P4的控制過(guò)程包括包頭解析、可編程入流水線、可配置緩存管理TM,以及可編程出流水線的處理。對(duì)應(yīng)的編程框架包括:自定義報(bào)文頭,match-action表項(xiàng)的定義、全流水線控制流的串接??梢钥闯?,P4模型的核心特征仍然是基于網(wǎng)絡(luò)包處理的高速交換,它可以實(shí)現(xiàn)Packet通信相關(guān)事件的處理,靈活匹配,靈活編輯,以及小容量的高速存儲(chǔ)查找。
2015年Facebook利用Tofino商用芯片的P4可編程技術(shù)實(shí)現(xiàn)了能夠存儲(chǔ)1 000萬(wàn)條表項(xiàng)的有狀態(tài)四層負(fù)載均衡,單交換芯片的能力相當(dāng)于一百臺(tái)服務(wù)器的軟負(fù)載均衡性能。本文方案也是借助于P4的可編程模型,實(shí)現(xiàn)有狀態(tài)的四層負(fù)載均衡,其流水線如圖5所示。
圖5 負(fù)載均衡流水線示意圖
負(fù)載均衡方案的實(shí)現(xiàn)難點(diǎn)是PCC(Per Connection Consistency)有狀態(tài)連接保持,需要控制面參與配合,并且在流表中記錄下每個(gè)新建連接的狀態(tài)。此外,為了實(shí)現(xiàn)負(fù)載均衡的地址池,以及來(lái)回報(bào)文的原路處理,在去程還需要實(shí)現(xiàn)DNAT,回程需要實(shí)現(xiàn)SNAT,并且定期需要廣播或者響應(yīng)虛地址的ARP請(qǐng)求。
吞吐量和DMZ網(wǎng)關(guān)的重要指標(biāo)。我們以6.4 Tbit·s-1規(guī)格的可編程交換機(jī)(采用Barefoot Tofino交換芯片)為例,設(shè)計(jì)和規(guī)劃整個(gè)系統(tǒng)的吞吐容量。
6.4 Tbit·s-1規(guī)格的可編程交換機(jī)有64個(gè)100 Gbit·s-1的端口,其中:
(1) 10個(gè)端口用于接收外部進(jìn)入的流量(100 Gbit·s-1×10=1 Tbit·s-1)。
(2) 50個(gè)端口用于掛載服務(wù)器,每個(gè)服務(wù)器配置25 Gbit·s-1網(wǎng)卡,因此可以掛載100 Gbit/25 Gbit×50=200臺(tái)的服務(wù)器用于處理。
(3) 剩余4個(gè)端口用于流量的輸出(100 Gbit·s-1×4=400 Gbit·s-1),輸出到最終的App區(qū)。
(4) 交換機(jī)的片上資源(SRAM+TCAM)可用于存儲(chǔ)表項(xiàng),約可以存儲(chǔ)100萬(wàn)條的有狀態(tài)四層連接。
通過(guò)64個(gè)端口的規(guī)劃設(shè)計(jì),整個(gè)DMZ集群的吞吐量可以達(dá)到Tbit·s-1級(jí)別,并且在交換機(jī)中可以實(shí)現(xiàn)高達(dá)100萬(wàn)條有狀態(tài)流表的負(fù)載均衡,性能已經(jīng)遠(yuǎn)超市場(chǎng)上現(xiàn)有的四層負(fù)載均衡設(shè)備。
前述的原型設(shè)計(jì)中,前端只有一臺(tái)可編程交換機(jī)設(shè)備,在實(shí)際的生產(chǎn)應(yīng)用中,必須有高可用的保障。
由于單臺(tái)交換機(jī)已經(jīng)能夠達(dá)到很高的吞吐性能,利用2臺(tái)可編程交換機(jī),實(shí)現(xiàn)主備高可用,所有的服務(wù)器均雙聯(lián)至兩臺(tái)交換機(jī),同時(shí)出入口的鏈路也進(jìn)行雙聯(lián),如圖6所示。
圖6 高可用設(shè)計(jì)示意圖
正常狀態(tài)下,備用交換機(jī)的鏈路上沒(méi)有流量。當(dāng)有新的流創(chuàng)建時(shí),控制平面同時(shí)寫(xiě)入兩臺(tái)交換機(jī)的表項(xiàng)之中,使得備用交換機(jī)可以與主交換機(jī)擁有相同的流狀態(tài)表項(xiàng)。當(dāng)主交換機(jī)異常時(shí)(通過(guò)監(jiān)控其指標(biāo)狀態(tài)),則控制服務(wù)器立刻切換出入口的流量到備用交換機(jī)。由于備用交換機(jī)與主交換機(jī)擁有相同的流狀態(tài)表項(xiàng),因此連接的出口依舊能夠保持,所有的流并不會(huì)中斷,由此實(shí)現(xiàn)平滑切換。
在實(shí)際的生產(chǎn)應(yīng)用中,還需要考慮未來(lái)的容量可擴(kuò)展方案。在此提出兩種可擴(kuò)展的方式:
一是縱向擴(kuò)展方法(scale up),即換用更高規(guī)格的交換機(jī)。當(dāng)前12.8 Tbit·s-1規(guī)格的交換機(jī)也已經(jīng)出現(xiàn)(交換機(jī)的規(guī)格一般2~3年可以增長(zhǎng)一倍),所對(duì)應(yīng)的吞吐能力可以翻番。
二是橫向擴(kuò)展方法(scale out),需要兩層的交換機(jī),如圖7所示。第一層交換機(jī)先依據(jù)IP前綴等簡(jiǎn)單規(guī)則對(duì)報(bào)文先做一次分流到下一級(jí)的交換機(jī),下一級(jí)的交換機(jī)再實(shí)現(xiàn)嚴(yán)格的四層負(fù)載均衡,由此可以實(shí)現(xiàn)整個(gè)集群最高十倍以上的橫向吞吐擴(kuò)展。
圖7 橫向擴(kuò)展示意圖
圖8展現(xiàn)了傳統(tǒng)DMZ網(wǎng)絡(luò)方案與本文所提出的新型DMZ網(wǎng)絡(luò)方案的實(shí)現(xiàn)對(duì)比。
(a) 傳統(tǒng)DMZ方案 (b) 本文方案圖8 實(shí)現(xiàn)對(duì)比示意圖
本文方案主要有以下優(yōu)勢(shì):
1) 單對(duì)交換機(jī)+服務(wù)器集群的極簡(jiǎn)架構(gòu)。相較于F5方案,本文方案將F5四層與七層的負(fù)載均衡功能分別下沉到交換機(jī)與服務(wù)器的位置進(jìn)行處理,構(gòu)成了單對(duì)交換機(jī)+服務(wù)器集群的極簡(jiǎn)架構(gòu),極大提升了系統(tǒng)的可維護(hù)性。
2) 使用更少的硬件資源。相比傳統(tǒng)的方案昂貴的F5專(zhuān)用負(fù)載均衡設(shè)備,數(shù)十臺(tái)交換機(jī)用于流量轉(zhuǎn)發(fā),大量服務(wù)器做Web反向代理,本文方案硬件成本僅為F5實(shí)現(xiàn)方案的20%。
3) 實(shí)現(xiàn)更好的網(wǎng)絡(luò)性能。根據(jù)實(shí)測(cè)結(jié)果對(duì)比,新型DMZ方案達(dá)到10倍以上的吞吐量提升,達(dá)到Tbit·s-1級(jí)別,能有效應(yīng)對(duì)互聯(lián)網(wǎng)入口的巨大流量。
表1對(duì)比了本文方案與基于軟件轉(zhuǎn)發(fā)的實(shí)現(xiàn)和專(zhuān)用硬件實(shí)現(xiàn)的技術(shù)參數(shù)與成本[8-10]。
表1 DMZ區(qū)方案實(shí)現(xiàn)對(duì)比
本文針對(duì)現(xiàn)有金融DMZ區(qū)域成本高昂、吞吐性能無(wú)法水平擴(kuò)展等問(wèn)題,提出一種精簡(jiǎn)架構(gòu)、超高吞吐的金融DMZ區(qū)實(shí)現(xiàn)方法,在大幅減小DMZ區(qū)部署設(shè)備數(shù)量與復(fù)雜度的同時(shí)可以極大地提升吞吐性能;通過(guò)一對(duì)可編程交換機(jī)加服務(wù)器集群的精簡(jiǎn)設(shè)備組,實(shí)現(xiàn)原有10倍以上的吞吐能力。本文方案中交換機(jī)同時(shí)負(fù)責(zé)轉(zhuǎn)發(fā)流程和四層負(fù)載均衡,服務(wù)器負(fù)責(zé)七層負(fù)載均衡,將原有F5負(fù)載均衡的能力分布到了交換機(jī)與服務(wù)器集群中。同時(shí),還充分利用加密卡、25 Gbit智能網(wǎng)卡等硬件設(shè)備的加速特性以提升整體集群的性能。