任务内容
1、部署sFlow Collector和sFlow Agent。
2、使用sFlow对Mininet模拟的Open vSwitch端口流量进行监控。
实验原理
互联网及SDN迅速发展的同时,网络安全问题日益成为人们关注的焦点,病毒、恶意攻击、非法访问等都容易影响网络的正常运行。网络流量监控是一种分析网络状况的有效方法,通过实时收集和监视网络数据包的流量信息,来检查是否有违反安全策略的行为和网络工作异常的迹象,并为优化网络性能提供参考。sFlow技术是一种以设备端口为基本单元的数据流随机采样的流量监控技术,不仅可以提供完整的第二层到第四层甚至全网范围内的实时流量信息,而且可以适应超大网络流量(如大于10Gbit/s)环境下的流量分析,让用户详细、实时地分析网络传输流的性能、趋势和存在的问题。sFlow监控工具由sFlow Agent和sFlow Collector两部分组成。Agent作为客户端,一般内嵌于网络转发设备(如交换机、路由器),通过获取本设备上的接口统计信息和数据信息,将信息封装成sFlow报文,当sFlow报文缓冲区满或是在sFlow报文缓存时间(缓存时间为1秒)超时后,sFlow Agent会将sFlow报文发送到指定的Collector。Collector作为远端服务器,负责对sFlow报文分析、汇总、生成流量报告。sFlow的基本工作原理如下图所示:
本次实验使用两台虚拟机,虚拟机1部署Mininet服务并配置sFlow Agent,虚拟机2安装sFlow Collector,在虚拟机1的Mininet环境中模拟创建一个交换机下挂2个主机的网络拓扑,通过执行Ping测试来产生网络流量,然后通过在Collector Web界面查看监控结果。
实验网络拓扑如下所示:
实验步骤
一、部署sFlow Collector
步骤1 选择主机1,单击终端图标,进入命令行终端。执行 su root切换到root用户。
步骤2 执行cd命令,进入root家目录,然后执行ls命令查看镜像中预置的sFlow安装包,如下图所示。
步骤3 执行如下命令,将获取的sFlow Collector安装包解压安装,如下图所示。
# tar -zxvf sflow-rt.tar.gz
# cd sflow-rt
# ./start.sh
上图表示sFlow Collector已经启动,默认监听端口为6343,可以通过虚拟机内置的浏览器输入http://localhost:8008打开监控页面。
二、部署sFlow Agent
步骤1 选择主机2,单击终端图标,进入命令行终端。执行 su root切换到root用户。
步骤2 执行如下命令,进入root家目录,启动Mininet服务,模拟搭建一个交换机下挂2个主机的网络拓扑结构,结果如下图所示。
# cd
# screen mn
步骤3 在Mininet窗口输入nodes命令查看所有节点信息,如下图所示。
由上图可知,当前有主机h1和h2、默认控制器c0、网桥s1。
步骤4 执行h1 ifconfig命令,查看h1的网卡信息,如下图所示。
由上图可知,h1的IP是10网段。
步骤5 打开另一个终端界面,输入ifconfig查看当前网卡状态,如下图所示。
由上图可知,网桥s1无IP。
步骤6 执行su root切换到root用户,然后执行如下命令把eth0端口IP复制给s1。
# ovs-vsctl add-port s1 eth0
# ifconfig s1 192.168.1.4 netmask 255.255.255.0
# ifconfig eth0 0 up
说明:通过eth0端口是无法监控到Mininet内部两个主机的ping测试。因此需要把eth0端口IP复制给s1,由s1端口作为sFlow Agent来监听。其中192.168.1.4是主机1的IP地址。
步骤7 输入ifconfig |more命令查看配置后的各端口状态,如下图所示。
由上图可知,s1已经得到eth0之前的IP和掩码,eth0无IP。
步骤8 切换到Mininet窗口,执行h1 ping h2,检查端口是否配置正确。如果Ping通,则一直保持Ping状态产生流量,否则仔细检查配置。
步骤9 切换到虚拟机界面,开启OvS的sFlow功能,并配置sFlow Agent,命令如下。
# ovs-vsctl -- --id=@sflow create sFlow agent=s1 target=\"192.168.1.3:6343\" header=128 sampling=64 polling=1 -- set bridge s1 sflow=@sflow
注意:该命令执行的次数和需要开启sflow的网桥的数目有关,有几个网桥,就需要执行几次此命令。参数说明如下:
- agent:虚拟机对应的某个监控流量的网卡,本实验用s1网卡产生和监控流量。
- target:sFlow Collector的IP,默认端口6343。
- bridge:需要开启sflow的网桥。
步骤10 配置完成后,输入如下命令查看已经配置的Agent信息。
# ovs-vsctl list sflow
说明:如果要删除该条Agent信息,可以用如下命令,在本次实验中不用执行这条命令:
# ovs-vsctl remove bridge s1 sflow $SFLOWUUID
步骤11 在虚拟机窗口输入ip link命令,查看交换机端口名称与端口编号的映射关系,如下图所示。
由上图可知,eth0对应的编号是2,s1-eth1对应的编号是3,s1-eth2对应的编号是5,s1对应的编号是8。