SDN云数据中心网络异常行为的智能处理实践
摘要:云数据中心的网络异常行为不仅对网络设备造成严重业务负荷,同时也显著影响云用户使用感知。云计算环境中的共享资源模式和云用户迥然不同的业务形态,使得云网络分析和异常行为定位极为困难。南方基地移动云网络运维团队针对云数据中心的网络异常行为进行特征提取和分析,并基于移动云sdn数据中心的网络架构和原理进行深度剖析,总结出一套“流表流量粗细结合”的分析策略,成功实现低成本高效率的网络异常行为发现。同时基于devops理念,制定了一套网络异常行为自动化检测和封堵的智能系统,实现对网络异常行为的快速处理。
Introduction
前言
在集团公司的大连接战略中,云管端服务体系是数字化转型的关键技术。作为云管端体系的重要环节,云计算得到大力发展。移动云(ecloud.10086.cn)是总部级公有云,其在南方基地节点具备2400台物理主机、450台网络设备的硬件规模。移动云采用前沿的openstack+SDN架构,为客户提供快捷、可靠的云服务。为实现海量的不同用户之间相互隔离,SDN在原有基础网络之上构建overlay网络来承载用户流量。在数据中心中,海量的用户虽相互独立,却共享着相同的网络架构与基础设施资源。在如此复杂的网络架构下,面对用户形态各异的业务,想要从网络层面分析客户的流量与业务行为,愈发困难。
1.1 客户投诉频发
针对云网络投诉工单分析时发现,网络异常行为引发的投诉占比较大。这类投诉主要有以下几类常见形态,如云主机密码被攥改 后无法登录、云主机被攻击导致拒绝服务,或者怀疑云主机被植入未知东西请求定位分析等。处理这类问题极为棘手,从回溯云主机过往流量来定位网络异常行为,进阶追踪异常流量来源,并提供有效数据让客户配合整改等,每个环节不仅需要依赖于昂贵的专业网络分析工具,同时还耗费较多的运维时间和人力。在网络分析工具未采集和保存相关异常流量的情况,异常流量无法深层次展开分析,会出现问题无法解决的极端情况。
1.2 网络设备负荷大且网络使用感知差
在云网络环境中倘若没有及时发现并封堵某个云主机的网络异常行为,不仅会导致同一区域内的其它虚拟机有感染病毒的风险,还会对给数据中心的网络设备带来较重的业务负荷。前期云数据中心出现过云主机发出大量小包攻击导致出口云防火墙达到处理能力极限引发设备模块异常宕机,云主机发出大量无效填充数据包导致接入网络设备链路达到最大阈值等多起网络故障。网络异常行为的连锁影响,会降低数据中心提供的网络服务质量,在行业和客户中带来负面印象。及时发现并有效封堵这类网络异常行为,是云计算网络运维需要尽快解决的迫切难题。
Nature
问题本质分析
从攻击方向上来区分,云数据中心的网络异常行为可以分为外网攻击和内网攻击。外网攻击是指攻击源来自于外网,与此相反,内网攻击是指攻击源来自数据中心内部。云数据中心外网攻击问题的风险相对可控,可以通过加强边界安全防护来应对;内网攻击问题的风险和影响范围则要严重得多。云数据中心提供的安全可靠的云主机无故变成攻击源,用户会质疑云服务的可靠性,引发信任危机。为什么云主机变成了攻击源且没有手段及时主动发现内部攻击源,是问题关键。
2.1 客户行为空间大,安全意识薄弱
首先,云数据中心提供给用户的网络编排服务是极为灵活的,尤其是公有云数据中心,用户可以按需订购路由器和防火墙等网元,也可以自由定义外部的防火墙规则和内部的云主机安全组规则。不同云租户业务形态及重要性不同,负责运维的IT人员水平也不同。倘若有部分用户的安全防护意识不高,例如未设置合适的安全防御规则或是操作行为管控不严格,其云主机可能因植入木马或感染病毒而成为网络攻击源。由于云里面虚拟化层面的许多资源是共享的,内网IP主机受感染后会对其他内网主机、外网IP进行感染和攻击,会进一步扩大感染范围。
2.2 现有安全防护设计集中在出口
其次,受限于技术发展制约,现有安全设备虚拟化的进展相对较慢。目前较多的安全设备仍然采用传统模式且较为集中部在数据中心出口边界处。这种部署模式更多的是进行数据中心南北向流量的安全防御,针对数据中心内部的安全防御能力则较为薄弱。例如内网庞大的流量里遭遇小包攻击或者是一台虚机中了病毒开始做慢速扫描,这类网络异常行为一般很难发现和引流出来,这样就会把一些非常严重的安全事件忽略掉。
2.3 传统网络分析手段的制约
最后,采用传统的网络流量采集分析系统(包含数据中心内部的流量),通过其回溯和分析能力可以清晰定位网络异常行为,但这是一个昂贵的解决方案。大多数云数据中心内部都是使用的万兆以上的网络,服务器与服务器之间的通信流量很庞大,在上百个机柜上千台服务器的情况下,数据中心内部流量极其庞大。传统网络分析系统通常是几十G的处理能力,难以满足内部大流量需求。
Measure
云网络异常行为的处理手段
在云数据中心构建内部和出口侧全方位一体的网络异常行为检测系统,是解决问题的第一步,也是尤为关键的一步。南方基地针对网络异常行为进行特征提取和分析,并基于移动云数据中心的网络架构和原理进行深度剖析,总结出一套“流表流量粗细结合”的分析策略,成功实现低成本高效率的网络异常行为发现。在云数据中心内部,数据量极为庞大的云主机数据发送端,通过匹配虚拟交换机的流表特征,初步筛选出异常虚拟机;在云数据中心核心层和出口侧,数据量相对较少的网络节点上,基于传统网络分析系统匹配用户数据包的特征,精准筛选出异常虚拟机的可疑行为,并进行深层次的问题分析。
3.1 SDN组网环境介绍
移动云数据中心在四期项目中采用了SDN的网络解决方案,以满足网络全自动化部署、快速配置等数据中心网络新需求。在网络管理平面引入了openflow流表,实现控制器对虚拟交换机的灵活控制;在网络业务平面引入了vxlan技术,即在原有underlay网络之上构建了一层overlay网络,打破vlan数量制约,显著扩展业务隔离域数量。
图1:sdn云数据中心的具体网络架构示意图
3.2 新的发现手段:源+出口两手结合
我们从物理机上虚拟交换机的流表和移动云核心、出口侧的流量这两个点出发,可以实现对数据中心内部流量的全方位覆盖,并能针对具体网络流量进行全面。
3.2.1 虚拟交换机的流表分析
传统数据中心内,硬件服务器是最小的计算单元;云数据中心内,虚拟机才是最小的计算单元。与传统数据中心组网不同,云数据中心内虚拟交换机是名副其实的接入交换机,是网络接入的第一线。采用传统的网络分析方法,需要通过端口镜像的方式将流量引出到外部的网络分析系统进行异常行为的判断。端口镜像的方式,会对硬件服务器的网卡性能进行对半消耗,同时对虚拟交换机的性能也有较大影响。能否在虚拟交换机上通过其它的方式来进行网络异常行为的发现呢?剖析虚拟交换机的工作原理成为关键。
OpenvSwitch,简称OVS,是一个虚拟交换软件。OVS的连接着物理网卡和多块虚机的虚拟网卡,并根据内部的 MAC地址映射表完成数据转发。在SDN架构下,控制器下发openflow流表指导OVS进行实现交换策略。
图2:OVS示意图
ovs核心工作包括数据转发和实现交换策略。数据交换工作,即负责从设备入端口接收数据包并依据流表信息对其进行管理。而OVS的OpenFlow协议支持则用于实现交换策略,即通过增加、删除、修改流表项的方式告诉数据转发通路针对不同的数据流采用不同的动作
虚拟交换机的内核流表,能够较为直观的反应出实时流量的关键信息,如虚拟交换机端口,源目的ip,源目的端口,数据包类型等。若此时有一个ping数据包,其相对应的流表如下如示。
图3:虚机所处物理环境
获取到以下对应的流表:
·skb_priority(0),tunnel(tun_id=0x31b3f5/0xffffffffffffffff,src=10.0.1.2/255.255.255.255,dst=10.0.1.1/255.255.255.255,tos=0/0xff,ttl=64/0xff,flags(key)),in_port(6),skb_mark(0),eth(src=fa:16:3e:eb:2b:1e,dst=fa:16:3e:79:b7:62),eth_type(0x0800),ipv4(src=192.168.1.5/255.255.255.255,dst=192.168.1.3/255.255.255.255,proto=1/0xff,tos=0/0,ttl=64/0,frag=no/0xff), packets:7, bytes:686, used:0.882s, actions:5 ·skb_priority(0),in_port(5),eth(src=fa:16:3e:79:b7:62,dst=fa:16:3e:eb:2b:1e),eth_type(0x0800),ipv4(src=192.168.1.3/255.255.255.255,dst=192.168.1.5/255.255.255.255,proto=1/0xff,tos=0/0x3,ttl=64/0,frag=no/0xff), packets:7, bytes:686, used:0.883s, actions:set(tunnel(tun_id=0x31b3f5,src=0.0.0.0,dst=10.0.4.84,tos=0x0,ttl=64,flags(key))),6
表1:流表数据
虚拟机的每一个实时会话都会以一个流表项的方式呈现出来。只要针对流表项进行深度分析,就能真实复原云主机的会话详情。虚拟交换机的下联端口与云主机一一关联,若是虚拟交换机某个下联端口的流表提取特征有异常,则可以判断出该端口对应的云主机有可能存在网络异常行为。
- 流表数量过大:单台云主机对应的流表数量超出10000条/秒。
- 流表方向不对称:单台虚机对应的出方向流表数量大于2000条/秒,且入方向流表小于50条/秒。
我们采用了开源监控工具zabbix设置好告警规则,包括某段时间内的平均流表数量、某段时间内的流表变化速率、收发比阈值等告警条件。在某一台虚机或物理机流表数据匹配上规则时,发出相应的告警。
3.2.2 数据中心核心和出口侧的流量分析
数据中心的核心层和出口侧均进行端口镜像将流量引入到后端的网络分析系统。核心层和出口侧的流量虽然相对较少,但却是数据中心的关键流量信息,例如数据中心与外部网络的交互,数据中心内部跨汇聚交换机的交互流量均能被有效采集。针对网络分析系统获取到的数据包进行下述关键特征匹配。
数据包收发比:正常通讯过程中,通讯双发的数据会维持在特定的收发比例,即使下载数据过程中,数个下载数据包后总会有一个ACK包维持通信过程;根据移动云用户历史数据基准,定义符合“单台主机发包大于10000个/秒,收到小于50个/秒”的条件时,是填充数据包攻击的网络异常行为。该行为对网络影响严重,数个这样的客户端可使一条10G链路超载;通过该策略找出的异常客户端,经过事后验证,从未错误识别过一台正常主机,属于适合云环境的有效预警策略。
tcp同步数据包收发比:云内部不正常的SYN扫描总伴随着安全攻击和泛洪攻击。根据移动云历史基准,正常的云端主机的TCP连接行为会维持在一个稳定水平,定义符合“单台主机tcp第一个请求数据包的发包大于2000个/秒,ack应答包收到小于50个/秒”的条件时,是泛洪攻击的网络异常行为。
若是数据包匹配上述规则,则触发告警,通过实时对监控链路的流量异常变化进行预警,发现异常虚机,在用户体验感受下降前,主动出击解决问题,实现运营的主动化。
Intelligent means
云网络异常行为的智能处理
在云数据中心流程化、自动化处理网络异常行为,是抑制网络异常行为带来的影响,也是彻底刨除问题源头的重要环节。南方基地结合开源监控软件及自行开发的运维平台,自动化采集流表及流量数据,智能化告警监控,定制化开发异常流量的封堵手段。在抑制病毒扩散,清理病毒源的同时,实现自动化运维,提高运维效率。从被动运维,被动接投诉、接故障,到主动运维,及时发现问题,实时处理问题,实现运维角色的转换。
4.1 自动化处理流程
处理流程:采集---告警---封堵---整改---整体提升。对于网络异常行为,我们采用了智能化、自动化的处理方式。
首先,对物理机上虚拟交换机的流表和移动云核心、出口侧的流量信息进行数据采集。采用zabbix自动获取物理机上虚拟交换机的流表数据,采用科来系统镜像引流核心层及出口侧的流量。其次,分别在zabbix、科来系统上设置阈值及关键特征等告警条件,及时发现网络异常的公网IP或客户虚机。然后,调用云数据中心openstack的API接口,为云管理平台定制化开发流量封堵功能,对网络异常的流量进行封堵。最后,在核实客户已完成整改后,由云管理平台解封客户虚机,整体提升数据中心的网络环境。
4.2 数据采集
4.2.1 zabbix工具
流表数据采集使用zabbix系统,zabbix是一套具备分布式系统监控及网络监控功能的开源软件。为解决云环境下,客户虚机动态创建,端口流表数据采集无法提前配置的问题,我们采用zabbix自动发现规则,在物理机上配置好key,并结合OVS,实时发现虚机及对应的虚拟端口,定时收集每台虚机的流表数量、数据收发等关键数据。
4.2.2 科来系统
出口侧流量采集使用科来系统,科来网络回溯分析系统是一款集成数据包采集和智能分析硬件平台,分布部署在网络的关键节点,实现对数据包级的实时智能分析。我们采用端口镜像的方式,通过分光器将出口侧及核心层的业务流量复制到后端分析节点,从而获取出口侧流量数据。
4.3 告警阈值设置
依据上一章节的OVS流表规范及出口侧流量规范设置zabbix及科来系统的告警规则,智能发现网络行为异常的虚机和公网IP。利用其图形界面展示某段时间内虚机的流表数量、变化速率及收发比变化,以及公网IP的数据包内容及连接数量等信息,协助甄别客户虚机是否正对外发起攻击。
4.4 定制化开发流量封堵功能
在openstack与SDN的云环境中,端口分为内网端口和外网端口,虚机对外访问的流量先经内网端口转发到外网端口后再通过外网。为保证网络异常行为不影响数据中心内部网络环境,我们需在内网端口进行流量封堵。同时,为保证客户能有特殊通道进入虚机进行安全整改,我们使用安全组放通特定流量。调用openstack API及监控系统API,在云管理平台定制化开发行为异常封堵功能。在发生行为异常告警时,可由云管理平台直接完成流量封堵并通知客户。
正常的流量途径是:虚机——>虚机网卡——>虚拟交换机——>物理网卡——>外部网络,其中,在虚拟交换机上经控制器下发流表对流量进行nat或隧道封装。简单地对虚机网卡进行流量封堵,会因客户行为引发openstack系统状态恢复而导致虚机网卡封堵失败。在物理网卡上进行流量封堵,则会导致移动云系统前后台配置不一致。为了精确区分每一个虚机的流量,保证封堵的效果与稳定性,采用自定义开发的脚本,通过API接口调用控制器下发openflow流表丢弃异常的虚机流量是最佳的选择。
封堵逻辑如下:云管理平台通过api接口查询openstack系统,确定网络行为异常虚机的端口信息。同时,预先定义好限速为100k的QOS及放通特定端口的安全组规则。确定端口信息后,云管理平台将预设的QOS、安全组及虚机端口下发给SDN控制器。SDN控制器自动生成openflow流表,并下发到流量异常虚机所在物理机,由流表实现异常流量的封堵。
4.5 自动化处理思路
移动云数据中心采用了SDN的网络解决方案,引入openflow流表、vxlan等新技术,带来网络全自动化部署等新功能,但也增加运维的复杂度。为了减少重复、繁多的运维工作,自动化是必然的发展方向。深入剖析openflow流表、客户网络行为、数据包结构三者之间的关系,挖掘到这些离散数据背后的规则,使自动化处理网络异常行为成为可能。移动云使用的开源软件openstack、zabbix等,更便捷地对接数据采集、监控告警、系统封堵各环节,是流程自动化的保证。
将重复的故障处理脚本化,能为自动化平台提供原子脚本支撑,并丰富平台功能;而自动化平台的开放性与完整体系,保证大多数的运维工作都能在平台上实现。两者相辅相成,最终实现平台自动化完成重复性、规律性工作,提高整体运维效率。
Achievements and Extend
效益及推广分析
5.1 网络攻击有效遏制
采用该套异常流量分析系统后,网络安全事件工单数量从平均每周13单,下降了80%。安全事件工单处理时长从8小时,缩短了95%,半小时便能走完以下步骤:智能发现异常流量、历史数据判断,专业分析确定异常,自动化封堵流量。使得数据中心的异常流量得到有效控制,网络安全环境大为改善。
5.2 发现新的分析手段
结合ovs的流表匹配规则,不仅能收集全网虚机的网络流量数据,同时也不会侵犯客户数据隐私。该分析策略用于故障预防和快速定位,可实现运维可视化管理,用量化数据指导云数据中心建设,从科学的角度去规划、优化网络与业务系统,不仅是保证网络业务正常,还能为产品运营提供支撑,扩大运营收入。
作者简介: