3-1openflow协议原理以及应用(packet包广播风暴)实践

news2025/1/21 0:51:46

在Mininet中,其自带的控制器是采用是OpenFlow 1.0版本。因此如果在开发中使用mininet内置的控制器(使用端口6653),即使拓扑构建和ovs自定义时声明使用openflow13,但是由于采用的控制器版本受限,ovs与控制器协商后也只能采用1.0版本交互
。因此,我们在进行实际开发和实践的时候为了使用方便,一般都是采用独立的控制器,如ryu,但是ryu控制器中,也有一些app实例是用openflow1.0版本,比如
root@zmq-virtual-machine:/usr/lib/python3/dist-packages/ryu/app# ryu-manager simple_switch.py
这里的实例 simple_switch.py是使用1.0(也就是openflow v1)

如果项目需要流表用openflow13,则要用对应的控制器实例,如simple_switch_13.py:
root@zmq-virtual-machine:/usr/lib/python3/dist-packages/ryu/app# ryu-manager simple_switch_13.py

一,以下是基于openflow13的协议原理实践

1、启动RYU控制器
root@zmq-virtual-machine:/usr/lib/python3/dist-packages/ryu/app# ryu-manager simple_switch_13.py
2、编写要构建的拓扑代码(或用mininet启动时自带的,s1 h1 h2

3、启动wireshark ,选择lo口,做好监听准备(在root权限下)
4、运行mn命令(默认拓扑)
mn --controller=remote,ip=127.0.0.1,port=6633 --switch=ovs,protocols=OpenFlow13
操作截图:
在这里插入图片描述
图1
在这里插入图片描述图2

OVS与RYU控制器的数据交互截图(由截图可见是openflow13版本,,v1(open flow1.0)v4
在这里插入图片描述
图3
二、扩展(使用自定义拓扑的方式)
1 拓扑定义(以下代码topo_37_ryu_of13.py)


class MyTopo(Topo):
    def __init__(self):
        # Initialize topology 以下建立的是有环的拓扑,将可以观察到网络的广播风暴(openflow包风暴)
        Topo.__init__(self)

        # Add hosts
        h1 = self.addHost('h1')
        h2 = self.addHost('h2')
        h3 = self.addHost('h3')

        # Add switches
        s1 = self.addSwitch('s1')
        s2 = self.addSwitch('s2')
        s3 = self.addSwitch('s3')
        s4 = self.addSwitch('s4')
        s5 = self.addSwitch('s5')

        # Add links
        self.addLink(h1, s1)
        self.addLink(h2, s1)
        self.addLink(h3, s5)
        self.addLink(s1, s2)
        self.addLink(s1, s3)
        self.addLink(s2, s4)
        self.addLink(s3, s4)
        self.addLink(s4, s5)

topos = {'mytopo':( lambda: MyTopo() )}

2、启动mininet命令
root@zmq-virtual-machine:/home/zmq/Desktop# mn --custom=/mnt/hgfs/vmshare/topo_37_ryu_of13.py --topo=mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch=ovs,protocols=OpenFlow13
启动控制器:root@zmq-virtual-machine:/usr/lib/python3/dist-packages/ryu/app# ryu-manager simple_switch_13.py

3测试结果:
在运行控制器的终端可以看到大量的packet包(风暴),注意这里不是ping等数据包(还没有业务数据)网络建立阶段已经有风暴导致无法正常转发数据业务包,如ping不通(图5)
在这里插入图片描述
图4
在这里插入图片描述
图5
4、排除安全故障
在软件定义网络中,广播风暴有可能是协议本身的漏洞导致的,但是一些人为的因素也会导致网络异常,主要是要解决环路问题。
我们可以通过自定义控制器的方式,或采用 simple_switch_stp_13.py 实例控制器观察效果
操作过程:
(1)在mininet中使用exit强行退出网络
(2)在运行控制器的终端使用使用ctrl+c中断控制网络
(3)在运行控制器的终端使用root@zmq-virtual-machine:/usr/lib/python3/dist-packages/ryu/app# ryu-manager simple_switch_stp_13.py 重新启动命令
(4)启动mininet命令
root@zmq-virtual-machine:/home/zmq/Desktop# mn --custom=/mnt/hgfs/vmshare/topo_37_ryu_of13.py --topo=mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch=ovs,protocols=OpenFlow13
(5)观察过程:
从运行结果可以看到stp的生成过程,在生成树稳定后,网络将达到正常的数据转发效果

在这里插入图片描述
启动控制器:root@zmq-virtual-machine:/usr/lib/python3/dist-packages/ryu/app# ryu-manager simple_switch_stp_13.py

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1475211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RV32/64 特权架构 - 特权模式与指令

RV32/64 特权架构 - 特权模式与指令 1 特权模式2 特权指令2.1 mret(从机器模式返回到先前的模式)2.2 sret(从监管模式返回到先前的模式)2.3 wfi(等待中断)2.4 sfence.vma(内存屏障) …

深度学习 精选笔记(5)多层感知机

学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增),以达到集多方教程的精华于一文的目的。 ③非常推荐上面(学习参考&#x…

在Ubuntu22.04 LTS上搭建Kubernetes集群

文章目录 准备工作系统准备软件包准备主机和IP地址准备 安装步骤安装前准备关闭防火墙设置服务器时区关闭 swap 分区关闭SELinux配置hosts配置文件转发 IPv4 并让 iptables 看到桥接流量 安装容器运行时安装Kubernetes配置并安装apt包初始化集群 安装calico网络插件部署应用 本…

iSH使用与优化全网整合教程【持续更新】【精华】

【最后一次更新:2023.4.​​​​​22】 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任~ iSH介绍与换源【已安装并已完成…

香港紧缺13个专业人才有哪些?香港优才计划人才清单解读!

香港紧缺13个专业人才有哪些?香港优才计划人才清单解读! 香港优才计划是香港的一项人才引进政策,目的是吸纳优秀人才来港发展定居,提高香港的国际竞争力。因此,香港优才跟香港紧缺行业息息相关。 如果是从事香港紧缺行…

Docker 常用操作命令备忘

Docker 一旦设置好了环境,日常就只要使用简单命令就可以运行和停止。 于是,我每次用的时候,都想不起来一些关键性的命令到底怎么用,特此记录。 一、镜像管理 从公有仓库拉取镜像 (对于使用苹果电脑 M1/M2/M3 芯片的 …

Rust调用同级目录中的rs文件和调用下级目录中的rs文件

一、Rust调用同级目录中的rs文件 Rust新建工程demo02,src文件夹下面新建test.rs文件,这样main.rs文件与它属于同级目录中。 关键点:导入test文件和test文件中的Ellipse模块 mod test;//导入test模块(文件) use test…

Java学习--学生管理系统(残破版)

代码 Main.java import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {ArrayList<Student> list new ArrayList<>();loop:while (true) {System.out.println("-----欢迎来到阿宝院校学生管理系…

一拎即走的轻薄云台投影,极米投影仪Z7X让生活幸福加倍

随着家用智能投影性能的不断升级&#xff0c;拥有便携、易用、护眼以及大屏等优势的智能投影仪已经逐步取代传统电视机&#xff0c;成为越来越多年轻人在租房、装修新家购置新电器时的第一选择。市面上的投影仪产品多如牛毛&#xff0c;对于刚接触投影仪的新手来说&#xff0c;…

iMazing2024汉化免费版苹果设备管理软件功能详解

一、软件简介 iMazing&#xff0c;被誉为Mac和PC上最佳的iOS设备管理软件&#xff0c;以其全面而细致的功能&#xff0c;赢得了全球苹果用户的喜爱。无论是备份恢复、文件传输还是设备管理&#xff0c;iMazing都能提供高效、安全、便捷的服务体验。 iMazing3Mac-最新绿色安装包…

全面升级!Apache HugeGraph 1.2.0版本发布

图数据库以独特的数据管理和分析能力&#xff0c;在企业数智化转型的过程中正在成为数据治理的核心&#xff0c;根据IDC调研显示&#xff0c;95%的企业认为图数据库是重要的数据管理工具&#xff0c;超过65%的厂商认为在业务上图数据库优于其他选择&#xff0c;尤其是在金融风控…

2024 值得推荐的免费开源 WAF

WAF 是 Web Application Firewall 的缩写&#xff0c;也被称为 Web 应用防火墙。区别于传统防火墙&#xff0c;WAF 工作在应用层&#xff0c;对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果&#xff0c;使其免于受到黑客的攻击。 开源 WAF 和商用 WAF&#xff08;奇安信…

气体反应瓶适用光伏光电半导体坚固耐用PFA缓冲瓶

PFA冲击瓶&#xff0c;别名特氟龙缓冲瓶、可溶性聚四氟乙烯气体反应瓶。用于气体、固体或液体间的反应实验&#xff0c;广泛应用于光电、新材料、新能源、半导体、地矿、冶金、核工业等行业。 PFA冲击瓶相对于其他材质的反应瓶&#xff0c;不易碎&#xff0c;使用更加安全&…

星瑞格新篇:SinoDB V16.8启幕,技术盛宴

喜讯传来&#xff0c;令人心悦&#xff01;SinoDB V16.8版&#xff0c;如春风之翩翩&#xff0c;向众用户及开发者扬帆起航。此版相关技术&#xff0c;均于星瑞格社区(https://forum.sinoregal.cn/ )说明&#xff0c;社区之主页&#xff0c;设“试用活动”栏&#xff0c;以聚众…

【亚马逊云】跨AWS账号创建复制规则同步S3存储桶中的数据

文章目录 注意事项一、创建存储桶【创建方&接收方完成操作】二、上传数据至bucket-transmit待同步测试三、创建复制规则【创建方完成操作】四、接收复制的对象【接收方完成操作】五、创建复制任务【创建方操作】六、运行批处理操作【创建方完成操作】七、检查是否完成跨账号…

使用ffmpeg压缩视频

一、到ffmpeg官网下载文件包&#xff1a; Download FFmpeg 下载后找到 bin 下的3个exe文件&#xff0c;复制到自己本机的某个目录下, 如&#xff1a; 二、使用命令行压缩&#xff1a; ffmpeg -i input.mp4 -c:v libx265 -crf 28 -y output.mp4 这条命令使用 FFmpeg 工具对输…

【Pytorch深度学习开发实践学习】Pytorch实现LeNet神经网络(1)

1.model.py import torch.nn as nn import torch.nn.functional as F引入pytorch的两个模块 关于这两个模块的作用&#xff0c;可以参考下面 Pytorch官方文档 torch.nn包含了构成计算图的基本模块 torch,nn.function包括了计算图中的各种主要函数&#xff0c;包括&#…

等保2.0高风险项全解析:判定标准与应对方法

引言 所谓高风险项&#xff0c;就是等保测评时可以一票否决的整改项&#xff0c;如果不改&#xff0c;无论你多少分都会被定为不合格。全文共58页&#xff0c;写得比较细了&#xff0c;但是想到大家基本不会有耐心去仔细看的&#xff08;凭直觉&#xff09;。这几天挑里边相对…

全新抖音视频下载软件|批量视频下载工具

随着抖音平台上精彩视频的不断涌现&#xff0c;许多用户希望能够方便地保存自己喜欢的视频内容&#xff0c;以便随时观看或分享给朋友。为了满足这一需求&#xff0c;我们基于C#开发了一款全新的视频下载软件&#xff0c;为您提供便捷、高效的视频获取体验。 主要功能模块&…

Rocky Linux 运维工具 dnf

一、dnf的简介 dnf​是用于在基于RPM包管理系统的包管理工具。用户可以通过 ​yum​来搜索、安装、更新和删除软件包&#xff0c;自动处理依赖关系&#xff0c;它是yum的继任者&#xff0c;旨在提供更快速、更现代化的软件包管理体验。。 二、dnf 的参数说明 序号参数描述1in…