1. 程式人生 > 實用技巧 >實驗5:OpenFlow 協議分析和 OpenDaylight 安裝

實驗5:OpenFlow 協議分析和 OpenDaylight 安裝

一、實驗目的

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

二、實驗任務

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

三、實驗步驟

1.實驗環境

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

2.實驗過程

     (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 版本

    第一次啟動需要安裝外掛

    $ feature:install odl-restconf odl-l2switch-switch-ui odl-openflowplugin-flow-servicesui odl-mdsal-apidocs odl-dluxapps-applications

     至此ODL控制器啟動完畢。

         **(2)啟動 Mininet 虛擬機器,生成一個最簡拓撲並連線 OpenDaylight **

        連線前應確認 Mininet 和 OpenDaylight 的網路互通,如果是安裝在同一臺虛擬機器上,那麼可以忽略。

執行命令生成拓撲並連線控制器:

$ sudo mn --switch ovs,protocols=OpenFlow13 --controller=remote,ip=[此處填入控制器所在
虛擬機器的 IP],port=6633

使用ifconfig檢視虛擬機器的IP

通過測試建立網路拓撲

(3)Wireshark 抓包分析 OpenFlow 1.3

     sudo wireshark 命令開啟 wireshark,選擇 any,抓取所有資料包。
     HELLO 訊息抓取

FEATURES_REPLY 訊息抓取(交換機流表數量)

SET_CONFIG 訊息抓取(控制器向交換機下發兩個配置)

PACKET_OUT 訊息抓取(對控制器來的訊息轉發到 1 和 2 埠)

FLOW_MOD 下發兩條流表 cookie 不同

用 OVS 命令檢視交換機中確實存在相應版本的流表,cookie、priority 等資訊可以上面的抓包能夠對應上。

如果 wireshark 未安裝,那麼執行下面的命令安裝。

$ sudo apt-get install wireshark