高級(jí)路由技術(shù)網(wǎng)絡(luò)系統(tǒng)建設(shè)課件-第11章 網(wǎng)絡(luò)運(yùn)維技術(shù)_第1頁(yè)
高級(jí)路由技術(shù)網(wǎng)絡(luò)系統(tǒng)建設(shè)課件-第11章 網(wǎng)絡(luò)運(yùn)維技術(shù)_第2頁(yè)
高級(jí)路由技術(shù)網(wǎng)絡(luò)系統(tǒng)建設(shè)課件-第11章 網(wǎng)絡(luò)運(yùn)維技術(shù)_第3頁(yè)
高級(jí)路由技術(shù)網(wǎng)絡(luò)系統(tǒng)建設(shè)課件-第11章 網(wǎng)絡(luò)運(yùn)維技術(shù)_第4頁(yè)
高級(jí)路由技術(shù)網(wǎng)絡(luò)系統(tǒng)建設(shè)課件-第11章 網(wǎng)絡(luò)運(yùn)維技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第11章網(wǎng)絡(luò)運(yùn)維技術(shù)學(xué)習(xí)目標(biāo)和素質(zhì)目標(biāo)了解SDN網(wǎng)絡(luò)的基本知識(shí)。了解NETCONF協(xié)議的基本知識(shí)和原理。了解RESTCONF協(xié)議的基本知識(shí)和原理。了解Telemetry協(xié)議的基本知識(shí)和原理。了解OpenFlow協(xié)議的基本知識(shí)和原理。掌握Python語(yǔ)言的基本知識(shí)。掌握Paramiko模塊基本知識(shí)和使用方法。提高學(xué)生的自學(xué)意識(shí)。引導(dǎo)學(xué)生完善知識(shí)結(jié)構(gòu)。培養(yǎng)學(xué)生緊跟科技發(fā)展的學(xué)習(xí)習(xí)慣。11.1新網(wǎng)絡(luò)運(yùn)維技術(shù)基礎(chǔ)SNMP、CLI等傳統(tǒng)的網(wǎng)絡(luò)運(yùn)維技術(shù)已不能適應(yīng)當(dāng)前復(fù)雜網(wǎng)絡(luò)(如SDN)管理和配置管理的需求,管理效率也越來(lái)越低;NETCONF、RESTCONF、Telemetry等新的技術(shù)應(yīng)運(yùn)而生,解決了傳統(tǒng)網(wǎng)絡(luò)運(yùn)維技術(shù)的短板,滿(mǎn)足了新網(wǎng)絡(luò)管理的需求。Sources:NetworkComputing,theMetaGroupandContingencyPlanningResearch.AllfiguresU.S.dollars.6.482.80.090.631.11.62.0媒體醫(yī)療零售制造電信能源金融故障損失每小時(shí)停機(jī)損失百萬(wàn)美元人工配置下發(fā)人工配置校驗(yàn)人工業(yè)務(wù)開(kāi)通業(yè)務(wù)開(kāi)通慢>70%的網(wǎng)絡(luò)通過(guò)CLI方式管理網(wǎng)絡(luò)故障定位難一個(gè)故障定位平均耗時(shí)76min異常流占全網(wǎng)流3.65%30%傳統(tǒng)運(yùn)維可以識(shí)別70%傳統(tǒng)運(yùn)維無(wú)法識(shí)別Sources:2018年IO峰會(huì)現(xiàn)場(chǎng)調(diào)研數(shù)據(jù)11.1新網(wǎng)絡(luò)運(yùn)維技術(shù)基礎(chǔ)網(wǎng)絡(luò)管理的發(fā)展趨勢(shì)2019年大數(shù)據(jù)+AI體驗(yàn)可視/評(píng)估異常識(shí)別/預(yù)測(cè)根因定位/分析排障/網(wǎng)絡(luò)調(diào)優(yōu)網(wǎng)絡(luò)故障提前預(yù)警,故障解決更快,降低業(yè)務(wù)損失,潛在故障識(shí)別率大幅提升。通過(guò)在線(xiàn)的網(wǎng)規(guī)、部署、優(yōu)化和巡檢工具,實(shí)現(xiàn)本地網(wǎng)

絡(luò)免管理,可以有效降低OPEX。自動(dòng)化程度高自動(dòng)化程度低2022年自動(dòng)化程度管理自動(dòng)化運(yùn)維智能化11.1.1SDN概述眾所周知,傳統(tǒng)網(wǎng)絡(luò)是分布式的網(wǎng)絡(luò)架構(gòu),每個(gè)網(wǎng)絡(luò)設(shè)備擁有獨(dú)立的控制面,網(wǎng)絡(luò)中沒(méi)有集中的控制點(diǎn),網(wǎng)絡(luò)業(yè)務(wù)的開(kāi)通要由管理員通過(guò)命令行或網(wǎng)管一一配置每個(gè)網(wǎng)絡(luò)設(shè)備。很顯然,傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)已經(jīng)無(wú)法滿(mǎn)足當(dāng)前高速發(fā)展的互聯(lián)網(wǎng)和云計(jì)算等新型業(yè)務(wù)的需求,也無(wú)法跟上企業(yè)和運(yùn)營(yíng)商未來(lái)發(fā)展的腳步,無(wú)論是企業(yè)還是運(yùn)營(yíng)商,未來(lái)都需要一張敏捷、智能和開(kāi)放的網(wǎng)絡(luò)。為了滿(mǎn)足敏捷、智能和開(kāi)放的訴求,需要一種新的網(wǎng)絡(luò)架構(gòu),而SDN網(wǎng)絡(luò)體系架構(gòu)是目前業(yè)界認(rèn)可的最佳選擇。11.1.1SDN概述SDN起源SDN(SoftwareDefinedNetworking)即軟件定義網(wǎng)絡(luò),是由斯坦福大學(xué)CleanSlate研究組提出的一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu)。其核心理念通過(guò)將網(wǎng)絡(luò)設(shè)備控制平面與數(shù)據(jù)平面分離,從而實(shí)現(xiàn)了網(wǎng)絡(luò)控制平面的集中控制,為網(wǎng)絡(luò)應(yīng)用的創(chuàng)新提供了良好的支撐。SDN起源提出了三個(gè)特征:轉(zhuǎn)控分離、集中控制、開(kāi)放可編程接口。OpenFlowSwitchesOpenFlow控制器SDN應(yīng)用OpenFlow控制平面轉(zhuǎn)發(fā)平面轉(zhuǎn)發(fā)平面控制平面OpenFlow交換機(jī)僅有數(shù)據(jù)平面控制面功能由控制器提供OpenFlow協(xié)議互聯(lián)11.1.1SDN概述SDN的本質(zhì)訴求及價(jià)值SDN的本質(zhì)訴求讓網(wǎng)絡(luò)更加開(kāi)放、靈活和簡(jiǎn)單。它的實(shí)現(xiàn)方式是為網(wǎng)絡(luò)構(gòu)建一個(gè)集中的大腦,通過(guò)全局視圖集中控制,實(shí)現(xiàn)或業(yè)務(wù)快速部署、或流量調(diào)優(yōu)、或網(wǎng)絡(luò)業(yè)務(wù)開(kāi)放等目標(biāo)。SDN的價(jià)值集中管理,簡(jiǎn)化網(wǎng)絡(luò)管理與運(yùn)維;屏蔽技術(shù)細(xì)節(jié),降低網(wǎng)絡(luò)復(fù)雜度,降低運(yùn)維成本;自動(dòng)化調(diào)優(yōu),提高網(wǎng)絡(luò)利用率;快速業(yè)務(wù)部署,縮短業(yè)務(wù)上線(xiàn)時(shí)間;網(wǎng)絡(luò)開(kāi)放,支撐開(kāi)放可編程的第三方應(yīng)用。11.1.1SDN概述SDN的架構(gòu)SDN是對(duì)傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的一次重構(gòu),從原來(lái)的分布式控制的網(wǎng)絡(luò)架構(gòu)重構(gòu)為集中控制的網(wǎng)絡(luò)架構(gòu)。SDN最重要的變化是在網(wǎng)絡(luò)中增加了SDN控制器,由SDN控制器對(duì)網(wǎng)絡(luò)實(shí)行集中控制。SDN網(wǎng)絡(luò)架構(gòu)分為協(xié)同應(yīng)用層、控制器層和設(shè)備層。不同層次之間通過(guò)開(kāi)放接口連接。以控制器層為主要視角,區(qū)分面向設(shè)備層的南向接口和面向協(xié)同應(yīng)用層的北向接口。OpenFlow屬于南向接口協(xié)議的一種。11.1.1SDN概述SDN的架構(gòu)(續(xù))SDN網(wǎng)絡(luò)架構(gòu)分為應(yīng)用層、控制層、設(shè)備層三層,不同層次之間通過(guò)開(kāi)放接口連接。11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介NETCONF(NetworkConfigurationProtocol,網(wǎng)絡(luò)配置協(xié)議)提供了一種網(wǎng)管和網(wǎng)絡(luò)設(shè)備之間通信的機(jī)制,網(wǎng)絡(luò)管理員可以利用這套機(jī)制增加、修改、刪除網(wǎng)絡(luò)設(shè)備的配置,獲取網(wǎng)絡(luò)設(shè)備的配置和狀態(tài)信息。網(wǎng)絡(luò)設(shè)備提供了規(guī)范的應(yīng)用程序編程接口(API),網(wǎng)管可以通過(guò)NETCONF使用這些API管理網(wǎng)絡(luò)設(shè)備。在SDN領(lǐng)域,NETCONF是SDN網(wǎng)絡(luò)南向接口協(xié)議之一,SDN控制器通過(guò)NETCONF對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行配置管理。NETCONFClientDeviceDevice1Device2Device3NetworkNETCONFServerNETCONF11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介NETCONF是一種基于XML的網(wǎng)絡(luò)配置協(xié)議,它存在的目的在于用可編程的方式實(shí)現(xiàn)網(wǎng)絡(luò)配置的自動(dòng)化,從而簡(jiǎn)化、加速網(wǎng)絡(luò)服務(wù)地部署。NETCONF的一個(gè)重要特點(diǎn)是NETCONF協(xié)議實(shí)現(xiàn)可以直接使用設(shè)備已有的功能模塊。2種角色NETCONF客戶(hù)端NETCONF服務(wù)器1種典型管理方式IP網(wǎng)絡(luò)NETCONF消息SSH11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介NETCONF與SNMP比較項(xiàng)目NETCONFSNMP配置保護(hù)支持。NETCONF提供鎖定機(jī)制,防止多用戶(hù)操作產(chǎn)生沖突不支持配置備份支持。NETCONF提供多個(gè)配置數(shù)據(jù)庫(kù)(以下簡(jiǎn)稱(chēng)數(shù)據(jù)庫(kù)),數(shù)據(jù)庫(kù)之間可以互相備份不支持配置查詢(xún)支持。NETCONF定義了過(guò)濾功能,可查詢(xún)某個(gè)節(jié)點(diǎn)的全部配置數(shù)據(jù),大批量數(shù)據(jù)收集時(shí)比SNMP快10倍支持。SNMP能夠?qū)δ硞€(gè)表的一條或多條記錄進(jìn)行操作,查詢(xún)中需要多次交互才能夠完成擴(kuò)展性(1)協(xié)議模型采取分層定義,各層之間相互獨(dú)立,對(duì)協(xié)議中的某一層進(jìn)行擴(kuò)展時(shí),能夠不影響其他層協(xié)議。(2)協(xié)議采用了XML編碼,使得協(xié)議在管理能力和系統(tǒng)兼容性方面具有一定的可擴(kuò)展性。因此,NTECONF擴(kuò)展性好擴(kuò)展性差安全性NETCONF利用現(xiàn)有的安全協(xié)議提供安全保證,如SSH和SOAP,并不與具體的安全協(xié)議綁定。在使用中,NETCONF要比SNMP更靈活僅SNMPv3版本提供認(rèn)證加密機(jī)制,但全部為協(xié)議自己定義,沒(méi)有擴(kuò)展的余地11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介NETCONF網(wǎng)絡(luò)架構(gòu)NETCONF整套系統(tǒng)必須包含至少一個(gè)NMS(NetworkManagementSystem)作為整個(gè)網(wǎng)絡(luò)的網(wǎng)管中心,NMS運(yùn)行在NMS服務(wù)器上,對(duì)設(shè)備進(jìn)行管理。網(wǎng)絡(luò)管理系統(tǒng)中的主要元素:NETCONFClientNETCONFServer11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介NETCONF協(xié)議框架NETCONF協(xié)議分為四層,由下至上分別是內(nèi)容層、操作層、消息層、安全傳輸層。層面示例說(shuō)明第一層:安全傳輸層BEEP,SSH,SSL安全傳輸層為NETCONF客戶(hù)端(Client)和服務(wù)器端(Server)之間交互提供通信路徑第二層:消息層<rpc>,<rpc-reply>消息層提供了一種簡(jiǎn)單的、不依賴(lài)于傳輸協(xié)議的RPC請(qǐng)求和響應(yīng)機(jī)制。客戶(hù)端采用<rpc>元素封裝操作請(qǐng)求信息,并通過(guò)一個(gè)安全的、面向連接的會(huì)話(huà)將請(qǐng)求發(fā)送給服務(wù)器,而服務(wù)器將采用<rpc-reply>元素封裝RPC請(qǐng)求的響應(yīng)信息(即操作層和內(nèi)容層的內(nèi)容),然后將此響應(yīng)信息發(fā)送給請(qǐng)求者第三層:操作層<get-config>,<edit-config>,<notification>操作層定義了一系列在RPC中應(yīng)用的基本操作,這些操作組成了NETCONF基本能力第四層:內(nèi)容層配置數(shù)據(jù)內(nèi)容層描述了網(wǎng)絡(luò)管理所涉及的配置數(shù)據(jù),而這些數(shù)據(jù)依賴(lài)于各制造商設(shè)備11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介NETCONF建模語(yǔ)言NETCONF協(xié)議使用XML作為編碼格式。基于XML網(wǎng)絡(luò)管理的主要思想是利用XML的強(qiáng)大數(shù)據(jù)表示能力,使用XML描述被管理數(shù)據(jù)和管理操作,使管理信息成為計(jì)算機(jī)可以理解的數(shù)據(jù)庫(kù),提高計(jì)算機(jī)對(duì)網(wǎng)絡(luò)管理數(shù)據(jù)的處理能力,從而提高網(wǎng)絡(luò)管理能力。NETCONF協(xié)議當(dāng)前有Schema和YANG兩種建模語(yǔ)言。Schema是為描述XML文檔而定義的一套規(guī)則。YANG是專(zhuān)門(mén)為NETCONF協(xié)議設(shè)計(jì)的數(shù)據(jù)建模語(yǔ)言11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介RESTCONF協(xié)議隨著網(wǎng)絡(luò)規(guī)模的增大、復(fù)雜性的增加,自動(dòng)化運(yùn)維的需求日益增加。網(wǎng)絡(luò)發(fā)展中對(duì)設(shè)備編程接口提出了新要求,希望能夠提供支持WEB應(yīng)用訪(fǎng)問(wèn)和操作網(wǎng)絡(luò)設(shè)備的標(biāo)準(zhǔn)化接口。NETCONF提供基于RPC機(jī)制的應(yīng)用編程接口,要滿(mǎn)足新的需求就會(huì)拋棄NETCONF本身的特色,RESTCONF因此應(yīng)運(yùn)而生。RESTCONF是在融合NETCONF和HTTP的基礎(chǔ)上發(fā)展而來(lái)的。RESTCONF以HTTP的方法提供了NETCONF的核心功能,編程接口符合IT業(yè)界流行的RESTful風(fēng)格,為用戶(hù)提供高效開(kāi)發(fā)WEB化運(yùn)維工具的能力。11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介RESTCONF與NETCONF比較RESTCONF使用HTTP的操作,無(wú)狀態(tài),無(wú)事務(wù)機(jī)制,無(wú)回滾,只支持對(duì)設(shè)備運(yùn)行配置庫(kù)的修改。NETCONF操作設(shè)備支持多個(gè)配置庫(kù),有事務(wù)機(jī)制,有回滾。項(xiàng)目RESTCONF+YANGNETCONF+YANG傳輸通道(協(xié)議)基于HTTP訪(fǎng)問(wèn)設(shè)備資源,提供的編程接口符合IT業(yè)界流行的RESTful風(fēng)格。傳輸層首選推薦SSH(SecureShell)協(xié)議,XML信息通過(guò)SSH協(xié)議承載。報(bào)文格式采用XML或JSON編碼。采用XML編碼。操作特點(diǎn)RESTCONF的操作簡(jiǎn)單,例如:RESTCONF支持增、刪、改、查操作,僅支持<running/>配置數(shù)據(jù)庫(kù)。RESTCONF操作方法無(wú)須兩階段提交,操作直接生效NETCONF的操作復(fù)雜,例如:NETCONF支持增、刪、改、查,支持多個(gè)配置數(shù)據(jù)庫(kù),也支持回滾等。NETCONF需要兩階段提交(即先提交參數(shù),再commit參數(shù))。11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介RESTCONF網(wǎng)絡(luò)架構(gòu)RESTCONFClient:客戶(hù)端利用RESTCONF協(xié)議對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行系統(tǒng)管理。客戶(hù)端向服務(wù)器發(fā)送請(qǐng)求,可以實(shí)現(xiàn)創(chuàng)建、刪除、修改或查詢(xún)一個(gè)或多個(gè)數(shù)據(jù)。RESTCONFServer:設(shè)備作為服務(wù)器端,服務(wù)器用于維護(hù)被管理設(shè)備的信息數(shù)據(jù)并響應(yīng)客戶(hù)端的請(qǐng)求,把數(shù)據(jù)返回給發(fā)送請(qǐng)求的客戶(hù)端。服務(wù)器收到客戶(hù)端的請(qǐng)求后會(huì)進(jìn)行解析并處理請(qǐng)求,然后給客戶(hù)端返回響應(yīng)。11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介T(mén)elemetry協(xié)議Telemetry是一項(xiàng)遠(yuǎn)程從物理設(shè)備或虛擬設(shè)備上高速采集數(shù)據(jù)的技術(shù)。設(shè)備通過(guò)推模式(PushMode)周期性的主動(dòng)向采集器上推送設(shè)備的接口流量統(tǒng)計(jì)、CPU或內(nèi)存數(shù)據(jù)等信息,相對(duì)傳統(tǒng)拉模式(PullMode)的一問(wèn)一答式交互,提供了更實(shí)時(shí)更高速的數(shù)據(jù)采集功能。分析器設(shè)備采集器控制器

Telemetry上送11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介傳統(tǒng)網(wǎng)絡(luò)監(jiān)控方式(如SNMPget和CLI),存在如下不足,管理效率越來(lái)越低,已不能滿(mǎn)足用戶(hù)需求的演進(jìn):通過(guò)拉模式來(lái)獲取設(shè)備的監(jiān)控?cái)?shù)據(jù),不能監(jiān)控大量網(wǎng)絡(luò)節(jié)點(diǎn),限制了網(wǎng)絡(luò)增長(zhǎng)。精度是分鐘級(jí)別(5-15min),只能依靠加大查詢(xún)頻度來(lái)提升獲取數(shù)據(jù)的精度,但是這樣會(huì)導(dǎo)致網(wǎng)絡(luò)節(jié)點(diǎn)CPU利用率高而影響設(shè)備的正常功能。由于網(wǎng)絡(luò)傳輸時(shí)延的存在,監(jiān)控到的網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)并不準(zhǔn)確。SNMPPullingModelsFlowNetStream數(shù)據(jù)收集數(shù)據(jù)分析SamplingModel網(wǎng)絡(luò)糾錯(cuò)11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介T(mén)elemetry與傳統(tǒng)網(wǎng)絡(luò)監(jiān)控方式比較項(xiàng)目TelemetrySNMPgetSNMPTrapCLISYSLOG工作模式推模式拉模式推模式拉模式推模式精度亞秒級(jí)分鐘級(jí)秒級(jí)分鐘級(jí)秒級(jí)是否結(jié)構(gòu)化YANG模型定義結(jié)構(gòu)MIB定義結(jié)構(gòu)MIB定義結(jié)構(gòu)非結(jié)構(gòu)化非結(jié)構(gòu)化11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介T(mén)elemetry數(shù)據(jù)訂閱定義了數(shù)據(jù)發(fā)送端和數(shù)據(jù)獲取端交互關(guān)系。數(shù)據(jù)搜集數(shù)據(jù)訂閱數(shù)據(jù)推送數(shù)據(jù)生成數(shù)據(jù)源UDPNP數(shù)據(jù)分析Telemetry訂閱方式分為兩種:靜態(tài)訂閱和動(dòng)態(tài)訂閱。靜態(tài)訂閱是指設(shè)備作為客戶(hù)端,采集器作為服務(wù)端。由設(shè)備主動(dòng)發(fā)起到采集器的連接,進(jìn)行數(shù)據(jù)采集上送。多用于長(zhǎng)期巡檢。動(dòng)態(tài)訂閱是指設(shè)備作為服務(wù)端,采集器作為客戶(hù)端發(fā)起到設(shè)備的連接。由設(shè)備進(jìn)行數(shù)據(jù)采集上送。多用于短期監(jiān)控。采集器設(shè)備靜態(tài)配置設(shè)備主動(dòng)上送(dialout)CLI/網(wǎng)管采集器設(shè)備靜態(tài)訂閱動(dòng)態(tài)訂閱動(dòng)態(tài)訂閱(dialin)11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介廣義的Telemetry是一個(gè)閉環(huán)的自動(dòng)化運(yùn)維系統(tǒng),由網(wǎng)絡(luò)設(shè)備、采集器、分析器和控制器等部件組成,分為網(wǎng)管側(cè)和設(shè)備側(cè)Telemetry靜態(tài)訂閱的業(yè)務(wù)流程靜態(tài)配置推送采樣數(shù)據(jù)讀取數(shù)據(jù)分析數(shù)據(jù)調(diào)整網(wǎng)絡(luò)參數(shù)11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介T(mén)elemetry動(dòng)態(tài)訂閱的業(yè)務(wù)流程動(dòng)態(tài)配置推送采樣數(shù)據(jù)讀取數(shù)據(jù)分析數(shù)據(jù)調(diào)整網(wǎng)絡(luò)參數(shù)11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介OpenFlow協(xié)議OpenFlow是SDN架構(gòu)中控制器與交換機(jī)之間的一種南向接口協(xié)議。OpenFlow允許控制器直接訪(fǎng)問(wèn)和操作網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)平面,這些網(wǎng)絡(luò)設(shè)備可能是物理上的交換機(jī),也可能是虛擬的交換機(jī)。協(xié)同應(yīng)用層控制層轉(zhuǎn)發(fā)層API接口OpenFlow協(xié)議APP轉(zhuǎn)發(fā)器SDN控制器轉(zhuǎn)發(fā)器轉(zhuǎn)發(fā)器11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介OpenFlow體系結(jié)構(gòu)控制器OpenFlow交換機(jī)OpenFlow專(zhuān)用交換機(jī)OpenFlow兼容型交換機(jī)OpenFlowAgent轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)用戶(hù)策略表11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介OpenFlow工作原理控制器對(duì)交換機(jī)的控制和管理可以通過(guò)OpenFlow協(xié)議實(shí)現(xiàn)。首先,控制器和交換機(jī)之間通過(guò)建立OpenFlow通道,實(shí)現(xiàn)控制器與交換機(jī)之間的信息交互;如果交換機(jī)與多個(gè)控制器建立OpenFlow多連接,那么此時(shí)控制器會(huì)將自己的角色通過(guò)OpenFlow通道告知交換機(jī)。隨后,控制器將轉(zhuǎn)發(fā)信息數(shù)據(jù)庫(kù)或用戶(hù)策略表通過(guò)OpenFlow通道下發(fā)到交換機(jī);交換機(jī)根據(jù)轉(zhuǎn)發(fā)信息數(shù)據(jù)庫(kù)進(jìn)行協(xié)議計(jì)算生成ARP表項(xiàng),從而完成數(shù)據(jù)的轉(zhuǎn)發(fā);或者根據(jù)用戶(hù)策略表信息,完成數(shù)據(jù)轉(zhuǎn)發(fā)。11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介通道建立與維護(hù)實(shí)現(xiàn)控制器和交換機(jī)之間的信息交互之前,需要建立OpenFlow通道,OpenFlow通道建立之后需要進(jìn)行維護(hù),保證OpenFlow通道的穩(wěn)定性。11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介控制器角色通知在建立OpenFlow通道期間,交換機(jī)需要與其配置的所有控制器建立連接,并且要保證每個(gè)OpenFlow連接的連通性。在OpenFlow通道建立成功后,控制器會(huì)主動(dòng)發(fā)送攜帶控制器角色等信息的ROLE_REQUEST報(bào)文。11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)下發(fā)控制器只將部分?jǐn)?shù)量大、變化頻繁的協(xié)議計(jì)算收集到控制器生成轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)并通過(guò)OpenFlow協(xié)議下發(fā)到設(shè)備,以輔助設(shè)備增加計(jì)算能力。11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介用戶(hù)策略表下發(fā)控制器下發(fā)的用戶(hù)策略表是由用戶(hù)在控制器上創(chuàng)建的,用于指導(dǎo)報(bào)文轉(zhuǎn)發(fā)。11.1.2網(wǎng)絡(luò)管理協(xié)議簡(jiǎn)介報(bào)文透?jìng)骺刂破髋c交換機(jī)之間通過(guò)標(biāo)準(zhǔn)的Packet-in和Packet-out報(bào)文進(jìn)行報(bào)文的透?jìng)鳌acket-in:交換機(jī)將獲得的信息通過(guò)Packet-in報(bào)文上送到控制器。Packet-out:控制器將信息通過(guò)Packet-out報(bào)文下發(fā)到交換機(jī)。11.2Python自動(dòng)化運(yùn)維Python語(yǔ)言作為當(dāng)下最熱門(mén)的語(yǔ)言之一,簡(jiǎn)單、易學(xué)、接近自然思維、可移植性高等特點(diǎn),使之成為自動(dòng)化運(yùn)維的必備工具。運(yùn)用Python編程語(yǔ)言,可以讓程序代替人力去自動(dòng)化運(yùn)維,解決網(wǎng)絡(luò)運(yùn)維中實(shí)際問(wèn)題,告別枯燥的重復(fù)工作,提升運(yùn)維效率和滿(mǎn)意度。11.2.1Python基礎(chǔ)Python是一種面向?qū)ο蟮慕忉屝杂?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由荷蘭人GuidovanRossum創(chuàng)造,第一個(gè)公開(kāi)發(fā)行版發(fā)行于1991年。Python程序代碼簡(jiǎn)潔、功能強(qiáng)大,相比其他編程語(yǔ)言更加易于學(xué)習(xí)。目前,Python是一種廣泛使用的高級(jí)編程語(yǔ)言。編譯型語(yǔ)言(源代碼)解釋型語(yǔ)言(源代碼)編譯器可執(zhí)行文件解釋器:逐行解釋源代碼操作系統(tǒng)(Windows/Linux/MacOS)CPU(X86架構(gòu)/ARM架構(gòu))11.2.1Python基礎(chǔ)Python開(kāi)發(fā)環(huán)境Windows系統(tǒng)下配置Python開(kāi)發(fā)環(huán)境軟件下載。在Python官方網(wǎng)站下載Windows安裝包,下載完成后,雙擊安裝即可。注意在高級(jí)選項(xiàng)中,要選中“AddPythontoenvironmentvariable”選項(xiàng),其他步驟保存默認(rèn)設(shè)置即可。安裝完成后,在系統(tǒng)命令行窗口輸入【Python】命令即可進(jìn)入Python命令行界面。11.2.1Python基礎(chǔ)Python變量變量,顧名思義就是可以改變的量。Python中可以通過(guò)變量賦值這個(gè)操作來(lái)將變量指向一個(gè)對(duì)象,例如,下面的a=10即是一個(gè)最簡(jiǎn)單的變量賦值的示例:變量在命名時(shí),需要遵守一些規(guī)則,否則將會(huì)引發(fā)系統(tǒng)錯(cuò)誤。變量名只能包含字母、數(shù)字和下劃線(xiàn)。變量名可使用字母或下劃線(xiàn)開(kāi)頭,但不能以數(shù)字開(kāi)頭。例如:變量可命名為“vendor_1”,但不能命名為“1_vendor”。變量名不能包含空格。例如:變量不能命名為“ipaddr”。不能講Python的關(guān)鍵字和函數(shù)名用作變量名。例如:“print”不能作為變量名。>>>a=1011.2.1Python基礎(chǔ)Python數(shù)據(jù)類(lèi)型數(shù)字(Number)整數(shù)(Int)浮點(diǎn)數(shù)(Float)布爾值(Bool),布爾值包括True和False兩個(gè)值。>>>a=123456>>>type(a)<class'int'>>>>a=3.1415>>>type(a)<class'float'>>>>a=1>>>a==1True>>>a==2False11.2.1Python基礎(chǔ)Python數(shù)據(jù)類(lèi)型(續(xù))字符串(Sring)Python中字符串是一種相當(dāng)靈活的數(shù)據(jù)類(lèi)型,內(nèi)容可以為空,可以為漢字或英文字母,可以為整數(shù)或小數(shù),可以為標(biāo)點(diǎn)符號(hào)等,只需以引號(hào)開(kāi)始和結(jié)尾即可,引號(hào)可以為單引號(hào)、雙引號(hào)、或三引號(hào),但字符串的開(kāi)始和結(jié)尾引號(hào)必須一致。>>>a='CloudEngineS6730-S24X6Q’>>>a'CloudEngineS6730-S24X6Q’>>>b=“CloudEngineS6730-S24X6Q”>>>b'CloudEngineS6730-S24X6Q’>>>c='''CloudEngineS6730-S24X6Q'‘’>>>c'CloudEngineS6730-S24X6Q'11.2.1Python基礎(chǔ)Python數(shù)據(jù)類(lèi)型(續(xù))列表(List)列表是一組有序的集合,以中括號(hào)“[]”表示,列表里的數(shù)據(jù)項(xiàng)被稱(chēng)為元素,每個(gè)元素之間以逗號(hào)“,”隔開(kāi),元素的數(shù)據(jù)類(lèi)型可以不相同。例如,創(chuàng)建包含3組IP地址的列表:列表是有序的集合,因此我們可以使用元素的位置或索引號(hào)來(lái)訪(fǎng)問(wèn)列表中的元素。在Python中,第一個(gè)列表元素的索引號(hào)為0,而不是1。下面舉例說(shuō)明如何使用索引號(hào)訪(fǎng)問(wèn)和更新列表中的元素:>>>ipaddr

=

['1','2','3']>>>ipaddr[0]'1’>>>ipaddr[2]='4’>>>ipaddr['1','2','4']11.2.1Python基礎(chǔ)Python數(shù)據(jù)類(lèi)型(續(xù))集合(Sets)集合是一組無(wú)序的集合,里面沒(méi)有重復(fù)的數(shù)據(jù)。創(chuàng)建集合是使用“{}”,但如果要?jiǎng)?chuàng)建一個(gè)空集合,必須使用函數(shù)set()。>>>vendors={'Huawei','Cisco','Juniper’}>>>vendorsset(['Huawei','Cisco','Juniper'])>>>vendors=set()>>>vendorsset([])11.2.1Python基礎(chǔ)Python數(shù)據(jù)類(lèi)型(續(xù))元組(Tuple)元組和列表的大部分特性都是相同的,不同之處:(1)元組中的元素是不可修改的,而列表中的元素是可以修改的;(2)元組以小括號(hào)“()”表示,而列表以中括號(hào)“[]”表示。>>>vendors=('Huawei','Cisco','Juniper’)>>>type(vendors)<type'tuple'>11.2.1Python基礎(chǔ)Python數(shù)據(jù)類(lèi)型(續(xù))字典(Dictionary)字典是無(wú)序的鍵值對(duì)(key-valuepair)的集合,以大括號(hào)“{}”表示,元素以逗號(hào)“,”隔開(kāi);每組元素由鍵(key)和值(value)構(gòu)成,中間以冒號(hào)“:”隔開(kāi),冒號(hào)的左邊為鍵,右邊為值。鍵的數(shù)據(jù)類(lèi)型可為字符串,常數(shù),浮點(diǎn)數(shù)或者元組;值可為任意的數(shù)據(jù)類(lèi)型。>>>dict={'Vendor':'Huawei','Model':'CloudEngineS6730-S24X6Q','Ports':48}>>>dict{'Model':'CloudEngineS6730-S24X6Q','Vendor':'Huawei','Ports':48}>>>type(vendors)<type'tuple’>\\這里創(chuàng)建了一個(gè)變量名為dict的字典,該字典有3組鍵值對(duì)。11.2.1Python基礎(chǔ)Python分支結(jié)構(gòu)常見(jiàn)的編程語(yǔ)言都有三大結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。其中,順序結(jié)構(gòu)就是按照語(yǔ)句順序自上而下一句接一句執(zhí)行,而分支結(jié)構(gòu)則是會(huì)繞過(guò)一些語(yǔ)句執(zhí)行。在Python中,分支結(jié)構(gòu)語(yǔ)句由if、elif和else三種語(yǔ)句組成。其中,if為強(qiáng)制語(yǔ)句,可以單獨(dú)使用;elif和else為選擇語(yǔ)句,不能單獨(dú)使用。下面分別舉例說(shuō)明:ifScores>=60:print"恭喜,您已及格!"\\判斷當(dāng)用戶(hù)的分?jǐn)?shù)大于等于60時(shí),打印“恭喜,您已及格!”ifScores>=60:print"恭喜,您已及格!“else:print"很遺憾,您沒(méi)有及格!“\\判斷當(dāng)用戶(hù)的分?jǐn)?shù)大于等于60時(shí),打印“恭喜,您已及格!”,當(dāng)用戶(hù)分?jǐn)?shù)小于60時(shí),打印“很遺憾,您沒(méi)有及格!”11.2.1Python基礎(chǔ)Python循環(huán)結(jié)構(gòu)while語(yǔ)句while語(yǔ)句每當(dāng)執(zhí)行一次寫(xiě)在它下面的執(zhí)行語(yǔ)句,程序都會(huì)回到while條件語(yǔ)句處,重新判斷條件是否為T(mén)rue,如果為T(mén)rue,程序繼續(xù)執(zhí)行;否則,while程序立即終止。下面通過(guò)舉例說(shuō)明:n=100sum=0counter=1whilecounter<=n:sum=sum+countercounter+=1print("1到%d之和為:%d"%(n,sum))\\使用while語(yǔ)句計(jì)算1~100數(shù)字之和11.2.1Python基礎(chǔ)Python循環(huán)結(jié)構(gòu)(續(xù))for語(yǔ)句雖然都是循環(huán)結(jié)構(gòu)語(yǔ)句,但for語(yǔ)句和while語(yǔ)句完全不同,while語(yǔ)句是結(jié)合判斷語(yǔ)句決定循環(huán)的開(kāi)始和結(jié)束,而for語(yǔ)句則是遍歷一組可迭代的序列,遍歷結(jié)束后for語(yǔ)句也隨即停止。for語(yǔ)句的基本語(yǔ)法格式為:其中,<variable>是一個(gè)變量的名稱(chēng),代表序列中的每一個(gè)元素,<sequence>為可迭代的序列(字符串、列表、元組等)。for<variable>in<sequence>:

語(yǔ)句else:

語(yǔ)句11.2.1Python基礎(chǔ)Python函數(shù)內(nèi)置函數(shù)內(nèi)置函數(shù),就是加載Python解釋器后,可以直接使用的函數(shù)。例如:常用print()、input()、dir()等。用戶(hù)自定義函數(shù)在Python中,我們使用關(guān)鍵字def定義函數(shù),語(yǔ)法格式如下:def函數(shù)名稱(chēng)(參數(shù)1,參數(shù)2,…):"文件字符串“

語(yǔ)句11.2.1Python基礎(chǔ)Python模塊import語(yǔ)句如果希望引入某個(gè)模塊,可以使用import加上模塊的名稱(chēng),這樣會(huì)導(dǎo)入指定模塊中的所有成員(包括變量、函數(shù)、類(lèi)等)。不僅如此,當(dāng)需要使用模塊中的成員時(shí),需用該模塊名(或別名)作為前綴,否則Python解釋器會(huì)報(bào)錯(cuò)。>>>importmath>>>math.sin(90)0.8939966636005579>>>frommathimportsin>>>sin(90)0.893996663600557911.2.2Paramiko模塊Paramiko簡(jiǎn)介Paramiko是Python語(yǔ)言編寫(xiě)的支持以加密和認(rèn)證方式,進(jìn)行遠(yuǎn)程控制模塊;它遵循SSH2協(xié)議,使用Paramiko可以方便地通過(guò)SSH協(xié)議執(zhí)行遠(yuǎn)程主機(jī)的程序或腳本。Paramiko有兩個(gè)重要的基礎(chǔ)類(lèi):Channel類(lèi)和Transport類(lèi)。Channel類(lèi):是對(duì)SSH2Channel的抽象類(lèi),作用類(lèi)似于套接字(Socket),是SSH傳輸?shù)陌踩ǖ馈3S玫姆椒ㄓ校篹xeccommand()、exit_status_ready()、recv_exit_status()、close()等。Transport類(lèi):是核心協(xié)議的實(shí)現(xiàn)類(lèi),是一種加一個(gè)加密的流隧道。常用的方法有:send()、recv()、close()等密的會(huì)話(huà),使用時(shí)會(huì)同步創(chuàng)建。11.2.2Paramiko模塊Paramiko核心組件SFTPClient類(lèi)SFTPClient封裝了SFTP客戶(hù)端,主要用來(lái)實(shí)現(xiàn)執(zhí)行遠(yuǎn)程文件操作(文件上傳、下載、修改文件權(quán)限等)。常用的方法有:from_transportputgetfrom_transport(cls,t)put(localpath,remotepath,callback=None,confirm=True)get(remotepath,localpath,callback=None)11.2.2Paramiko模塊Paramiko核心組件(續(xù))SSHClient類(lèi)SSHClient類(lèi)封裝了Transport類(lèi)、Channel類(lèi)及SFTPClient類(lèi),通常用于執(zhí)行遠(yuǎn)程命令。常用的方法有:Connectexec_commandload_system_host_keysset_missing_host_policyinvoke_shellconnect(hostname,port=22,username=None,password=None,timeout=None)exec_command(command,bufsize=-1,timeout=None)load_system_host_keys(self,filename=None)set_missing_host_policys(AutoAddPolicy/RejectPolicy/WarningPolicy/)invoke_shell()11.2.2Paramiko模塊Paramiko模塊安裝在使用Python編程的過(guò)程中,我們會(huì)經(jīng)常用到第三方庫(kù)包,而pip作為Python最優(yōu)秀的包管理工具之一,可以方便Python庫(kù)包的安裝管理。在命令行中輸入【pip--version】命令,如果有相關(guān)的版本信息,則說(shuō)明pip工具已經(jīng)安裝,可以直接使用。安裝完成后,進(jìn)入Python解釋器,導(dǎo)入Paramiko模塊,如果沒(méi)有報(bào)錯(cuò),就說(shuō)明Paramiko模塊安裝成功。pipinstallparamikoPythonimportparamiko11.2.2Paramiko模塊Paramiko應(yīng)用舉例使用SFTPClinent上傳和下載文件#-*-coding:UTF-8-*-importparamiko\\導(dǎo)入paramiko模塊tran=paramiko.Transport("0",22)\\獲取Transport實(shí)例tran.connect(username="root",password="Huawei@123")

\\連接遠(yuǎn)程服務(wù)器print("連接成功")sftp=paramiko.SFTPClient.from_transport(tran)\\獲取SFTPClient實(shí)例put_localpath="D:/Python/upload/upload.py"\\設(shè)置上傳的本地文件路徑變量put_remotepath="/home/upload“\\設(shè)置上傳的遠(yuǎn)程文件路徑變量get_remotepath='/home/download/download.py’\\設(shè)置下載的本地文件路徑變量get_localpath='D:/Python/download’

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論