中南民族大学:SDN加持校园核心网络“超级汇聚”

时间:2020-05-18浏览:10

研究缘起

中南民族大学原有核心网络于2014年按照双活特性改造完成。

核心交换机分布在校内相距1公里的两座数据中心机房,以vrrp和port-channel协议在逻辑上构成一个整体,上行至运营商的互联网出口,下行至各个楼宇的汇聚交换均双万兆链路以动态LACP连接到两座机房的核心交换机。

也就是说对端设备都“认为”核心交换是一台设备,以期在核心拓扑中出现任意单点、单链路故障,甚至单机房停止,都能在用户无感知下连续运行,继而在工作时间从容处理突发问题,如图1所示。

图1 原有双活核心校园网拓扑

防火墙是整个拓扑的“中枢”,上端是校园网与互联网的边界,下端连接数据中心与网络中心两个核心区域。

核心交换以下保持汇聚、接入的三层网络结构 ,用户以DHCP获取仅限校内访问的IPv4地址后,通过L2TP校园网认证获取IPv4/IPv6地址,即通过BRAS整合有线、无线为一张网双栈准出到互联网,继而实现校内和互联网均同一入口接入校园网。

双活核心拓扑解决了连续可用性并适用于学校应用和运维的同时,也带来了伸缩性等问题。

1安全设备的重要地位

拓扑中的防火墙处于南北向流量的“咽喉”,一台出问题时必须由另一台承载全网南北向和东西向的负载,选型兼顾各个技术细节都满足的设备种类不多,可选范围缩小也间接带来采购竞争减小和价格高昂。

若将擅长不同特性的安全设备串接在一起,多次过滤防护即造成潜在“单点故障”位置,也影响用户体验。

2网络结构难以获取全局流量

防火墙是整个拓扑结构中流量最齐全的汇聚,并拥有NAT前后的会话表,虽然两个墙之间做到了会话同步,但在各自承载一半流量的负载均衡模式中,想获取全网所有流量需要跨机房采集至少两个设备,难以将镜像流量汇集在一起使用,且存在防火墙开启镜像导致性能不足、万兆端口数不足等实际问题,制约了对全网流量的分析、缓存系统的部署。

3组网扩展和流量调度有局限性

在这个以南北向流量为主的拓扑结构中,新增设备或串接测试设备变得困难,并且新串入设备必须在生产环境中动线,增加物理连接上的脆弱性和潜在不稳定,也无法选择影响面较小的区域或IP范围,区域间的互访和控制都高度依赖防火墙,特殊的流量调度缺乏灵活性。

想象总是美好的

有感于自诞生以来就非常火热的SDN数控分离理念,这种类似“瘦AP”的技术架构在现网结构中最适宜替换到防火墙的位置,继而易于实现全局流量的调度、新增设备的敏捷部署,以及基于自动化配置的安全和运维。

1设备选型

SDN听起来很美,但现实很骨感。

在校园网这种规模的园区网中,SDN的应用案例几乎为零,国内外知名网络设备厂商的解决方案除了要求必须全用自家的软硬件,还得更换大量现网其他设备才能部分实现预期效果,纯OpenFLOW的白牌交换机且不谈性能和质量如何,能说出来的厂家就寥寥无几,所以设备选型是要解决的首要问题。

按照OpenFLOW标准,一张流表可以使用任意字段组合去做查表,在当前的商业芯片中,必须使用TCAM表来实现。

但TCAM在普通交换机中主要用于二、三层处理,一般仅有4k~16k表项数支持,是一种昂贵的资源,如果按照OpenFLOW动辄几十K甚至上百K的流表要求,在匹配字段数目和转发性能上存在短板,同时存在部分字段只读无法修改,流表动作无法立即生效等先天不足。

为此,对SDN交换机的选型实则是对可编程交换芯片的选择,重要考量的是硬件表项及TTP表项映射。

2想象的样子

想象中的方案,由2台SDN交换机分别替代原有防火墙的物理拓扑位置,每个SDN交换机配置一台独立的OpenDayLight控制器并相互作为主备部署,原有防火墙以旁挂方式迁移集中到一个机房,新增2台防火墙到另一个机房,在新拓扑中保持了双活形态,如图2所示。

图2 SDN在校园核心网规划拓扑

在组网细节上,超级汇聚的诞生由如下4个方面构成:

(1)控制有道。每个SDN交换机独立配置一台服务器运行控制器程序,每个控制器既是同机房SDN交换机的主控制器,又是另一机房SDN交换机的备控制器,控制器程序仅承载交换机接口提供的信息上收和流表下发的轻量工作,最大限度保持其自身的稳定可靠,围绕安全和运维自动化的分析判断和各种辅助功能以插接APP的形式与控制器实现联动。

(2)北联边界。SDN交换机在替代防火墙的同时,以堆叠方式构成逻辑整体,可替代边界接入交换机,互联网出口仍保持动态LACP接入到两个机房,继而可利用OpenFLOW接口获取的状态数据实现安全初筛,在网络的边界就把潜在的威胁通过计数等简单的方式发现和丢弃,在边界形成一定的防DDoS能力,同时,控制器上安全相关的APP也能够对发现的威胁在边界上就进行消减。

所有互联网出口在SDN上的汇集及流表的自由定义,又为出口选路提供更灵活的能力,将原本在防火墙上承载的NAT一并由SDN来实现,SDN交换机上可以获取校内所有区域实际IP地址,对于流量的分析更为便捷,由SDN交换机实现向互联网访问选路也更集中统一。

(3)南汇园区。SDN的下联分别是校园网核心、数据中心核心及卡务核心三个区域,未来还可能有门禁核心等新的细分区域,每个区域之间的相互访问过去通过防火墙的zone实现隔离与防护,现在则基于流表实现更精细的管控,新区域也可像积木一般快速接入到骨干网络或移除,这对区域间流量调整带来的网络震荡也会降到最低。

针对SDN流表对流量管控的灵活性,设想将用户区域的流量设定为出互联网方向不过防火墙,互联网入用户区域的流量仍受保护,这样就能为用户缩小几毫秒的延迟体验,并且减轻防火墙的工作负载。

(4)旁路护航。SDN的旁路以安全设备、流量分析及测试设备接入为主,每个新接入设备可以按需选取所需区域的指定或全部流量,接线不影响在线的业务,调试可以从逐个IP到逐个地址段慢慢扩大,对指定流量能够设定经过一个或多个不同安全设备多次过滤,这些特性使得在生产网络中割接上线和下线变得更为从容。

在端口镜像方面,传统交换机一般会建议一个镜像源端口对应一个目的端口,并且一台交换机会有镜像数量的限制,但在SDN交换机中,只要吞吐量未用满,则没有镜像数量的限制,并且能将多个源端口累加的大流量根据源和目的IP分拆到多个端口加以利用,使超级汇聚在流量的释放上更具灵活性。

基于上述想象,SDN交换机既是主干枢纽承载核心流量,也是一个流量选择分配中心,这与常见的“分流器”设备完全不同,对提升整个网络调度能力起着举足轻重的作用。

痛并快乐的实践

对于新兴的SDN技术实践,不期而至的困难一定会比乐观的想象来得更为猛烈,技术实现的理想性和演进过程的曲折性就是折腾不休的IT生活生动的写照。

1暂时割舍

对SDN规划方案寄予的厚望,一方面来源于对技术了解的不够深入,另一方面也来源于对产品的过于乐观,收到样机后开展的模拟测试结果不得不割舍了几个期盼的特性。

(1)做不了堆叠。一般来说,堆叠主要解决交换机数量扩充和逻辑上一台设备的整体性,而所用样机的产品定位,主要是超融合、边缘接入和小规模私有云,现有接口已经是48*10G+6*100G的高密度,可以满足大多数场景需求,虽然可以设计100G业务口实现堆叠,但目前主流云数据中心采用的leaf-spine结构天然解决了端口扩展和整体性的问题,在高密度的场景中,堆叠也容易成为性能瓶颈,故而并未设计堆叠。

从OpenFLOW的角度来看,交换机都只是转发资源,多台交换机的管理复杂度也是控制器层面所承担的。

由于堆叠特性的缺失,两台SDN交换机在两个机房也就成了两个孤立的设备,因为控制器软件的成熟度还远不如SDN交换机硬件,这对网络的逻辑结构产生了影响,相应的双活、容灾的策略和机制也要随之调整。

(2)不支持802.3ad。IEEE 802.3ad是执行链路聚合的标准协议,在普通交换机里非常普遍,然而样机并不支持,这一方面影响双核心交换双链路上行接入,更不用说运营商双链路基于堆叠跨机房的接入,这一特性的缺失意味着必须有过渡和折衷的方案。

(3)不记录会话状态。正如普通交换机对流量的处置是有进有出,既不做NAT也不记录会话状态,纯OpenFLOW交换机也不做会话状态的处理,因为这属于控制器的分工,纯OpenFLOW交换机也不支持会话状态的处理,而控制器若要实现会话状态的管控,则需要付出巨大的性能开销,以及控制器结合交换机的定制开发。

因此,用户主动访问互联网的流量不过墙这一设想,短期是无法实现的,同理,基于地址池的SNAT需要记录映射关系和会话状态,也不能在改造中实现。

不过对于NAT,源地址和转换地址为1:1映射转换,OpenFLOW还是能够轻松驾驭的,这可以应用在数据中心服务器地址发布上,并不适用于用户访问互联网。

2分步骤实施

正如双活网络的部署期望有故障发生时能在白天更从容的处置,从原有网络到SDN的割接也尽力做到用户无感知。

(1)双活到单活。第一阶段的准备工作是将原有网络的关键配置进行梳理,重点是理清各种情况下的流量走向,并将双活置为单机房运行的单活模式,以便在另一个机房将SDN上线前所需的准备做好,特别是SDN一端新接防火墙涉及原有防护策略迁移和一些辅助功能的停用。

(2)单SDN割接。当另一个机房的SDN物理连接和流表等配置准备就绪,割接动作实质是在原单活的上下联设备将路由改到SDN一端,修改路由的时间仅仅数秒,割接的时间可以选择在线人数较少的周末,这样也能立即观察到用户访问和数据中心等其他区域是否存在问题,便于快速处理和回退。

割接能否一次成功的关健因素,取决于流表的准备情况。样机除了完全支持OpenFLOW-v1.3协议,还具备多级流表特性,支持3000任意流表项和8000精确流表项。多级流表可以提供灵活的规则和动作组合。

如:一级流表匹配MAC、VLAN等,匹配后的动作是修改DMAC或增删改VLAN,二级流表匹配IP五元组等,动作是做QOS,三级流表将规则匹配后转发到特定接口。

多级流表组合起来的功能非常丰富,充分满足实际的应用需求。

精确流表是需要配置很精确的值,比如特定IP、端口等,任意流表则是模糊匹配的意思,比如IP可以带掩码、端口可以带掩码,规则可以匹配一大段,节省条目。

本例中的超级汇聚,流表的编写在某种程度上,就是换了种写法的路由表,可读性还没有路由表那么高。

单SDN运行既可能存在单点故障,也存在SDN交换机和控制器成熟度带来的潜在问题,因此这一过渡的单活阶段在改造期间存在的时间需要尽可能缩短。

(3)按需导流。单SDN割接成功,形式上看起来旁路的防火墙已经属于将指定流量导入的服务链模式,防火墙在逻辑上仍串接在网络中。接下来再选取指定的流量用于镜像分析、缓存加速及串接测试设备则变得轻松简单。

按需考验着SDN对网络可扩展性的能力是否达到了想象中的灵活。

(4)主备机制。将不同网络区域相互之间的访问进行组合,指定每一种互访的组合主从分别通过哪一台SDN交换机,“主”表明的是默认走向,“从”发生在检测到“主”发生情况就切换。

检测机制运行在控制器上,受限于控制器APP开发的深度,目前仅能以端口状态的up/down作为判断条件实现切换的触发,若能进一步参考路由可达性、负载、服务可用性等多维度因素实现智能化的分析与自动切换才是更为理想的落地。

(5)持续迭代。改造进行到此并不是结束,在生产网络中实测了仍在演进中的技术并不能简单用行或不行来说SDN,在现有组网中,流量可视化分析是相比改造前最容易实现管理创新的发力点,同时,安全运维强调的监控、日志、自动化运维等议题也有了更进一步探索的空间。

3刷新经验

在生产网络上做如此大的调整动作,没有现成的经验可取,虽然做了一定的“充分准备”,总还有很多新的“没想到”在等着。

(1)当前的控制器采用物理服务器承载,并未关联和开发太多的APP应用,主体是OpenDayLight开源的框架和接口,因此对服务器的性能要求并不高,但服务器的稳定性还是需要保障的。

(2)SDN交换机带外管理承载与控制器的连接,比一般带外管理更为重要,该接口不管是与控制器直连,还是连接同一个交换机,都难免发生控制器与交换机失联的情况,因此在SDN交换机选型时,要特别注意“失联”后的流表保持及重启后的流表保持,能够减少意外情况下SDN“大脑空白”导致的全网中断。

(3)SDN交换机与各网络区域互联,OpenFLOW接口并不具备配置IP地址特性,类似互联地址的配置,需要在SDN交换机与对端交换机以绑定MAC地址的方式,实现二层的互通,这在改造之初是完全没想到的。

(4)习惯了子网掩码和静态路由的配置命令,校内IP路由的条目虽多,也从未感觉繁琐,但在OpenFLOW流表作为路由的替换下,需要人为计算转发的优先级,是个费神又容易出错的环节。

相关思考

SDN的实际部署进度比最初的计划推迟了很久,这在很大程度上是因为控制器在扩展性、API接口等方面的特性与实际的需求还存在较大的滞后。

除此之外,改造后的物理拓扑会看到所有设备和区域都是相连接的,如果目标网络要求隔离,虽然逻辑上会比传统网络断开得更为彻底,但与某些安全制度要求还是存在抵触的,也需要在规划中有所割舍,但仅仅是以“超级汇聚”的方式部署,就足以看到SDN诸多令人心悦的改进和提升,也让我们对未来的发展充满想象。

1运维和开发的相辅相成

近些年来,运维场景与程序开发的联系越来越紧密,运维人员已不仅要擅于操作每一个工具,也要掌握和精通几个编程语言来提高运维效率,SDN的改造实施和持续运维也离不开开发的支持。

实施与编程的界限已模糊不清,亟待网络工程师在新的和不熟悉的领域尽快转型。

2SDN开发不是做控制器

传统交换机的控制器是按照大家都默认一致的既定规则和方式进行转发,SDN开放的是对控制器进行自定义的能力,一方面是对设备全局流量的掌控,另一方面则是通过接口进行能力输出。

因此,SDN的应用开发并不等同于控制器开发,单纯做控制器已经在传统交换机中做到相当成熟了,图3为SDN应用开发示意图。

图3 SDN应用开发示意

控制器为APP提供相关的流量、状态、计数等必要的信息,APP不仅从日志系统、监控系统、流量分析系统等获取运行信息,还可以从防火墙、WAF、IPS等安全设备获取信息。

APP综合各方面的数据和状态可以创造很多新的联动场景,实现很多过去无法想象或实现的能力,APP在其中就是智慧的“基因”,对控制器下发相应功能的流表,按需实现攻击防护、故障转移、流量优化的功能,即APP的开发既围绕网络又超然于网络。

3基于SDN的数据中心

SDN的概念出现至今,实际应用和讨论最多的是SDWAN和SDDC两大场景。SDWAN逐渐在大型企业的分支网络中生根落地,高校的网络规模和业务复杂度远不及企业应用场景,SDWAN应用鲜有提及。SDDC在高校应用场景的关注度和熟悉度要远高于SDWAN,这其中不乏一些商业产品的推波助澜,即使高校数据中心的应用规模有限,叶脊(leaf-spine)网络架构已经越来越多的得到认可,图4为Leaf-Spine架构示意图。

图4 叶脊结构示意

leaf-spine二层结构相比传统三层架构,在SDN加持下的优势也更为明显,主要表现在:

(1)节省资源,leaf-spine拓扑只有二层结构,数据中心部署需要的交换机相应减少;

(2)降低延迟,每一个leaf节点和另一个leaf之间少则一跳,多则两跳,越是规模大的组网结构,减少延迟和等待的效果越明显;

(3)多链路传输,leaf与spine有多条链路,spine越多,leaf可用路径越多,这对改善数据中心东西向传输是非常显著的。

SDN的发展不是一蹴而就的,在技术迭代眨眼翻篇的IT时代,在现网用起来了才是最终的评判标准。

有人消极地说SDN已经死了,但我们相信SDN作为一个概念不会消亡,SDN在提高网络元素可编程性,和降低对专用硬件依赖性方面,有着很好的效果。