首页 > 其他分享 >实验6:开源控制器实践——RYU

实验6:开源控制器实践——RYU

时间:2022-10-26 18:37:40浏览次数:50  
标签:控制器 ryu simple 开源 switch 交换机 L2Switch RYU

实验6:开源控制器实践——RYU

一、实验目的

  1. 能够独立部署RYU控制器;
  2. 能够理解RYU控制器实现软件定义的集线器原理;
  3. 能够理解RYU控制器实现软件定义的交换机原理。

二、实验环境

Ubuntu 20.04 Desktop amd64

三、实验要求

(一)基本要求

  1. 搭建下图所示SDN拓扑,协议使用Open Flow 1.0,并连接Ryu控制器,通过Ryu的图形界面查看网络拓扑。

  2. 阅读Ryu文档的The First Application一节,运行当中的L2Switch,h1 ping h2或h3,在目标主机使用 tcpdump 验证L2Switch,分析L2Switch和POX的Hub模块有何不同。

    L2Switch代码

    h1 ping h2

    h1 ping h3

    L2Switch和POX的Hub模块有何不同?

    L2Switch模块

    POX的Hub模块

  3. 编程修改L2Switch.py,另存为L2xxxxxxxxx.py,使之和POX的Hub模块的变得一致?(xxxxxxxxx为学号)

(二)进阶要求

  1. 阅读Ryu关于simple_switch.py和simple_switch_1x.py的实现,以simple_switch_13.py为例,完成其代码的注释工作,并回答下列问题:


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

    答:mac_to_port的作用是保存mac地址到交换机端口的映射。


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

    答:simple_switch直接输出dpid,simple_switch_13对dpid进行了格式化,并填充为16位数字,会在不满16位的dpid前补0直到满16位。


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

    答:实现了交换机以特性应答消息来响应特性请求的功能。


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

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


    e) switch_features_handler和_packet_in_handler两个事件在发送流规则的优先级上有何不同?

    答:switch_features_handler下发流表的优先级比_packet_in_handler的优先级高。

  2. 编程实现和ODL实验的一样的硬超时功能。

(三)个人总结

本次实验偏难,花费的时间也较多,通过这次实验学习了一些ryu的基础知识,过ryu的使用,明白了ryu与pox转发的流表的区别,pox是直接向交换机发送流表项的,而ryu要经过处理packet_in事件后,才向交换机下发流表,稍微理解了ryu和pox的一些区别,对ryu的理解还不是很深入还需要更多的学习。

    标签:控制器,ryu,simple,开源,switch,交换机,L2Switch,RYU
    From: https://www.cnblogs.com/jober/p/16829543.html

    相关文章

    • 开源多语言商城 CMS 企业建站系统,MyCms v3.9 发布
      MyCms是一款基于Laravel开发的开源免费的开源多语言商城CMS企业建站系统。MyCms基于Apache2.0开源协议发布,免费且可商业使用,欢迎持续关注我们。V3.9更新内容新......
    • 开源多语言商城 CMS 企业建站系统,MyCms v3.9 发布
      MyCms是一款基于Laravel开发的开源免费的开源多语言商城CMS企业建站系统。MyCms基于Apache2.0开源协议发布,免费且可商业使用,欢迎持续关注我们。V3.9更新内容......
    • 开源主机安全监测工具WGCLOUD有哪些功能
      WGCLOUD的server和agent都需要用户进行本地化部署,WGCLOUD没有云端服务器来管理存贮用户的监测数据,所以用户部署使用完全自主可控WGCLOUD可以在内网、局域网运行,不需要联网,不......
    • 借我 1 小时,与 1000 人一起参与开源
      如果你愿意多抽1个小时来了解开源,就会发现参与开源其实很简单不可否认,从开源诞生至今,它就是一场多人在线协作的运动。从Linux到JavaScript,从Vue到Viscode……无一不......
    • 4 天 7 条 PR,80% 代码覆盖率,开源是「内卷」还是修炼?
      炎热的夏天,开源摘星计划2022届的比赛还在火热的开展中。每天,来自全球的近800位开发者都在开源摘星活动群中,激情地聊着他们参与开源贡献的点点滴滴,近100位突出的贡献者......
    • K8s控制器
      一、Replicaset控制器概述   RS是kubernetes中的副本控制器,全称Replicaset,主要作用是控制由其管理的pod,使pod的副本数量始终维持在预设的个数。保证一定数量的po......
    • C# 开源NuGet插件
      ExcelDataReader 开源免费,Excel读取插件GitHub-ExcelDataReader/ExcelDataReader:LightweightandfastlibrarywritteninC#forreadingMicrosoftExcelfil......
    • 实验6:开源控制器实践——RYU
      一、实验目的1、能够独立部署RYU控制器;2、能够理解RYU控制器实现软件定义的集线器原理;3、能够理解RYU控制器实现软件定义的交换机原理。二、实验环境Ubuntu20.04Des......
    • 优秀开源云原生工具推荐 -- 系列3
       云原生技术在效率上的巨大优势,使其日益成为IT发展的主流趋势。根据Gartner的预测,到2025年,云原生平台将成为95%以上的新数字化计划的基础。围绕云原生中的各个方面,都有这非......
    • 有什么推荐的开源erp代码?
      XBS(3UCSERP)是3UCS于2020年开始开源的面向制造型企业ERP系统,开源仓库在github.com(https://github.com/dspflash/3ucsERP)/sf.net(3ucsERP)/gitee(bizfree/三优ERP_3ucs)三个开......