一、SV技术基本说明
思科Catalyst9K平台的Stackwise Virtual技术是将两个物理的交换机虚拟成一个逻辑的实体(从网络控制层面和管理的角度来看),这两个交换机合二为一之后,将共享相同的配置和转发状态。这项技术对于网络设计在如下方面都得到了强化:
-
高可用性
-
扩展性
-
设备管理
-
设备维护
由于两个设备都虚拟成了一台逻辑的设备,所以生成树(STP)将该逻辑的设备视为一个桥节点,但是和其他的SW设备协同工作,也需要注意STP的使用。另外,该技术也整合了包括SSO(Stateful Switch Over)、NSF(Non-Stop Forwarding)、MEC(Multi-chassis EtherChannel)等技术,以提升了可靠性。
从如上这个图我们可以看到,该技术消除了HSRP/VRRP等FHRP协议的使用,避免FHRP协议的一些问题。并通过LACP,PAGP等完成了的Ethernet Channel的建立,实现EMC。为了使用该技术,需要特定的硬件和软件来支持。且不同的设备,要求可能也会不一样。
二、SV技术的架构
该技术将两台配置为同一给SV domain的物理设备虚拟成为一台逻辑的设备,其中一台设备被指定为Active角色,另外一台则作为Standby角色,所有的控制平面的工作都是Active交换机来处理,这包括了我们熟知的SNMP、SSH、Telnet等管理方式;L2的协议如BPDU、PDU、LACP等;L3的路由协议;软件数据路径等。
对于数据平面和流量转发,SV域中的两台交换机都会参与,每台交换机都可以将流量从自己的物理接口转发到上行接口,不是所有的流量都需要Active交换机来转发,除非某一交换机查询到目的是在SV域中另一台交换机,那么会将该流量通过SVL(Stackwise Virtual Link)转发给那台交换机进行出口方向的处理。
1、SV MAC地址
-
当交换机启动,作为Active交换机时,它将给所有的L3接口分配MAC地址,默认情况下,MAC地址从位于Cisco Catalyst 9000交换机本身的EEPROM存储设备派生。
-
当选为Active角色的交换机将为SV domain提供系统MAC地址。
-
当Standby交换机上线之后,它的MAC地址也将由Active交换机的MAC EEPROM派生。
-
即使SV交换机的角色发生了切换,MAC地址也会保持不变。当该情况发生时,show switch查看也能看到MAC persistency wait time(MAC持久性等待时间)为“indefinite”(未定义)。此行为特别有助于减少对流量的影响,因为在意外切换期间,SV domain不必向邻居通告新的MAC地址。
SV-1#show switch
Switch/Stack Mac Address : 2eaf.be84.0a12 - Local Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
1 Standby 2eaf.be84.0a12 15 Ready
*2 Active 00b0.e1f2.6820 1 Ready
我们可以通过命令“stack-mac persistent timer #”来修改该行为的时间,在该配置的时间内,会使用当前的Active交换机来更新系统的MAC地址。
- 如果整个SV domain的设备被重启并再次上线之后,并且Peer交换机或其他的交换机作为了SV Active交换机,则Virtual MAC地址将由当前的Active交换机重新分配,所以虚拟MAC地址将和系统重启之前不同。
- 如果SV domain中的其中一台交换机由于硬件问题而发生故障,并且恰好是SV MAC地址的所有者,那么系统将继续使用相同的MAC地址运行,除非SV domain重新加载或用户明确更新Stack的MAC地址。要在SV domain上更新MAC地址,可以执行命令“ stack-mac update force”。 这将使用当前Active的交换机更新Stack MAC地址。
2、Stackwise Virtual Link(SVL)
SVL是为了让两台C9K交换机形成SV的关键,相关信号或控制信息需要通过SVL来交互,为了促进信息的交互,在两台交换机之间使用的专门的链路来传输数据和控制流量,这个链路就叫做SVL。
该链路通过EthernetChannel形成,可以有1-8个物理接口组成,该链路承载正常的数据流量和SV控制流量。
为了确保在SVL上控制流量获得最高优先级,在所有Link的控制帧上都设置了特殊位。这有助于确保这些帧始终在出口硬件队列上获得优先服务。从数据平面的角度来看,SVL用于将内部交换机数据路径扩展到相邻交换机。使用配置的EtherChannel load-balancing算法,可在SVL负载平衡发送的数据流量。
通过SVL发送的所有帧都用SV头部封装,该头部由出接口ASIC添加到数据帧,并在SVL的另一侧被入口端口ASIC剥离。该头部中包含诸如入端口索引、目标端口索引、VLAN和服务等级(CoS)之类的信息。SV头部的长度为64个字节。它被放置在以太网前导之后,并直接位于第2层头部之前,如下所示。
初始化过程必须确定哪个交换机将成为StackWise Virtual Domain的Active交换机。要确定Active角色和Standby角色,必须初始化SVL并使其联机以进行控制平面通信。由于此决策会影响每个交换机的行为,因此必须在交换机启动周期的早期就协商好角色。因此,在初始化系统的其余部分之前,系统必须使SVL及其关联的端口Online。
通过SVL发送的内部消息可促进两个交换机之间的通信。 因为该Link通过EtherChannel接口被实现,所以它可以低于单链路故障。在激活SV domain之前,系统必须使SVL Online。初始化序列包括如下所示的步骤。
初始化
交换机确定其系统本地的哪些端口是构成SVL的成员,并且预先解析配置文件以提取适当的SVL命令及其相关的接口。这样,可以快速将链路接口置于Online状态。一旦Online,就在SVL的每个Link上激活链接管理协议(Link Management Protocol,LMP)。
LMP执行以下功能:
- 通过建立双向流量转发来验证链路完整性,并拒绝任何单向链路;
- 周期交换Hello,以监视和维护Links的健康状况;
- 在交换机之间协商SV Header的版本。
StackWise虚拟链接角色解析
每个交换机的冗余角色由StackWise发现协议(SDP)解决。
该协议执行以下功能:
- 确定硬件和软件版本是否允许形成Cisco StackWise Virtual Domain;
- 从控制平面的角度确定哪个交换机将成为Active交换机,哪个将成为Standby交换机。
HA角色确定
在角色解析期间,首先确定Active角色,然后才对具有成员角色的另一台交换机进行兼容性检查,然后进行批量配置同步。然后,交换机借助SSO机制转换为Standby角色。
*Mar 1 01:41:05.532: %HA_CONFIG_SYNC-6-BULK_CFGSYNC_SUCCEED: Bulk Sync succeeded
*Mar 1 01:41:06.535: %RF-5-RF_TERMINAL_STATE: Terminal state reached for (SSO)
3、软硬件需求
从Release16.8.1开始,Stackwise Virtual在所有的Catalyst3850 XS型号和Catalyst9500系列交换机开始支持。
从Release16.9.1开始,Stackwise Virtual只在C9404和C9407支持,并且仅在两个参与Stackwise Virtual 的机箱的相同插槽号中放置单个Supervisor。如果机箱内有备引擎,将在Stackwise Virtual中处于power-off状态。如果Active要求发生了故障,需要用新的引擎或者备引擎来替换。此限制将在以后的软件版本中删除。 WS-SUP-1和WS-SUP1-XL都支持Stackwise Virtual。但是,对于SUP-1,Stackwise Virtual 配置需要额外的许可证。
从Release16.10.1开始,Stackwise Virtual也在所有的高性能C9500支持,如C9500-24Y4C, C9500-48Y4C, C9500-32QC, C9500-32C。
来源:oschina
链接:https://my.oschina.net/u/4417586/blog/3233182