1、第 4 章 SDN 交换机第 4 章 SDN 交换机4.1 概述概述 4.2 SDN 硬件交换机硬件交换机4.3 SDN 软件交换机软件交换机 4.4 小小结结复复习思考题习思考题第 4 章 SDN 交换机SDN 的核心理念之一就是将控制功能从网络设备中剥离出来,通过中央控制器实现网络可编程,从而实现资源的优化利用,提升网络管控效率。SDN 交换机只负责网络高速转发,用于转发决策的转发表信息来自控制器,SDN 交换机需要在远程控制器的管控下工作,与之相关的设备状态和控制指令都需要经由 SDN 的南向接口传达,从而实现集中化统一管理。工作在基础设施层的 SDN 交换机虽然不再需要对逻辑控制进行过
2、多考虑,但作为 SDN 中负责具体数据转发处理的设备,为了完成高速数据转发,还是要遵循交换机的工作原理。第 4 章 SDN 交换机SDN 交换机可以忽略控制逻辑的实现,全力关注基于表项的数据处理,而数据处理的性能也就成为评价 SDN 交换机优劣的最关键的指标,因此,很多高性能转发技术被提出,如基于多张表以流水线方式进行高速处理的技术。另外,考虑到 SDN 和传统网络的混合工作问题,支持混合模式的 SDN 交换机也是当前设备层技术研发的焦点。同时,随着虚拟化技术的出现和完善,虚拟化环境将是 SDN 交换机的一个重要应用场景,因此,SDN 交换机可能会有硬件、软件等多种形态。第 4 章 SDN 交
3、换机4.1 概概 述述4.1.1 传统交换机架传统交换机架构构交换架构是网络设备的核心,就像人的心脏一样重要,交换架构决定了一台设备的容量、性能、扩展性以及 QoS 等诸多关键属性。在短短二十几年的历史中,先后出现了共享总线交换、共享存储交换、Crossbar 矩阵交换和基于动态路由的 CLOS 交换架构等不同形态。对于代表业界发展水平的大容量或超大容量的机架式网络设备而言,通常采用 Crossbar 矩阵交换或 CLOS 交换架构,共享缓存交换则应用线卡作为全分布式业务处理和转发的组成部件。第 4 章 SDN 交换机网络设备交换架构的一般模型如图 41 所示,在逻辑上由数据通道资源、控制通道
4、资源两部分构成。数据通道资源包括交换网及其端口带宽、交换网适配器(FabricAdaptor,FA)、流量管理器(TrafficManager,TM)、缓冲(Buffering)以及用于互联的高速总线。控制通道资源则包括用于资源分配、业务调度、拥塞管理的流控单元、调度器(Scheduler),调度器有时也叫仲裁器(Arbiter)。完整意义上的交换架构还包括报文处理器(PacketProcessor,PP)或网络处理器(NetworkProcessor,NP)。第 4 章 SDN 交换机图 41 网络设备交换架构模型第 4 章 SDN 交换机上世纪 90 年代出现了基于组合输入输出队列 Com
5、binedInputOutputQueuing,CIOQ)的Crossbar 交换架构,如图 42 所示,该架构包含一到多个并行工作的无缓存的 Crossbar 芯片,每个 Crossbar 芯片通过交换网端口 FP(FabricPort)连接到所有的输入端口和输出端口对应的 FA端口。业务调度通常采用集中仲裁器连到所有的输入、输出 FA 芯片和 Crossbar 芯片,出口 FA定时或实时地向仲裁器报告出口拥塞情况。一次典型的交换过程包含三个步骤:第 4 章 SDN 交换机 输入端口发送业务前,入口 FA 先要向仲裁器请求发送(Requesttotransmit);仲裁器根据输出端口队列拥塞
6、情况,给入口 FA 发送允许发送(Requestgranted);业务通过交换网转发到输出端口。第 4 章 SDN 交换机图 42 基于组合输入输出队列的 Crossbar 交换架构第 4 章 SDN 交换机在入口方向,缓存采用虚拟输出队列(VirtualoutputQueuing,VoQ)方式给不同目的输出端口、不同优先级的业务流分配相应的队列,对入口流量进行缓存。在出口方向也有一个缓存,因此称之为组合输入输出队列。第 4 章 SDN 交换机4.1.2 SDN 交换机架构交换机架构不同于传统交换设备,SDN 将交换设备的数据平面与控制平面安全解耦,所有数据分组的控制策略由远端控制器通过南向接
7、口协议下发,网络的配置管理也同样由控制器完成,这大大提高了网络管控的效率。交换设备只保留数据平面,专注于数据分组的高速转发,降低了交换设备的复杂度。就这个意义上来说,SDN 中交换设备不再有二层交换机、三层交换机和路由器之分。如图 43 所示,SDN 交换设备的基本功能包括转发决策、背板转发、输出链路调度。第 4 章 SDN 交换机图 43 SDN 交换设备架构第 4 章 SDN 交换机(1)转发决策。应用最广泛的接口协议 OpenFlow 用流表代替传统网络设备中的二层和三层转发表,该流表中每个表项都代表了一种流解析以及相应处理动作。数据分组进入 SDN 交换机后,先与流表进行匹配查找,若与
8、其中一个表项匹配成功则执行相应处理动作,若无匹配项则上交控制器,由控制器决定处理决策。这些流程依旧需要依赖网络设备内的交换芯片实现。第 4 章 SDN 交换机(2)背板转发。目前 SDN 应用最广泛的场景是数据中心,其对交换机数据交换速率的要求还是较高的。不过就目前的网络设备来说,速率瓶颈点主要还是在交换芯片上,背板提供满足要求的交换速率并不是太大的问题。第 4 章 SDN 交换机(3)输出链路调度。正常情况下,数据分组发往交换机某一端口或准备从交换机某一端口发出时,均需在端口队列中等待处理。而支持 QoS 的交换机则可以对报文根据某些字段进行分类而进入有优先级的队列,对各个队列进行队列调度以
9、及修改报文中的 QoS 字段以形成整个链路的有机处理流程等。支持 OpenFlow 协议的 SDN 交换机对 QoS 的支持主要有基于流表项设置报文队列、根据 Meter 进行限速、基于 Counter 进行计费、基于 Group 的 Select 功能进行队列调度等。第 4 章 SDN 交换机背板转发和输出链路调度功能没有给 SDN 交换机带来太大的挑战,但转发决策却给 SDN 交换机在技术实现上带来了很大的难题。OpenFlow 交换机的流表有别于传统网络交换设备,它的逻辑粒度性更高,可以包含更多层次的网络特征,可以使交换机集交换、路由、防火墙、网管等功能于一身,这也正是 SDN 灵活性的
10、由来。而交换芯片需要通过查找这样一张流表来对进入交换机的数据分组进行转发决策,这就对交换芯片的性能在设计和实现上提出了新的要求。第 4 章 SDN 交换机4.1.3 SDN 交换机实现技术交换机实现技术对于 SDN 中的交换机而言,根据使用场景的需要,交换功能可以采用软件或者硬件实现。其中,软件实现的 SDN 交换机通常与虚拟化 Hypervisor 相整合,从而为云计算场景中的多租户灵活组网等业务提供支持。硬件实现的交换机则能够支持基于硬件设备的组网,还能够满足 SDN与传统网络的混合组网需求。无论是软件还是硬件,参考传统的网络转发设备,SDN 交换机在具体的设计和实现中需要对交换模式、背板
11、设计、缓冲机制、数据转发等多方面的技术进行合理的选择。第 4 章 SDN 交换机1.交换模式交换模式SDN 交换机的数据交换模式决定了其转发数据包的速度以及交换过程导致的延迟(即交换机在一个端口接收到数据包的时间与在另一个端口发送该数据包的时间差)。在实际应用中,数据包的转发既希望具有尽可能低的转发延迟以提升数据传输的性能,又希望能够在转发过程中对数据包进行检验,以保证信息传输的可靠性。和传统的网络交换设备一样,SDN 交换机的数据交换模式可以有直通、零碎片、存储转发等多种选择,各种模式的介绍和分析如下。第 4 章 SDN 交换机(1)直通(Cut-Through):交换机仅对数据帧(二层网络
12、对数据包的特有称呼)的前 6 个字节的信息进行接收和分析,并将数据帧的其余部分直接剪切(即所谓的 Cut)到出端口上。这是因为数据帧的前 6 个字节包含了该数据帧的目的 MAC 地址,这足以供交换机作出转发决策。直通模式具有最小的转发延迟,但是它并不检查数据的完整性,因此可能会把能够导致以太网冲突的“坏包”转发出去,从而产生网络可靠性的问题。第 4 章 SDN 交换机(2)零碎片(Fragment-Free):交换机首先对数据帧的前 64 个字节进行接收和解析,再进行转发。之所以选择 64 个字节的长度,是因为经验表明,在以太网络中绝大部分的“坏包”都能在这些字节的处理过程中被检测到。这种模式
13、虽然有可能造成极少量的“坏包”漏检,但是它对网络的整体性能影响不大,因此在很多应用场景中又被称为“快速转发(Fast-Forwarding)”。第 4 章 SDN 交换机(3)存储转发(Store-and-Forward):交换机需要对整个数据帧的内容进行接收和解析,并开展数据帧的完整性检验等操作以有效地避免出现错误。虽然该模式增加了转发延迟,但是考虑到当前的处理器或者 ASIC 已经具有足够的性能,因此,在 SDN 交换机的设计与实现中,仍旧建议其采用这种模式用于数据交换。第 4 章 SDN 交换机2.背板设计背板设计SDN 交换机中,从设备入端口接收到的数据包将通过背板被发送到设备出端口。
14、交换机的背板是数据帧在交换机内部传输的通信通道,携带有转发决策信息及中继管理信息。参考传统的网络交换设备,SDN 交换机可采用的背板设计主要包括共享总线机制和交叉开关矩阵机制两种方式,相应的介绍和分析如下。第 4 章 SDN 交换机(1)共享总线(SharedBus)机制:交换机中所有的入端口和出端口都共享同一数据通路,并由一个集中的仲裁器负责决定何时并以何种方式将总线的访问权赋予哪个交换机端口。根据不同的交换机配置,仲裁器可以用多种多样的方法保证总线访问的公平性。在共享总线的数据帧传输流程中,交换机设备入端口在接收到数据帧后,将发起对总线的访问请求,并等待请求被仲裁器批准后将数据帧发送到数据
15、总线上。该数据帧会被总线上挂接的所有端口接收到,同时交换机将决定哪个出端口应该继续传递该数据帧。第 4 章 SDN 交换机在接收到交换机的决定后,负责转发的设备出端口将继续传递数据帧,而其他端口则将该数据帧丢弃。共享总线的交换机制使得除了交换机的设备入端口外,其他挂接在总线上的端口都可以自动获得数据帧的副本而无需额外的复制操作,从而比较容易实现组播和广播。但是,共享总线的速度将会对整个交换机的流量造成很大的影响,这主要是因为总线是共享的,所以端口必须要等到轮到它们使用总线时才能进行通信。第 4 章 SDN 交换机(2)交叉开关矩阵(Crossbar)机制:又被称作“纵横式交换矩阵”机制,其基本
16、思路是支持在交换机端口之间提供多个可以同时使用的数据通路。它突破了共享总线机制中的带宽限制,在交换网络内部没有带宽瓶颈,不会因为带宽资源不够而产生阻塞。因此,在 SDN 交换机的设计与实现时,交叉开关矩阵机制可以被引入用来改进数据交换效率。第 4 章 SDN 交换机3.缓冲机制缓冲机制如果 SDN 交换机采用了基于共享总线的背板设计,那么数据帧必须要依次等待仲裁器裁决直至轮到它们对应的端口可以访问总线时才可以被发出,即使是采用了基于交叉开关矩阵的背板设计,数据帧也有可能因为网络出现拥塞而被延迟发出。因此,相关的数据帧就必须被 SDN 交换机缓冲起来直至它被发出。如果 SDN 交换机没有设计合理
17、的缓冲机制,那么在出现流量超标或者网络拥塞时,数据帧就有可能被随时丢弃。第 4 章 SDN 交换机SDN 交换机的缓冲机制用于解决数据包不能够被设备出端口及时转发的问题,发生该情况的主要原因包括交换机的设备入端口和设备出端口速率不匹配、多个设备入端口向同一设备出端口发送数据、设备出端口处于半双工工作状态等。为了避免发生上述情况导致数据包被丢弃,当前有两种常用的缓冲机制可供 SDN 交换机选择。第 4 章 SDN 交换机(1)端口缓冲:为每个交换机上的以太网端口提供一定数量的高速内存用于缓冲数据帧的接收与转发。该方法存在的主要问题是当端口的缓冲被使用殆尽时,其后续接收到的数据帧将被丢弃,而支持缓
18、冲规模的灵活调整将有助于缓解这一问题。(2)共享内存:为所有端口提供可以同时访问的共享内存空间用于端口缓冲。该方法将所有接收到的数据帧都保存在共享的内存池中,直到设备出端口准备将其转发到网络中。使用这种方法,交换机能够动态地分配共享内存,可以根据端口流量的大小设定相应的缓冲规模。第 4 章 SDN 交换机4.数据转发数据转发无论是硬件实现还是软件实现的 SDN 交换机,数据帧在交换机内部从设备入端口到设备出端口的传递过程都需要交换机作出转发决策。在传统的网络交换设备中,这一决策过程依赖交换机中的转发表、路由器中的路由表等机制实现,它们通过对设备入端口接收到的数据包的目的地址信息进行匹配,就能够
19、确定该数据包应该被发往哪个设备出端口。对 SDN 交换机而言,设备中同样需要这样的转发决策机制。以 OpenFlow 交换机为例,它提出了流表的概念对传统的二层转发表、三层路由表进行了抽象,从而使得数据包在转发过程中的决策更具灵活性。第 4 章 SDN 交换机传统网络设备的转发表和路由表的组成都有标准的定义以及相对简单的格式,例如,二层交换机转发表就是一个设备端口和 MAC 地址的映射关系,因此非常适合采用静态的专用集成电路高效实现。而 SDN 交换机中的转发决策使用的转发表可能具有非常复杂的组成结构。仍以OpenFlow 为例,在 OpenFlow1.2 版本后,其流表中各个表项的长度及其中
20、包含的匹配域都是可自定义的而非固定的格式,虽然这些设置在交换机的软件实现中能够提供极高的灵活性,但是对于相应的硬件 OpenFlow 交换机而言,它将不再适合采用预先定义好的硬件电路进行流表的实现。为了应对这一问题,SDN 交换机的硬件可以考虑引入三态内容寻址存储器(TernaryContentAddressableMemory,TCAM)技术完成相关流表信息的存储和查询。第 4 章 SDN 交换机4.1.4 传统交换机和传统交换机和 OpenFlow 交换机的比较交换机的比较下面是 OpenFlow 交换机和传统交换机的对比。1.端口层面的对比端口层面的对比交换机的每一个端口都有一个网卡,这
21、个网卡由 MAC 和 PHY 组成,现在二者通常在芯片里集成为一体。通俗地说,PHY 就是将电信号或者光信号转换后的电信号转换成比特位的 0 或 1,MAC 层再根据这些比特位从中筛选出数据帧,即通常说的一个报文。第 4 章 SDN 交换机相连的两个端口通常需要支持协商端口速率的设置,因为可能两个端口支持的最大速率是不同的,两者需要协商出一个合适的速率进行通信。比如,一个百兆口和十兆口相连,通常自协商的结果是按照 10 兆来进行速率传输。当然这种情况下也可以人为地将百兆口设置成 10 兆的工作模式,并关闭两端的自协商功能以 10 兆的速率传输数据。值得一提的是,万兆口和千兆或者百兆进行相连时不
22、支持自协商,需要人工模式强制将万兆口设置为千兆或者百兆模式才可以工作。第 4 章 SDN 交换机交换机端口一个重要的功能就是端口统计,统计内容包括端口接收和发送报文分别的总个数、错误帧数、丢弃帧数以及各个长度区间范围内的报文数目,这方面的相关标准有若干个 RFC来定义,但是交换芯片可以有多种不同的支持或者支持程度。个数统计比较容易,识别出来数据帧后进行加和即可,比较难于处理的是速率的解析。和通常理解的不太一样,无论是 BCM 还是MVL 等传统交换芯片,测量端口的速率并不是通过测速的 meter 来进行的(meter 其实不能用来测速,只能用来限速),而是上层通过软件来计算获取的。第 4 章
23、SDN 交换机计算的方法是固定时间间隔内(通常是5s,有的高级交换机可以用命令在一定范围内设置该值)利用软件主动读取计数,然后在一定时间间隔后再读取计数一次,用前后两次读取的计数差除以时间间隔就获取了该时间间隔内的平均端口速率。当然这样的计算处理方法不是十分的精确,但是基本上能满足统计的需求。第 4 章 SDN 交换机交换机端口另一个重要的功能是流控(FlowControl,FC),其实流控属于宽泛的 QoS 功能。值得提及的是,流控功能属于入口的功能,因为流控的产生原因虽然有可能是因为出口的阻塞(比如 HOL),但却是由于入口接收的数据帧过多或无法及时转出而导致入口的缓冲耗尽产生的,此时接收
24、报文的交换机入端口就会向发送报文的交换机发送流控帧告诉对方慢点发甚至停止发送报文,等到接收报文的交换机端口有缓冲后再给对方发送继续发送报文的通知,这样就可以防止通信中因为阻塞而发生丢包。第 4 章 SDN 交换机对交换机进行流控测试时需要注意数据帧中的两个值,一个是流控的标识 DMAC 为 01 80 C2 00 00 01、操作符为 1 且 ETHERTYPE 为 0X8808 的流控帧,另一个是通知对方停止发包的时间,这是一个操作参数,一定要被设上,这个值是以当前传输介质的传输速率传送 512 位的时间,其范围是 065535。需要说明的是,很多时候流控功能在数据中心会被关闭,因为和 PO
25、E 功能、STP 协议相类似,这会使得数据链路的传输效率降低,而靠网络规划来规避网络阻塞或者在特定场景下可以容忍一定限度的丢包。第 4 章 SDN 交换机QoS 在同一个端口上可以针对不同的流基于差异服务模型进行分类处理,如果一个端口开启了流控,即使优先级较低的流发生了阻塞,也会导致优先级较高的流被停止,这种情况是不太合理的,所以提出了 PFC(priorityFC)的概念,就是阻塞交换机的入口根据阻塞报文的优先级发送流控报文,对端交换机根据 PFC 帧来确定哪种优先级的报文被停止转发,而其他优先级的报文可以继续转发。第 4 章 SDN 交换机传统交换机的端口分为业务口、回环口和 CPU 口。
26、业务口主要用于传输数据,包括常见的面板口和汇聚口等;回环口会将所有转向它的数据再传回给交换芯片;而 CPU 口则是交换芯片和 CPU 通信的网口,主要是将某些控制报文和协议报文送至 CPU 软件协议栈进行处理。另外,对于机架设备还存在各个交换芯片之间传输数据所用的背板口。第 4 章 SDN 交换机OpenFlow 交换机端口在标准端口里分为三类:物理端口、逻辑端口和保留端口。物理端口对应交换机的面板接口,即硬件中存在的端口;逻辑端口包括汇聚口、回环口和隧道用途的端口等;保留端口主要用于传统转发的端口和广播口、与控制器通信的端口、入端口等概念。OpenFlow1.3 标准中规定 OpenFlow
27、 交换机最多可支持 65280 个端口,不过通常的 256 个端口已经很多了。从这个层面上来讲,OpenFlow 交换机与以前的交换机兼容,并对交换机的端口从本身需求出发作了扩展,OpenFlow 技术作为转发层面的机制对物理层没有太大的贡献,这也是很多网络技术的一个共同特征,就是兼容原来的技术,从原来的技术扩展而来,此类技术可以称为改革性技术。第 4 章 SDN 交换机还有一类是革命性技术,即如果采用新的技术就需要彻底废弃原来的技术,否则就无法直接使用新技术,典型的例子就是 OSPF 和 RIP 两种路由协议。当然,后来 OSPF 通过定义特定的 LSA 类型来引入外部路由并传播到 OSPF
28、 的区域内,所以 OpenFlow 交换机的网络无论最终是成功,还是失败,或者是在一定范围内被使用,都不会在一夜之间取代传统交换机,而在其慢慢成长过程中需要和传统网络的交换机进行通信,这就需要一些工作来保证二者的兼容。第 4 章 SDN 交换机2.二层转发层面的对比二层转发层面的对比通常来说,物理层的一串比特位到数据链路层后,会被组成帧,并做校验,只有校验通过的帧才被转发。对于交换机来讲,转发是基于 MAC 地址的转发,最初的二层转发设备也仅仅是基于 MAC 地址的,主要用于局域网,后来由于广播泛滥和通信安全性的考虑才采用 VLAN 对不同的通信域进行隔离。MAC 地址是每个网络设备上的物理地
29、址,VIAN 技术通过对原来的报文在 MAC 地址头后加入 4 比特的数据来识别和标志 VIAN,具体结构如图 44 所示。第 4 章 SDN 交换机图 44 以太网 tag 报文结构第 4 章 SDN 交换机其中,TypeID(简称 TPID)(例子中是 08100)不是必须的,稍微高级点的交换芯片都支持QINQ 功能。当处于二层隧道或者 VLANID 不够用的时候,可以给一个报文打上两个VLANTag,并且两个 VLANTag 的 TPID 可以不同,也可以相同。报文能灵活地删添或修改VLANTag 的功能称之为灵活 QINQ。后面 3 位的 UserPriority 一般称之为 COS
30、值,用于二层 QoS 功能。再后面的 1 位就是 CFI(CanonicalFormatIndicator),其值为 0 表示该帧格式用于 802.3 或 EthII 封装,常用于以太网类网络和令牌环类网络之间。如果在以太网端口接收的帧具有 CFI,那么设置其值为 1,表示该帧不进行转发。第 4 章 SDN 交换机OpenFlow 标准中所有的表项均支持二层转发,匹配内容为 DMAC+外层 Tag 中的 VLAD-ID,设置的动作为指定出端口,但不必支持基于 SMAC+VID 的学习。例如,一台 OpenFlow 交换机连接了十几台服务器,服务器需要通过二层转发进行通信,那么所有服务器的第一个
31、报文需要发送到控制器,然后控制器可以把报文中的 SMAC+VID 解析出来并下发一条 DMAC 为该报文的 SMAC+VID 表项,设置动作是所有该类型的报文均转发到该端口。OpenFlow 标准中对于 VLAN Tag 的动作和灵活 Q IN Q 是基本类似的,支持对 MACIN MAC 头部的处理。第 4 章 SDN 交换机对于灵活 QINQ 功能中对 VLANTag 的修改,OpenFlow 规则可以用 setfield 动作来执行,并且 OpenFlow 中还有 stripVLAN 的动作来支持对 VLANTag 的删除动作。OpenFlow 标准 1.0 版本就提出了对外 VLANT
32、ag 的处理和 QINQ 的支持,到 1.2 版本则丰富了对报文内、外 Tag 的处理支持。OpenFlow 的组播和广播是用类型为 all 的组的概念来实现的。第 4 章 SDN 交换机3.三层转发层面的对比三层转发层面的对比现在三层交换机基本都用相应的交换芯片来做,交换机的主要功能从处理流程上来说有以下几点:(1)端口接收报文并形成帧,进行端口统计、MTU 检查,对报文的端口信息进行标注,分配报文缓冲。(2)解析端口的报文内容信息,包括每个二层和三层字段以及 TCP 或 UDP 的 PORT 等。(3)SMAC 学习,然后进行一些防 DOS 攻击的检查。(4)对报文的隧道进行识别和解、封装
33、,如 IPv4INIPv4 等。第 4 章 SDN 交换机(5)对报文的 VLANTag 进行识别和处理,包括基于 QINQ 的二层转发中提及的功能。(6)进行 DMAC+VLANID 的查找和二层转发,若 DMAC 是系统的 MAC 地址,则进行三层转发;若报文是 MPLS,需要走 MPLS 的报文处理流程;若是 VPLS,则走 VPLS 的流程。根据满足的条件进行判断报文具体走哪种转发流程。(7)对报文进行 ACL 表项的查找,如果匹配有丢弃的动作则丢弃。第 4 章 SDN 交换机(8)根据报文的 VLANID、COS、DSCP 等值进行入口队列映射,进入不同的队列。(9)经过缓冲的队列调
34、度算法被转发到出端口,进行出口 VLAN 检查、翻译等功能。除了二层转发和三层转发外,交换机还有 ACL 和 QoS 功能。交换机的 QoS 功能主要是为了保证服务质量。比如,为用户提供相应付费的带宽、限制某些用户的最大可用带宽、根据某些字段对报文进行分类并进入有优先级的队列、对各个队列进行队列调度、WRED 功能、修改报文中的 QoS 字段以形成整个链路的有机处理流程等。第 4 章 SDN 交换机在交换机芯片中用于限速的器件称之为 meter,即限速器,但是该器件无法用于测量速率,因为它的行为是对于超过限制的报文进行丢弃而不是统计。为了实现对不同报文进行不同的处理,meter 利用令牌桶或者
35、漏桶对报文是否超速进行标记,称之为丢弃优先级。交换芯片的一个重要部分是 ACL 功能,用于实现配置交换机的防火墙、认证、对报文进行细粒度 QoS 分类、计数等功能,ACL 表项匹配后产生的动作有丢弃报文、让报文继续转发、修改报文某些字段的额值、指定报文的下一跳、指定报文的出端口(称为重定向功能)、指定报文复制一份的出端口(称之为基于流的镜像功能)等。第 4 章 SDN 交换机认证功能的通常做法是首先下发一条让所有报文都丢弃的默认规则,当有用户开始通信时,先把用户名和密码等信息发给认证服务器鉴别身份,只有合法用户才能获得认证服务器提供相应级别服务的许可,然后通知网络设备下发一条优先级高于默认规则
36、的指令,让这个用户相应级别的服务报文可以转发以完成认证和授权动作,并且开始相应地统计和计费,其他没有认证的用户依然无法访问相应资源。用OpenFlow 交换机实现这些功能是轻而易举的事情,而且 OpenFlow交换机有控制器的概念,可以完全起到认证服务器的作用,而 OpenFlow 规则实现报文的丢弃和转发动作非常容易。常用的 AAA 协议是 Radius。第 4 章 SDN 交换机OpenFlow 主要进行基于流表的转发,和 ACL 的表项类似,每一个流表基本上都是一个ACL 匹配的过程,而且有多个流表。OpenFlow 对 ACL 的支持非常容易实现,但对于传统芯片的 ACL 表项而言,O
37、penFlow 对各种报文的解析和字段匹配支持程度要高很多,每个流表支持的动作种类要多很多,流表表项的大小要大很多。OpenFlow 交换机对于 QoS 的支持有基于流表项设置报文入队列、根据 meter 进行限速、基于 counter 进行计费、基于 group 的 select 进行队列调度等概念。第 4 章 SDN 交换机传统交换机中功能配置类型有寄存器、基于 HASH 查找的 RAM 与少量 ACL 表项所用的TCAM 等,OpenFlow 交换机所用的基础单元与传统交换机不太一样,是少量寄存器和大量的TCAM 表项,这必然使得交换芯片的硬件成本有所增加,而且有表项匹配字段多,可以设置
38、的动作多,表项条数多。但实际中每条表项可能只匹配几个字段,甚至是一、两个字段,动作也往往是一、两个,表项可能只是用到很少的一部分,这样势必造成了一定程度的浪费。第 4 章 SDN 交换机所以从资源使用上说,传统交换机在结合业务转发上有些不足,但是相对于 OpenFlow 交换机确实比较节省资源和成本(虽然随着 IT 产品的大规模量产,价格已经越来越低)。因此,将来应该不会出现纯的OpenFlow 交换机,而大部分是混合模式的交换机,保留二层和三层转发,增强交换芯片用于对报文的解析、增加规则的动作类型和增多表项的条目数,这样即节省了资源,也实现了对以往产品的兼容性。第 4 章 SDN 交换机4.
39、2 SDN 硬件交换机硬件交换机传统网络设备的硬件、网络操作系统以及应用都被设备厂商定义和控制,用户如果需要增加某种网络功能,就必须得到设备上的支持。这不仅会面临网络升级周期长、成本高的问题,同时导致用户对设备厂商的过度依赖。经过多年的竞争发展,网络设备市场已经形成了基本稳定的格局,网络设备厂商基本都是成长多年的成熟公司,Cisco、HP、Juniper、阿朗和华为五大供应商占据了全球交换机市场的绝大多数份额。第 4 章 SDN 交换机市场研究机构表明,2013 年第四季度,全球以太网交换机市场达到了创纪录的 59.6 亿美元。其中,Cisco 占据 60%以上,其他四个厂商接近 20%。在这
40、样一个相对封闭的市场中,新生力量很难生存下来,市场缺乏创新精神和竞争力,在某种程度上阻碍了网络设备产业的演进和发展。SDN 的设计初衷是从实现网络的灵活控制这一角度出发的,通过将网络设备控制平面与数据平面分离来实现网络的可编程,将以前封闭的网络设备变成一个开放的环境,为网络创新提供良好的平台。第 4 章 SDN 交换机多数 SDN 用户的需求是 SDN 和传统网络并存,单纯的 SDN 应用很少,多数厂商推出的SDN 交换设备都是混合模式的,即混合 SDN 交换机。这种交换机并不是一种完全新型的交换机,而是在原有交换机的基础上增加了对 OpenFlow 协议的支持。具体思路是:数据分组进入混合
41、SDN 交换机后,交换机根据端口或 VLAN 进行区分,或经过一级流表的处理,以决定数据分组是由传统 二、三层进行处理还是由 SDN 进行处理。若是由传统二、三层进行处理,则按交换机已有的协议完成,否则交由 SDN 控制器进行处理。下面对几个厂商的硬件交换设备进行介绍。第 4 章 SDN 交换机4.2.1 基于基于 ASIC 的的 SDN 品牌交换机品牌交换机传统的网络设备提供商凭借自己多年积累的市场优势和技术优势,推出了多款基于 ASIC 的SDN 交换机。同时,多数情况下仍然采用传统的商业模式,将硬件与软件、应用和服务进行捆绑销售。以下对几家基于 ASIC 的品牌 SDN 交换机进行简要介
42、绍。第 4 章 SDN 交换机1.NECSDN 交换机交换机日本 NEC 公司是一家领先的 IT 和通信解决方案供应商和系统集成商,同时也是基于OpenFlow 的软件定义网络的先驱者。在 2007 年斯坦福大学提出 OpenFlow 协议时,NEC 就开始跟进研发。第 4 章 SDN 交换机针对数据中心需求,NEC 于 2011 年首次推出 ProgrammableFlow 网络套件,该产品是第一个利用 OpenFlow 协议实现完整网络虚拟化的商业 SDN 解决方案,允许客户轻松地部署、控制、监控和管理多租户网络基础设施。在客户的支持下,ProgrammableFlow 提供了第一个全面的
43、套件,其中包含物理和虚拟交换机、SDN 控制器和应用程序,非常适合于企业和服务供应商数据中心。ProgrammableFlow 实际上提供了一个符合成本效益、高性能、高度可扩展的SDN 平台。第 4 章 SDN 交换机2012 年,NEC 推出 IP8800/S3640 24T2XW 和 IP8800/S3640 48T2XW 两款交换机,目前这两款交换机是支持 OpenFlow 协议最成熟的交换机之一,主要性能参数如表 41 所示。第 4 章 SDN 交换机第 4 章 SDN 交换机2.IBMSDN 交换机交换机2012 年,IBM 发布了一个新型 OpenFlow 交换机,它与 NEC 的
44、 OpenFlow 控制器捆绑销售。这个组合产品是北美主流 IT 供应商发布的第一个端到端软件定义网络的解决方案,它使 IBM 成为思科、Juniper 和其他供应商在数据中心网络市场强有力的对手。第 4 章 SDN 交换机IBM/NEC 解决方案由 NECProgrammableFlow 控制器和 IBM1.28Tb/sRackSwitchG8264顶级机架交换机组成。交换机具有 48 个 SFP/SFP+的 10GbE 端口和 4 个 QSFP 的 40GbE 端口,且可以划分为另外 16 个 10GbE 端口。它支持 OpenFlow1.0 协议,最多可以有 97,000 个流实体。理论
45、上,企业可以使用 IBM OpenFlow 交换机和 NEC 控制器建立一个完整的数据中心网络。第 4 章 SDN 交换机Selerity 是一家向金融服务公司提供低延迟、实时金融数据的公司,它一直在试用 IBM/NEC的 OpenFlow 网络。Selerity 首席技术官 AndrewBrook 介绍,他的公司使用私有算法从非结构化数据(如新闻稿)中提取金融信息,然后通过一个专用网络将数据发送给客户,而该网络同时连接芝加哥、新泽西和法兰克福的交易场所。他说:“这个领域的竞争是按微秒级计算的,客户在获得我们提供的数据之后,会在 1 至 10 秒内作出交易决定。”Selerity 的客户收到的
46、并不是统一化的数据,客户会根据所购买的服务获取特定的数据子集。第 4 章 SDN 交换机满足这两方面需求的最佳方法就是通过一个低延迟交换机实现多点传送,但是在多点传送的环境中,Selerity 很难实时向客户发送选定的数据集。OpenFlow 的可编程功能和快速 配置功能可以很好地解决这个问题。Brook 认为,IBMOpenFlow 交换机和 NEC 控制器能够实现低延迟和实时的策略式内容分发。IBM 加入 OpenFlow 大潮引起了一定的关注,但是 OpenFlow 是否真的能够改变网络尚不明确。首先需要形成开发者环境,帮助企业实现这种可编程功能。第 4 章 SDN 交换机3.HPSDN
47、 交换机交换机HP 的 SDN 起步较早,于 2007 年就开始和斯坦福大学合作研究。随着许多企业纷纷转移至云端环境,即时应用程式存取与服务才能满足客户的消费需求,因此,传统网络架构开始面临无法负荷的压力。同时,企业资料中心也面临传统网络架构需要手动调整组态设计与限制频宽密集应用程式效能等复杂性所带来的挑战。HP 利用软件定义网络交换器系列产品解决了上述难题,提供给企业效能卓越的自动化功能。第 4 章 SDN 交换机HP 支持的 OpenFlow 交换机系列有 FlexFrabic12900 系列、12500 系列、FlexFrabic11900系列、8200 系列、FlexFrabic593
48、0 系列、5920 系列、5900 系列、5400 系列、3800 系列、3500 系列和 2920 系列。HPFlexFabric12900 交换机系列是新一代模块化数据中心核心交换机,专为支持虚拟化数据中心以及私有云和公共云部署的演进需求而设计。此交换机提供很高的效能以及高密度(10/40/100GbE)的连接能力,具有 10 个插槽和 16 个插槽机箱。FlexFabric12900 交换机可用于软件定义网络,支持第二层和第三层的所有功能,可建立弹性的、可扩充的链路并实现融合。第 4 章 SDN 交换机4.AristaSDN 交换机交换机AristaNetworks 从创建伊始就为大型数
49、据中心和高性能计算环境提供软件定义的云网络解决方案。Arista 的产品组合包括 1/10/40/100GbE 的连接能力的产品,这些产品重新定义了网络结构,不仅为网络带来了可扩展性,同时显著地改变了数据中心网络的性价比。Arista 平台的核心是可扩展操作系统(EOS),它是一种开创性的网络操作系统,能够在多个硬件平台之间实现映像的一致性,并通过现代化的核心架构实现不中断的服务升级和应用扩展。第 4 章 SDN 交换机AristaEOS 引入了 OpenFlow 扩展,在异构环境中为客户实现 IP 和 OpenFlow 提供了灵活性和自由 性。EOS 操 作 系 统 通 过 SDN 控 制
50、器 可 以 实 现 标 准 的OpenFlow 支 持,增 值 的OpenFlow 扩展功能可以在 Arista 交换机上直接操控数据层面的流表。第 4 章 SDN 交换机Arista7150S 系列提供了 24/52/64 个线速、1/10GbE 的以太网端口或 4 端口 QSFP 的 40GbE 组合,提供目前市场上主流二层和三层的快速交换环境。Arista7150S 系列同时提供硬件式纳秒钟组件,符合 IEEE1588 精密时间协议,可在纳秒传输的封包上标注,维持快速、稳定的传输环境,并可与英特尔以太网交换器进行协作。AristaEOS 支持自主性的程序开发设计,提供一个可实现 SDN