IRF之分布式二层协议( 二 )


图2 普通分布式系统的二层协议实现模型
在IRF堆叠系统中,为了降低CPU和存储器资源的消耗,提高系统的可靠性和弹性,对于交换机的常用二层协议,采用分布式的设计思想,简单的说,就是在端口所在的设备上(入侧设备)对该设
备所收到的协议报文进行处理;二层协议相关的状态机统一运行在端口所在的各自设备上,计算结果直接控制该设备的端口;IRF系统内设备之间通过极少量的控制报文进行交互和协商,以做到设备之间的控制过程一致 。
“IRF之分布式二层协议”的要害技术点
二层协议对外表现为一台设备
IRF的技术特点之一就是整个IRF系统对于网络中其它设备或者网管来说是一台独立的交换设备,与IRF系统直接相连的设备不会感知到IRF系统内部的结构,也就是说,从周边的设备来看,与其交互的只是一台设备 。
IRF系统中的所有二层协议,对外只有一个设备ID,比如STP/RSTP/MSTP对外发布的是同一个桥ID,对于LACP协议来说,对外发布的是相同的系统ID;此外,二层协议对IRF内的所有端口进行统一编号,也就是说,IRF系统的端口ID在同一个线性空间内 。这样IRF系统周边的设备虽然从不同UNIT上收到协议报文,但是它们看到的却是同一台设备的不同端口发送出来的协议报文 。
作为一台设备进行二层协议的各种配置
要使一个Fabric中各个Unit上的二层协议的控制过程一致,另外一个基本前提就是每个Unit关于协议的配置是完全一致的 。这里的完全一致不仅仅是指配置的命令完全一致,而且包括配置的时间和时序都完全一致,即用户必须同时在Fabric中的所有Unit上配置完全一致的命令 。很显然这个需求靠用户手工在所有Unit上分别配置命令是无法实现的,因此IRF设备必须实现把整个Fabric作为一台设备进行各种二层协议配置的功能 。
这里所说的把整个Fabric作为一台设备进行各种二层协议配置的功能是指用户可以借助任何手段(包括CONSOLE、SNMP、TELNET、WEB等多种方式),也可以在Fabric中的任意一个Unit上,进行二层协议的相关配置,只要Fabric中的任意一个Unit收到用户配置,就会马上同步给其余所有Unit同时执行,从而实现每个Unit关于二层协议的配置完全一致的需求 。
图3 Fabric处理二层协议相关配置示意图
各UNIT独立运行二层协议
在IRF系统中,虽然二层协议对外表现为一台独立设备,并且可以当作一个治理实体接收来自网管、控制台的配置命令,但是为了降低系统成本和提供系统可靠性,二层协议的报文处理和状态机运算都是在端口所在设备上进行的 。下图为分布式二层协议的实现模型:

图4 IRF系统中分布式二层协议控制模型
分布式二层协议的主要实现原理如下:
1、;;IRF系统中,端口收到协议报文后,交给本设备的CPU处理;
2、;;端口所在设备对接收到的协议报文进行处理,并且答应端口的协议状态机;
3、;;端口所在设备根据需要判定是否需要和IRF系统内的其它设备进行交互,并根据本地状态机和交互结果得到端口的控制状态或者该设备的转发表项;
4、;;端口所在设备将计算所得到的端口状态或者转发项设置到该设备上,以指导设备进行二、三层数据报文转发;
5、;;分布式情况下,假如计算结果影响其它设备,则通过控制消息将该结果通知给其它设备 。
通过该实现原理可以发现,分布式二层协议只治理设备自身的端口,并且状态机和协议计算只发生在本地 。因此二层协议对CPU与存储器资源的需求基本上与IRF系统内的总端口数无关,此外,由于状态机和协议计算只发生在设备本地,因此当其它设备发生故障时,并不会影响本地设备的协议状态机运行,从而提高了整个系统的可靠性和稳定性 。正是二层协议的这种分布式实现方式,IRF系统对CPU和存储器资源的需求才大大降低,从而使这种低成本、高可靠性、可扩容性技术的实现成为可能 。

推荐阅读