大家好,又見面了,我是你們的朋友全棧君。
第1小題:簡單網絡
說明:由于對于SDN架構的了解在學界和業界并沒有統一,為了友善參賽隊員選擇,對于初學者,大賽推薦OpenFlow作為南向接口來實作SDN環境,以下給出分别針對采用OpenFlow和采用其他接口的具體要求(分A、B兩種情況)。
A. 針對采用OpenFlow作為南向接口的參賽隊伍的要求:
參賽隊伍首先需要搭建一個SDN架構的網絡環境,初學者可以參照圖1所示的一個最簡單的拓撲結構,熟練的參賽隊員可以自定義複雜一點的拓撲結構,兩者并不影響評委評分。
B. 針對不是采用OpenFlow作為南向接口的參賽隊伍的要求:
拓撲結構自定,所用裝置、軟體等自選,隻要能夠實作SDN架構的網絡環境即可。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAjM2EzLcd3LcJzLcJzdllmVldWYtl2Pn5GcuYmZhVzN2AzM0UzY4kDZyEWN5IzYxMmNiRWY0ETZxEjMvw1NzUzMyIDOtUGall3LcVmdhNXLwRHdo9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.png)
圖1:簡單的示例拓撲
1. 搭建環境要求:圖1中控制器可以自主選擇,既可選擇各種開源的控制器(例如:Floodlight、Ryu、Nox、Beacon、Trema、OpenDaylight等),也可選擇由本次大賽裝置提供商所提供的閉源控制器。拓撲中各網絡部件既可以是仿真環境實作(例如mininet,OpenvSwtich),有條件的隊伍也可以通過實體裝置實作,兩種方案不影響必答題的評分。
2. 操作要求:對流表進行操作使得Host1和Host2能夠互相ping通,然後再修改流表使得它們不能ping通。
3. 報告書要求:報告書的主要内容需要包含以下幾點:
(1) 較長的描述實驗網絡環境的搭建思路,給出搭建出來的結構拓撲圖,列舉選擇的具體裝置或者仿真軟體、工具軟體,并說明其在實驗中的作用。
(2) 給出實作2中操作要求的具體操作步驟,以截圖或者文本方式展示,要求給出初始以及前後兩次對流表操作後流表内容的截圖。
(3) 給出實驗資料(界面截圖、表格等都可)來說明實作了(2)中的要求。
說明:以上列舉的為硬性要求,在報告書中必須給出。但報告書内容的組織可以靈活處理,自由發揮,不限于上述要求的内容。
實驗報告如下:
一、搭建網絡環境需求:
- ubuntu12.04版本;
- 預設安裝所有 Mininet相關的相關套件,如:OpenFlow、POX 等工具會預設儲存在目前使用者的家目錄,即利用mininet仿真軟體進行處理;
- 在mininet軟體下進行相關指令的配置來完成實驗的目的。
二、實驗操作:
在ubuntu12.04環境下安裝mininet相關插件,這裡我采用了預設安裝所有 Mininet相關的相關套件,如:OpenFlow、POX 等工具會預設儲存在目前使用者的家目錄。
<span style="font-size:14px;"># git clone git://github.com/mininet/mininet
# cd mininet/util/
# ./install.sh -a</span>
複制
由于mininet軟體 支援自定義網絡,是以我們可以指令來檢視自帶的拓撲結構:
<span style="font-size:14px;">wuyouke@ubuntu:~$ sudo mn
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
*** Starting 1 switches
s1
*** Starting CLI:
</span>
複制
也可以通過節點指令來檢視節點的個數:
<span style="font-size:14px;">mininet> nodes
available nodes are:
c0 h1 h2 s1
</span>
複制
正好可以滿足本實驗的要求,是以我們就可以借助于這個拓撲圖而無需進行修改,當然我們可以通過其他指令來自定義拓撲結構,在以後的文章種再進行講解。
通過mininet中的指令來檢視各個節點的IP資訊,即:
接下來就是ping兩台主機,并且事先背景運作wireshark抓包軟體:
在抓包軟體中要首先進行filter:of。然後輕按兩下capture中選擇lo端口來進行抓包餓哦,抓包圖如下:
為了修改流表,是以我們将用到ovs相關的配置指令;
以上是虛拟交換機s1的資訊,獲得dpid,端口openflow端口編号。
<span style="font-size:14px;">sudo ovs-ofctl add-flow s1 idle_timeout=120,in_port=1,actions=drop
</span>
複制
添加一條流規則:丢棄從1端口發來的任何資料包,此時再在sudo mn的模式下ping指令,就會發現兩台主機是ping不通的。這時再次檢視s1上面的流規則:
<span style="font-size:14px;">wuyouke@ubuntu:~$ sudo ovs-ofctl dump-flows s1
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=27.463s, table=0, n_packets=0, n_bytes=0, idle_timeout=120,in_port=1 actions=drop</span>
複制
以上實驗已經完成!
附:由于剛剛學習SDN的相關知識,有些配置還不是很了解,希望大家給予指正,互相學習,謝謝~~
釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/128045.html原文連結:https://javaforall.cn