• SDN第六次上机作业


    RYU安装截图

    拓扑可视化

    tcpdump查看


    查看控制器流表,如下图:

    看到没有流表,而使用pox的hub模块则会看到流表,如下图:

    所以可以看到二者都是洪泛转发,但是不同之处在于POX是直接向交换机下发流表,而Ryu是在每个 Packet In 事件之后,向交换机下发动作。

    进阶要求

    代码当中的mac_to_port的作用是什么?

    保存mac地址到交换机端口的映射,为交换机自学习功能提供数据结构进行 mac-端口 的存储

    simple_switch和simple_switch_13在dpid的输出上有何不同?

    simple_switch的dpid赋值:dpid = datapath.id
    simple_switch_13的dpid赋值:dpid = format(datapath.id, "d").zfill(16)
    在python console进行测试,可以看到在simple_switch直接获取的id,在simple_switch_13中,会在前端加上0将其填充至16位

    相比simple_switch,simple_switch_13增加的switch_feature_handler实现了什么功能?

    实现交换机以特性应答消息响应特性请求,可查看文档
    https://ryu.readthedocs.io/en/latest/ofproto_v1_3_ref.html#ryu.ofproto.ofproto_v1_3_parser.OFPSwitchFeatures

    simple_switch_13是如何实现流规则下发的?

    在接收到packetin事件后,首先获取包学习,交换机信息,以太网信息,协议信息等。如果以太网类型是LLDP类型,则不予处理。如果不是,则获取源端口目的端口,以及交换机id,先学习源地址对应的交换机的入端口,再查看是否已经学习目的mac地址,如果没有则进行洪泛转发。如果学习过该mac地址,则查看是否有buffer_id,如果有的话,则在添加流动作时加上buffer_id,向交换机发送流表。

    个人心得

    本次实验难度较难,主要在于对openflow协议的理解,以及对Ryu源码的熟悉程度。在实验过程中,遇到如下问题:

    • 在用Ryu的L2Switch模块下发流表时,看到洪泛现像,但是在交换机上没有看到流表,在请教老师之后才知道,这才是Ryu与POX之间的差别
    • 在分析simple_switch.py和simple_switch_13.py源码时,遇到困难,不理解函数的作用,在查看官方文档,以及搜索相关资料之后,对源码的理解相对透彻了些
      这次实验相比上次难度更大,对源码分析和对openflow协议的理解有一定的要求,但是做完实验后感受到收获颇多,学习到了更多的知识。
  • 相关阅读:
    装饰器wraps
    装饰器的语法糖
    VisionPro 自学帮助
    准备重新编译VisionPro 官方版本 使用 vs2019
    个人随笔_学习感悟
    VisionPro 一些图操作
    System.Data.Sqlite.dll 使用异常问题参考
    NOPI笔记01
    VisionPro帮助文档学习01(UserGuide DisPlay)
    MSSqlServer基础学习01
  • 原文地址:https://www.cnblogs.com/fcw245838813/p/15424311.html
Copyright © 2020-2023  润新知