《教学课件第6章 SDN基础应用开发v1.1.pptx》由会员分享,可在线阅读,更多相关《教学课件第6章 SDN基础应用开发v1.1.pptx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、教材配套PPT正版可修改课件教学课件第6章 SDN基础应用开发v1.1目录01SDN应用开发简介02防DDoS攻击SDN应用开发03 服务器灾备SDN应用开发04 简易负载均衡SDN应用开发SDN应用开发场景SDN的应用场景非常广泛,常见的SDN应用开发场景按照功能可划分为以下3种:基于SDN的流量调度、流量可视化应用开发 流量采集模块-数据分析模块-前端展示模块-控制模块基于SDN的网络安全应用开发 防火墙模块-网络策略分析模块-前端展示模块基于SDN的上层业务应用开发。上层应用模块-上层应用管理模块-策略转化模块目录01SDN应用开发简介02防DDoS攻击SDN应用开发03 服务器灾备SD
2、N应用开发04 简易负载均衡SDN应用开发DDoS攻击简介nDoS(Denial of Service,即拒绝服务)攻击是一种很简单但又很有效的进攻方式。它的目的是拒绝服务访问,破坏组织的正常运行。nDoS攻击的基本过程如右图所示首先攻击者向服务器发送众多的带有虚假地址的请求服务器发送回复信息后等待回传信息,由于地址是伪造的,所以服务器一直等不到回传的消息,分配给这次请求的资源就始终没有被释放当服务器等待一定的时间后,连接会因超时而被切断,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽DDoS攻击典型场景DDoS攻击场景现象流量型(直接)SYNACKICMPUDPConnection
3、 FLOOD等DDoS告警流量型(反射)NTPDNSSSDPICMP FLOOD等DDoS告警CC流量变化可能不明显,业务访问缓慢,超时严重,大量访问请求指向同一个或少数几个页面HTTP慢速流量变化可能不明显,业务访问缓慢,超时严重,大量不完整的HTTP GET请求,出现有规律大小(通常很小)的HTTP POST请求的报文URL反射流量变化明显,业务访问缓慢,超时严重,大量请求的Referer字段相同,表明均来自同一跳转页面各种DoS效果漏洞利用入侵检测防御设备可能出现告警,DDoS攻击检测设备告警不明显针对典型DDoS攻击通过攻击特征进行分类,转换为攻击场景:SDN应用开发示例:防DDoS攻
4、击核心技术sFlownsFlow技术是一种以设备端口为基本单元的数据流随机采样的流量监控技术,不仅可以提供完整的第二层到第四层甚至全网范围内的实时流量信息,而且可以适应超大网络流量环境下的流量分析。nsFlow监控工具由sFlow Agent和sFlow Collector两部分组成。Agent作为客户端,一般内嵌于网络转发设备,通过获取设备上的接口统计信息和数据信息,将信息封装成sFlow报文,当sFlow报文缓冲区满或是在sFlow报文缓存时间超时后,sFlow Agent会将sFlow报文发送到指定的Collector。Collector作为远端服务器SDN应用开发示例:防DDoS攻击本
5、示例中,Collector作为远端服务器,部署在OpenDayLight控制器中,负责对sFlow报文分析、汇总、生成流量报告。Agent部署在OpenFlow交换机中,负责流量数据的收集。核心技术sFlowSDN应用开发示例:防DDoS攻击n本示例采用的sFlow软件为sFlow-RT,sFlow-RT可统计到每个接口的流量信息,实验通过sFlow-RT的REST API获取JSON数据并对JSON数据进行解析,对解析到的数据进行分析判断后即可实施策略。n通过对sFlow-RT进行配置,设定metric=ddos,并设定它的阈值,当监测到的流量超过这个阈值时即判断为DDoS。sFlow-RT
6、调用预制的OpenDaylight脚本:odl.js来调用OpenDaylight RESTful API下发匹配DDoS攻击包流表,并进行丢弃操作,完成模拟DDOS攻击防御。控制器:30.0.1.3主机1:10.0.0.7主机2:10.0.0.10SDN应用开发示例:防DDoS攻击控制器安装sFlow1.执行解压命令,命令如下。#tar-xvzf sflow-rt.tar.gz2.执行如下命令拷贝脚本。#cp/home/openlab/openlab/ddos/json2.js/home/sflow-rt/extras#cp/home/openlab/openlab/ddos/odl.js/
7、home/sflow-rt3.进入控制器主机的/home/sflow-rt目录,编辑脚本odl.js。用上述获取的主机IP信息以及连接到OpenDaylight的node信息进行替换,如下所示。4.修改start.sh脚本,将exec java$JVM_OPTS$RT_OPTS$RTPROP-jar$JAR 替换成如下内容:SCRIPTS=-Dscript.file=odl.jsexec java$JVM_OPTS$RT_OPTS$RTPROP$SCRIPTS-jar$JARSDN应用开发示例:防DDoS攻击交换机部署sFlow1.使用root用户登录交换机,执行以下命令,部署sFlow Ag
8、ent。#ovs-vsctl-id=sflow create sflow agent=s1 target=30.0.1.3:6343 header=128 sampling=10 polling=1-set bridge br-sw sflow=sflow2.执行以下命令查看已经配置的sFlow Agent信息。#ovs-vsctl list sflow查看结果如下:登录控制器,进入/home/sflow-rt,执行命令./start.sh启动sFlow。SDN应用开发示例:防DDoS攻击odl.js主控函数,接收sFlow事件,调用流表处理函数构造并发送流表SDN应用开发示例:防DDoS攻击
9、成果验证1.登录主机1执行sudo ping 10.0.0.10-f命令模拟DDoS攻击主机2,如下所示。2.执行如下命令,查看交换机上的对DDoS处理的流表,如下所示。#ovs-ofctl dump-flows br-sw-O OpenFlow13|grep drop3.登录控制器,打开浏览器,输入http:/127.0.0.1:8008/agents/html,单击30.0.1.9,进入该虚拟机所监控的端口列表页面,搜索DDoS,单击进入流量视图页面,具体如图所示。目录01SDN应用开发简介02防DDoS攻击SDN应用开发03 服务器灾备SDN应用开发04 简易负载均衡SDN应用开发灾备原
10、理灾备是指建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。容灾技术是系统的高可用性技术的一个组成部分,容灾系统更加强调处理外界环境对系统的影响,特别是灾难性事件对整个IT节点的影响,提供节点级别的系统恢复功能。灾备技术分类在传统网络下,通过硬组网方式实现数据中心内部、跨数据中心、跨地域的不同容灾方案SDN技术使容灾网络配置更加灵活,配合传统容灾技术,使容灾切换更加平滑,对网络的冲击更加可控。数据中心整体灾备技术可以分为四种:冷备、暖备、热备和双活。n冷备:冷备技
11、术就是在整个数据中心故障无法提供服务时,数据中心会临时找到空闲设备或者租用外界企业的数据中心临时恢复,当自己数据中心恢复时,再将业务切回。n暖备:暖备技术是在主备数据中心的基础上实现的,备用数据中心为暖备部署,应用业务由主用数据中心响应,当主用数据中心出现故障造成该业务不可用时,需要在规定的RTO(Recover Time Objective,即灾难发生后,信息系统从停顿到恢复正常的时间要求)时间以内,实现数据中心的整体切换。n热备:相比暖备,热备最重要的特点是实现了整体自动切换,其它和暖备实现基本一致n双活:通过双活技术可以实现主备数据中心均对外提供服务,正常工作时两个数据中心的业务可根据权
12、重做负载分担,没有主备之分,分别响应一部分用户,权重可以是按地域划分,或数据中心服务能力或对外带宽。当其中一个数据中心出现故障时,另一数据中心将承担所有业务。SDN应用开发示例:服务器灾备通过流表实现多台服务器对外使用同一个虚拟IP提供相关的服务,如下图中服务器为10.0.0.4、10.0.0.5两个机器,对外统一暴露的服务虚拟IP为10.0.0.100。其中10.0.0.4机器为正常使用的服务器,10.0.0.5为备用服务器。当10.0.0.4机器发生故障时,自动切换使用10.0.0.5机器。SDN应用开发示例:服务器灾备mkdir/.m2cp-n/.m2/settings.xml,.ori
13、g;wget-q-O-https:/ /.m2/settings.xml如果在windows系统下,下载https:/ settings.xml配置SDN应用开发示例:服务器灾备生成项目骨架(Archetype)mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype -DarchetypeVersion=1.3.0-Carbon -DarchetypeRepository=https:/nexus.open
14、daylight.org/content/repositories/public/-DarchetypeCatalog=https:/nexus.opendaylight.org/content/repositories/public/archetype-catalog.xmldplb-v3-aggregator是父工程包含了api,artifacts,features,impl,it,karaf六个子工程SDN应用开发示例:服务器灾备YANG的定义:SDN应用开发示例:服务器灾备核心代码实现:Dplb配置数据库监听作用:监听用户关于灾备实验配置数据的 新增、修改、删除。根据用于灾备 配置数据
15、的下发。实现:通过实现DataTreeChangerListener 接口 重构OnDataChanged(Collection DataTreeModification changes)方法SDN应用开发示例:服务器灾备核心代码实现:拓扑链路监听作用:监听灾备实验网络拓扑链路变化,当 主服务器相关链路出现故障时,能够 自动的切换到备用服务器上。实现:实现方法较多,此处我们通过实现 OpendaylightInventoryListener接口 重构OnDataChanged(Collection DataTreeModification changes)方法 重构onNodeConnecto
16、rRemoved(Collection DataTreeModification changes)方法 SDN应用开发示例:服务器灾备impl-blueprint.xml的定义:SDN应用开发示例:服务器灾备下发灾备应用初始配置字段解释:switch_id为多个物理服务器挂在的SDN 交换机id virtual-ip为虚拟服务器ip practical-ip为客户端ip port-number为客户端挂在的port group-list 为物理服务器列表信息作用:下发灾备实验初始配置配置下发后就可以进行访问测试,使用客户端去访问虚拟ipSDN应用开发示例:服务器灾备灾备实现和测试作用:当链路故
17、障时,删除虚拟ip对主 服务器的映射流量。获取备用服 务器相关配置信息,下发虚拟ip和 备用服务器的映射流表。测试:继续使用客户端访问虚拟ip。在备 用 服务器上抓包。SDN应用开发示例:服务器灾备流表:SDN应用开发示例:服务器灾备构建安装:执行mvn clean install测试验证 目录01SDN应用开发简介02防DDoS攻击SDN应用开发03 服务器灾备SDN应用开发04 简易负载均衡SDN应用开发什么是负载均衡负载均衡包括服务器负载均衡和网络负载均衡。n服务器负载均衡是指采用一定策略将并发的访问分摊到不同的服务器上完成;n网络负载均衡是指通过一定的路由策略将流量负荷分摊到不同的路径
18、上从而达到路径和节点负荷的最优配置。服务器负载均衡 网络负载均衡网络负载均衡SDN技术的出现,为网络负载均衡系统提出了一种新的技术实现思路n指定路由:指定路由可配合协议绑定,先分别指定哪个应用服务、哪个IP网段、哪个目的网址,走哪个WAN端口。n策略路由:基于策略的路由允许应用一个策略控制数据包应如何走而非基于路由表选路。IP路由基于目标地,而PBR允许基于源的路由,即来自何处而应到哪去,从而根据需要走一条特殊的路径。缺点:不灵活,配置维护复杂SDN应用开发实验:简易负载均衡在本实验中,主要的工作是对链路负载的计算,最优路径的规划。对于链路负载的计算,我们简单通过一定时间内链路上传输的数据包的
19、数量(假设包大小差不多),将传输包的数量作为该链路的权值,通过迪杰斯特拉算法计算出最优路径。通过OpenDaylight REST 接口,将规划好的路径转换成流表。下发给各个交换机节点,最终达到路径最优规划的效果。SDN应用开发实验:简易负载均衡topology.py拓扑定义SDN应用开发实验:简易负载均衡odl_loadblance.py获取拓扑节点和路径信息SDN应用开发实验:简易负载均衡odl_loadblance.py获取路径信息,计算路径负载SDN应用开发实验:简易负载均衡odl_loadblance.py根据链路负载信息,构造并更新流表SDN应用开发实验:简易负载均衡1.登录控制器
20、,执行命令su root切换到root用户,运行负载均衡脚本。负载均衡的脚本在控制器/home/openlab/openlab/loadblance目录下。2.执行命令./odl_loadblance.py,其中当前的拓扑中有8个host,分别对应编号18,这8个交换机根据物理连接,可以分为4组,使用其中的两组中的两个host,来做负载路径规划3.在“Enter host 1”后填写第一组中的一个host的编号,按回车键,在“Enter host 2”中填写第二组的一个host的编号,在“Enter host 3”中填写第二组的另一个host的编号h1到h5之间的所有链路:h1到h5之间所有链
21、路权值以及最优路径:SDN应用开发实验:简易负载均衡h1到h5之间当前最优路径如下图红色路径:SDN应用开发实验:简易负载均衡1.登录Mininet主机,选取其中的一个节点查看流表下发情况,使用xterm登录switch112.登录switch命令:xterm s113.查看流表命令:ovs-ofctl dump-flows s114.使用命令h1 ping h5,等待一段时间,发现路径重新计算,还是原来的两条链路,但是根据负载情况,当前的链路的权值已经发生了变化,原来最优链路的权值以及大于另一个链路,最优链路发生改变SDN应用开发实验:简易负载均衡负载均衡后h1到h5之间的最优路径如下图红色路径: