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

能完整描述openflow功能的P4

如何才能擴(kuò)展STC89系列單片機(jī)P4口的應(yīng)用
P4和P4運(yùn)行時(shí):SDN可編程性的新視野

遼寧鞍山鐵礦國(guó)企項(xiàng)目P4戶外球形屏案例

P4全彩LED顯示屏用材規(guī)格與技術(shù)參數(shù)
使用P4和Vivado工具簡(jiǎn)化數(shù)據(jù)包處理設(shè)計(jì)

P4 Suite for FPGA面市 P4 Suite for FPGA主要功能解析
P4在SDN中的重要性

評(píng)論