2014美国有线电视技术展已进行了两天,无论主题报告、演讲,还是专题讨论、产品/系统展示,SDN/NFV都是一大热点。以下是SDN数据平面构建中相关问题的总结。
1、数据平面中3类SDN交换机的部署策略
SDN水平分层的网络架构设计,导致传统网络设备的转发面需要采用更加开放的硬件实现。传统网络设备上用于报文转发查询的各种表项被统一成多级流表,通过流水线方式实现转发过程中的查询。流表的插入、修改、删除等操作及其数据结构被抽象成标准的数据模型和访问方法,开放给网络的控制面。要实现这样的功能开放,从目前SDN交换机实现的机制来看,大致可以分为3类,它们在灵活性、扩展性和性能上存在较大的差异,未来应用在网络中的场景也可能不同。
1)第一类SDN交换机及及部署策略
第一类SDN交换机的实现采用ASIC架构,从硬件结构角度看,ASIC芯片实现SDN功能是比较困难的,传统ASIC实现的交换机将硬件查表、转发的功能直接通过硬件电路实现,几乎不能对查询表的结构进行扩展,因此很难适应SDN要求的由控制面来灵活定义转发面查询流表的结构和查表的方式。
ASIC芯片方式实现的SDN交换机一般只能利用交换机本身的控制CPU来实现流表与ASIC硬件表的翻译,提取出流表中能够对应到ASIC表的字段,填充到原有的ASIC表中,以维持底层ASIC架构的正常工作。
由此可见,第一类基于ASIC架构的SDN交换机会存在两个问题:
(1)流表与ASIC表之间有一定的转换开销,在大流量转发时有可能成为系统的性能瓶颈点;
(2)由于SDN流表非常灵活,有可能存在流表无法转换到ASIC表的情况,此时将发生部分SDN功能无法支持的情况。
在实际应用中,第一类SDN交换机一般只能适应不需要频繁下发流表,同时流表功能比较简单的场景(比如只有二、三层转发需求的场景)。但是由于第一类SDN交换机通过ASIC方式实现,其本身流量的转发性能是非常好的,可以应用在流量较大但是转发流量的五元组会话信息变化较少的场景。
2)第二类SDN交换机及部署策略
第二类SDN交换机通过NP芯片方式实现,NP芯片在编程能力上较ASIC芯片有一定增强,在不改变硬件设计结构的情况下,NP芯片可以实现比较灵活的流表定义与查询。
采用NP芯片设计的SDN交换机在性能上接近ASIC芯片SDN交换机,但是在流表设计的灵活性上仍旧有所欠缺,例如NP芯片的核通常采用流水线方式工作,核之间缺少数据共享和协同工作的能力。
此外,采用NP芯片设计的流表也很难实现嵌套调用,分支处理这样的流表处理逻辑结构。
再次,NP芯片的成本也要高于ASIC芯片。因此,
NP芯片构建的SDN交换机通常可以考虑应用在网络的业务接人点,在保证转发性能的同时也可以提供一定的灵活控制功能。
3)第三类SDN交换机及部署策略
第三类SDN交换机采用x86芯片来实现,x86芯片在编程能力上是3种芯片中最强的,可以实现的流表功能也是最为丰富的。
从原理上来看,基于x86芯片实现的SDN流表,其匹配字段可以是任意字段,而不仅仅局限在IP分组头或者TCP/UDP的报文头字段。但是从性能上来看,x86芯片实现的SDN交换机在3种芯片实现中是最低的,即使只是实现二、三层报文转发功能,x86芯片的交换机也只能实现128bits长度报文的10Gbit/s线速转发。
同时,x86芯片实现的SDN交换机在成本上也没有太多优势,大致与NP芯片的SDN交换机相当。因此,
采用x86方案实现的SDN交换机通常只能用在网络边缘以及需要进行4层以上交换的场景中,以提升网络的智能功能。
2、SDN数据平面中转发性能、转发时延问题及解决
SDN数据平面中转发的性能及时延的两个主要来源是,由SDN控制器计算路由信息带来的首分组转发时延、SDN交换机数据转发查询流表的时延。
1)首分组转发时延
首分组转发时延源自SDN技术转发报文的原理,由于SDN采用了新建五元组流的首个报文上传SDN控制器进行路由计算,并将计算获得的路由信息通过流表项的方式下发给SDN交换机。这种机制在报文上传、路由计算、流表下发的过程中不可避免地将带来报文转发的时延。
2)SDN交换机数据转发流表查询时延
SDN交换机转发流表导致的时延,通常是由于控制器下发流表不合理造成的,由于SDN控制器将二、三层转发信息下发到一张流表中,在实际应用中会导致在做特定转发(如完成二层报文转发)时,由于单一流表中包含了很多三层转发的表项,转发查询时大大增加了查表的规模,导致了报文转发的时延增大。
3)解决方案
SDN控制器对多级流表的支持和流表拆分算法的优化可以减小流表规模及转发报文的时延。三层转发的流表信息与二层转发的流表信息被拆分到两个不同的流表中,在查询的时候,三层转发的信息只需要查询三层流表来获取,二层转发的信息也只需要查询二层流表来获取,这样流表查询的规模将大大缩小,设备查表的时间也能够大大缩短。
3、混杂模式的设计问题
混杂模式是将SDN技术应用在有线电视宽带网络中必不可少的功能,是指一台SDN交换机既可以工作在SDN流表转发的模式下,也可以在传统的二、三层转发模式下工作。混杂模式的设计有两种方式,其一是串行模式设计,其二是并行模式设计。
1)串行混杂模式设计问题
基于串行方式实现的混杂模式SDN交换机,在流表转发的末端可以定义使部分流量的路由重新查询传统的路由转发表,而不是转发到SDN控制器进行路由计算,采用这种设计方式可以将一些不需要进行SDN优化转发的流量,使用传统的转发方式进行转发,有效降低SDN控制器的负载。
在数据中心网络中,这样的设计模式可以应用在对大象流量和蚂蚁流量的差异化控制上,五元组变化不频繁的大象流量可以使用SDN流表进行转发优化,而五元组变化频繁的蚂蚁流量仍可以采用传统路由来转发。
2)并行混杂模式设计问题
基于并行方式的混杂模式SDN交换机,在一级SDN流表中进行协议字段的识别(比如进行VLANID的识别)。通过不同的协议标记来选择采用SDN方式,还是采用传统路由方式对报文进行转发。
这样的设计可以方便地实现叠加网络的功能(比如可利用VLANID标识,甚至VxLANVNI标识可以将某些VLAN/VxLAN内的流量采用SDN流表方式进行转发,形成与传统路由表转发路径不同的虚拟、优化的转发路径)。
比外,也可以混合使用串行模式和并行模式,用以实现灵活的SDN交换机数据平面构建,甚至可以同时使能这两种转发模式。
责任编辑:饶军