标签:控制器 ryu 开源 ofproto ofp msg import RYU dp
实验6:开源控制器实践——RYU
(一)基本要求
- Ryu安装目录下执行ryu –version 结果截图
2.tcpdump的验证过程截图和附图说明
-
h1 ping h2
-
h1 ping h3
3.阅读Ryu文档的The First Application一节,运行并使用 tcpdump 验证L2Switch,分析和POX的Hub模块有何不同
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)
相同之处:
1.Hub和L2Switch实现的都是洪泛发送ICMP报文
2.h1 ping h2时,h1发送给h2的ICMP报文,h3也会收到
不同之处:
L2Switch下发的流表无法查看,而Hub可以查看。
(二)个人总结
- 难度:较难
- 实验过程遇到的困难及解决办法
1.在使用ryu控制器可视化拓扑时出现了问题,看不到拓扑,花了一上午的时间也未找到解决的办法(情况如下图)
2.在看pdf时由于粗心,认为拓扑的默认端口是8080,后来在拓扑之后没办法pingall,纠结了很长时间,后来通过向老师和同学请教问题得到解决,在这里对老师和同学表示感谢。 - 个人感想
这次实验相比上次难度差不多,基本要求的过程大同小异,尤其是在做完了实验五的实践之后,再完成实验六的普通要求的过程中显得更加得心应手,做完实验后感受到收获颇多,学习到了更多的知识。
标签:控制器,ryu,开源,ofproto,ofp,msg,import,RYU,dp 来源: https://www.cnblogs.com/031902518wjm/p/15389368.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。