SDN第五次上机作业

实验5:开源控制器实践——POX

(一)基本要求

一、搭建SDN拓扑,协议使用Open Flow 1.0,控制器使用部署于本地的POX(默认监听6633端口)

  • 快速建立所需拓扑
    sudo mn --topo=single,3 --mac --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow10

二、阅读Hub模块代码,使用 tcpdump 验证Hub模块

hub:

1.开启(pox目录下)POX:./pox.py log.level --DEBUG forwarding.hub
2.打开窗口:在mininet里:xterm h2/h3
3.在打开窗口输入 tcpdump
4.h1 ping h2

5.h1 ping h3

l2_learning:

1.开启(pox目录下)POX:./pox.py log.level --DEBUG forwarding.l2_learning
2.打开窗口:在mininet里:xterm h2/h3
3.在打开窗口输入 tcpdump
4.h1 ping h2

5.h1 ping h3

结论:hub情况下两台host都会有收到数据包,而l2_learning情况下只有ping的那台才有

L2_learning流程图:

(二)进阶要求

from pox.core import core
import pox.openflow.libopenflow_01 as of
from pox.lib.addresses import IPAddr
from pox.lib.addresses import EthAddr
 
log = core.getLogger()
class SendFlowInSingle3 (object):
	def __init__ (self,ignore = None):
		core.openflow.addListeners(self)
		self.ignore = set(ignore) if ignore else ()
	def _handle_ConnectionUp (self, event):
		msg=of.ofp_flow_mod()
		msg.idle_timeout=0
		msg.hard_timeout=0
		msg.priority=1
		msg.match.in_port = 1
		msg.actions.append(of.ofp_action_output(port=0xfffb))
		event.connection.send(msg)
		msg.match.in_port = 2
		msg.actions.append(of.ofp_action_output(port=0xfffb))
		event.connection.send(msg)
		msg.match.in_port = 3
		msg.actions.append(of.ofp_action_output(port=0xfffb))
		event.connection.send(msg)
		if event.dpid in self.ignore:
			log.debug("Ignoring connection %s" % (event.connection,))
			return
		log.debug("Connection %s" % (event.connection,))
def launch (ignore = None):
	if ignore:
		ignore = ignore.replace(',', ' ').split()
		ignore = set(str_to_dpid(dpid) for dpid in ignore)
	core.registerNew(SendFlowInSingle3)

实验总结:

这次实验主要学习使用Pox,最开始做各种问题,求助了几个同学才知道要怎么进行实验,其实不难,就是第一次用非常生疏,熟悉了一下pox命令之后就好做一点了
流程图部分研究了一下L2_learning模块代码,稍微理解了一点是怎么回事,应该是这么个流程(吧)
进阶部分,一言难尽
请教了一个同学,他的意思是l2_learning.py代码的class里面的内容进行修改,去掉一些不需要的变量
但是我改了半天最后还是没法用...最后还是找他要的代码
这个,有耐心的同学可以去试试,没耐心还是建议放了,非常的折磨人......

参考资料:

https://www.cnblogs.com/linzhifengshinidie/p/15374740.html

posted on 2021-10-09 20:19  yyyyddss  阅读(135)  评论(0编辑  收藏  举报