首页 > 其他分享 >实验3:OpenFlow协议分析实践

实验3:OpenFlow协议分析实践

时间:2022-10-05 22:11:15浏览次数:38  
标签:info OpenFlow 端口 实践 交换机 实验 import net 57180

一. 实验目的


  1. 搭建下图所示拓扑,完成相关 IP 配置,并实现主机与主机之间的 IP 通信。用抓包软件获取控制器与交换机之间的通信数据。
#!/usr/bin/env python

from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call

def myNetwork():

    net = Mininet( topo=None,
                   build=False,
                   ipBase='192.168.0.0/24')

    info( '*** Adding controller\n' )
    c0=net.addController(name='c0',
                      controller=Controller,
                      protocol='tcp',
                      port=6633)

    info( '*** Add switches\n')
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch)

    info( '*** Add hosts\n')
    h1 = net.addHost('h1', cls=Host, ip='192.168.0.101', defaultRoute=None)
    h2 = net.addHost('h2', cls=Host, ip='192.168.0.102', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='192.168.0.103', defaultRoute=None)
    h4 = net.addHost('h4', cls=Host, ip='192.168.0.104', defaultRoute=None)

    info( '*** Add links\n')
    net.addLink(h1, s1)
    net.addLink(h3, s1)
    net.addLink(s1, s2)
    net.addLink(s2, h2)
    net.addLink(s2, h4)

    info( '*** Starting network\n')
    net.build()
    info( '*** Starting controllers\n')
    for controller in net.controllers:
        controller.start()

    info( '*** Starting switches\n')
    net.get('s1').start([c0])
    net.get('s2').start([c0])


    CLI(net)
    net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()

(1) hello包
表示含义:控制器6633端口 发送“我最高能支持OpenFlow1.0”信息给交换机57180端口

于是双方建立连接,并使用OpenFlow1.0

(2)Feature_Request
表示含义:控制器6633端口发送“我需要你的特征信息”信息给交换机的57180端口

(3)Set_Conig
表示含义:控制器6633端口发送信息“请按照我给你的Flag和Max_Bytes of Packet进行配置"信息给交换机的57180端口

(4) Port_Status

当交换机端口发生变化时,告知控制器相应的端口状态。

(5) Features Reply

表示含义:交换机57180端口发送“这是我的特征信息,请查收”信息给控制器的6633端口

(6) Packet_in

交换机查找流表,发现没有匹配条目时
有匹配条目但是对应的action是OUTPUT=CONTROLLER时
表示含义:交换机57180端口发送“有数据包进入,请指示”信息给控制器的6633端口

(7) Flow_mod

分析抓取的flow_mod数据包,控制器通过6633端口向交换机57180端口、交换机57180端口下发流表项,指导数据的转发处理

(8) Packet_out

表示含义:控制器6633端口发送“请按照我给你的action进行处理”信息给交换机的57180端口

标签:info,OpenFlow,端口,实践,交换机,实验,import,net,57180
From: https://www.cnblogs.com/MKurisu/p/16756561.html

相关文章

  • 实验4:开源控制器实践——OpenDaylight
    实验4:开源控制器实践——OpenDaylight一、实验目的能够独立完成OpenDaylight控制器的安装配置;能够使用Postman工具调用OpenDaylightAPI接口下发流表。二、实验环境Ub......
  • KUBERNETES服务健康检查配置最佳实践
    ​简介K8S服务健康检查从两个维度进行,分别为:就绪状态检查(readiness)和存活状态检查(liveness)。存活探针和就绪探针被称作健康检查。这些容器探针是一些周期性运行的小进程......
  • 光流算法从理论到实践专题1
    资料搜索​​光流估计-从传统方法到深度学习​​​​光流法研究笔记​​​​计算机视觉--光流法(opticalflow)简介​​​​《AnIterativeImageRegistrationTechniquew......
  • 实验3:OpenFlow协议分析实践
    一、实验目的能够运用wireshark对OpenFlow协议数据交互过程进行抓包;能够借助包解析工具,分析与解释OpenFlow协议的数据包交互过程与机制。二、实验环境Ubuntu2......
  • 图像金字塔从理论到实践专题
    1、资源搜索​​图像金字塔-百度百科​​​​【OpenCV学习笔记】之图像金字塔(ImagePyramid)​​​​高斯金字塔与拉普拉斯金字塔​​​​数字图像处理(21):图像金字塔(高斯......
  • 光流算法从理论到实践专题3
    1、资源搜索光流法:Farneback图像分析之光流之经典光流(七)--Brox算法(DeepFlow)光流算法从理论到实践专题1光流算法从理论到实践专题2Farneback光流算法详解与calcOpticalFlow......
  • 实验3:OpenFlow协议分析实践
    一、实验目的能够运用wireshark对OpenFlow协议数据交互过程进行抓包;能够借助包解析工具,分析与解释OpenFlow协议的数据包交互过程与机制。二、实验环境Ubuntu20.0......
  • 正则化从理论到实践专题
    1、资料搜集​​机器学习之正则化(Regularization)​​(读者反馈很好)​​史上最全面的正则化技术总结与分析--part1​​​​史上最全面的正则化技术总结与分析--part2​​​​......
  • 光流算法从理论到实践专题2
    1、资料搜索​​总结:光流--LK光流--基于金字塔分层的LK光流--中值流​​​​光流算法从理论到实践专题1​​2、本人总结    我在“​​光流算法从理论到实践专题1​......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......