基于Mininet的网络流量监控


互联网及SDN迅速发展的同时,网络安全问题日益成为人们关注的焦点,病毒、恶意攻击、非法访问等都容易影响网络的正常运行。网络流量监控是一种分析网络状况的有效方法,通过实时收集和监视网络数据包的流量信息,来检查是否有违反安全策略的行为和网络工作异常的迹象,并为优化网络性能提供参考。

1.1 实验目的

掌握监控网络流量的方法;
掌握流量监测工具sFlow的使用。

1.2 实验原理

sFlow技术是一种以设备端口为基本单元的数据流随机采样的流量监控技术,不仅可以提供完整的第二层到第四层甚至全网范围内的实时流量信息,而且可以适应超大网络流量(如大于10Gbit/s)环境下的流量分析,让用户详细、实时地分析网络传输流的性能、趋势和存在的问题。sFlow监控工具由sFlow Agent和sFlow Collector两部分组成。Agent作为客户端,一般内嵌于网络转发设备(如交换机、路由器),通过获取本设备上的接口统计信息和数据信息,将信息封装成sFlow报文,当sFlow报文缓冲区满或是在sFlow报文缓存时间(缓存时间为1秒)超时后,sFlow Agent会将sFlow报文发送到指定的Collector。Collector作为远端服务器,负责对sFlow报文分析、汇总、生成流量报告。sFlow的基本工作原理如图1所示:

sFlow的基本工作原理

1.3 实验拓扑

使用两台虚拟机,虚拟机1部署Mininet服务并配置sFlow Agent,虚拟机2安装sFlow Collector,在虚拟机1的Mininet环境中模拟创建一个交换机下挂2个主机的网络拓扑,通过执行ping测试来产生网络流量,然后通过在Collector Web界面查看监控结果。
实验网络拓扑如下:

sFlow实验网络拓扑

1.4 实验步骤

1.4.1 搭建环境

(1)实验用到的环境包括两台虚拟机(也可以用主机)。虚拟机1部署Mininet服务,安装Mininet-2.0.0版本(支持OpenFlow1.0协议)。

(2)虚拟机2安装sFlow Collector,为了以Web界面展示监控结果,所以可以给该虚拟机安装桌面版ubuntu(或者VM与本机器通信,可在本地机器直接访问此VM的sFlow界面)。

1.4.2 部署sFlow Collector

(1)登录虚拟机2(IP:10.0.0.107),进入控制台界面,在任意路径下安装jdk依赖,命令如下:

(2)下载sFlow代码到虚拟机(注:sFlow代码可在网站资料库中下载),将获取的sFlow Collector安装包解压安装,命令如下:

下图表示sFlow Collector已经启动,默认监听端口为6343,可以通过虚拟机内置的浏览器输入http://localhost:8008打开监控页面。

sFlow启动

1.4.3 部署sFlow Agent

(1)登录虚拟机1,启动Mininet服务,模拟搭建一个交换机下挂2个主机的网络拓扑结构,命令如下:

在Mininet窗口输入nodes命令可查看当前有主机h1和h2、默认控制器c0、网桥s1,并且h1的IP是10网段。

sFlow中Mininet主机Host1的IP地址查看

(2)切换到虚拟机界面,输入ifconfig查看当前网卡状态,网桥s1无IP,通过eth0端口是无法监控到Mininet内部两个主机的ping测试。因此需要把eth0端口IP复制给s1,由s1端口作为sFlow Agent来监听,命令如下:

输入ifconfig |more命令查看配置后的各端口状态,如下图,s1已经得到eth0之前的IP和掩码,eth0无IP:

sFlow添加桥后把eth0加入

(3)切换到Mininet窗口,执行ping测试,检查端口是否配置正确。如果ping通,则一直保持ping状态产生流量,否则仔细检查配置。

(4)切换到虚拟机1窗口,开启OvS的sFlow功能,并配置sFlow Agent,命令如下:

注:该命令执行的次数和需要开启sflow的网桥的数目有关,有几个网桥,就需要执行几次此命令。参数说明:
1)agent:虚拟机对应的某个监控流量的网卡,本实验用s1网卡产生和监控流量;
2)target:sFlow Collector的IP,默认端口6343;
3)bridge:需要开启sflow的网桥;

配置完成后,可以输入如下命令查看已经配置的Agent信息:

sFlow中list sflow

如果要删除该条Agent信息,可以用如下命令:

(5)在虚拟机窗口输入ip link命令,查看交换机端口名称与端口编号的映射关系,如下图eth0对应的编号是2,s1-eth1对应的编号是19,s1-eth2对应的编号是21,s1对应的编号是23。

sFlow查看链路link

1.4.4 查看监控结果

(1)登录sFlow Collector Web页面,查看Agents选项卡可知已将虚拟机1(10.0.0.106)加到监控对象。

sFlow的Web界面查看

(2)单击“10.0.0.106”,进入该虚拟机所监控的端口列表页面,如下编号为19、2、21、23的端口都有监控:

sFlow监听端口23等查看

(3)单击任意条目查看端口在5分钟内输入和输出两个方向的流量信息,包括丢包数、差错数、多播速率、使用率、端口速率等,下图是eth0的2.ifinpkts和2.ifinoctets在5分钟内的流量情况。

sFlow中eth0流量查看ifinpkts和ifinoctets

1.5实验结论

本实验利用sFlow技术监控SDN环境下的网络流量,用户掌握sFlow的工作原理后,可以进行复杂网络拓扑的流量监控,辅助分析和优化网络状况。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/3760.html
分享到:
相关文章
条评论

登录后才可以评论

君子一诺 发表于14-11-19
16