SDN第五次上机作业
实验任务
使用 tcpdump 验证Hub模块
L2_learning模块代码,画出程序流程图.
tcpdump 验证Switch模块
进阶任务
代码如下
from pox.core import core
import pox.openflow.libopenflow_01 as of
from pox.openflow.of_json import *
def _handle_ConnectionUp(event):
msg = of.ofp_flow_mod()
msg.priority = 1
msg.match.in_port = 1
msg.actions.append(of.ofp_action_output(port=2))
msg.actions.append(of.ofp_action_output(port=3))
event.connection.send(msg)
msg = of.ofp_flow_mod()
msg.priority = 1
msg.match.in_port = 2
msg.actions.append(of.ofp_action_output(port=1))
msg.actions.append(of.ofp_action_output(port=3))
event.connection.send(msg)
msg = of.ofp_flow_mod()
msg.priority = 1
msg.match.in_port = 3
msg.actions.append(of.ofp_action_output(port=1))
msg.actions.append(of.ofp_action_output(port=2))
event.connection.send(msg)
def launch():
core.openflow.addListenerByName("ConnectionUp", _handle_ConnectionUp)
个人心得
本次作业算是做的时间最长的一次,原因是因为我之前安装的pox控制器好像有问题,自定义组件的时候,执行总是无法找到模块,我一直以为是我代码的问题。经过长时间探索,感觉应该没什么问题,后来借用同学的环境,用我的代码跑了一遍,没问题。再次感觉到了计算机是玄学的问题。