• SDN上机作业6


    实验 6:OpenDaylight 实验——OpenDaylight 及 Postman实现流表下发 安装


    实验环境:安装了Ubuntu18.04.5 Desktop amd64 的虚拟机
    实验目的:熟悉 Postman 的使用;熟悉如何使用 OpenDaylight 通过 Postman 下发流表。
    实验任务
    流表有软超时和硬超时的概念,分别对应流表中的 idle_timeout 和 hard_timeout。

    • idle timeout:如果值为非 0,那么在对应的时间内如果没有数据包匹配流表,时间到该流表将被删除;值为 0 不设软超时机制。
    • hard timeout:如果值为非 0,那么在对应的时间内不论是否有数据包匹配流表,时间到流表都会被删除;值为 0 不设硬超时机制。
      本实验通过 OpenDaylight 及 Postman 下发关于硬超时的流表,实现拓扑内主机h1 和 h3 在一定时间内的网络断开。Postman 是一个 http 请求工具,可用于 RESTAPI 的接口调试。
      实验拓扑如下:

    实验要求

    • 根据实验步骤重复上述实验。
    • 在博客园发表一篇博客,记录最终的结果、实验过程遇到的问题和解决办法。

    实验过程

    • Postman 安装

    • 清理旧数据

      • 启动 OpenDaylight,通过 Postman 的 Delete 动作清空残留流表(如有)
      • 清空 Mininet 数据
    • 生成拓扑并连接 OpenDaylight

    • 使用 Postman 填入 JSON 格式的 http 请求
      先在 Mininet CLI 中运行 h1 ping h3,再在 Postman 处选择动作 PUT,填入硬超时流表内容(见附录),可以先阅读一下流表的内容,关注 match 匹配字段以及对应的 instructions 指令中的动作 action,这里是直接 drop 数据包。为了让流表能够匹配,将优先级 priority 调到最大。点击右上角 send,发送请求。

    • 验证结果:h1 ping h3 有 10 秒时间是中断的,结果符合预期。

    参考附录

    JSON 格式的请求代码如下:

    http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/flownode-inventory:table/0/flow/1
    {
       "flow": [
           {
                 "id": "1",
                 "match": {
                       "in-port": "1",
                       "ethernet-match": {
                             "ethernet-type": {
                                   "type": "0x0800"
                             }
                       },
                       "ipv4-destination": "10.0.0.3/32"
                 },
                 "instructions": {
                       "instruction": [
                             {
                                   "order": "0",
                                   "apply-actions": {
                                         "action": [
                                               {
                                                     "order": "0",
                                                     "drop-action": {}
                                               }
                                          ]
                                   }
                             }
                       ]
                 },
           "flow-name": "flow1",
           "priority": "65535",
           "hard-timeout": "10",
           "cookie": "2",
           "table_id": "0"
           }
       ] 
    }
    

    实验心得

    • 本次实验较为简单,按照指导书给定步骤完成即可。
  • 相关阅读:
    备份文件的时候,不想手敲日期时间。用这种方法
    bash 命令行自动补全
    windows 下创建虚拟conda 环境
    windows 下安装venv慢,更换国内豆瓣源
    下载某个链接100次
    Linux cached过高问题
    把一件事坚持30天
    java dump 内存分析
    微服务架构~白话
    Spring Boot自定义Redis缓存配置,保存value格式JSON字符串
  • 原文地址:https://www.cnblogs.com/zlonglongago/p/13778300.html
Copyright © 2020-2023  润新知