這個部分是我們的重點,也就是方案設計,重點講述了我們的實驗是怎麼實現的,也將展現許多實驗細節(以後會在上面用差不多一天的實現來寫實驗報告,反思才是最珍貴的,我們提出的更加好的理論,會充分詳細,還有就是想說,不能再水了,明天就把那個撬開,不能再忍了,還有不是不能做,而是沒有動力了(比如買衣服),開始強迫,開始找浙源想想怎麼辦,重點是先不要在這裡,出去什麼都好說,周圍環境對我很重要)


目錄:

課程作業目的

場景設計與實驗預期

我們一個一個慢慢來寫好他


1 實驗目的及預期

———————————————————————————————

1.1 實驗目的

個人認為這次課程的作業的目的大概有三個大方向:

  • 熟悉SDN:首先可以很直接地從實驗這個項目看出,這是在鍛煉我們的動手能力,同時也是使得我們對於SDN的認識更加的深刻
  • 了解前沿計算機網路知識:我想這也是老師最初開設這門課的初心,我們信息安全專業需要掌握更加多的關於計算機網路的知識
  • 激發計算機網路知識的興趣:學習我個人認為也是要開心的,所以如果這個課程使得我們產生了有關計算機網路的興趣,那也算是意外收穫

-----------------------------------------------------------------------------------------------

1.2 實驗預期

由於這次實驗我們主要的目的是要實現比較SDN路由和傳統路由方式的區別。所以我們在實驗上有幾個預期:

  • 基本達到實驗要求,實現SDN
  • 實現負載均衡

因為當時是在對於實驗比較模糊的階段,所以沒有什麼太過具體的要求

———————————————————————————————

2 實驗準備

———————————————————————————————

(個人部分就寫在這裡面)

因為這個部分比較多,所以我們還是需要進行先分類。首先我們會說明方案的設計,然後是說明實驗的分工,接著就是實驗重點的實現,我們也會進行再分類,主要為:

  • 實驗環境安裝:(會講述一部分問題在其中,次要因為不是我的主要部分)
  • 環境的熟悉:
    • 了解SDN怎麼建立連接
  • 實驗實現:
    • 建立拓撲圖
    • 確定路由思路
    • 創建流表
    • 數據抓包

-----------------------------------------------------------------------------------------------

2.1 實驗分工

我們最初的分工是先統一安裝環境,但是由於安裝環境太過於困難,所以我們轉換了分工,先有我的隊友安裝環境,我來實現實驗。這樣不至於完成不了實驗。

-----------------------------------------------------------------------------------------------

2.2 實驗環境安裝

我們本次實驗安裝的是ubuntu-14.05,mininet,opendaylight控制器

mininet安裝:

安裝git:apt install git
從github獲取Mininet源碼:git clone git://github.com/mininet/mininet
獲取源碼樹並安裝Mininet:cat INSTALL
完整安裝命令:cd mininet ./util/install.sh –a
若出現Enjoy mininet!則安裝成功,但是往往需要多次執行最後一步才能成功

opendaylight安裝:

  • 官方下載安裝包:

distribution-karaf-0.6.1-Carbon.zip
apache-maven-3.6.0.tar.gz
若出現官網打不開,下載速度很慢,下載一部分失敗建議使用VPN

  • 安裝Oracle Java:

add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
查看版本:
java --version

  • 安裝maven:

tar xvzf apache-maven-3.6.0-bin.tar.gz
gedit /etc/profile
添加:
M2_HOME=/opt/apache-maven-3.5.0
CLASSPATH=$CLASSPATH:$M2_HOME/lib
PATH=$PATH:$M2_HOME/bin export
PATH CLASSPATH M2_HOME
source /etc/profile
mvn –version
若失敗,則需要多次執行source /etc/profile

  • 安裝ant:

apt-get install ant

  • 安裝Opendaylight

unzip distribution-karaf-0.6.1-Carbon.zip
cd home/Downloads/distribution-karaf-0.6.1-Carbon/bin
./karaf
修改host:
cd home/Downloads/distribution-karaf-0.6.1-Carbon/etc
gedit org.apache.karaf.management.cfg
rmiRegistryHost = 0.0.0.0 改為: rmiRegistryHost = 127.0.0.1
rmiServerHost = 0.0.0.0 改為:rmiServerHost = 127.0.0.1

由於安裝部分不是我負責,所以以上細節可能理解不是很深刻

-----------------------------------------------------------------------------------------------

2.3 實驗環境的熟悉

-----------------------------------------------------------------------------------------------

———————————————————————————————

3 實驗方案和技術細節

———————————————————————————————

3.1 拓撲設計

我們直接使用了老師給定的拓撲圖

因為我們的實驗要求中,使用h4作為伺服器,所以我們本著從易到難的思想來做。

=======================================================

3.2 設計方案

因為我們希望的是從傳統路由開始不斷加上一些約束條件來看看,所以我們主要設置了三個方案。

case1:傳統路由用於性能對比

case2:在傳統路由的基礎上加上了以ipv4地址作為路由的選項

case3:在case2的基礎上我們設置了tcp和udp

路線:

設計的路線

我們通過上述路線來進行試驗,我們已經使用不同顏色的線進行標記

======================================================

3.3 查看默認配置

======================================================

3.4 方案一實現

======================================================

3.5 方案二實現

有了方案一實現的經驗我們後面的方案實現就簡單了很多,其中主要的區別就是流表的修改和捕捉到數據不同。

3.5.1 流表修改

其中需要多填寫一項layer-3-match(ipv4-match)->ipv4-source:10.0.0.1/32

其他的流表幾乎和之前不同,注意點就是不要重複,或者先刪除原來的流表

3.5.2 數據捕捉

流表:

主機ping測試:

h1 ping h4- client

h1 ping h4- server

wireshark:

======================================================

3.6 方案三實現

同樣該方案中大體沒有改變,主要改變為埠號,流表項和測試結果。這裡以TCP作為例子

3.6.1 埠項

s4:3->1,1->3

s7:1->3,3->1

3.6.2流表項

我們需要填寫ip-match->ip-protocal:6

3.6.2 捕捉結果

1 TCP

h3 ping h4-client
h3 ping h4 -server

2 UDP

h1 ping h4
h3 ping h4

———————————————————————————————

4 實驗問題及解決方案

———————————————————————————————

實話說我們遇到的問題可能一萬字都說不完。所以我們挑出了最主要的問題。

4.1 流表的填寫

(給點時間調整到最好狀態,作業做完之後的調整,多看幾遍的時間,微調的時間逼迫出來,查錯)

最初我們完全不知道流表的含義,看著流表那麼多的選項無從下手,我們只能嘗試,上網搜資料,從中得到靈感。

-----------------------------------------------------------------------------------------------

4.2 環境的安裝

雖然說我們的分工任務中,我是沒有實驗安裝,但是其實我們進行這個實驗的時間中。安裝是佔了大部分的時間的。我們在安裝完實驗環鏡之後的實驗過程就還算比較順利,但是在此之前我們可以說是快要瘋了。最後還是一個個解決了

-----------------------------------------------------------------------------------------------

4.3 軟體的使用方法

雖然我們在上面的看起來很溜,但是其實我們是經過了無數的嘗試之後才得到的結果。或許是能錄不足吧

推薦閱讀:

相关文章