一.引言

为了使对网络中异常流量的检测具有一定的主动性,例如实时的获取网络中的流表项,查阅论文和资料,提供以下几个思路。

二.通过ovs-ofctl命令

ovs-ofctl用来控制OVS作为OpenFlow交换机工作时候的流表内容。
ovs-ofctl dump-flows mybridge可以实时的获取mybridge交换机下的流表项,利用 > 输出获取到的实时信息到txt文件中,方便我们的后续的读取。
拓扑建立后在交换机上运行bash脚本。

#!/bin/bash
ovs-ofctl dump-flows s1 >test.txt

查看test.txt文件

root@lxx-ubuntu16:~/mininet/mininet/examples# bash test.sh
root@lxx-ubuntu16:~/mininet/mininet/examples# cat test.txt
NXST_FLOW reply (xid=0x4):cookie=0x0, duration=1480.695s, table=0, n_packets=71, n_bytes=7649, idle_age=366, priority=0 actions=CONTROLLER:65535

[1]这篇论文使用了类似的方法。

三.通过网页爬虫抓取

利用ryu.app.ofctl_rest可以使我们通过网页访问交换机流表项。
ryu.app.ofctl_rest的官方介绍,有关中文介绍可以查看这篇文章。
启动ofctl_rest.py和控制器后,连接拓扑,浏览器访问http://127.0.0.1:8080/stats/flow/1便可查看JSON化的流表项信息。

{"1": [{"actions": ["OUTPUT:CONTROLLER"],"idle_timeout": 0,"cookie": 0,"packet_count": 51,"hard_timeout": 0,"byte_count": 5717,"duration_sec": 123,"duration_nsec": 82000000,"priority": 0,"length": 80,"flags": 0,"table_id": 0,"match": {}}]
}

四.通过控制器

通过控制器对交换机发起流表查询命令(具体操作目前未知),查看某些博客后发现似乎是控制器中调用restAPI编写函数进行信息收集展示。源代码注释以及实例如下:

# REST API
## Retrieve the switch stats
#
# get the list of all switches
# GET /stats/switches
#def get_switches(self):item =  self.path+ '/stats/switches'tmpres = os.popen('curl %s -s' % item).readlines()ss = tmpres[0][:-1]ss = ss[1:]sl = ss.split(', ')return (sl)

五.参考资料

[1]王晓瑞,庄雷,胡颖,王国卿,马丁,景晨凯.SDN环境下基于BP神经网络的DDoS攻击检测方法[J].计算机应用研究,2018,35(03):911-915.
RYU实战,REST API流表控制
ovs-ofctl 官方文档学习笔记
https://blog.csdn.net/manml/article/details/78496778
RYU实验笔记(一):多RYU控制器连接拓扑以及相关流表操作

实时获取SDN网络拓扑中交换机流表项的思路相关推荐

  1. SDN控制器策略制定和表项下发—Vecloud

    流表是SDN交换机进行数据包处理的最基本依据,他直接影响了数据转发的效率和整个网络性能.流表是由集中化的控制器基于全网拓扑视图生成并统一下发给数据流传输路径上的所有SDN交换机,因此,流表的生成算法成 ...

  2. 软件定义网络SDN基础实验:MiniNet常用命令、创建网络拓扑、OpenFlow流表操作

    此实验基于<软件定义网络实验1-5>,主要内容为: MiniNet常用命令 如何创建网络拓扑 OpenFlow流表操作 00x1 搭建SDN环境 SDN 环境配置:Mininet + Ry ...

  3. mininet中下发流表

    mininet中下发流表 使用postman下发流表参考了这篇文章SDN-Postman及python编程对流表的操作 在mininet/custom文件夹中创建自己的拓扑,touch po.py,内 ...

  4. SDN软件定义网络之流表及其组成

    文章目录 SDN软件定义网络之流表 流表由三个组成部分组成--包头域.计数器.动作表 包头 计数器功能 动作表 交换机端口:物理.逻辑.保留 保留端口参数: 流表动作类型 数据包处理流程 版本更新流表 ...

  5. SDN:mininet交换机流表操作

    实验条件 虚拟机vmware workstation16中使用Ubuntu系统 下载mininet的操作: 进入root用户 输入apt-get install git 输入git clone Git ...

  6. SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称

    1.查询数据库中的所有数据库名: 1 SELECT Name FROM Master..SysDatabases ORDER BY Name 2.查询某个数据库中所有的表名: 1 SELECT Nam ...

  7. 管理员获得所有权_在Windows 7中获得注册表项的所有权

    管理员获得所有权 We have previously written about how to take ownership of files and folders in Windows 7, b ...

  8. 获取Access数据库中的用户表名

    SQL语句为 SELECT Name FROM MSysObjects WHERE Type=1 AND Flags=0; 这本来没啥问题,但在代码里执行可能会因为权限报错: ('42000', &q ...

  9. qt获取当前场景中的所有图形项的层次

    提要 场景中有多个窗口,窗口处于不断更新中,获取场景中当前所有窗口的图层.由于特定的结构,这里场景中的窗口采用自定义窗口,将该自定义窗口作为自定义代理窗口的窗口,图形项作为自定义代理窗口的父窗口,再将 ...

最新文章

  1. 人脸识别未来发展如何更有“面子”?
  2. 差异与阵列和阵列结构和链表的区别
  3. linux命令的基本操作
  4. rocksdb原理_手摸手学习 RocksDB 的 Write Buffer Manager
  5. 宝塔面板php日志在哪里,宝塔面板怎么查看网站日志?
  6. Java里的按值传递与引用传递
  7. VMware虚拟机在仅主机模式下的网卡无法动态获取IP
  8. c语言语句的使用形式,C语言如何使用print语句
  9. Linux命令之查看文件内容
  10. jquery extend中
  11. 第一个ExtJS练习(添加用户面板)
  12. Vue上传文件之后显示文件内容
  13. 网站ddos发包服务器,ddos发包搭建
  14. php源码 乱码 通达oa_PHPOA源码中小企业OA办公系统流程ERP CRM HR微信钉钉泛微通达oa...
  15. 关于hive分区,你知道多少呢?
  16. 【英语魔法俱乐部——读书笔记】 1 初级句型-简单句(Simple Sentences)
  17. 【SLAM学习笔记4】卡方检验chi-square
  18. 合并请求格式太乱?工单内容各写各的?表单模板来帮你
  19. 猜数字(超级简单题目)
  20. 量子力学 or 线性代数(二)

热门文章

  1. android自定义控件不显示,解决Android Studio Design界面不显示layout控件的问题
  2. 基于python的股票客户流失数据分析模型
  3. 2023年全国最新工会考试精选真题及答案43
  4. 制作条形码的手机App推荐
  5. 超详细!Jmeter性能测试(一)
  6. 如何将电脑硬盘模式修改为ahci模式,并解决切换后的蓝屏问题
  7. s32ds 路径_S32DS 使用 tips--工程属性配置(编译选项和C编译器、汇编器及链接器设置)...
  8. 认识一下,JavaScript今年25岁啦
  9. 浏览器如何工作:在现代web浏览器场景的之下
  10. 最简明扼要的 Systemd 教程,只需十分钟