bydoon

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

基本要求

1.tcpdump 验证Hub模块

h1 ping h2的tcpdump抓包结果截图

h1 ping h3的tcpdump抓包结果截图

2.tcpdump 验证Switch模块

h1 ping h2的tcpdump抓包结果截图

h1 ping h3的tcpdump抓包结果截图

3.L2_learning模块代码流程图

进阶要求

1.重新搭建(一)的拓扑,此时交换机内无流表规则,拓扑内主机互不相通;

编写Python程序自定义一个POX模块SendFlowInSingle3,并且将拓扑连接至SendFlowInSingle3(默认端口6633),实现向s1发送流表规则使得所有主机两两互通。

from pox.core import core
import pox.openflow.libopenflow_01 as of
from pox.openflow.of_json import *

def SendFlowInSingle3(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", SendFlowInSingle3)

posted on 2022-10-12 15:45  镇海bydoon  阅读(35)  评论(0)    收藏  举报