还是需要实现流量监控然后入侵检测或者恶意流量分析之类的,如果真的流量分析的话需要好多知识,什么配置策略,还能用神经网络之类的。这我就试着用现成的工具防一下DDOS吧,防一下ping举个例子。
还是离不开SDN,就floodlight+sflow,这个是我看了好多种得出来的,感觉比较好实现,这是最主要的啊。
准备
floodlight
由于floodlight是基于java的,而且要求1.8以上,因此需要先安装jdk和ant。ant是阿帕奇的java生成工具。
我用的是centos自带java,然后我又升级了,jdk给我升级到1.8了,我就不需要升级了。
安装eclipse
安装依赖
好像还可以直接把项目配置到eclipse里面,我没发现这步有什么用,为了二次开发吗?
要安装四个东西,我这里装了ant和maven和相关依赖,第一个和第四个没有,需要手动安装吧
yum install build-essential ant maven python-dev -y
安装build-essential,执行这个命令
yum groupinstall "Development Tools"
安装python-dev,找不到是因为名字改了,叫python-devel
yum install python-devel
安装floodlight
Floodlight是Apache授权并且基于JAVA开发的企业级OpenFlow控制器,它的稳定性、易用性已经得到SDN专业人士以及爱好者们的一致好评,并因其完全开源,这让SDN网络世界变得更加有活力。控制器作为SDN网络中的重要组成部分,能集中地灵活控制SDN网络,为核心网络及应用创新提供了良好的扩展平台。
这里需要从github下载源码自行编译
git clone git://github.com/floodlight/floodlight.git
但是很卡,我找到了一个百度网盘,不知道什么版本的floodlight,下载好以后,解压,进入目录执行ant
直接生成就行了。然后运行,通过输出信息可以看到是运行在8080端口的
java -jar target/floodlight.jar
可以登录localhost:8080/ui/index.html
进入页面,但是此时会报错
解决方案就是执行,但是必须需要一个仓库才行,就是说必须得使用git下载,或者就要使用旧版floodlight。
git submodule init
git submodule update
ant
可以在这里找到http://www.projectfloodlight.org/download/
历史版本下载,同样很慢,只能慢慢等了。好像稳定的是0.91版本,下载tar.gz格式,不知道为什么zip下载好慢。
在我试了好几个版本以后,这里面的1.2是可以用的,0.9x版本在运行的时候会越界,出现蜜汁问题。
下载1.2版本以后,执行ant
生成代码,执行java -jar target/floodlight.jar
,登录localhost:8080/ui/index.html
即可访问页面了。
SFlow
sFlow可以提供周期性的网络接口统计采样和数据包采样,能够提供各接口的流量信息,且几乎不会对被统计设备造成任何负担,管理成本极低。
sFlow的部署分为两部分:sflow agent和sflow collector。sflow agent内嵌入网络设备中获取设备的实时信息并封装成sFlow报文发送给sflow collector。sflow collector汇总后得出统计数据。