1 实验目的该实验通过安装sFlow流量监控工具,可直观的展现网络中的流量以及其他监控信息。在实验过程中,可以了解以下方面的知识: 2 实验原理sFlow技术是一种以设备端口为基本单元的数据流随机采样的流量监控技术,不仅可以提供完整的第二层到第四层甚至全网范围内的实时流量信息,而且可以适应超大网络流量(如大于10Gbit/s)环境下的流量分析,让用户详细、实时地分析网络传输流的性能、趋势和存在的问题。sFlow监控工具由sFlow Agent和sFlow Collector两部分组成。Agent作为客户端,一般内嵌于网络转发设备(如交换机、路由器),通过获取本设备上的接口统计信息和数据信息,将信息封装成sFlow报文,当sFlow报文缓冲区满或是在sFlow报文缓存时间(缓存时间为1秒)超时后,sFlow Agent会将sFlow报文发送到指定的Collector。Collector作为远端服务器,负责对sFlow报文分析、汇总、生成流量报告。sFlow的基本工作原理如图1所示: 3 实验任务使用两台虚拟机,虚拟机1部署Mininet服务并配置sFlow Agent,虚拟机2安装sFlow Collector,在虚拟机1的Mininet环境中模拟创建一个交换机下挂2个主机的网络拓扑,通过执行ping测试来产生网络流量,然后通过在Collector Web界面查看监控结果。 实验网络拓扑如下: 4 实验步骤4.1 环境搭建步骤1 :在实验平台首页单击“创建虚网”。虚网名称以“Slice1”为例,虚网名称只能包括数字,字母和下划线。
任意选择设备拓扑: 进行下一步配置,并点击最后“创建”,虚网创建成功; 步骤2:创建控制器,选择Floodlight控制器。 步骤3:在“虚网详情”页面单击网关部分的“ ”按钮添加网关。 步骤4:创建2个虚拟机,一个是选择带有sFlow的镜像,另以个是选择Mininet桌面镜像作为所需Mininet。如下图已创建虚拟机所示: 4.2启动验证步骤1:虚网详情中,右上角点击按钮启动虚网,启动虚网后并启动虚拟机。 步骤2:虚拟机中的sFlow进程已经在启动虚拟机时自起,可通过以下命令查看:  | ps –ef|grep sflow</p> <div class="imgex"><a href="https://img1.sdnlab.com/wp-content/uploads/2015/08/网络流量监控sFlow的使用-图8.png"><img src="https://img1.sdnlab.com/wp-content/uploads/2015/08/网络流量监控sFlow的使用-图8.png" alt="网络流量监控sFlow的使用 图8" width="724" height="109" class="alignnone size-full wp-image-13467" /></a></div> 由上可知,sFlow进程已经启动。若未看到以上进程,可以切换到/home/cete/sflow-rt目录下启动./start.sh即可。 <h2>4.3 部署sFlow Agent</h2> 登录到另一台Mininet虚拟机,启动Mininet服务,模拟搭建一个交换机下挂2个主机的默认网络拓扑结构,命令如下: <pre class="theme:shell-default font:consolas font-size:14 line-height:20 lang:sh decode:true " >$ mn</p> 在Mininet窗口输入nodes命令可查看当前有主机h1和h2、默认控制器c0、网桥s1,并且h1的IP是10网段。 <div class="imgex"><a href="https://img1.sdnlab.com/wp-content/uploads/2015/08/网络流量监控sFlow的使用-图9.png"><img src="https://img1.sdnlab.com/wp-content/uploads/2015/08/网络流量监控sFlow的使用-图9.png" alt="网络流量监控sFlow的使用 图9" width="605" height="709" class="alignnone size-full wp-image-13468" /></a></div> (2)重启一个终端,输入ifconfig查看当前网卡状态,网桥s1无IP,通过eth0端口是无法监控到Mininet内部两个主机的ping测试。因此需要把eth0端口IP复制给s1,由s1端口作为sFlow Agent来监听: 虚拟机IP地址: <div class="imgex"><a href="https://img1.sdnlab.com/wp-content/uploads/2015/08/网络流量监控sFlow的使用-图10.png"><img src="https://img1.sdnlab.com/wp-content/uploads/2015/08/网络流量监控sFlow的使用-图10.png" alt="网络流量监控sFlow的使用 图10" width="637" height="345" class="alignnone size-full wp-image-13469" /></a></div> <pre class="theme:shell-default font:consolas font-size:14 line-height:20 lang:sh decode:true " >$ ovs-vsctl add-port s1 eth0 $ ifconfig eth0 0 up $ ifconfig s1 20.0.4.77 netmask 255.255.255.248 $ route add default gw 20.0.4.153 |
 开启OvS的sFlow功能,并配置sFlow Agent,命令如下: | #sudo ovs-vsctl -- --id=@sflow create sFlow agent=s1 target=\”20.0.4.156:6343\” header=128 sampling=64 polling=1 – set bridgr s1 sflow=@sflow |
待sFlow Agent配置好后,会生成一个UUID。 (1) agent:虚拟机对应的某个监控流量的网卡,本实验用s1网卡产生和监控流量; (2) target:sFlow Collector的IP,默认端口6343; (3) bridge:需要开启sflow的网桥; 查看已经配置的Agent信息: | # sudo ovs-vsctl list sflow |
注:如果上述命令出现错误的话,通过ovs-vsctl remove bridge [bridge_name] sflow [uuid] 在虚拟机窗口输入#ip link命令,查看交换机端口名称与端口编号的对应关系: 4.4 sFlow查看监控结果登录sFlow Collector Web页面,IP地址为:http://20.0.4.156:8008/agents/html,查看Agents中可知已将虚拟机(20.0.4.155)已加到被监控对象中,通过上述操作步骤,也可以监控多个。 点击进入监控对象中,可以看到每个端口号的各种统计信息,如下图所示: 下图显示的是2号端口号的ifoututilization的信息: 下图显示的是7号端口号的ifoutpkts监控信息:
通过sFlow的使用,实现对Open vSwitch端口的信息监控,掌握sFlow的工作原理后,可以进行复杂网络拓扑的流量监控,辅助分析和优化网络状况。
|