1. 程式人生 > 資訊 >100%羊毛:傑克瓊斯百搭毛衣119元清倉(吊牌價499元)

100%羊毛:傑克瓊斯百搭毛衣119元清倉(吊牌價499元)

一、實驗目的

回顧 JDK 安裝配置,瞭解 OpenDaylight 控制的安裝,以及 Mininet 如何連線;
通過抓包獲取 OpenFlow 協議,驗證 OpenFlow 協議和版本,瞭解協議內容。

二、實驗任務

Mininet 生成拓撲連線 OpenDaylight,在 Mininet 上通過 ping 抓包驗證 OpenFlow
1.3 協議

三、實驗步驟

1. 實驗環境

安裝了 Ubuntu 16.04.5 Desktop amd64 的虛擬機器

(1)安裝 OpenDaylight 控制器

由於 OpenDaylight 是基於 Java 執行的,因此需要先安裝 jdk 8 環境(版本不
宜過高)

$ sudo mkdir /usr/local/java
$ sudo tar -zxvf jdk-8u211-linux-x64.tar.gz //需將 jdk 壓縮包提前放在相應目錄下
$ gedit ~/.bashrc

 在檔案末尾追加內容如下:

export JAVA_HOME=/usr/local/java/jdk1.8.0_211 
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

儲存退出,然後執行命令:

$ source ~/.bashrc
$ java -version //驗證安裝版本

解壓安裝
$ tar -zxvf distribution-karaf-0.6.4-Carbon.tar.gz //Carbon 版本
執行 karaf(不能用超級許可權)
$ ./distribution-karaf-0.6.4-Carbon/bin/karaf //Carbon 版本
第一次啟動需安裝外掛
Carbon 版本
$ feature:install odl-restconf odl-l2switch-switch-ui odl-openflowplugin-flow-servicesui odl-mdsal-apidocs odl-dluxapps-applications

(2)啟動 Mininet 虛擬機器

生成一個最簡拓撲並連線 OpenDaylight
連線前應確認 Mininet 和 OpenDaylight 的網路互通,如果是安裝在同一臺虛擬機器
上,那麼可以忽略。
為了能夠抓到控制器和交換機最初的互動,應在 Mininet 拓撲建立前開啟抓包。
執行命令生成拓撲並連線控制器:
$ sudo mn --switch ovs,protocols=OpenFlow13 --controller=remote,ip=127.0.0.1,port=6633

(3)Wireshark 抓包分析 OpenFlow 1.3

檢視抓包結果,利用 openflow_v4 過濾出 OpenFlow 1.3 協議,可以看到 OpenFlow
協議下,交換機和控制器的互動過程。
HELLO——控制器與交換機互相傳送 Hello 訊息,告訴對方自己能夠支援的
OpenFlow 版本,向下相容雙方都能夠相容的版本,建立後續的通訊。

FEATURES_REQUEST——控制器向交換機要求特徵資訊。

FEATURES_REPLY——交換機會送特徵資訊。

SET CONFIG——控制器向交換機下發兩個配置,一個是 flags,指示如何處理
IP 分片;另一個是 Miss send length,指示交換機遇到無法處理的資料包時,
向控制器傳送訊息的最大位元組數。

PACKET IN——交換機查詢流表,發現沒有匹配條目時,或有匹配條目但是對 應的 action 是 OUTPUT=CONTROLLER 時,向控制器傳送訊息 PACKET
IN 訊息,前者資料包會被放到交換機快取中等待處理,後者不會。

PACKET OUT 和 FLOW MOD——控制器接收到交換機 PACKET IN 訊息後的響應
方式有兩種,FLOW MOD 下發流表,告知交換機匹配項(MATCH)和對應的
動作(ACTION),去處理這一類資料包;PACKET OUT 不下發流表,直接告知
交換機如何處理這一個資料包。