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