一、P4與SDN的關(guān)系
SDN是網(wǎng)絡(luò)的未來,P4是SDN的未來,基于openflow的傳統(tǒng)SDN專注于可編程的控制平面,數(shù)據(jù)平面仍然是由固定功能的ASIC組成,也就是說openflow的實(shí)現(xiàn)仍然需要配套的芯片支持,openflow是與目標(biāo)硬件相關(guān)的。而P4專注于可編程的數(shù)據(jù)平面,可以自定義芯片對于數(shù)據(jù)包的處理方式,添加自己的新功能,新協(xié)議,或者對原有協(xié)議棧進(jìn)行優(yōu)化,更合理的分配片上資源。openflow利用匹配域可抽象整個TCP/IP協(xié)議棧的絕大部分功能,而P4可以完整描述openflow的功能。
二、可編程數(shù)據(jù)平面programmable data-plane(PDP)的主要特點(diǎn):
1、快速開發(fā)和驗(yàn)證新協(xié)議
為了支持網(wǎng)絡(luò)的快速演進(jìn),標(biāo)準(zhǔn)化組織不斷推出新的封裝和傳輸協(xié)議,GENEVE,NSH,VXLAN,GEP等等都是最近推出的,與此同時,數(shù)據(jù)中心也已經(jīng)開始推出自己的協(xié)議用來隔離各個租戶,使其業(yè)務(wù)互相不受影響。每一種自定義的協(xié)議都有其獨(dú)特的優(yōu)勢,基于在大型網(wǎng)絡(luò)中多年的運(yùn)行經(jīng)驗(yàn)。
2、移除一些無用的協(xié)議,簡化和精簡網(wǎng)絡(luò)
網(wǎng)絡(luò)世界里有數(shù)百種協(xié)議,然而一個數(shù)據(jù)中心網(wǎng)絡(luò)中往往只需要三到四種,問題在于,不同的數(shù)據(jù)中心會使用不同的協(xié)議組合,因此固定功能的交換機(jī)會內(nèi)置這些協(xié)議組合的超集,導(dǎo)致一些珍貴的交換機(jī)資源被用到了一些不需要的協(xié)議上。比如我們可以減少L2轉(zhuǎn)發(fā)表的大小然后重新分配內(nèi)存空間到L3路由表。在tofino中,我們可以將L3 IP路由表從 300k增加到1.2M 支持更大的網(wǎng)絡(luò)和地址空間。移除不用的協(xié)議也意味著減少出錯的機(jī)會,網(wǎng)絡(luò)由于根本不用但是卻寫入到交換機(jī)ASIC中的協(xié)議錯誤而引起的中斷。由于并不使用這些協(xié)議,所以很難做出判斷來debug,使用P4 你只需要添加那些你需要的協(xié)議,專注于那些你所需要的表項(xiàng),簡化交換機(jī)結(jié)構(gòu),減少出錯的機(jī)會。
3、INT實(shí)現(xiàn)整個網(wǎng)絡(luò)的完全可視化,可追溯每一個數(shù)據(jù)包的轉(zhuǎn)發(fā)過程
網(wǎng)絡(luò)監(jiān)控是可編程網(wǎng)絡(luò)的一個典型應(yīng)用,首先我們可以在幾個小時內(nèi)添加更好的監(jiān)控特性,而不是需要修改整個轉(zhuǎn)發(fā)邏輯而耗費(fèi)好幾年時間,其次,沒有什么設(shè)備廠家比網(wǎng)絡(luò)運(yùn)維人員更清楚到底需要監(jiān)控哪些指標(biāo),使用PDP 運(yùn)維人員可以快速地添加強(qiáng)大的監(jiān)控,分析和診斷特性,利用INT,舉個例子運(yùn)維人員可以詳細(xì)決定什么信息他想獲取,比如 數(shù)據(jù)包通過每一個交換機(jī)的精確延時,或者隊(duì)列中其他數(shù)據(jù)包, 以及軟件的版本,每個包所匹配的表項(xiàng),因此每個數(shù)據(jù)包都可以成為一個探測包,不會產(chǎn)生任何新的流量,如此史無前例的可視化能力?;緦?shí)現(xiàn)已經(jīng)可用的INT.p4,這個程序已經(jīng)可以實(shí)現(xiàn)完全的自動化數(shù)據(jù)采集和修正,可作為self-driven網(wǎng)絡(luò)的一部分。
4、將middlebox的功能集成到PDP上
許多網(wǎng)絡(luò)運(yùn)營商僅僅使用了middlebox中的很少部分功能,現(xiàn)在他們可以直接將需要的功能編程到交換機(jī)上, 淘汰掉大量昂貴的middlebox。已經(jīng)有成功使用barefoot tofino交換機(jī)實(shí)現(xiàn)middlebox功能進(jìn)行實(shí)際部署的案例,成本方面取得了顯著的降低,在大部分情況下,他們的性能比之前更強(qiáng),因?yàn)樗麄冞\(yùn)行在tofino上實(shí)現(xiàn)了全線速轉(zhuǎn)發(fā),而不是傳統(tǒng)CPU,在一個場景中,L4負(fù)載均衡被集成到tofino交換機(jī)上,維持十萬臺服務(wù)器的數(shù)千萬個連接。 DIP池可以調(diào)整大小,而無需中斷此時的連接,所有這些只需幾百行P4代碼,相似的方法可以集成其他middlebox比如防火墻,入侵檢測系統(tǒng),地址端口轉(zhuǎn)換器,流量重復(fù)數(shù)據(jù)刪除等,我們正走在將middlebox合并到交換機(jī)中的革命之路上。
5、將部分分布式應(yīng)用程序直接部署在網(wǎng)絡(luò)上
一個大型數(shù)據(jù)中心里運(yùn)行著大量的分布式應(yīng)用,并且也有數(shù)千臺交換機(jī)的規(guī)模,交換機(jī)是否具備加速分布式應(yīng)用,卸載服務(wù)器load的能力呢?最近研究者們證明了如何使用paxos一致性協(xié)議可以添加到網(wǎng)絡(luò)中通過利用P4實(shí)現(xiàn)其中的一小部分,并添加到交換機(jī)中,如此一來可以對分布式應(yīng)用可以加速幾個數(shù)量級,其余部分可以構(gòu)建新的鍵-值管理服務(wù)直接部署到數(shù)據(jù)平面上,我們可以參與許多新型的快速的in-network應(yīng)用和服務(wù),來自由免費(fèi)無縫集成到網(wǎng)絡(luò)中。
這僅僅只是一個開始,冰山一角,用戶可以使用這項(xiàng)技術(shù)完成更多的功能,我們的目標(biāo)是將差異化的方法交到用戶手中,他們可以對他們最熟悉的網(wǎng)絡(luò)做出創(chuàng)新,PDP開啟了網(wǎng)絡(luò)用戶自主權(quán)的革命,使得研究者,開放網(wǎng)絡(luò)社區(qū)可以自己演進(jìn)。
總而言之barefoot首次將性能和可編程能力完美結(jié)合在一起,P4-enabled Tofino以及SDK的組合是革命性的,真正的可編程交換機(jī)和業(yè)界最強(qiáng)的性能。當(dāng)高性能和可編程能力的優(yōu)勢逐漸普及開來后,我們相信一個經(jīng)常被忽略的影響將會成為一個巨大的影響力,高性能和可編程能力改變了網(wǎng)絡(luò)的所有者對于整個網(wǎng)絡(luò)的洞察力,在過去,網(wǎng)絡(luò)的可視化是芯片公司或者系統(tǒng)設(shè)備公司的領(lǐng)域,他們可以以此提高價格獲取利潤。如今,網(wǎng)絡(luò)的運(yùn)維人員可以在正在運(yùn)行業(yè)務(wù)的網(wǎng)絡(luò)上添加自己的應(yīng)用程序來優(yōu)化其工作狀態(tài),并且他們無需與系統(tǒng)或者芯片公司分享這些設(shè)計(jì),這種由P4程序獲得的對于網(wǎng)絡(luò)的洞察力將成為其自己的知識產(chǎn)權(quán),他們可以將這些IP移植到其他廠家的可編程交換機(jī)上,或者同廠家的不同產(chǎn)品上,甚至購買白盒設(shè)備,因此,網(wǎng)絡(luò)的靈活性和開放性得到了進(jìn)一步的提升。
三、典型應(yīng)用
1、帶內(nèi)遙測in-band network telemetry (INT)
帶內(nèi)測量是混合測量方法的一個例子,在過去幾年中獲得了很大的動力。帶內(nèi)遙測[5]的思想是,路徑上的每個節(jié)點(diǎn)都在數(shù)據(jù)平面數(shù)據(jù)包的報(bào)頭中包含時間戳(和可能的其他信息),從而允許細(xì)粒度的測量和擁塞檢測。這些方法被稱為帶內(nèi)網(wǎng)絡(luò)遙測(Int)[6]和現(xiàn)場oam(Ioam)[7],它們分別正在p4社區(qū)和ietf中討論。
傳統(tǒng)網(wǎng)絡(luò)監(jiān)控技術(shù)比如SNMP 基于通過控制平面向底層網(wǎng)絡(luò)獲取信息的方式,要么約束性太強(qiáng)要么速度太慢,類似的,比如netflow, sflow,synthetic探針等,并不足夠精確來檢測由于短時事件或者microbursts 等導(dǎo)致的問題,這可能會造成服務(wù)和應(yīng)用程序的嚴(yán)重事故,缺少可以追溯以及可以將相關(guān)事件產(chǎn)生聯(lián)系的metadata和歷史信息都幾乎不可能獲取,特別是在規(guī)模很大的網(wǎng)絡(luò)中,最后,Network Packet Broker (NPB)網(wǎng)絡(luò)數(shù)據(jù)包代理的預(yù)先支付的成本和TCO可能會相當(dāng)高。
INT 使得數(shù)據(jù)平面具有端到端的搜集能力,實(shí)時地狀態(tài)信息。在端點(diǎn)上直接嵌入指令信息到數(shù)據(jù)包中列出網(wǎng)絡(luò)狀態(tài)的類型將被直接從網(wǎng)絡(luò)中被搜集起來,每個網(wǎng)元在流經(jīng)的數(shù)據(jù)包中插入被請求的網(wǎng)絡(luò)狀態(tài)信息,一個P4程序可以被用來作為一種自然的方式來表示INT中數(shù)據(jù)包所需要被解析和修改的包頭類型。
搜集網(wǎng)絡(luò)數(shù)據(jù)的過程如今可以直接在實(shí)際流量中完成,給與了可以在虛擬或者物理的端到端網(wǎng)絡(luò)中實(shí)時地發(fā)現(xiàn)和搜集網(wǎng)絡(luò)狀態(tài)的能力,這樣打開了無限可能性來監(jiān)控你的網(wǎng)絡(luò),允許網(wǎng)絡(luò)運(yùn)維團(tuán)隊(duì)來快速捕獲和描述哪些由于性能瓶頸,網(wǎng)絡(luò)故障或者配置錯誤而出現(xiàn)的問題。
2、PLT(Path-Latency Tracking)路徑延時跟蹤
搜集每個包在每一跳的物理路徑和單跳延時,端點(diǎn)將有用的數(shù)據(jù)導(dǎo)入分析引擎,INT sink會在事件觸發(fā)后產(chǎn)生report發(fā)送到分析引擎,比如發(fā)現(xiàn)新的連接,以存在的鏈接路徑發(fā)生變化,端到端或者h(yuǎn)op by hop延時發(fā)生明顯變化等,都會異常行為都會被快速發(fā)現(xiàn)并溯源。
PLT為什么有用?
1、實(shí)時的網(wǎng)絡(luò)異常檢測和產(chǎn)生告警信息;
2、快速檢查鏈路擁塞,診斷哪些應(yīng)用導(dǎo)致了擁塞;
3、交換機(jī)端口擁塞,異常排隊(duì)延時的出現(xiàn);
4、無用的交換機(jī)或者鏈路;
5、鏈路利用率不均衡(ECMP LAG);
6、網(wǎng)絡(luò)中出現(xiàn)環(huán)路;
7、交互式分析;
8、按需路徑可視(E2E 或者 src dst TOR對);
9、生成流量矩陣。
PLT的設(shè)計(jì)
如果每個包都向分析引擎發(fā)送report的話,將會導(dǎo)致產(chǎn)生大量冗余數(shù)據(jù),采用智能的反冗余程序讓SINK選擇恰到時機(jī)發(fā)送report,report以鏡像包的形式發(fā)到分析引擎。
分析引擎設(shè)計(jì)
可擴(kuò)展型分布式快速數(shù)據(jù)處理系統(tǒng),用于實(shí)時處理PLT報(bào)告,產(chǎn)生告警信息并將報(bào)告轉(zhuǎn)存到數(shù)據(jù)庫,基于開源工具集,kafka,spark streaming,cassandra。模塊化設(shè)計(jì)使得用戶可以無縫替換組件,是一種低系統(tǒng)開銷的設(shè)計(jì)。
3、in-band DDoS帶內(nèi)防御系統(tǒng)
Barefoot networks公司描述了一種典型的DDOS檢測和削弱的解決方案,這種方案有許多帶外的DDOS檢測應(yīng)用來監(jiān)控流量并將其引流到狀態(tài)防火墻,在這個方案中,DDOS檢測設(shè)備由于成本和規(guī)模問題不能監(jiān)控所有的網(wǎng)絡(luò)流量,因此運(yùn)營商必須設(shè)置一些靜態(tài)的流量鏡像規(guī)則在邊緣路由器上,來僅僅鏡像一部分流量,舉個例子,如果網(wǎng)絡(luò)運(yùn)營商想要保護(hù)DNS服務(wù),他們將會鏡像那些需要經(jīng)過DNS的UDP流量到DDOS檢測設(shè)備。
因此,隨著分布性強(qiáng)且復(fù)雜的攻擊行為,基礎(chǔ)設(shè)施需要要么有能力擴(kuò)大規(guī)模來檢測T比特/秒級別的流量和數(shù)百萬條連接,要么必須有能力交換更多的選擇性模式在其中低精確度的監(jiān)控小規(guī)模流量,以便提高檢測速度而不引入額外的開銷到控制平面,tofino應(yīng)用程序也可以估計(jì)和閾值在數(shù)據(jù)平面上進(jìn)行直接比較。在這種情況下 當(dāng)DDOS檢測開啟時數(shù)據(jù)平面會告知控制平面(data-plane push)。
帶內(nèi)DDOS檢測的優(yōu)勢
1. tofino的應(yīng)用程序可以保證在面對任何類型的攻擊時保持高可擴(kuò)展性和線速的性能,并且盡量減少片上資源的消耗;
2. 帶內(nèi)DDOS檢測可以用tofino來實(shí)現(xiàn)并且保證高精度,和幾乎可忽略不計(jì)的誤判;
3 P4的可編程能力允許用戶靈活地并可定制化DDOS檢測方式和攻擊削弱行為;
4. 細(xì)粒度的統(tǒng)計(jì)允許用戶快速確定哪個應(yīng)用和服務(wù)正在遭遇攻擊;
5 當(dāng)與其他DDOS解決方案,比如 netflow 進(jìn)行比較時,基于tofino的方案在檢測DDOS攻擊時具有多個數(shù)量級的速度優(yōu)勢(幾十毫秒 vs 幾十秒)。
評論
查看更多