已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄架構(gòu)3開始3安裝指導3概述3準備工作3下載編譯3運行Floodlight4Eclipse設(shè)置4虛擬一個網(wǎng)絡(luò)4下一步5可兼容交換機5虛擬交換機5硬件交換機5可支持的拓撲結(jié)構(gòu)6發(fā)布版8發(fā)行說明8Floodlight v0.9發(fā)行說明8概述8新添加的東西8應(yīng)用9用戶文檔9控制器9Configuration HOWTO9監(jiān)聽地址和端口配置10Floodlight REST API11應(yīng)用18開發(fā)者文檔28模塊描述及javadoc28控制器模塊28FloodLight目前已經(jīng)實現(xiàn)的控制器模塊28FloodlightProvider28DeviceManagerImpl30LinkDiscoveryManager (Dev)32TopologyService33RestApiServer34ThreadPool35MemoryStorageSource36Flow Cache36Packet Streamer37應(yīng)用模塊41虛擬網(wǎng)絡(luò)過濾器(Quantum插件)41轉(zhuǎn)發(fā)43防火墻44Port Down Reconciliation49模塊加載系統(tǒng)50Javadoc entry55添加模塊57創(chuàng)建一個監(jiān)聽模塊57Mininet虛擬網(wǎng)絡(luò)連接floodlight63添加模塊服務(wù)63創(chuàng)建類65添加rest API70Floodlight rest API開發(fā)76Floodlight-Test77Unit測試85控制器基準配置86基準配置86Cbench (New)87怎樣用floodlight滿足服務(wù)質(zhì)量8890架構(gòu)Floodlight不僅僅是一個支持OpenFLow協(xié)議的控制器(FloodlightCOntroller),也是一個基于Floodlight控制器的應(yīng)用集。當用戶在OpenFLow網(wǎng)絡(luò)上運行各種應(yīng)用程序的時候,F(xiàn)loodlight控制器實現(xiàn)了對OpenFLow網(wǎng)絡(luò)的監(jiān)控和查詢功能。圖0.0顯示了Floodlight不同模塊之間的關(guān)系,這些應(yīng)用程序構(gòu)建成java模塊,和Floodlight一起編譯。同時這些應(yīng)用程序都是基于REST API的。開始安裝指導概述基于Java的Floodlight可以用標準jak工具或ant編譯運行,當然也可以有選擇性的在Eclipse上運行。準備工作Linux:l Ubuntu 10.04(Natty)及以上版本(運行Ant1.8.1及以下版本)l 安裝JDK,Ant。(可在eclipse上安裝)$sudo apt-get install build-essential default ant python-dev eclipseMacl Mac系統(tǒng)x10.6及以上版本(低版本未測試)l Cxode4.1或Xcode4.0.2l JDK:只需要在終端輸入命令:javac便可安裝l Eclipse(非必須 )下載編譯從Github下載并比編譯Floodlight$git clone git://floodlight/floodlight.git$cd floodlight$ant運行Floodlight如果java運行環(huán)境已經(jīng)安裝成功,就可以直接運行:$java -jar target/floodlight.jarFloodlight就會開始運行,并在控制臺打印debug信息Eclipse設(shè)置通過Eclipse運行、開發(fā)、配置Floodlight:$ant eclipse上述命令將創(chuàng)建多個文件:Floodlight.launch,Floodlight_junit.launch,classpath和.project。通過這些設(shè)置eclipse工程l 打開eclipse創(chuàng)建一個新的工程l 文件-導入-常規(guī)-現(xiàn)有項目到工程中-下一步l 點擊“選擇根目錄”,點擊“瀏覽”。選擇之前放置Floodlight的父路徑l 點擊Floodlightl 點擊“完成”現(xiàn)在就產(chǎn)生了一個Floodlight的Eclipse工程。由于我們是使用靜態(tài)模塊加載系統(tǒng)運行Floodlight,我們必須配置eclipse來正確的運行Floodlight。創(chuàng)建Floodlight目標文件:l 點擊運行-運行配置l 右擊java 應(yīng)用-新建l “Name”使用“FloodlightLaunch”l “Project”使用“Floodlight”l “Main”使用“net.floodlightcontroller.core.Main”l 點擊“應(yīng)用”虛擬一個網(wǎng)絡(luò)啟動了Floodlight之后,就需要鏈接到一個OpenFlow的網(wǎng)絡(luò)。Mininet是最好的網(wǎng)絡(luò)虛擬工具之一。l 下載Floodlight-vm機自啟動并內(nèi)嵌Mininet工具。l 使用Vmware或者virtualbox打開Floodlight-vm,在啟動之前,點擊網(wǎng)絡(luò)選項不要從導入虛擬機后的安裝目錄中運行腳本啟動l 登錄(用戶名是:floodlight沒有密碼)l 既可以在使用Floodlight-vm開機自啟動的Floodlight控制器也可以通過命令指定到遠程的控制器,輸入:$sudo mn -controller=remote,ip=,port=可以通過ssh遠程登陸到floodlight-vm虛擬機運行wireshark,監(jiān)聽eth0端口并用“of”協(xié)議過濾器過濾。$ssh -X floodlight$sudo wireshark下一步閱讀完getstart文檔之后,可以參閱floodlight開發(fā)文檔,里面有很多實例和代碼??杉嫒萁粨Q機下面列出了可以和Floodlight控制器兼容的交換機虛擬交換機l Open vSwitch(OVS)硬件交換機 Arista 7050 Brocade MLXe Brocade CER Brocade CES Dell S4810 Dell Z9000 Extreme Summit x440, x460, x670 HP 3500, 3500yl, 5400zl, 6200yl, 6600, and 8200zl (the old-style L3 hardware match platform) HP V2 line cards in the 5400zl and 8200zl (the newer L2 hardware match platform) Huawei openflow-capable router platforms IBM 8264 Juniper (MX, EX) NEC IP8800 NEC PF5240 NEC PF5820 NetGear 7328SO NetGear 7352SO Pronto (3290, 3295, 3780) - runs the shipping pica8 software可支持的拓撲結(jié)構(gòu)Floodlight現(xiàn)在在支持梁中鋒不同的包轉(zhuǎn)發(fā)應(yīng)用,這兩種應(yīng)用具有不同的行為,并且向下圖的拓撲結(jié)構(gòu)一樣運行:l 在轉(zhuǎn)發(fā)方面:在網(wǎng)絡(luò)中的任意兩個終端設(shè)備之間進行端到端的數(shù)據(jù)轉(zhuǎn)發(fā)內(nèi)含OpenFLow網(wǎng)絡(luò)孤島(OpenFlow island):到同一OpenFlow網(wǎng)絡(luò)孤島中的任意一設(shè)備A發(fā)送數(shù)據(jù)包到設(shè)備B,轉(zhuǎn)發(fā)模塊會計算出A到B之間的最短路徑。內(nèi)含非OpenFlow網(wǎng)絡(luò)孤島(non-OpenFlow island)的OpenFLow網(wǎng)絡(luò)孤島:每一個OpenFlow網(wǎng)絡(luò)孤島都可能有一個連接到非OpenFlow孤島的鏈接。另外,如圖3所示,OpenFlow和非OpenFlow網(wǎng)絡(luò)孤島之間不能構(gòu)成環(huán)網(wǎng)圖1:Floodlight接入OpenFlow網(wǎng)絡(luò)的例網(wǎng)拓撲圖2:Floodlight未接入OpenFlow網(wǎng)絡(luò)的例網(wǎng)拓撲,OpenFlow網(wǎng)絡(luò)孤島1有兩個到非OpenFlow網(wǎng)絡(luò)孤島的鏈接圖3:Floodlight未接入OpenFlow網(wǎng)絡(luò)的例網(wǎng)拓撲,OpenFlow孤島和非OpenFlow孤島形成了一個環(huán)網(wǎng),甚至每一個OpenFlow孤島都有唯一一個連接到非OpenFlow孤島的鏈接l 當轉(zhuǎn)發(fā)路徑中超過指定的時間間隔(默認5秒),通過轉(zhuǎn)發(fā)超時安裝路徑。l 自我學習的交換機:一個簡單的二層自我學習交換機:1 在任何數(shù)量的OpenFlow網(wǎng)絡(luò)孤島中使用,甚至在非OpenFlow的2層網(wǎng)絡(luò)孤島中。2 不能在環(huán)路網(wǎng)路中的網(wǎng)絡(luò)孤島中工作,也不能在孤島形成的環(huán)網(wǎng)中工作3 數(shù)據(jù)轉(zhuǎn)發(fā)效率遠高于其他方法l 另外,F(xiàn)loodlight也提供一個Static Flow Entry Pusher應(yīng)用和一個Circuit Pusher應(yīng)用,允許用戶主動安裝轉(zhuǎn)發(fā)路徑(proactively install forwarding paths)的行為1 Static Flow Entry Pusher允許修改交換機流表項,從而創(chuàng)造由用戶根據(jù)交換機端口明確選擇的轉(zhuǎn)發(fā)路徑2 CircuitPusher是基于Static Flow Entry Pusher,Device Manager,Routing services的RestAPI,在單個OpenFlow孤島中建立一個最短路徑流*術(shù)語“孤島”和“集群”是可以互換使用的。一個OpenFlow孤島/集群就是OpenFlow交換機連接到其中任何設(shè)備的集合。類似的,非OpenFlow的孤島/集群就是任何連接到非OpenFlow交換機的設(shè)備。發(fā)布版發(fā)行說明Floodlight v0.9發(fā)行說明發(fā)布日期:2012年10月概述Floodlighr v0.9包含了控制器新的RestAPI,新的應(yīng)用,漏洞修復,新框架測試等新添加的東西REST APIs顯示如何進行外部連接,通過BDDP發(fā)現(xiàn)多跳鏈路而不是LLDP由于處理錯誤的API并不在發(fā)布包中,但是可以通過純凈版的Floodlight下載頁面或者在github上的Floodlight-master下載獲得。 /wm/topology/external-links/json顯示在LLDP數(shù)據(jù)包中發(fā)現(xiàn)的直連(DIRECT)和隧道鏈接(TUNNEL) /wm/topology/links/json給OpenStack/quantum插件的虛擬網(wǎng)絡(luò)過濾器添加新的API,以顯示所有的創(chuàng)建的虛擬網(wǎng)絡(luò)名,Guid,網(wǎng)關(guān)和主機 /quantum/v1.0/tenants/networks應(yīng)用l Circuit Pusher,一個基于Python的REST應(yīng)用接口,使用RESTAPI來設(shè)置兩臺IP主機的流。包括新的REST APIsl Firewall,一個java應(yīng)用模塊,提供基于控制器的無狀態(tài)ACL支持用戶文檔控制器Floodlight不僅僅是一個支持OpenFLow協(xié)議的控制器(FloodlightCOntroller),也是一個基于Floodlight控制器的應(yīng)用集。當用戶在OpenFLow網(wǎng)絡(luò)上運行各種應(yīng)用程序的時候,F(xiàn)loodlight控制器實現(xiàn)了對OpenFLow網(wǎng)絡(luò)的監(jiān)控和查詢功能。圖0.0顯示了Floodlight不同模塊之間的關(guān)系,這些應(yīng)用程序構(gòu)建成java模塊,和Floodlight一起編譯。同時這些應(yīng)用程序都是基于REST API的。當運行floodlight時,控制器和一組java應(yīng)用模塊(這些會在floodlight屬性文件中載入)開始運行。REST API通過REST端口(默認8080)對所有的運行中的模塊開放。Configuration HOWTO選擇加載模塊Floodlight可以配置載入不同的模塊以適應(yīng)不停地應(yīng)用。配置不同的載入模塊之后必須重啟生效。目前對于Floodlight模塊的配置都是通過需在啟動時加載的一個配置文件的修改實現(xiàn)的。簡單的說,用戶可以通過以下步驟,找到或控制Floodlight當前的配置:l 打開 src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule文件,就可以查看所有在floodlight.jar二進制編譯中的模塊編譯。l 打開src/main/resources/perties文件或者其他自定義屬性文件,查看文件中選擇加載/運行模塊。這些文件時是配置某些啟動時參數(shù)的地方,例如:REST API服務(wù)和WEB UI端口(8080)、交換機連接OpenFlow端口(6633)、默認的超時值等。n 如果在Eclipse或命令行(java -jar floodlight.jar)運行Floodlight,默認情況下加載默認屬性文件。詳細情況可以查看程序參數(shù)包括 -cf some_properties_file文件。n 如果在Floodlight-vm上運行的Floodlight,floodlight.jar是按照 /opt/floodlight/floodlight/configuration/perties instead of perties文件,作為服務(wù)載入n 如果需要修改默認值,停止Floodlight,更新以上所說的屬性文件并重啟。l 如果自定義新的模塊更新上述的兩個文件并重啟生效。雖然大多數(shù)的應(yīng)用都是按照默認屬性配置運行,但是下面的應(yīng)用程序需要一組特定的模塊,因此需要一個特定的配置文件(由于某些模塊之間不兼容)來運行。l OpenStack Quantum plugin:需要和src/main/resources/perties文件一起運行l(wèi) Forwarding和StaticFlowEntryPusher:這兩個模塊都是默認加載的,但有時你只需要加載其中的一個來實現(xiàn)應(yīng)用程序的功能。例如,你想要一個完全自動配置的網(wǎng)絡(luò)并且不會有轉(zhuǎn)發(fā)反應(yīng),因此只需要StaticFlowEntryPusher模塊而禁止Forwarding模塊。控制日志級別在控制臺顯示的調(diào)試信息有時是很有幫助的,但有時又會顯得十分繁雜。Floodlight使用org.slf4j.Logger模塊,將日志信息劃分不同的等級。同時,日志等級是可控的。在默認情況下,F(xiàn)loodlight顯示了所有的日志等級。為了控制日志等級,可以向JVM傳遞以下參數(shù):java -Dlogback.configurationFile=logback.xml -jar floodlight.jar如果實在Eclipse下運行的Floodlight,點擊運行-運行/調(diào)試配置-參數(shù)-VM參數(shù),在這里添加 -Dlogback.configurationFile=logback.xmlXml文件已經(jīng)包含在Floodlight根目錄中。 %level %logger:%thread %msg%n 在這個例子中,net,floodlightcontroller包含了所有的floodlight模塊,并且具有日志記錄級別的信息,因此調(diào)試信息并不會出現(xiàn)在控制臺中。你可以在logxml文件中指定INFO,WARN和DEBUG的級別。監(jiān)聽地址和端口配置為了改變主機地址或監(jiān)聽特定服務(wù)的端口號,可以在屬性配置文件中使用以下的配置參數(shù):net.floodlightcontroller.restserver.RestApiServer.hostnet.floodlightcontroller.restserver.RestApiSernal.FloodlightPernal.FloodlightProvider.openflowportnet.floodlightcontroller.jython.JythonDebugInterface.hostnet.floodlightcontroller.jython.JythonDebugInterface.port默認的屬性配置文件(例如:perties)Floodlight REST API虛擬網(wǎng)絡(luò)過濾器的REST APIURI方法URI 參數(shù)數(shù)據(jù)數(shù)據(jù)作用域描述/networkService/v1.1/tenants/tenant/networks/networkPUT/POST/DELETETenant:暫時忽略Network:網(wǎng)絡(luò)ID(非網(wǎng)絡(luò)名)network: gateway: , name: IP:點分十進制的網(wǎng)關(guān)IP,可以為空 Name:字符串形式的網(wǎng)絡(luò)名創(chuàng)建一個新的虛擬網(wǎng)絡(luò),ID和name是必須的但是網(wǎng)關(guān)是可選的。/networkService/v1.1/tenants/tenant/networks/network/ports/port/attachmentPUT/DELETETenant: Currently ignored Network: The ID (not name) of the networkPort: Logical port nameattachment: id: , mac: Network ID: 字符串形式的剛剛創(chuàng)建的網(wǎng)絡(luò)的ID MAC:點分十進制的MAC地址給虛擬網(wǎng)絡(luò)添加主機/networkService/v1.1/tenants/tenant/networks GETTenant: Currently ignoredNoneNone以json形式顯示所有的網(wǎng)絡(luò)的網(wǎng)絡(luò)名、ID、網(wǎng)關(guān),所有主機的MAC地址Curl使用樣例創(chuàng)建一個名字是“VirtualNetwork1”的虛擬網(wǎng)絡(luò),ID是“Networkid1”,網(wǎng)關(guān)是“”,tenant是“默認”(目前是忽略的):curl -X PUT -d network: gateway: , name: virtualNetwork1 http:/localhost:8080/networkService/v1.1/tenants/default/networks/NetworkId1添加一個主機到VirtualNetwork1,MAC地址為“00:00:00:00:00:08”端口為“port1”curl -X PUT -d attachment: id: NetworkId1, mac: 00:00:00:00:00:08 http:/localhost:8080/networkService/v1.1/tenants/default/networks/NetworkId1/ports/port1/attachmentStaticFlow Pusher API(新)什么是Static Flow Pusher?Static Flow Pusher是Floodlight的一個模塊,通過REST API形式向外曝露,這個接口允許用戶手動向OpenFlow網(wǎng)絡(luò)中插入流表。主動和被動流插入OpenFlow支持兩種流插入方式:主動式和被動式。當數(shù)據(jù)包到達OpenFlow交換機但未成功匹配流表時發(fā)生被動式流表插入。這個數(shù)據(jù)包將會被發(fā)送到控制器,控制器對數(shù)據(jù)包進行分析評估,添加相應(yīng)的流表并允許交換機繼續(xù)該數(shù)據(jù)包的轉(zhuǎn)發(fā)。另外,也可以在數(shù)據(jù)包到達交換機之前,控制器可以主動地插入相應(yīng)流表。Floodlight支持這兩種的流表插入方式。Static Flow Pusher對于主動插入流表的方式很有幫助。注意,在默認情況下,F(xiàn)loodlight載入的轉(zhuǎn)發(fā)模塊是被動插入流表模式的。如果只使用靜態(tài)流表,就必須將Forwarding模塊從perties文件中刪除。使用方法API總結(jié)URI Description Arguments /wm/staticflowentrypusher/jsonAdd/Delete static flowHTTP POST data (add flow), HTTP DELETE (for deletion)/wm/staticflowentrypusher/list/jsonList static flows for a switch or all switchesswitch: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) or all/wm/staticflowentrypusher/clear/jsonClear static flows for a switch or all switchesswitch: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) or all添加一個靜態(tài)流表Static Flow Pusher是通過REST API方式接入,所以有很多訪問方式。例如:要在switch1中插入一個流表,使得port1進入的數(shù)據(jù)包從port2轉(zhuǎn)發(fā)出去。這一操作可以通過使用簡單的curl命令實現(xiàn)。第二個命令將顯示流表設(shè)置。curl -d switch: 00:00:00:00:00:00:00:01, name:flow-mod-1, priority:32768, ingress-port:1,active:true,actions:output=2 http:/:8080/wm/staticflowentrypusher/jsoncurl http:/:8080/wm/core/switch/1/flow/json;刪除靜態(tài)流表通過發(fā)送包含流表名稱的HTTP DELETE來刪除靜態(tài)流表curl -X DELETE -d name:flow-mod-1 http:/:8080/wm/staticflowentrypusher/json流表項屬性Key Value Notes switchID of the switch (data path) that this rule should be added to xx:xx:xx:xx:xx:xx:xx:xxnameName of the flow entry, this is the primary key, it MUST be uniqueactions=See table of actions below Specify multiple actions using a comma-separated list Specifying no actions will cause the packets to be droppedpriorityD默認值為 32767 最大值為 32767active wildcards ingress-portswitch port on which the packet is received Can be hexadecimal (with leading 0x) or decimalsrc-macxx:xx:xx:xx:xx:xxdst-macxx:xx:xx:xx:xx:xxvlan-id可以使16進制(以0X開頭)或者是10進制vlan-priority可以使16進制(以0X開頭)或者是10進制ether-type可以使16進制(以0X開頭)或者是10進制tos-bits可以使16進制(以0X開頭)或者是10進制protocol可以使16進制(以0X開頭)或者是10進制src-ipxx.xx.xx.xxdst-ipxx.xx.xx.xxsrc-port可以使16進制(以0X開頭)或者是10進制dst-port可以使16進制(以0X開頭)或者是10進制操作域的操作選項Key ValueNotesoutput all controller local ingress-port normal flood沒有丟棄選項(但可以不指定操作從而丟棄數(shù)據(jù)包) enqueue:第一個數(shù)字是端口號,第二個是隊列ID可以是16進制(0x開頭)或者10進制strip-vlan set-vlan-id可以是16進制(0x開頭)或者10進制set-vlan-priority可以是16進制(0x開頭)或者10進制set-src-macxx:xx:xx:xx:xx:xxset-dst-macxx:xx:xx:xx:xx:xxset-tos-bits set-src-ipxx.xx.xx.xxset-dst-ipxx.xx.xx.xxset-src-port可以是16進制(0x開頭)或者10進制set-dst-port可以是16進制(0x開頭)或者10進制在主動插入方式中使用Static Flow PusherStatic Flow Pusher可以通過編寫簡單的python代碼腳本來控制。例如,在運行floodlight之后配置mininet虛擬機。默認的拓撲結(jié)構(gòu)式一個交換機(s1)和兩個連接到交換機的主機(h2,h3)。sudo mn -controller=remote -ip= -port=6633以下代碼是插入從h2發(fā)送到h3和h3發(fā)送到h2的流表import httplibimport jsonclass StaticFlowPusher(object): def _init_(self, server): self.server = server def get(self, data): ret = self.rest_call(, GET) return json.loads(ret2) def set(self, data): ret = self.rest_call(data, POST) return ret0 = 200 def remove(self, objtype, data): ret = self.rest_call(data, DELETE) return ret0 = 200 def rest_call(self, data, action): path = /wm/staticflowentrypusher/json headers = Content-type: application/json, Accept: application/json, body = json.dumps(data) conn = httplib.HTTPConnection(self.server, 8080) conn.request(action, path, body, headers) response = conn.getresponse() ret = (response.status, response.reason, response.read() print ret conn.close() return retpusher = StaticFlowPusher( h2 ping h3Firewall REST APIFirewall REST接口防火墻模塊提供REST接口服務(wù),該接口實現(xiàn)了采用REST API服務(wù)形式的RestletRoutable接口。以下是REST方法的列表:URIMethodURI ArgumentsDataData FieldsDescription/wm/firewall/module/jsonGET選項:status,enable,disable存儲規(guī)則,子網(wǎng)掩碼NoneNone查詢防火墻狀態(tài),啟用、停止防火墻/wm/firewall/rules/json GETNoneNoneNone以json格式理出所有的規(guī)則 POSTNone:, :, .field:value 所有的序列組合: switchid:, src-inport:, src-mac: , dst-mac: , dl-type: , src-ip: , dst-ip: , nw-proto: , tp-src: , tp-dst: , priority: , action: Note: specifying src-ip/dst-ip without specifying dl-type as ARP, or specifying any IP-based nw-proto will automatically set dl-type to match IPv4. 創(chuàng)建新的防火墻規(guī)則 DELETENone:ruleid: 注意:rule id是成功創(chuàng)建規(guī)則是以json形式生成并返回的隨機數(shù)根據(jù)rule id刪除規(guī)則Curl使用樣例假設(shè)控制器在本機上運行,顯示防火墻運行還是禁用curl http:/localhost:8080/wm/firewall/module/status/json啟用防火墻。默認情況下防火墻禁用所有的流量除非創(chuàng)建新的明確允許的規(guī)則curl http:/localhost:8080/wm/firewall/module/enable/json添加了允許所有流通過交換機00:00:00:00:00:00:00:01的規(guī)則curl -X POST -d switchid: 00:00:00:00:00:00:00:01 http:/localhost:8080/wm/firewall/rules/json添加允許所有IP為的主機到IP為的主機的流的規(guī)則。不指定動作就是允許的規(guī)則curl -X POST -d src-ip: /32, dst-ip: /32 http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d src-ip: /32, dst-ip: /32 http:/localhost:8080/wm/firewall/rules/json添加允許所有MAC地址為00:00:00:00:00:00:00:0b的主機到MAC地址為00:00:00:00:00:00:00:0c的主機的流的規(guī)則curl -X POST -d src-mac: 00:00:00:00:00:0a, dst-mac: 00:00:00:00:00:0a http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d src-mac: 00:00:00:00:00:0b, dst-mac: 00:00:00:00:00:0b http:/localhost:8080/wm/firewall/rules/json添加允許IP為的主機到IP為的主機ping測試的規(guī)則。curl -X POST -d src-ip: /32, dst-ip: /32, dl-type:ARP http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d src-ip: /32, dst-ip: /32, dl-type:ARP http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d src-ip: /32, dst-ip: /32, nw-proto:ICMP http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d dst-ip: /32, dst-ip: /32, nw-proto:ICMP http:/localhost:8080/wm/firewall/rules/json添加允許IP為難到IP為0主機的UDP轉(zhuǎn)發(fā)(如iperf)規(guī)則,并禁止5010端口。curl -X POST -d src-ip: /32, dst-ip: 0/32, dl-type:ARP http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d dst-ip: 0/32, dst-ip: /32, dl-type:ARP http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d src-ip: /32, dst-ip: 0/32, nw-proto:UDP http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d src-ip: 0/32, dst-ip: /32, nw-proto:UDP http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d src-ip: /32, dst-ip: 0/32, nw-proto:UDP, tp-src:5010, action:DENY http:/localhost:8080/wm/firewall/rules/jsoncurl -X POST -d src-ip: 0/32, dst-ip: /32, nw-proto:UDP, tp-src:5010, actio應(yīng)用REST應(yīng)用Circuit PusherCircuit Pusher采用floodlight REST API在所有交換機上創(chuàng)建基于IP地址與指定的優(yōu)先級兩個設(shè)備之間路由的一個雙向電路即永久性的流表項。注意1. Circuit Pusher 現(xiàn)在只能創(chuàng)建兩個IP主機之間的,雖然只是簡單的擴展以創(chuàng)建基于CIDR格式的IP前綴(例如:/16)電路,但是支持Static Flow Pusher。2. 在向Circuit Pusher發(fā)送restAPIRequest之前,控制器必須已經(jīng)檢測到終端設(shè)備的存在(即終端設(shè)備已經(jīng)在網(wǎng)絡(luò)中發(fā)送過數(shù)據(jù),最簡單的辦法就是用網(wǎng)絡(luò)中任意兩臺主機ping一下),只有這樣控制器才知道這些網(wǎng)絡(luò)終端設(shè)備的接入點從而計算他們的路由。3.當前支持的命令格式語法為:a) circuitpusher.py -controller=IP:rest port -type ip -src IP -dst IP -add -name circuit-name在目前IP鏈路允許的情況之下在目的和源設(shè)備之間新建一個鏈路。ARP自動支持。目前,由工作目錄中的一個文本文件circuits.json提供一個簡單的鏈路記錄存儲。這個文件沒有設(shè)置任何保護,并且在控制器重啟時也不會重置。這個文件需要正確的操作。用戶也應(yīng)該確保當floodlight控制器重啟時刪除該文件。b) circuitpusher.py -controller=IP:rest port -delete -name circuit-name通過之前創(chuàng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高頻信號的降噪課程設(shè)計
- 課程設(shè)計潛望鏡
- 音標拼讀單詞課程設(shè)計
- 編織壁掛的課程設(shè)計
- 2025年眉夾項目可行性研究報告
- 二零二五年房產(chǎn)交易博覽會參展商產(chǎn)品推廣合同3篇
- 2025年度停車場車位資源整合承包合作協(xié)議3篇
- 專利技術(shù)實施許可協(xié)議范本(2024版)版B版
- 廣東省某科技園區(qū)項目可行性研究報告
- 預報課程設(shè)計
- 醫(yī)院院長年終工作總結(jié)報告精編ppt
- 綠化養(yǎng)護重點難點分析及解決措施
- “三排查三清零”回頭看問題整改臺賬
- 造價咨詢結(jié)算審核服務(wù)方案
- 中國人民財產(chǎn)保險股份有限公司機動車綜合商業(yè)保險條款
- T∕CGCC 7-2017 焙烤食品用糖漿
- 八年級物理上冊計算題精選(50道)
- 貨代操作流程及規(guī)范
- 礦井反風演習方案
- 2022年脛骨平臺三柱理論
- 工程進度款支付申請表
評論
0/150
提交評論