軟件定義網絡(SDN)基礎教程PPT完整全套教學課件_第1頁
軟件定義網絡(SDN)基礎教程PPT完整全套教學課件_第2頁
軟件定義網絡(SDN)基礎教程PPT完整全套教學課件_第3頁
軟件定義網絡(SDN)基礎教程PPT完整全套教學課件_第4頁
軟件定義網絡(SDN)基礎教程PPT完整全套教學課件_第5頁
已閱讀5頁,還剩180頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

SDN基礎知識

第1章SDN基礎知識第2章SDN仿真環境第3章SDN數據平面第4章SDN控制平面第5章SDN協議接口第6章SDN基礎應用開發第7章SDN綜合應用開發01概述02SDN定義和架構03SDN特征——數據控制分離04SDN特征——網絡可編程網絡發展歷史1、分組交換概念的出現:1962年,LeonardKleinrock在麻省理工學院的博士論文中提出分組交換概念,該技術后來成為互聯網的標準通信方式。2、ARPANET:在20世紀60年代的特定歷史背景下,美國國防部于1969年開始啟動計算機網絡開發計劃“ARPANET”,ARPANET的成功運行使計算機網絡的概念發生了根本變化,同時標志著現代互聯網的誕生。3、OSI參考模型的提出:1974年,國際標準化組織發布了著名的ISO/IEC7498標準,首次提出OSI(OpenSystemInterconnection,開放式系統互連)7層參考模型,同年12月,斯坦福大學的VintCerf和RobertE.Kahn提出了著名的TCP/IP(TransmissionControlProtocol/InternetProtocol),實現計算機網絡互聯的思想,以互連具有不同協議的網絡。網絡發展歷史4、

NCP:1983年,ARPANET宣布將過去的通信協議——NCP(NetworkControlProtocol)向TCP/IP過渡。5、WWW技術:1991年,歐洲粒子物理研究實驗室(CERN)的TimBernersLee利用HTML、HTTP成功編制了第一個局部存取瀏覽器Enguire,從這時開始,Web應用開始起飛,隨后通過不斷演進最終形成了著名的萬維網(WorldWideWeb,WWW)技術。6、1996年,隨著萬維網的大規模應用,Internet(互聯網)一詞廣泛流傳,之后10年,互聯網成功容納了各種不同的底層網絡技術和豐富的上層應用,迅速風靡全世界。傳統網絡面臨的挑戰PART1現有網絡難以高效支撐未來用戶、終端和應用的可持續發展,網絡架構亟待更新SDN發展起源從2006年開始,斯坦福大學研究生MartinCasado參與了CleanSlate項目,并著手領導了一個叫作Ethane的項目。在2007年的SIGCOMM會議上,MartinCasado發表了一篇名為“Ethane:TakingControloftheEnterprise”的論文,該論文引起了學術界的廣泛關注。2007年,MartinCasado聯合NickMcKeown、ScottShenker等人共同創建了一個致力于網絡虛擬化技術創新的公司——Nicira。2008年,NickMcKeown在SIGCOMM會議上發表文章“OpenFlow:EnablingInnovationinCampusNetworks”,首次提出了將OpenFlow協議用于校園網絡的試驗創新。OpenFlow開始正式進入人們的視野,SDN呼之欲出。2011年初,Google等企業共同成立了開放網絡基金會(OpenNetworkingFoundation,ONF),并正式提出了SDN的概念。SDN發展起源2013年4月,由Cisco、Juniper、Broadcom、IBM等公司主導的SDN開源控制器平臺項目——OpenDaylight,引發了IT界一次巨大的轟動。OpenDaylight項目的成立對SDN技術的發展具有里程碑式的意義,它代表了傳統網絡芯片、設備“巨頭”對網絡領域開源技術方向的認可。在2013年8月的SIGCOMM會議上,Google公司首次將其如何利用SDN技術解決數據中心之間流量問題的方案通過論文公之于眾——“B4:ExperiencewithaGlobally-DeployedSoftwareDefinedWAN”。2014年4月,中國電信與華為聯合宣布雙方合作完成了全球首個運營商SDN商用部署,將SDN技術成功應用于數據中心網絡。2014年8月,中國移動與華為合作利用SDN技術完成了政企專線業務在分組傳送網(PacketTransportNetwork,PTN)中的改造,大幅提升了運維效率及帶寬利用率。同年,中國聯通首次成功實現了SDNIPRAN的商用,初步實現了運維精簡、業務可視、快速創新的目標。2015年9月,中國聯通發布了新一代網絡架構CUBE-Net2.0白皮書,目標是基于SDN/NFV、云和超寬帶技術實現網絡重構。01概述02SDN定義和架構03SDN特征——數據控制分離04SDN特征——網絡可編程SDN的定義PART2SDN(SoftwareDefinedNetwork),中文譯為軟件定義網絡,是由美國斯坦福大學cleanslate研究組提出的一種新型網絡創新架構,其核心技術OpenFlow通過將網絡設備控制面與數據面分離開來,從而實現了網絡流量的靈活控制,為核心網絡及應用的創新提供了良好的平臺。傳統網絡設備緊耦合的網絡框架被拆分為應用、控制、轉發三層分離的架構。控制功能被轉移到了服務器,上層應用、底層轉發設施被抽象成多個邏輯實體。SDN的架構PART2特征:集中控制、開放接口、網絡虛擬化ONF所定義的SDN的典型架構、數據平面:數據平面由若干網元(NetElement)構成,每個網元可以包含一個或多個SDN數據路徑SDNDatapath),是一個被管理的資源在邏輯上的抽象集合。控制平面:控制平面為SDN控制器,SDN控制器是一個邏輯上集中的實體,它主要承擔兩個任務:一是將SDN應用層請求轉換到SDN數據路徑,二是為SDN應用提供底層網絡的抽象模型。應用平面:應用平面由若干用戶需要的SDN應用(SDNApplication)構成,它可以通過北向接口與SDN控制器進行交互,即這些應用能夠通過可編程方式把需要請求的網絡行為提交給控制器。管理平面:管理平面主要負責一系列靜態的工作,這些工作比較適合在應用、控制、數據平面外實現。SDN的架構PART2特征:集中控制、開放接口、網絡虛擬化ONF所定義的SDN的典型架構、SDN控制-數據平面接口:是控制平面和數據平面之間的接口。它提供的主要功能包括對所有轉發行為進行控制、設備性能查詢、統計報告、事件通知等。SDN北向接口:SDN北向接口是應用平面和控制平面之間的一系列接口。它主要負責提供抽象的網絡視圖,并使應用能直接控制網絡的行為,其中包含從不同層次對網絡及功能進行的抽象。這個接口也應該是一個開放的、與廠商無關的接口。01概述02SDN定義和架構03SDN特征——數據控制分離04SDN特征——網絡可編程基本概念——傳統網絡設備的數控分離傳統網絡設備的數據和控制平面都是分布式的。控制平面由于要完成更多更靈活的功能,經常運行在可編程性良好的通用處理器上,而數據平面需要保證高速的交換能力,通常運行在具備高速硬件轉發能力的線卡上,兩者之間一般通過高速總線或專門的光纖互連。傳統網絡設備中數據與控制平面示意圖數控分離歷史1.早期的數據控制分離思想來源于電話網絡。2.美國AT&T公司在20世紀80年代早期決定采取數據控制分離的網絡模型,為電話網絡引入了網絡控制點NCP的概念。3.ForCES工作組是IETF在2002年專門成立的,并于2003年針對一般網絡設備提出了控制平面-轉發平面分離的基本結構。數控分離歷史決策平面擴散平面發現平面數據平面網絡級目標直接控制全網視圖針對網絡邏輯決策平面和分布式硬件設備結合過緊的問題,Greenberg等人重新設計了互聯網控制和管理結構,提出將決策邏輯從底層協議中完全分離出來的4D項目。在4D項目的基礎上,SANE項目出現了,SANE在鏈路層和IP層之間定義了一個可以管理所有連接的保護層,所有路由和接入控制決策都通過這個保護層由一臺中央服務器進行集中式控制。2007年提出的Ethane項目則在SANE項目的基礎上進行了功能擴展,將安全管理策略添加到網絡管理中,擴充了中央控制器的管理功能。4D框架體系模型在以上相關工作的基礎上,斯坦福大學的研究人員與2008年提出了OpenFlow技術,OpenFlow更加明確的提出了數據控制分離的基本概念,打破了傳統網絡的分布式框架,簡化了網絡管理和配置操作,實現了高層控制邏輯的靈活性和可部署性,為SDN的概念和生態系統的出現邁出了重要一步。SDN的數據控制分離數據控制分離是SDN的主要特征之一。SDN提出將各個設備的管理系統(控制平面)從設備中抽取出來,通過軟件統一地進行定義,而網絡設備專門地進行數據通信工作(轉發平面)。傳統網絡與SDN網絡對比圖SDN的數據控制分離特征采用邏輯集中控制,對數據平面采用開放式接口需要解決分布式的狀態管理問題優點全局集中控制和分布高速轉發靈活可編程與性能的平衡開放性和IT化問題可擴展性問題一致性問題可用性問題SDN在數據控制分離方面對網絡工作模式進行了創新,這種模式能否得到普遍認可還有待研究和市場檢驗,但是可以肯定的是,SDN目前在某些特定的場景下已經有基于數據控制思想的商業使用案例,并已經得到了市場的認可。01概述02SDN定義和架構03SDN特征——數據控制分離04SDN特征——網絡可編程基本概念網絡可編程性最初是指網絡管理員可以通過命令行對設備進行配置,后來有了可編程路由器、NetFPGA等設備,這些設備的可編程性主要是對設備本身硬件電路級的可編程。這種可編程的能力是對某臺設備而言的,是一種處于最底層的編程能力,相當于計算機中匯編等級的編程語言,不夠靈活便捷。SDN的網絡可編程性是從另外一個角度來看的,管理者可以通過SDN中這種高級的編程能力實現與網絡設備的雙向交互,通過軟件更加方便、靈活地管理網絡。這種可編程性是基于整個網絡的,而不是基于某臺設備的。它是對網絡整體功能的抽象,使程序能通過這種抽象來為網絡添加新的功能。主動網絡和SDN之間有很多的相似之處,但它并沒有發展起來主動網絡主動網絡的基本思想是,打破傳統網絡只能被動傳輸信息的模式,允許網絡中的節點在用戶數據上執行用戶所需的計算。主動網絡架構網絡可編程歷史——主動網絡Out-bandIn-band網絡可編程歷史——主動網絡ANTS項目:通過編碼分發的過程來壓縮文件。SwitchWare項目:項目提出一種創新的SwitchWare交換機,該交換機使用一個編程元件完成交換功能,由可編程元件控制的如端口組成,被稱為“交換插件”的程序部分被發送到交換機端口,然后編譯執行。SmartPackets項目:該項目是將主動網絡技術引入到網絡管理中,一達到管理節點可編程化的目的。Netscript項目:該項目的體系結構應用了壓縮技術,用腳本語言對傳統網絡的院士功能進行一系列簡單的抽象主動網絡通過一系列的編程接口來控制網絡節點內的資源SDN網絡可編程網絡可編程性是SDN的另一個重要屬性,他通過為開發者們提供強大的編程接口,從而使網絡有了還好的編程能力。SDN的編程接口主要體現在北向接口上,北向接口提供了一系列豐富的API,開發者可以在此基礎上設計自己的應用不必關心底層的硬件細節。SDN網絡可編程SDN北向接口是上層應用與控制器交互的接口,可以是基于控制器本本身提供的各種接口API函數,也可以是現在最為流行的RESTAPI。SDN南向接口協議時集中式的控制平面和分布式的轉發設備之間交互的接口協議,用于實現控制器對底層轉發設備的管控。SDN的控制平面可以是分布式的,在這種情況下,就需要一種接口協議來負責控制器之間的通信,SDN的東西向接口主要解決了控制器之間物理資源共享、身份認證、授權數據庫間協作等問題,實現多域間控制信息交互,從而實現底層基礎設施透明化的多控制器組網策略。SDN網絡可編程優勢與問題優勢SDN應用多集中在對控制平面的編程上、上層應用通過北向接口與控制器交互,然后控制器再通過南向接口與底層硬件交互,這樣降低了程序與硬件的耦合度,只需實現不同的南向協議就可以在不同的硬件環境上執行相同的功能。SDN有一些明確的應用場景,使得業界對SDN的落地持有非常樂觀的態度。SDN出現時硬件技術能基本支撐他的發展,有大批的廠商開發出了自己的SDN設備,且SDN設備的造價也越來越低。SDN的發展方向明確,SDN將目標放在為網絡管理者和應用開發者提供強大的編程能力上,真正做到了為開發者提供一整套編程接口,讓網絡有強大的可編程能力。問題SDN所提供的強大的可編程能力需要數據平面的轉發設備來支撐,只有轉發設備提供了豐富的功能,SDN才能真正提供強大的編程能力。但目前主流的設備廠商都有自己的交換芯片,轉發設備數據模型的設計也各不相同,這就導致SDN功能實現起來越來越復雜。POF目前主流的南向接口協議OpenFlow面臨以下挑戰:①處于被動演進的模式;②轉發層面無狀態性POF基于OpenFlow進行增強改進,POF的轉發設備對數據報文處理轉發中無須協議感知能力,網絡行為完全由控制平面負責定義。POF還可以實現基于自定義協議的網絡服務,這是目前OpenFlow無法做到的,這無疑給網絡開發者提供了新的空間。因此,POF從很大程度上提高了SDN的可編程能力,滿足更多的網絡需求。在POF中,控制器主要通過定義數據的偏移和長度,識別已有協議類型和新的協議類型,并且可以控制所有協議報文的業務邏輯和轉發規則。目前,華為已針對POF開發了相應控制器和交換機。POF控制器由基于Java開發的Floodlight改進實現,采用BSD/Apache許可授權。POF轉發單元基于LinuxC,同樣采用BSD許可授權。P42014年7月,斯坦福大學提出了SDN編程語言P4。這是一種聲明式編程語言,通過P4開發者可以靈活地定義各種協議報文的格式。它主要用于編寫程序以下達指令給數據轉發平面的設備(如交換機、網卡、防火墻、過濾器等)處理數據分組。通過P4語言,可以很大程度上提升網絡的可編程性。無論是在軟件設計(編程、調試、代碼覆蓋、模塊檢查等)方面,還是在網絡系統的設計上,都給用戶帶來了很多好處。P4有三大特性。①域可重構性:P4支持網絡工程師在已經部署交換機后再更改交換機處理數據分組的方式。②協議無關:P4編程定義如何處理數據分組的轉發,交換機不應該綁定任何網絡協議。③目標無關:網絡工程師通過P4能夠描述從高性能硬件到軟件交換機的包處理功能。

謝謝!

SDN仿真環境01配置Linux環境02Mininet介紹03Mininet實驗VMware簡介VMwareWorkstation是美國VMware公司出品的一個用于運行虛擬機的軟件。它可以在一臺計算機上同時運行多個操作系統,包括Windows2003、WindowsXP、Windows7、Windows8、Windows10、Linux等。利用它,你可以在一臺計算機上將硬盤和內存的一部分“拿出來”并虛擬出若干臺計算機,虛擬的每臺計算機可以運行單獨的操作系統而互不干擾。這些“新”計算機各自擁有自己獨立的CMOS、硬盤和操作系統,你可以像使用普通計算機一樣對它們進行分區、格式化、安裝系統和應用軟件等操作,還可以將這幾個“計算機”聯成一個網絡。在虛擬系統崩潰之后可直接刪除,并不影響本機系統,本機系統崩潰后也不影響虛擬系統,可以下次重裝后再加入以前做的虛擬系統。VMuareWorkstation也是唯一能在Windows和Linux主機平臺上運行的虛擬計算機軟件。Ubuntu簡介Ubuntu是一個以桌面應用為主的開源GNU/Linux操作系統。Ubuntu基于DebianGNU/Linux,支持x86、amd64(x64)和PPC架構,由全球化的專業開發團隊(Canonical公司)打造。Ubuntu基于Debian和GNOME,而從11.04版起,Ubuntu發行版放棄了GNOME,改為Unity。與Debian的不同之處在于,它每6個月會發布一個新版本。Ubuntu具有龐大的社區力量,用戶可以方便地從社區獲得幫助。Ubuntu對GNU/Linux的普及特別是桌面普及做出了巨大貢獻,由此使更多人可以共享開源的成果。在VMwareWorkstation上安裝Ubuntu操作系統步驟1:運行VMware,創建新的虛擬機,選擇“典型”,轉至下一步。步驟2:選擇“稍后安裝操作系統”,轉至下一步。步驟3:選擇“Linux”→“Ubuntu64位”,轉至下一步。步驟4:填寫虛擬機名稱,選擇保存位置,轉至下一步。步驟5:磁盤容量使用默認值,轉至下一步,單擊“完成”。步驟6:單擊編輯虛擬機設置。步驟7:在CD/DVD右側的選項中,選擇“使用ISO映像文件”,單擊“瀏覽”,選擇下載好的Ubuntu映像文件,單擊“確定”。步驟8:單擊“開啟此虛擬機”,進入安裝。推薦使用英文,選擇“InstallUbuntu”。步驟9:直接單擊“Continue”。步驟10:使用Ubuntu默認的分區,不自己進行分區,分別單擊“InstallNow”和“Continue”。步驟11:選擇你的所在地,選擇語言鍵盤,填寫用戶名、主機名和密碼。步驟12:Ubuntu開始安裝,完成后會提示重啟,單擊“RestartNow”。步驟13:Ubuntu安裝完成。01配置Linux環境02Mininet介紹03Mininet實驗Mininet是由斯坦福大學基于LinuxContainer架構開發的一個進程虛擬化網絡仿真工具,可以創建一個含有主機、交換機、控制器和鏈路的虛擬網絡,其交換機支持OpenFlow,具有高度靈活的自定義軟件定義網絡。Mininet是什么相較于仿真器:啟動速度快擴展性大帶寬提供多方便安裝、易使用相較于模擬器:運行真實的代碼容易連接真實網絡相較于硬件測試床:便宜快速重新配置及重新啟動Mininet軟件安裝Mininet安裝主要有三種方法(/download/):

使用裝有Mininet的虛擬機github獲取安裝Mininet源代碼Mininet文件包安裝Mininet命令圖譜網絡構建啟動參數內部交互命令Mininet--topo--custom--switch--controller--mac…外部運行參數dumpnetnodeslinksdpctliperf…-c清除配置信息-h幫助01配置Linux環境02Mininet介紹03Mininet實驗實驗內容:利用Mininet的可視化應用完成自定義拓撲的創建。實驗目的:了解交換機的MAC地址學習過程;了解交換機對已知單播、未知單播和廣播幀的轉發方式。Mininet實驗——可視化應用Mininet可視化Miniedit可視化,直接在界面上編輯任意拓撲,生成python自定義拓撲腳本,簡單方便。Mininet2.2.0+內置miniedit。在mininet/examples下提供miniedit.py腳本,執行腳本后顯示可視化界面,可自定義拓撲及配置屬性。Miniedit啟動自定義創建拓撲,設置設備信息運行拓撲并生成拓撲腳本Miniedit三步走實驗內容:通過Mininet模擬二層交換機和兩個主機,通過兩個主機通信來了解交換機MAC地址學習過程。實驗目的:了解交換機的MAC地址學習過程;了解交換機對已知單播、未知單播和廣播幀的轉發方式。Mininet實驗——MAC地址學習初始狀態交換機A、B的MAC表均為空MAC地址學習過程分析在11上ping33主機之后,MAC地址表分別為在33上ping11主機之后,MAC地址表分別為

謝謝!

SDN數據平面01數據平面簡介02開源交換機OpenvSwitch03OpenvSwitch實驗傳統交換設備架構傳統網絡的設計遵循OSI的7層模型,交換設備包括了工作在第二層(數據鏈路層)的交換機和工作在第三層(網絡層)的路由器。交換機可以識別數據分組中的MAC地址,并基于MAC地址來轉發數據分組;路由器可以識別數據分組中的IP地址,并基于IP地址來轉發數據分組和實現路由。傳統交換設備由控制平面和數據平面組成。傳統交換設備功能傳統交換設備的控制平面和數據平面在物理上是緊密耦合的,邏輯上是相互分離的。控制平面通過網絡操作系統和底層軟件,生成、維護交換設備內部的轉發表,并實現對網絡的配置管理。數據平面通過硬件轉發芯片對數據分組進行高速轉發,基本功能主要包括轉發決策、背板轉發以及輸出鏈路調度等幾個方面。轉發決策:在端口收到數據分組時,將數據分組中的目的地址與設備自身存儲的MAC地址表或路由表進行匹配,從而確定數據分組轉發的目的端口背板轉發:交換機通過背板把各個端口連接起來,數據分組經轉發決策后,由背板從入端口轉發到目的端口。輸出鏈路調度:各個端口針對接收線路和發送線路各有一個緩沖隊列。當數據分組發往交換機時,發出的數據分組暫存在交換機的接收隊列中,然后等待下一步處理。如果交換機決定把接收的數據分組發送給某一終端,這時候交換機把要發送的數據分組發往該接收終端所在端口的發送隊列,然后發送到接收終端,如果終端忙則一直存儲在發送隊列中。傳統交換設備架構與SDN數據平面架構傳統網絡的數據平面和控制平面在物理上是完全緊密耦合的,分布在各個單獨的交換設備中,并只支持制定好的網絡標準協議,用戶無法部署新的網絡策略。加之各廠商的設備接口均對外封閉,用戶亦無法自行管理和調用網絡設備,在使用廠商的設備時不得不同時依賴其軟件和服務,網絡相對僵化,缺乏足夠的靈活性。不同于傳統交換設備,SDN將交換設備的數據平面與控制平面完全解耦,所有數據分組的控制策略由遠端控制器通過南向接口協議下發,網絡的配置管理也同樣由控制器完成,這大大提高了網絡管控的效率。交換設備只保留數據平面,專注于數據分組的高速轉發,降低了交換設備的復雜度。傳統交換設備架構缺點SDN數據平面架構優勢SDN交換設備架構SDN中交換設備不再有二層交換機、路由器、三層交換機之分。SDN交換設備架構如下圖所示,SDN交換設備的基本功能仍然包括轉發決策、背板轉發、輸出鏈路調度,但在功能的具體實現上與傳統網絡的交換設備有所不同。SDN交換設備的基本功能轉發決策:SDN交換設備首先用流表代替了傳統網絡設備二層和三層轉發表,該流表中的每個表項都代表了一種流解析以及相應的處理動作。數據分組進入SDN交換機后,先與流表進行匹配查找,若與其中一個表項匹配成功,則執行相應的處理動作;若無匹配項則上交控制器,由其決定處理決策。背板轉發:就目前的網絡設備來說,設備的速率瓶頸主要還是交換芯片,背板提供滿足要求的交換速率并不難。輸出鏈路調度:SDN交換機對QoS的支持主要有基于流表項設置報文入隊列、根據Meter進行限速、基于Counter進行計費、基于Group的Select功能進行隊列調度等。背板轉發和輸出鏈路調度功能沒有給SDN交換機帶來太大挑戰,但轉發決策卻給SDN交換機在技術實現上帶來了很大的難題。SDN硬件交換機基于ASIC芯片的品牌交換機①NECIP8800系列交換機②IBMRackSwitchG8264交換機③HPSDN系列交換機④Arista7150S系列和7500E交換機⑤DCNCS16800系列交換機⑥CiscoNexus9000系列交換機⑦JuniperEX9200系列交換機⑧H3CS12500系列交換機⑨博科ICX7450交換機基于ASIC芯片的白盒交換機①盛科V330、V350、V580白盒交換機②Pica8白盒交換機系列③基于NP的SDN交換機④基于NetFPGA的SDN交換機SDN軟件交換機由于當前OpenFlow標準仍在不斷完善,支持OpenFlow標準的硬件交換機較少。相對于硬件交換機,在眾多SDN軟件交換機中,OpenFlow軟件交換機成本更低、配置更為靈活,其性能基本可以滿足中小規模實驗網絡的要求,因此OpenFlow軟件交換機是當前進行創新研究、構建試驗平臺以及建設中小型OpenFlow網絡的首選。(1)OpenvSwitch(2)Pantou(3)Indigo(4)LINC(5)OpenFlowClick(6)OF1.3SoftSwitch01數據平面簡介02開源交換機OpenvSwitch03OpenvSwitch實驗SDN數據平面OpenvSwitch是一個優秀的開源軟件交換機,支持主流的交換機功能,比如二層交換、網絡隔離、QoS、流量監控等,而其最大的特點就是支持openflow,openflow定義了靈活的數據包處理規范。為用戶提供L2-L7包處理能力。OVS支持多種Linux虛擬化技術,包括Xen、KVM以及VirtualBox。此外,OVS支持硬件交換機。OVS支持豐富的特性,如下:OpenvSwitch的典型組網OpenvSwitch具備很強的靈活性,可以在管理程序中作為軟件交換機運行,也可以直接部署到硬件設備上作為控制層。利用其作為SDN的基礎設施層轉發設備,可以大幅降低部署成本,還可以提高網絡的靈活性以及擴展性。OpenvSwitch系統架構OpenvSwitch系統架構分為內核空間(KernelSpace)、用戶空間(UserSpace)、配置管理層(NetworkDevice)這3部分。其中,內核空間包含OVS模塊和流表,用戶空間運行著OVS的守護進程(ovs-vswitchd)和數據庫(ovsdb-server),配置管理層包括ovs-dpctl、ovs-appctl、ovs-vsctl和ovs-ofctl等OpenvSwitch各模塊簡要介紹ovs-vswitchd:主要模塊,實現vSwitch的守候進程(Daemon),包括一個支持流交換的DVS內核模塊。ovsdb-server:輕量級數據庫服務器,保存配置信息,ovs-vswitchd通過這個數據庫獲取配置信息。ovs-dpctl:用來配置vSwitch內核模塊的一個工具。ovs-appctl:一個向ovs-vswtichd的守護進程發送命令的程序。ovs-vsctl:主要獲取或更改ovs-vswitchd的配置信息,此工具操作時會更新ovsdb-server中的數據庫。OpenvSwitch(datapath):內核模塊,根據流表匹配結果做相應處理。ovs-ofctl:查詢和控制OpenFlow虛擬交換機的流表。01數據平面簡介02開源交換機OpenvSwitch03OpenvSwitch實驗OVS的安裝部署實驗內容:了解OpenvSwitch的版本信息以及安裝需求,實現源代碼安裝OpenvSwitch。配置、運行OpenvSwitch,驗證安裝是否正確。實驗目的:了解OpenvSwitch的背景、功能和基本組成結構。掌握安裝部署OpenvSwitch的方法,能夠獨立解決安裝部署中遇到的問題。OVS的安裝部署步驟1解壓源文件,生成Makefile#cd/home/openlab/lab#tar-zxvfopenvswitch-2.3.2.tar.gz#cdopenvswitch-2.3.2#./configure--with-linux=/lib/modules/3.13.0-24-generic/build步驟2編譯安裝OpenvSwitch#make#makeinstall步驟3配置OpenvSwitch#insmod./datapath/linux/openvswitch.ko#mkdir-p/usr/local/etc/openvswitch#ovsdb-toolcreate/usr/local/etc/openvswitch/conf.db/usr/local/share/openvswitch/vswitch.ovsschema#ovsdb-server--remote=punix:/usr/local/var/run/openvswitch/db.sock--remote=db:Open_vSwitch,Open_vSwitch,manager_options--private-key=db:Open_vSwitch,SSL,private_key--certificate=db:Open_vSwitch,SSL,certificate--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert--pidfile--detach步驟4初始化數據庫并啟動#ovs-vsctl--no-waitinit#ovs-vswitchd--pidfile--detachOVS的網橋管理實驗內容:學習網橋的基本理論知識。學習常用的網橋命令,進行網橋和端口的添加、刪除、查看等操作。實驗目的:了解網橋(Bridge)的基本概念以及工作原理。掌握網橋相關命令的基本使用方法。OVS的網橋管理執行以下命令添加名為br0的網橋。#ovs-vsctladd-brbr0執行以下命令,列出OpenvSwitch中所有網橋,如下所示。#ovs-vsctllist-br執行以下命令,列出掛接到網橋br0上的所有網卡,如下所示。#ovs-vsctllist-portsbr0執行以下命令,列出掛接到eth0網卡上的所有網橋,如下所示。#ovs-vsctlport-to-breth0執行以下命令,查看OpenvSwitch的網絡狀態,如下所示。#ovs-vsctlshow步驟1添加網橋端口執行以下命令,將物理網卡掛接到網橋br0上,如下所示。#ovs-vsctladd-portbr0eth0說明:port和bridge是多對一的關系,也就是說一個網橋上可以掛接多個物理網卡。OVS的網橋管理步驟2刪除網橋端口執行以下命令,刪除掛接到網橋br0上的網卡eth0。#ovs-vsctldel-portbr0eth0執行以下命令,查看OpenvSwitch的網絡狀態,如下所示。#ovs-vsctlshow由上可知,刪除et0后網橋br0依舊存在。執行如下命令,刪除網橋br0,并進行確認,如下所示。#ovs-vsctldel-brbr0說明:如果不刪除eth0直接刪除br0,br0及掛接到br0上的端口會被一并刪除。

OVS的流表管理實驗內容:學習OpenvSwitch流表的概念、作用及常用命令。進行流表的添加、查看等操作。實驗目的:了解OpenvSwitch流表的基本概念。掌握流表的基本命令及其使用方法。OVS的流表管理以root用戶登錄交換機,執行以下命令,查看鏡像中原有的網橋,如下所示。#ovs-vsctlshow執行以下命令,刪除當前網橋,并進行確認,如下所示。#ovs-vsctldel-brbr-sw#ovs-vsctlshow執行以下命令,添加網橋,并查看虛擬交換機的基本信息,如下所示。#ovs-vsctladd-brbr0#ovs-ofctlshowbr0OVS的流表管理執行以下命令,查看虛擬交換機上初始流表信息,如下所示。#ovs-ofctldump-flowsbr0執行以下命令,添加一條流表項,設置流表項生命周期為1000s,優先級為17,入端口為3,動作是output:2。#ovs-ofctladd-flowbr0idle_timeout=1000,priority=17,in_port=3,actions=output:2說明:這條流表項的作用是將端口3接收到的數據包從端口2輸出。

執行以下命令,查看交換機上所有流表信息,如下所示。#ovs-ofctldump-flowsbr0執行以下命令,刪除入端口為3的的流表項,刪除后,再次查看流表信息,如下所示。#ovs-ofctldel-flowsbr0in_port=3#ovs-ofctldump-flowsbr0OVS的QoS設置及端口映射實驗內容:利用OpenvSwitch設置端口速率,通過對比主機間的吞吐量,直觀地展示出利用OpenvSwitch配置QoS的效果。學習端口映射的作用,利用OpenvSwitch設置端口映射。實驗目的:了解QoS、端口映射等相關網絡知識。掌握利用OpenvSwitch調控網絡性能。OVS的QoS設置在主機1上執行以下命令設置eth0吞吐量為100±50Mbps。#ovs-vsctlsetinterfaceeth0ingress_policing_rate=100000#ovs-vsctlsetinterfaceeth0ingress_policing_burst=50000說明:利用ingress_policing_rate設置eth0端口最大速率(kbps),ingress_policing_burst設置最大浮動速率(kbps)。在主機2上執行以下命令啟動客戶端,測量服務器與主機之間的吞吐量,如下所示。#netperf-tUDP_STREAM-H-p9991由圖可知,端接收速率明顯降低。OVS的端口映射執行以下命令查看端口uuid。由于端口比較多,用|more分頁顯示。#ovs-vsctllistport|moreeth2uuid是:dff77057-e7a8-43ff-95f7-8c6e3308fd87,如下所示。

eth1uuid是:2e9edacd-f52a-4855-83b8-3839891b546c,如下所示。OVS的端口映射eth3uuid是:679aefab-88ba-44da-a1f7-0324a5790759,如下所示。執行以下命令將發往eth1端口和從eth2端口發出的數據包全部定向到eth3端。#ovs-vsctl--setbridgebr-swmirrors=@m----id=@mcreatemirrorname=mymirrorselect-dst-port=2e9edacd-f52a-4855-83b8-3839891b546cselect-src-port=dff77057-e7a8-43ff-95f7-8c6e3308fd87output-port=679aefab-88ba-44da-a1f7-0324a5790759

謝謝!

SDN控制平面

01控制平面簡介02開源控制器OpenDaylight0304OpenDaylight實驗——安裝和配置OpenDaylight實驗——使用界面下發流表SDN控制器層次化架構基本功能層模塊管理事件機制任務日志資源數據庫網絡基礎服務層交換機管理主機管理拓撲管理路由、轉發策略虛擬網管理控制器是SDN的重要組成部分,其設計與實現是SDN最為關鍵的技術環節之一,因此理解控制器的架構對于深入研究SDN技術是極其重要的。SDN控制器業務編排SDN控制器需要協調一系列分布在各下級平臺的相關資源,并且有時需要保持事件完整性,通常將這個過程稱為編排(Orchestration)將n層的節點看作服務器,n?1層的節點看作客戶端。一個服務器控制多個客戶端的情況都可以看作編排。例如,應用可以編排多個控制器,超級控制器(SuperController,SC)可以編排多個域內控制器(DomainController,DC),DC能夠編排多個設備。目前SDN對編排還沒有正式的定義。根據ONF的理解,SDN業務編排暫時可以定義為一個以最優方式滿足競爭性需求的資源分配的持續過程。這里的“最優”至少可以包括優先化用戶服務等級協定(ServiceLevelAgreement,SLA)保障和一些要素,包括用戶端點位置、地理或拓撲距離、延遲、聚合或細粒度的負載、經濟開銷、資源共享或親和度。這里的“持續”表示環境和服務需求隨著時間推移在不斷變化,所以編排是一個持續的、多維的優化反饋回路。SDN控制器評估要素網絡虛擬化對OpenFlow的支持網絡功能可擴展性性能控制器供應商集中管理和可視化網絡安全性可靠性網絡可編程性01控制平面簡介02開源控制器OpenDaylight0304OpenDaylight實驗——安裝和配置OpenDaylight實驗——使用界面下發流表OpenDaylight概述OpenDaylight項目在2013年年初由Linux協會聯合業內18家企業(包括Cisco、Juniper、Broadcom等多家傳統網絡公司)創立,旨在推出一個開源的通用SDN平臺。OpenDaylight項目的設計目標是降低網絡運營的復雜度,擴展現有網絡架構中硬件的生命期,同時能夠支持SDN新業務和新能力的創新。OpenDaylight開源項目希望能夠提供開放的北向API,同時支持包括OpenFlow在內的多種南向接口協議,底層支持傳統交換機和OpenFlow交換機。OpenDaylight擁有一套模塊化、可插拔且極為靈活的控制器,能夠被部署在幾乎所有支持Java的平臺上。目前,OpenDaylight的基本版本已經實現了傳統二、三層交換機的基本轉發功能,并支持任意網絡拓撲和最優路徑轉發。OpenDaylight總體架構OpenDaylight主要模塊功能模塊名功能SAL控制器模塊化設計的核心,支持多種南向接口協議,屏蔽了協議間差異,為上層模塊和應用提供一致性的服務拓撲管理負責管理節點、連接、主機等信息,并負責拓撲計算統計管理負責統計各種狀態信息主機追蹤負責追蹤主機信息,記錄主機的IP地址、MAC地址、VLAN以及連接交換機的節點和端口信息。該模塊支持ARP請求發送及ARP消息監聽,支持北向接口的主機創建、刪除及查詢FRM(ForwardingRulesManager,轉發規則管理)負責管理流規則的增加、刪除、更新、查詢等操作,并在內存數據庫中維護所有安裝到網絡節點的流規則信息,當流規則發生變化時負責維護規則的一致性交換機管理負責維護網絡中節點、節點連接器、接入點屬性、三層配置、Span配置、節點配置、網絡設備標識ARP處理負責處理ARP報文SAL框架介紹SAL服務基于插件提供的特性來構建,上層服務請求被SAL映射到對應的插件,然后采用適合的南向接口協議與底層設備進行交互。各個插件之間相互獨立并與SAL松耦合。SAL支持上層不同的控制功能模塊,包括交換機管理、主機檢測、統計管理、切片管理、拓撲管理和轉發管理等。OpenDaylight代碼結構OpenDaylight控制器Lithium-SR3版本代碼結構:OpenDaylight系統架構OpenDaylight代碼解析使攻擊者非法獲取主機的系統級訪問權限,執行任意指令。使攻擊者非法獲取主機的系統級訪問權限,執行任意指令。控制器集群對于控制器來說,集群不是功能,而是控制器必需的基礎框架。集群作為其他模塊正常工作的重要保障,使得控制器不再是一個單點故障點,這就需要控制器有災難恢復機制和控制器實例之間數據一致性保障。MD-SALDatastore在OpenDaylight中,基于MD-SAL的應用將數據存儲(DataStore)分為兩種類型:一種類型稱為配置,在NETCONF中以config:configuration模塊來定義;另一種類型稱為狀態,在NETCONF中以config:stats模塊來定義。MD-SAL實例源碼分析Toaster應用一般由以下幾個模塊組成:應用模型模塊、應用服務模塊、應用提供模塊、應用配置模塊、應用組建模塊、集成測試模塊。01控制平面簡介02開源控制器OpenDaylight0304OpenDaylight實驗——安裝和配置OpenDaylight實驗——使用界面下發流表實驗介紹實驗內容:采用兩種不同的方式啟動Karaf控制臺,對比兩種方式的區別。安裝OpenDaylight組件,掌握一系列相關的安裝、查詢命令。安裝后進行簡單的驗證,確保OpenDaylight安裝正確。實驗目的:了解OpenDaylight的背景和基本架構。掌握安裝、部署OpenDaylight的方法,能夠獨立解決實驗過程中遇到的問題。實驗拓撲實驗拓撲包括一個控制器和一臺主機設備:OpenDaylight的安裝直接啟動Karaf控制臺后臺啟動Karaf控制臺在Karaf控制臺查看日志安裝OpenDaylight組件驗證OpenDaylight基本功能卸載OpenDaylight組件OpenDaylight配置配置TCP監聽端口配置Web服務端口配置Java環境01控制平面簡介02開源控制器OpenDaylight0304OpenDaylight實驗——安裝和配置OpenDaylight實驗——使用界面下發流表實驗介紹實驗內容:比較使用YANGUI下發流表的方法,與直接在交換機中通過命令下流表的方法,總結兩者的異同點。通過YANGUI下發流表控制主機之間的連通性,并且利用scapy工具進行測試驗證。分別基于OpenFlow1.0協議和OpenFlow1.3協議下發流表,經過下流表的過程了解單級流表和多級流表的概念。實驗目的:掌握YANGUI下發流表的方式,了解YANGUI的功能特點,以及其在OpenDaylight架構中所起的作用。通過下發流表的過程,梳理出數據包處理的簡單流程。并且進一步了解單級流表和多級流表的處理過程。實驗拓撲實驗拓撲包括一個控制器,一個交換機和三臺主機設備:基于OpenFlow1.0下發流表下發流表:檢查流表是否已經成功下發:基于OpenFlow1.3下發流表檢查流表是否已經成功下發:下發流表:

謝謝!

SDN協議接口

01南向接口協議02北向接口協議03

使用OpenFlow協議建立連接04

使用Postman下發流表南向接口協議概述SDN控制平面通過南向接口協議對數據平面進行控制和管理,包括鏈路發現、拓撲管理、策略制定、表項下發等。南向接口協議在完成控制平面與數據平面間交互的同時,也需要完成部分管理配置功能。SDN南向接口協議有很多種,其中發展較為成熟、使用較為廣泛的交互協議是OpenFlow協議,較為典型的網絡設備管理協議是NETCONF協議,本節將分別對這兩種協議進行詳細介紹。OpenFlow協議架構OF交換機通過OpenFlow協議與控制器通信。流表、安全通道與OpenFlow協議是v1.0版本中最為核心的概念。流表是一些針對特定流的策略的集合,負責數據分組的查詢和轉發,主要包含數據分組的匹配特征和處理方法。OF交換機通過安全通道與控制器相連,安全通道上傳輸的就是OpenFlow協議消息,負責控制器與交換機間的交互。OpenFlow流表項結構OpenFlowv1.0流表項結構OpenFlow的流表項主要包括3個部分:分組頭域(HeadField):用于數據分組匹配;計數器(Counter):用于保存與條目相關的統計信息;動作表:用于匹配表項后對數據分組執行動作。OpenFlow分組頭域分組頭域是數據分組匹配流表項時的參考依據,作用類似于傳統交換機進行二層交換時匹配數據分組的MAC地址,也類似于路由器進行三層路由時匹配的IP地址。如圖5-3所示,在OpenFlowv1.0中,流表項的分組頭域包括了12個字段,協議稱其為12元組(12-Tuple),它提供了1~4層的網絡控制信息。OpenFlow12元組字段字節數適用范圍說明入端口未規定所有數據分組數據分組進入交換機的端口號,從1開始以太網源地址6B有效端口收到的數據分組無以太網目的地址6B有效端口收到的數據分組無以太網幀類型2B有效端口收到的數據分組OF交換機必須支持由IEEE802.2+SNAP或OUI規定的類型。使用IEEE802.3而非SNAP的幀類型為0x05FFVLAN標識12bit幀類型為0x8100的數據分組VLANIDVLAN優先級3bit幀類型為0x8100的數據分組VLANPCP字段源IP地址4BARP與IP數據分組可劃分子網目的IP地址4BARP與IP數據分組可劃分子網IP數據分組類型1BARP與IP數據分組對應ARP中opcode字段的低字節服務類型ToS6bitIP數據分組高6bit為ToS傳輸層源端口號/ICMP類型2BTCP/UDP/ICMP分組當數據分組類型是ICMP時,低8bit用于標識ICMP類型傳輸層目的端口號/ICMP碼值2BTCP/UDP/ICMP分組當數據分組類型是ICMP時,低8bit用于標識ICMP碼值OpenFlowv1.0中12元組詳細信息:OpenFlow計數器類型計數器字節數/B每張表有效表項4查表的數據分組8匹配的數據分組8每條流表項接收數據分組8接收字節8生存時間(單位為s)4生存時間(單位為ns)4每個端口接收數據分組8傳送數據分組8接收字節8傳送字節8接收出現的錯誤8傳送出現的錯誤8接收后丟棄的分組8傳送時丟棄的分組8接收的幀排列錯誤8溢出錯誤8循環冗余校驗(CRC)錯誤8幀沖突8每個隊列傳送的數據分組8傳送的字節8溢出錯誤8流表項中的計數器被用來統計流的一些信息,例如查找次數、收發分組數、生存時間等。OpenFlow針對每張表、每條流表項、每個端口、每個隊列也都會維護它們相應的計數器。OpenFlow動作表動作表指定了OF交換機處理相應流的行為。動作表可以包含0個或多個動作,交換機會按照這些動作的先后順序依次執行。如果其中不包含轉發(Forward)動作,數據分組就會被丟棄掉;如果包含轉發動作,數據分組會得到相應的轉發處理。類型名稱說明必選動作轉發交換機必須支持將數據分組轉發給設備的物理端口及下面的虛擬端口。ALL:數據分組復制為多份轉發到所有端口(不包括入口,不考慮最小生成樹)。CONTROLLER:將數據分組封裝為Packet-in消息并轉發給控制器。LOCAL:轉發給本地網絡棧。TABLE:對控制器Packet-out數據分組執行流表的匹配。IN_PORT:把數據分組從它的入端口發回去丟棄沒有明確指明處理行動的表項,匹配的所有數據分組默認被丟棄可選動作轉發NORMAL:按照OF交換機所支持的傳統交換機的二層或三層策略進行轉發。FLOOD:通過最小生成樹從出口泛洪發出,但不包括入口入隊將分組轉發到某個端口上已配置好的隊列中,隊列的配置OpenFlow無法實現修改域交換機將修改數據分組的分組頭,可以為12元組中的任意字段OpenFlow流表的匹配在OpenFlowv1.0中,數據分組是依照12元組進行匹配的。當數據分組進入OF交換機后,就會將它的12元組解析出來,并將該12元組與流表中各個表項的分組頭域中的12元組對照,以決定后續的動作,整個流程如下圖所示。OpenFlow安全通道OpenFlow安全通道負責承載OpenFlow協議的消息,不管是流表的下發還是其他的控制消息,都要經過這條通道。這部分流量屬于OpenFlow網絡的控制信令,不同于數據平面的網絡流,它不需要經過交換機流表的檢查。為了保證這部分流量安全可靠的傳輸,OpenFlowv1.0規定通道建立在TCP連接之上,采用安全傳輸層協議(TransportLayerSecurity,TLS)進行加密。OpenFlow安全通道的建立OpenFlow安全通道的維護OpenFlow協議消息OpenFlow協議消息——Controller-to-Switch子類型功能描述Features安全通道建立以后,控制器會立即發送Features-Request消息給交換機,以獲取交換機支持的相關特性。Configuration控制器可以通過Set-Config消息設置交換機的配置信息,通過Get-Config消息查詢配置信息,交換機需要通過Config-Reply消息做出應答。Modify-State控制器通過Port-mod消息管理交換機的端口狀態,通過Flow-mod消息增加或者刪除交換機的流表項。Read-StateOpenFlow會維護每張表、每個流表項、每個端口、每個隊列相應的計數器,當控制器需要統計信息時,還會向交換機發送相關的Request消息,請求相關信息。Send-Packet很多情況下,控制器需要發送消息到數據平面,這時可以通過Packet-out消息封裝好數據分組并傳給OF交換機,并在該消息中指定特定的動作表,指導交換機如何處理這個數據分組,而不再進行流表的匹配。Barrier控制器通過Barrier-Request消息確保之前下發的消息已經被交換機執行完。Controller-to-Switch(控制器—交換機):這類消息由控制器發起。Asynchronous消息子類型功能描述Packet-in收到的數據分組如果在流表中沒有匹配的流表項,或者匹配的流表項中給出了轉發動作,但動作中指定端口為CONTROLLER時,OF交換機會封裝Packet-in消息,把這個數據分組上交給控制器。Flow-Removed交換機中的流表項因為超時或修改等原因被刪除掉時,會觸發Flow-Removed消息,觸發的前提是在下發這條流表項時flags字段置位了OFPFF_SEND_FLOW_REM。Port-Status交換機端口狀態發生變化時(如Up/Down),會觸發Port-Status消息報告端口的信息以及發生的狀態變化(如Add、Delete或者Modify)。Error交換機通過Error消息來通知控制器發生錯誤的信息。Asynchronous(異步):這類消息由交換機主動發起。用來將網絡事件或交換機狀態的變化更新到控制器。Symmetric消息子類型功能描述Hello認證通過后,雙方通過握手消息(Hello)建立安全通道。Echo雙方均可以主動向對方發出Echo-Request消息,接收者需要回復Echo-Reply。該消息用來“保活”,也可以用來測量延遲。VendorVendor是為未來的協議版本預留的,以便允許OF交換機廠商提供額外的OpenFlow功能。Symmetric(對稱):這類消息可由控制器發起,也可以由OF交換機發起。OpenFlow協議的演進OpenFlow協議由開放網絡基金會(ONF)負責維護,OpenFlowv1.0作為第一個較為成熟的版本,于2009年12月發布,隨后陸續地發布了幾個版本,協議仍在不斷地演進。OpenFlow協議面臨的問題使攻擊者非法獲取主機的系統級訪問權限,執行任意指令。使攻擊者非法獲取主機的系統級訪問權限,執行任意指令。協議消息類型尚不完善SDN是一種革命性的技術,雖然各個版本在不斷豐富消息類型,但整體來看OpenFlow在這方面仍然存在很多的缺陷,控制平面的安全性與擴展性問題SDN是集中式控制思想的產物。當網絡規模超過一定限度時,單點控制會成為SDN中的瓶頸,而且其安全性也存在很大隱患。數據平面的設備性能問題OpenFlow將網絡協議棧扁平化,對轉發設備而言,協議棧各層次不再具有明確的界限,各個網絡字段都可作為流表中的匹配域,還可以進行任意字段的組合。硬件設備為了適應這種通用的匹配方式,需要付出高昂的代價,這極大地限制了流表的規模,也就限制了SDN的規模。NETCONF協議概述NETCONF定義了一種簡單的管理網絡設備的機制,通過該機制可以在設備中檢索配置數據信息,使用相應的軟件向設備上傳新的配置數據。通過NETCONF協議,網絡設備可以提供規范的應用程序接口(ApplicationProgrammingInterface,API),應用程序可以使用這個簡單的API來發送和接收完整或部分的配置數據。NETCONF使用遠程過程調用(RemoteProcedureCall,RPC)方式促進客戶端和服務器之間的通信。客戶端通常作為網絡管理器的一部分運行腳本或應用程序。服務器通常是網絡設備。客戶端使用可擴展標記語言(ExtensibleMarkupLanguage,XML)對RPC進行編碼,并使用安全的、面向連接的會話將其發送到服務器。服務器以XML編碼的回復進行響應。請求和響應的具體內容在XMLDTDs或XML模式中進行了詳細的描述。NETCONF協議分層架構NETCONF協議采用了分層協議模型,初始的配置數據通過每一層對應的協議進行包裝,然后向下一層提供相關的服務。采用這種分層架構能夠將NETCONF復雜的整體拆分成相對獨立的幾層,讓每層都只專注于協議的某個方面,將各層內部發生修改之后對其他層的影響降到最低,使得整個過程實現起來更加簡單。NETCONF協議分層介紹NETCONF協議在邏輯上可以劃分為4層:層面說明第一層:傳輸層面向連接;身份認證、完整性和機密性;強制性運輸協議。第二層:消息層NETCONF協議采用基于RPC的通信模式。NETCONF協議使用<rpc>和<rpc-reply>元素來提供與傳輸協議相獨立的NETCONF請求和響應,來完成對網絡設備的配置管理工作。第三層:操作層NETCONF協議在操作層中提供了一系列低級別操作來管理設備配置和檢索設備狀態信息,而設備狀態信息一般存放在數據庫中,這些操作提供了檢索、配置、復制和刪除配置數據存儲的功能。第四層:內容層內容層由配置數據和通知數據組成。在NETCONF的標準規定中并沒有對內容層進行標準化,但是在RFC6020標準中提出的YANG數據建模語言被應用于NETCONF數據模型和協議操作。01南向接口協議02北向接口協議03

使用OpenFlow協議建立連接04

使用Postman下發流表北向接口協議概述北向接口是提供給運營商或者用戶接入和管理的接口,用戶通過控制器提供的北向接口定義和開發應用層中的網絡管理應用程序。與南向接口領域已經有OpenFlow等多種國際標準不同,北向接口方面還缺少業界公認的標準。其主要原因是北向接口直接為業務應用服務,其設計需密切聯系業務應用需求,具有多樣化的特征,很難統一。本節針對RESTfulAPI這一北向接口進行介紹。RESTfulAPI簡介RESTfulAPI指的就是REST風格的應用程序接口。最初是由RoyFielding(參與設計HTTP)在其博士畢業論文中提出。REST的全稱是RepresentationalStateTransfer,可以翻譯為“描述性狀態遷移”。REST主要有以下幾個特點:資源統一資源標識符統一接口無狀態RESTfulAPI調測工具Postman介紹Postman是Google開發的一款功能強大的網頁調試、發送網頁HTTP請求,并能運行測試用例的Chrome插件。其主要功能:(1)模擬各種HTTP請求(2)Collection功能(測試集合)(3)人性化的Response整理(4)內置測試腳本語言(5)設定變量與環境01南向接口協議02北向接口協議03使用OpenFlow協議建立連接04

使用Postman下發流表實驗介紹實驗內容:學習OpenFlow交換機和控制器的配置方式。使用Wireshark抓包并進行分析,學習OpenFlow交換機與控制器的消息交互過程。實驗目的:了解OpenFlow交換機與控制器建立TCP連接的過程。掌握配置安全通道中OpenFlow版本的方法。理解OpenFlow交換機和控制器的消息交互過程。實驗拓撲實驗拓撲包括一個控制器和一臺主機設備:OpenFlow連接建立交互流程1、控制器與OpenFlow交換機通過TCP“三次握手”,建立有效的連接。其中,控制器一端的端口號為6633。2、控制器與OpenFlow交換機之間相互發送Hello消息,用于協商雙方的OpenFlow版本號。在雙方支持的最高版本號不一致的情況下,協商的結果將以較低的OpenFlow版本為準。如果雙方協商不一致,還會產生Error消息。OpenFlow連接建立交互流程3.控制器向OpenFlow交換機發送FeaturesRequest消息,請求OpenFlow交換機上傳自己的詳細參數。OpenFlow交換機收到請求后,向控制器發送FeaturesReply消息,詳細匯報自身參數,包括支持的buffer數目、流表數以及Actions等。4.控制器通過SetConfig消息下發配置參數,然后通過GetConfigRequest消息請求OpenFlow交換機上傳修改后的配置信息。OpenFlow交換機通過GetConfigReply消息向控制器發送當前的配置信息。5.控制器與OpenFlow交換機之間發送Packet_out、Packet_in消息,通過Packet_out中內置的LLDP包,進行網絡拓撲的探測。6.控制器與OpenFlow交換機之間通過發送EchoRequest、EchoReply消息,保證二者之間存在有效連接,避免失聯。OpenFlowv1.3交互流程分析01南向接口協議02北向接口協議03

使用OpenFlow協議建立連接04使用Postman下發流表實驗介紹實驗內容:學習OpenFlow流表的組成,包頭域的解析流程及流表的匹配流程。設置OpenDaylight控制器對接OpenvSwitch交換機。使用Postman工具,下發L2、L3、L4層流表并驗證流表下發效果。實驗目的:掌握OpenFlow流表相關知識,理解SDN中L2、L3、L4層流表的概念。學習并掌握使用Postman工具下發L2、L3、L4層流表的方法。實驗拓撲實驗拓撲包括一個控制器、一個交換機和兩臺主機設備:L2層流表下發與驗證L2層對應OSI模型的二層,控制器可以通過匹配源MAC地址、目的MAC地址、以太網幀類型、VLANID、VLAN優先級等字段實現流的轉發。本實驗基于源和目的MAC地址進行數據流的轉發。L3層流表下發與驗證匹配源IP地址L3層對應OSI模型的三層,三層流表主要匹配IP包的協議類型和IP地址。L3層流表下發與驗證匹配nw_proto字段L4層流表下發與驗證L4對應OSI模型中的四層,即流表對應的TCP/UDP源端口(TCP/UDPsrcport)、TCP/UDP目的端口號(TCP/UDPdstport)字段。本實驗匹配TCP目的端口。

謝謝!

SDN基礎應用開發01SDN應用開發簡介02防DDoS攻擊SDN應用開發03

服務器災備SDN應用開發04

簡易負載均衡SDN應用開發SDN應用開發場景SDN的應用場景非常廣泛,常見的SDN應用開發場景按照功能可劃分為以下3種:基于SDN的流量調度、流量可視化應用開發流量采集模塊--數據分析模塊--前端展示模塊--控制模塊基于SDN的網絡安全應用開發防火墻模塊--網絡策略分析模塊--前端展示模塊基于SDN的上層業務應用開發。

上層應用模塊--上層應用管理模塊--策略轉化模塊01SDN應用開發簡介02防DDoS攻擊SDN應用開發03

服務器災備SDN應用開發04

簡易負載均衡SDN應用開發DDoS攻擊簡介DoS(DenialofService,即拒絕服務)攻擊是一種很簡單但又很有效的進攻方式。它的目的是拒絕服務訪問,破壞組織的正常運行。DoS攻擊的基本過程如右圖所示首先攻擊者向服務器發送眾多的帶有虛假地址的請求服務器發送回復信息后等待回傳信息,由于地址是偽造的,所以服務器一直等不到回傳的消息,分配給這次請求的資源就始終沒有被釋放當服務器等待一定的時間后,連接會因超時而被切斷,在這種反復發送偽地址請求的情況下,服務器資源最終會被耗盡DDoS攻擊典型場景DDoS攻擊場景現象流量型(直接)SYN\ACK\ICMP\UDP\ConnectionFLOOD等DDoS告警流量型(反射)NTP\DNS\SSDP\ICMPFLOOD等DDoS告警CC流量變化可能不明顯,業務訪問緩慢,超時嚴重,大量訪問請求指向同一個或少數幾個頁面HTTP慢速流量變化可能不明顯,業務訪問緩慢,超時嚴重,大量不完整的HTTPGET請求,出現有規律大小(通常很小)的HTTPPOST請求的報文URL反射流量變化明顯,業務訪問緩慢,超時嚴重,大量請求的Referer字段相同,表明均來自同一跳轉頁面各種DoS效果漏洞利用入侵檢測防御設備可能出現告警,DDoS攻擊檢測設備告警不明顯針對典型DDoS攻擊通過攻擊特征進行分類,轉換為攻擊場景:SDN應用開發示例:防DDoS攻擊核心技術——sFlowsFlow技術是一種以設備端口為基本單元的數據流隨機采樣的流量監控技術,不僅可以提供完整的第二層到第四層甚至全網范圍內的實時流量信息,而且可以適應超大網絡流量環境下的流量分析。sFlow監控工具由sFlowAgent和sFlowCollector兩部分組成。Agent作為客戶端,一般內嵌于網絡轉發設備,通過獲取設備上的接口統計信息和數據信息,將信息封裝成sFlow報文,當sFlow報文緩沖區滿或是在sFlow報文緩存時間超時后,sFlowAgent會將sFlow報文發送到指定的Collector。Collector作為遠端服務器SDN應用開發示例:防DDoS攻擊本示例中,Collector作為遠端服務器,部署在Op

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論