云数据中心网络虚拟化——大二层技术巡礼之控制平面多虚一

2018-04-02 17:12:01 浏览数 (1)

控制平面多虚一,指的是将两台或者多台设备的资源(包括操作系统、转发实例、转发表、端口等)进行整合,对外表现为一台逻辑设备,以Cisco VSS,Huawei CSS和H3C的IRF为代表,后来Cisco又推出了vPC技术作为对VSS的升级(虽然vPC已经很难说是控制平面多虚一技术了)。其实在这些技术中,除了转发实例、转发表这些转发逻辑层面的资源以外,端口这些数据平面的资源都被连带着整合了,因此又称“虚拟机框”技术。为了方便起见,以下就称为“虚拟机框”技术了。

这类技术和堆叠技术,感觉应该本质上是一回事,不过堆叠设备必须要落在一起,要通过专门的堆叠口、堆叠线进行连接,而“虚拟机框”设备间则可以通过线卡上的端口进行以太网的连接,距离能拉的很远。

几台设备搞成一台,好处是很多的。第一,简化了运维,以前几台设备各配各的配置,复杂不说还容易出错,堆叠后管理员配一次就都OK了。第二,高可用性,每台设备里面都有引擎,一台坏了能够自动倒换,也就省去了HSRP这些麻烦事。第三点,也是最重要的是,“虚拟机框”技术在提供端口冗余的同时,能够避开STP,除了网管心头的一个大害。这类技术典型的组网场景如下图右侧所示:

1)VSS

VSS是Cisco Catalyst 6500系列交换机推出的虚拟机框技术,支持对两台6500设备以主备模式进行整合。其中主用交换机中的引擎负责这个逻辑设备的转发决策,形成转发表,而备用交换机不断地同步相关信息,不进行学习和计算。而主备用设备的线卡都是分布式的,同时进行数据的转发。VSS主要有以下技术点:

  • 控制信令VSL(Virtual Switch Link)。VSS技术通过VSL将两个机架绑定成为一个虚拟的交换系统,它依赖于控制信令VSLP的交互,以完成主备的协商以及状态的同步。同时VSL也能在主备交换机间传输普通数据流量,这时它其实就相当于虚拟设备的背板走线。当然了,为实现虚拟设备的线速转发,VSL链路应该具备足够的带宽。
  • 高可靠技术NSF/SSO。SSO (Stateful Switchover)技术是保证了主备引擎、线卡能够以最短的时间进行切换。但是即使中断时间很短,数据转发也可能出现中断,路由可能需要重新收敛。NSF(NonStop Forwarding)则解决了这一问题,实现了路由的平稳重启。
  • 跨设备链路聚合MEC(Multichassis EtherChannel)。MEC是一种二层的多路径技术,它将相连节点分别与VSS主备两台交换机间相连的两个端口聚合为Port Group,统一为一个转发端口,从而允许在不采用生成树协议的条件下,构建无环路的二层转发拓扑。在VSS拓扑结构中使用MEC,所有链路都是激活的,在提供高度可用的拓扑结构的同时,也提高了链路的利用率。
  • 双活监测机制。当VSL故障后,两台物理设备都将成为主用交换机,对上下游设备造成IP网关混乱。为了防止双活问题的发生,VSS采用以下机制进行监控:如果有跨设备链路聚合时,使用PAgP来互相检测通知;如果有富裕接口在虚拟化的两台物理设备间可以单独再拉根直连线路,通过VSLP Fast Hello专门用做监控;另外VSS还可以使用IP BFD通过互联的三层链路进行监控。监测到双活后,立刻禁用原备用交换机的端口,直到VSL链路恢复。

虽然VSS只允许两台物理设备的虚拟化,不过通过虚拟设备间的互联仍可进一步简化核心网的拓扑。如下图所示,图中汇聚层和核心层均使用了VSS技术,保证高可用性的同时形成了一个天然无环的拓扑结构。

2)CSS/IRF 2

CSS、IRF 2分别是华为、华三私有的“虚拟机框”技术。CSS的前身是iStack,iStack通过堆叠方式支持盒式设备的多虚一,而CSS支持对框式设备的多虚一。IRF 2的前身是IRF 1,IRF 1通过堆叠方式支持盒式设备的多虚一,而IRF 2同时支持盒式设备/框式设备的多虚一。CSS/IRF 2和VSS的基本原理和组网架构如出一辙,也就是换换名称而已,对比如下。

另外,相比于VSS只支持两台设备的虚拟化,CSS和IRF 2都支持1:N的主备用模式,能够提供更高的可靠性。从目前能够找到的资料来看,CSS和IRF 2最多都能支持4台框式交换机,或者9台盒式交换机的虚拟化。其实,Cisco最开始设计VSS时,也准备支持1:N模式,但是后来由于Cisco的控制平面多虚一的技术路线演化为了vPC,因此也就不了了之了。

3)vPC

Cisco在Nexus系列交换机中摒弃掉VSS,推出了 vPC( virtual Port-Channel)特性。前面说过VSS/IRF是整机级别的虚拟化, 而vPC则是接口级的虚拟化,其实就是实现了VSS中的跨设备链路聚合。因此在vPC中只需要对成员接口进行链路聚合相关的信息同步即可,不需要对整机进行状态同步。下图中其中vPC对应MEC,Peer-Link对应VSL,CFS Protocol对应VSLP ,Peer-Keepalive Link对应VSLP Fast Hello。

下面通过一个二层转发的实例来介绍vPC的工作原理,其中左图为ARP请求的泛洪过程,右图为ARP应答,假设SW1 port 11,SW2 port 21属于vPC 1,SW1 port12,SW2 port 22属于vPC 1。SW1通过port 11上收到ARP请求,之后在vpc link和port 12上进行泛洪。SW 2收到该ARP请求后,判定port 21与port 22与SW 1中的一些端口进行了vPC绑定,因此不会从这两个端口进行转发。同时SW 1通过CFS消息告诉SW 2 MAC_A接在vPC 1上。当SW 2通过port 22收到ARP应答后,查找MAC地址表,得知目的地址为MAC_A的帧应该向vPC 1的成员端口转发,于是通过port 21转发给SW 3,同时通过CFS告知SW 1 MAC_B接在vPC 2上。之后的通信得以按照学习到的信息进行转发。

对外来看,实现vPC的设备还是两台设备(就目前找到的资料来看,vPC也只支持2台设备的虚拟化),管理上还是要分开配置,两台设备的转发实例、转发表等都是独立的,STP、HSRP这些协议也还需要启用(vPC针对HSRP有一些改进)。可以说,vPC网络是单数据平面,双控制平面的。当然了,这也意味着vPC设备的引擎是双活的,就这一点来说vPC比VSS要好一些。不过,从复杂度来讲vPC没有VSS这类技术好。vPC与VSS简单对比如下。

控制平面多虚一技术发展了很多年,其技术已经较为成熟稳定,在数据中心中得到了广泛的部署。从最初的堆叠到“虚拟机框”,在一定程度上解除了地理位置的限制,但是走分布式协议来进行整机状态的同步,终究还是会对部署规模有一定的制约。虽然CSS/IRF 2都支持4台框式交换机的虚拟化,但估计也很难再往上提高了。另外,扩大部署规模还可以通过虚拟设备间的互联,不过本节提到的技术都是私有的,各家设备不能混合组网,属于技术以外隐形的约束。而近年来,隧道的数据平面虚拟化技术的发展,则为数据中心提供了几乎无限的可扩展性,“虚拟机框”的技术面临着极大的挑战。跨设备链路聚合,除了Cisco的vPC一台,Arista也有个类似的技术MLAG,其核心原理和vPC如出一辙,这里就不再赘述了。

0 人点赞