zoukankan      html  css  js  c++  java
  • 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协议的理解有一定的要求,但是做完实验后感受到收获颇多,学习到了更多的知识。
  • 相关阅读:
    理解爬虫原理
    中文词频统计与词云生成
    复合数据类型,英文词频统计
    字符串操作、文件操作,英文词频统计预处理
    了解大数据的特点、来源与数据呈现方式
    为Bootstrap模态对话框添加拖拽移动功能
    前端进阶学习笔记
    前端基础学习笔记
    MySQL学习笔记(模块二)
    MySQL学习笔记(模块一)
  • 原文地址:https://www.cnblogs.com/fcw245838813/p/15424311.html
Copyright © 2011-2022 走看看