mininet+FlowVisor+OpenDayLight環境搭建及實驗二(完)

4.3.3 flowspaces深入

(1)命令格式:

fvctl add-flowspace [options] <flowspace-name> <dpid> <priority> <match> <slice-perm>

 

圖 28

在上文中添加的flowspace是這樣的:

 

圖 29

上圖中的8888是在config.json文件中自定義的flowvisor控制端口,add-flowspace後面跟上的5個參數的分別是:

l fs1:新創建的flowspace名,這個flowspace名是可以重名的。

l all:指定數據通路,這裏的all指的是虛擬網絡中所有的數據通路。以下圖的的topo結構爲例:

 

圖 30

如果想要h1能夠pingh2,只需要指定S3爲數據通路即可。而想要平通h1h8則需要指定S3S2S1S5S7爲該flowspace規則的數據通路。

l 100:指定該規則的優先權,值範圍爲:0-65535

l any:指定該規則的匹配項,any代表匹配所有字段。(可以指定一個或多個字段)

l S1=7:指定slice對該flowspace規則擁有的權限。DELEGATE=1, READ=2, WRITE=4。值爲這3值的和,取值範圍爲{1,2,3,4,5,6,7}

(2)聯機實驗

這裏採用的是上文提到的劃分兩個切片,一個連接到odl控制器,一個連接到floodlight控制器,具體操作過程詳見4.3.3節中的(1)、(2)段。下面創建flowspace規則,只允許h1h2h7h8互相ping通。

l 爲連接到odls1創建sp1規則(分開創見兩個,分別指定h1->h2h2->h1),因爲h1h2連在同一個交換機上(拓撲圖見圖 30),所以數據通路只需要指定S3即可:

 


圖 31

l 爲連接到floodlights2創建創建sp2規則,同樣的,h7h8連接在同一交換機上,數據通路也只需要指定S7即可:

 

圖 32

l 查看已添加的flowspace規則信息:

 

圖 33

l 重啓切片

這一步驟可以省略,但由於flowvisor並不穩定,有時新建的規則生效需要重啓該規則對應的切片:

 

圖 34

l pingall

mininet中輸入pingall命令查看連通情況:

 

圖 35

如圖 35所示,虛擬網絡中只有h1h2h7h8可以互相ping通,其他虛擬主機則不能。

(3)補充實驗

這裏補充一個h1h8之間互相ping通的實驗(拓撲圖建圖 30)。由於fvctl命令只支持一次指定一個數據通路,所以想要將S3S2S1S5S7都指定爲數據通路,需要多次添加規則:

 

圖 36

 

圖 37

從圖 37中可以看出,除了之前fs1fs2中指定的h1h2h7h8之間能互相ping同之外,sp3指定的h1h8之間也能互相ping通了。


————————END————————————

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章