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


    申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址 全文共计3077字,阅读大概需要3分钟
    欢迎关注我的个人公众号:不懂开发的程序猿

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

    学习目标

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

    学习内容

    • 理解sFlow-rt的基本配置与操作;

    • 掌握mininet中sFlow agent的配置过程

    实验原理

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

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

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

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

    实验拓扑

    如下图

    在这里插入图片描述

    实验仿真

    启动sFlow-rt以及floodlight控制器

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

    cd sflow-rt/
    
    ./start.sh
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    打开浏览器输入:

    localhost:8080
    
    • 1

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

    在这里插入图片描述

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

    cd floodlight/example
    
    ./cli.py switch
    
    • 1
    • 2
    • 3

    在这里插入图片描述

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

    在这里插入图片描述

    切换到floodight安装目录下

    cd ..
    
    • 1

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

    touch dropkt.json
    
    sudo chmod 777 dropkt.json
    
    sudo gedit dropkt.json
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

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

    在这里插入图片描述

    执行以下命令启动floodlight

    java -jar target/floodlight.jar
    
    • 1

    在这里插入图片描述

    创建拓扑

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

    sudo touch topo-1sw_3host.py
    
    sudo chmod 777 topo-1sw_3host.py
    
    gedit topo-1sw_3host.py
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    并如下添加内容

    在这里插入图片描述

    添加完成后保存退出。

    执行以下命令启动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
    
    • 1

    在这里插入图片描述

    说明

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

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

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

    –custom指定自定义拓扑文件

    –topo指定加载拓扑的名字

    部署sFlow agent

    步骤1.

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

    ifconfig
    
    • 1

    在这里插入图片描述

    步骤2.

    在mininet上测试连通性

    h1 ping h2
    
    • 1

    在这里插入图片描述

    步骤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
    
    • 1

    在这里插入图片描述

    参数说明:

    • 1)agent:虚拟机对应的某个监控流量的网卡,本实验用s1网卡产生和监控流量;
    • 2)target:sFlow-rt的IP,默认端口6343;
    • 3)bridge:需要开启sFlow的网桥;
    步骤4

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

    sudo ovs-vsctl list sflow
    
    • 1

    在这里插入图片描述

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

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

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

    在这里插入图片描述

    步骤5.

    查看sFlow agent是否配置成功

    打开浏览器输入:

    localhost:8080
    
    • 1

    可以看到代理配置成功

    在这里插入图片描述

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

    在这里插入图片描述

    步骤6.

    进入端口监控页面

    在这里插入图片描述

    总结

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

    –end–

  • 相关阅读:
    NLP Bi-Encoder和Re-ranker
    jquery+ajax验证不通过也提交表单问题处理
    android FileOutputStream 写入文件,但是文件大小为空
    MySQL高级-读写分离-分库分表
    关于过滤器Filter
    如何解决研发数据传输层面安全可控、可追溯的共性需求?
    [极客大挑战 2019]Knife
    cobol数据类型
    【javaEE】网络原理(传输层Part2)
    MATLAB算法实战应用案例精讲-【人工智能】ROS机器人(最终篇)
  • 原文地址:https://blog.csdn.net/qq_44807756/article/details/127946210