采用sFlow工具实现流量监控--实验

简介: 采用sFlow工具实现流量监控--实验

采用sFlow工具实现流量监控—实验

学习目标

  • 采用sFlow工具实现流量监控

学习内容

  • 理解sFlow-rt的基本配置与操作;
  • 掌握mininet中sFlow agent的配置过程
  • 实验原理

sFlow的部署分为两部分:sFlow agent和sFlow collector。sFlow agent内嵌入网络设备中,获取设备的实时信息并封装成sFlow报文发送给sFlow collector。


sFlow-rt可统计到每个接口的流量信息,通过sFlow-rt的rest api获取json数据并对json数据进行解析获得。对解析到的数据进行判断分析后即可实施策略。


选择sFlow-rt好处:sFlow-rt可以提供周期性的网络接口统计采样和数据包采样,能够提供各接口的流量信息,且几乎不会对被统计设备造成任何负担,管理成本极低。


关于如何下载和使用sFlow-rt工具请参考我的这篇 博客


实验拓扑

如下图

4e1bec498db24a1e95beb9cb73082569.png



实验仿真

启动sFlow-rt以及floodlight控制器

切换到sFlow-rt目录并启动sFlow-rt

cd sflow-rt/
./start.sh

5755a261c7154f2d9bd49b7d013c9960.png


打开浏览器输入:

localhost:8080

如下图说明floodlight控制器启动成功

b17f5cd77fb74e288534d0e60bf20777.png



新开一个终端,切换到floodlight/example目录,执行以下命令查询虚拟机交换机dpid

cd floodlight/example
./cli.py switch

29ed96f05049444797a7fd425cb7947d.png


在输出结果中寻找dpid号如下



91de126726ce44a68288111274d6f6d1.png

切换到floodight安装目录下


touch dropkt.json
sudo chmod 777 dropkt.json
sudo gedit dropkt.json

执行以下命令创建文件,并使用vim命令编辑该文件

5fa47365c4134e48af269e9c838780d4.png


         


在dropkt.json文件中添加如下内容,switch对应的编号则为之前获取的虚拟机交换机dpid


d1480c1f7f98495ebc99b4da67fe5007.png


执行以下命令启动floodlight


java -jar target/floodlight.jar

dfe9260e20854d4b8e8e6056d699471f.png



创建拓扑

新开一个终端,在/mininet目录下创建文件topo-1sw_3host.py,

sudo touch topo-1sw_3host.py
sudo chmod 777 topo-1sw_3host.py
gedit topo-1sw_3host.py

c48a3f8cc51b4fbdad78f1d6de0abbf7.png

并如下添加内容

e41f40d98d9c454aba56653df7c72ba7.png



添加完成后保存退出。


执行以下命令启动Mininet,生成测试拓扑结构

sudo mn --custom /home/administrator/Desktop/mininet/topo-1sw_3host.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow10

a0d4b0b20aa346418a2478f0191f5a82.png


说明


–mac指定虚拟主机的mac地址顺序编号,若不带此参数则随机编号


–controller指定of交换机的控制器


–switch指定虚拟交换机的类型,ovsk表示虚拟交换机为ovs Kernel mode


–custom指定自定义拓扑文件


–topo指定加载拓扑的名字


部署sFlow agent

步骤1.

在mininet环境中输入ifconfig命令查看当前网卡状态

ifconfig

ab1b98bcc4df4173b222d922b0f421de.png


步骤2.

在mininet上测试连通性

h1 ping h2

477ce7798d5a4feb94af569ff1651f1a.png


步骤3

执行以下命令开启OvS的sFlow功能,并配置sFlow Agent

sudo ovs-vsctl -- --id=@sflow create sflow agent=s1 target=\"127.0.0.1:6343\" header=128 sampling=10 polling=1 -- set bridge s1 sflow=@sflow


65abc3f96ff7467a813d831c14ab7933.png

参数说明:


1)agent:虚拟机对应的某个监控流量的网卡,本实验用s1网卡产生和监控流量;

2)target:sFlow-rt的IP,默认端口6343;

3)bridge:需要开启sFlow的网桥;

步骤4

输入如下命令查看已经配置的Agent信息。


sudo ovs-vsctl list sflow

2af654315f1747619713313baa2e27ba.png


输入ip link命令,查看交换机端口名称与端口编号的映射关系。


如下图我这里的docker0(eth0)对应的编号是3,s1对应的编号是13


(安装docker:主要实现Linux 机器上的本地虚拟化,目的做到轻量级、可移植性高)

b50ed7bed4eb4ec1bbfd98902aa58b3d.png



步骤5.

查看sFlow agent是否配置成功


打开浏览器输入:

localhost:8080

可以看到代理配置成功


29053470f44b475e9d3e329ab4530a47.png


进入该监控的端口列表页面,如下


3ce4ab77a0b04c04b21a897ce4f7383d.png


步骤6.

进入端口监控页面


6404c75cc85b41029762ca5549de4b9e.png


总结

流量监控是sdn中很重要的一个环节,在获取各个端口的实时信息后,可以实现很多的服务,比如负载均衡,QoS,流量工程等。


–end–


相关文章
|
7月前
|
存储 测试技术 应用服务中间件
性能工具之 nGrinder 区域配置
【5月更文挑战第7天】性能工具之 nGrinder 区域配置
77 4
性能工具之 nGrinder 区域配置
|
网络协议 安全 Linux
如何使用Wireshark进行网络流量分析?
如何使用Wireshark进行网络流量分析?
889 0
|
存储 运维 监控
关于 SysOM 2.0 网络/存储相关诊断功能介绍及案例展示 | 第 72-73 期
周二(4点),讲解网络诊断中心功能的基本使用、诊断结果分析及实现原理。
关于 SysOM 2.0 网络/存储相关诊断功能介绍及案例展示 | 第 72-73 期
|
存储 网络协议 安全
【内网安全-基础】基础知识、信息收集、工具
【内网安全-基础】基础知识、信息收集、工具
204 0
【内网安全-基础】基础知识、信息收集、工具
|
监控 Linux 测试技术
性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
154 0
|
监控 Shell 应用服务中间件
网络分析shell脚本(实时流量+连接统计)
网络分析shell脚本(实时流量+连接统计)
287 0
网络分析shell脚本(实时流量+连接统计)
|
数据采集 存储 分布式计算
数据预处理﹣系统监控 web 界面﹣实时流量转发数据来源|学习笔记
快速学习数据预处理﹣系统监控 web 界面﹣实时流量转发数据来源
189 0
数据预处理﹣系统监控 web 界面﹣实时流量转发数据来源|学习笔记
|
存储 数据采集 监控
数据预处理﹣系统监控 web 界面﹣各链路流量转发数据来源|学习笔记
快速学习数据预处理﹣系统监控 web 界面﹣各链路流量转发数据来源
161 0
数据预处理﹣系统监控 web 界面﹣各链路流量转发数据来源|学习笔记
|
数据采集 存储 JSON
数据预处理-系统监控web界面-系统运行情况数据来源|学习笔记
快速学习数据预处理-系统监控web界面-系统运行情况数据来源
232 0
数据预处理-系统监控web界面-系统运行情况数据来源|学习笔记
|
数据采集 分布式计算 监控
网站流量日志分析--数据预处理--实现思路详解| 学习笔记
快速学习网站流量日志分析--数据预处理--实现思路详解
网站流量日志分析--数据预处理--实现思路详解| 学习笔记