zoukankan      html  css  js  c++  java
  • 实验 5:OpenFlow 协议分析和 OpenDaylight 安装

    实验 5:OpenFlow 协议分析和 OpenDaylight 安装

    一、实验目的

    回顾 JDK 安装配置,了解 OpenDaylight 控制的安装,以及 Mininet 如何连接;

    通过抓包获取 OpenFlow 协议,验证 OpenFlow 协议和版本,了解协议内容。

    二、实验任务

    1. Mininet 生成拓扑连接 OpenDaylight,在 Mininet 上通过 ping 抓包验证 OpenFlow 1.3 协议
    2. 在博客园发表一篇博客,记录最终的结果、实验过程遇到的问题和解决办法。

    三、实验步骤

    1.实验环境

    安装了 Ubuntu 18.04.5 Desktop amd64 的虚拟机

    2.实验过程

    (1)安装 OpenDaylight 控制器(本人使用的是 Carbon 版本)

    • 由于 OpenDaylight 是基于 Java 运行的,因此需要先安装 jdk 8 环境(版本不 宜过高,本人使用的是 jdk-8u261-linux-x64.tar.gz )。

      $ sudo mkdir /usr/local/java
      $ sudo tar -zxvf jdk-8u261-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 //验证安装版本
      

    • 解压安装(使用 Carbon 版本)

      $ tar -zxvf distribution-karaf-0.6.4-Carbon.tar.gz 
      //运行 karaf(不能使用超级权限)
      $ ./distribution-karaf-0.6.4-Carbon/bin/karaf
      
    • 第一次启动需安装插件

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

    (2)安装 OpenDaylight 控制器(本人使用的是 Carbon 版本) 为了能够抓到控制器和交换机最初的交互,应在 Mininet 拓扑创建前开启抓包。 运行命令生成拓扑并连接控制器:

    $ sudo mn --switch ovs,protocols=OpenFlow13 --controller=remote,ip=[此处填入控制器所在虚拟机的 IP],port=6633
    

    (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

    四、实验总结

    ​ 本实验操作较简单,在实验过程中没有遇到太大的问题。个人认为本次实验主要操作在于抓包前的 jdk 的安装以及环境配置,配置中可能会有点麻烦,但一旦配置成功接下来的抓包操作就没什么问题了。在抓取 OpenFlow 包时,由于信息过多,可以使用 wireshark 的查找分组的功能快速找到你需要的信息。在使用 Mininet 生成拓扑图时需要注意 ip 的设置,ip 的选择可以使用 ifconfig 中显示的本地或以太网 ip,还有就是生成拓扑图后要检查是否创建成功。

  • 相关阅读:
    linux指令之系统信息查看
    linux指令之文件创建删除查看复制剪切
    c++函数参数类型-引用、指针、值 [转载]
    C++笔记 --- 头文件一览[转载]
    #include< >和#include""的区别
    DeleteFile()参数
    C++文件流读写详解
    Visual Studio中的Build和Rebuild区别
    STL 容器
    Android复习资料
  • 原文地址:https://www.cnblogs.com/huanglong1123/p/13754038.html
Copyright © 2011-2022 走看看