实验6:开源控制器实践——RYU
2024-10-16 00:04:07
实验目的
- 能够独立部署RYU控制器
- 能够理解RYU控制器实现软件定义的集线器原理
- 能够理解RYU控制器实现软件定义的交换机原理
二、实验环境
- 下载虚拟机软件Oracle VisualBox或VMware;
- 在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;
三、实验要求
- 安装截图
- 查看网络拓扑
L2Switch.py
文件
from ryu.base import app_manager
from ryu.controller import ofp_event
from ryu.controller.handler import MAIN_DISPATCHER
from ryu.controller.handler import set_ev_cls
from ryu.ofproto import ofproto_v1_0
class L2Switch(app_manager.RyuApp):
OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION]
def __init__(self, *args, **kwargs):
super(L2Switch, self).__init__(*args, **kwargs)
@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def packet_in_handler(self, ev):
msg = ev.msg
dp = msg.datapath
ofp = dp.ofproto
ofp_parser = dp.ofproto_parser
actions = [ofp_parser.OFPActionOutput(ofp.OFPP_FLOOD)]
data = None
if msg.buffer_id == ofp.OFP_NO_BUFFER:
data = msg.data
out = ofp_parser.OFPPacketOut(
datapath=dp, buffer_id=msg.buffer_id, in_port=msg.in_port,
actions=actions, data = data)
dp.send_msg(out)
运行
run L2Switch.py
h1 ping h2:
h1 ping h3:
洪泛转发ICMP报文
发现并没有流表,但是使用pox会有
个人心得
- 本次的ryu实践还算简单,根据PDF的指导可以正确的得到结果,但是图形化的界面有些问题,而且本地的网址始终打不开
- 本次实验完成我学会了如何独立部署安装ryu控制器,对ryu控制器实现软件定义的集线器原理有了实践上的理解,初步掌握了使用ryu控制器的方法。但是只是一些皮毛,会在大作业中继续使用并深入学习。
最新文章
- IOS开发之Bug--iOS7View被导航栏遮挡问题的解决
- windows 下面安装npm
- Python入门神图
- 彻底了解android中的内部存储与外部存储
- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter作用
- web前端面试题收集(一)
- VC++6.0 编写插件(图文并茂)
- .NET基础拾遗(7)多线程开发基础3
- 项目改bug期间总结
- Nginx系列0:Nginx学习历程
- python面试题之如何用Python输出一个斐波那契数列
- Mac OS X 显示和隐藏文件
- java去除表达符号的正则表达式
- 对于League of Legends的分析
- Silverlight 预定义颜色速查表
- 冲刺博客NO.1
- QT里使用Gsoap调用WebService
- Android手机无线adb
- 解决CentOS内网机通过Windows下架设代理来访问网络
- Designers, please follow the guidelines
热门文章
- pycharm的常规使用
- 【Python】python 2.7.16 x64 百度网盘
- 小程序跳转H5及其他页面
- openFeign夺命连环9问,这谁受得了?
- P7737-[NOI2021]庆典【tarjan,虚树】
- P4180-[BJWC2010]严格次小生成树【Kruskal,倍增】
- P4606-[SDOI2018]战略游戏【圆方树,虚树】
- P5319-[BJOI2019]奥术神杖【0/1分数规划,AC自动机,dp】
- IO流基本概念
- 智汀家庭云-开发指南Golang: 插件模块