C9K Stackwise Virtual(一)
一、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-#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 ------------------------------------------------------------------------------------- Standby 2eaf.be84.0a12 Ready * Active 00b0.e1f2. 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 ::-BULK_CFGSYNC_SUCCEED: Bulk Sync succeeded *Mar ::-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。
C9K Stackwise Virtual(一)的更多相关文章
- Catalyst9K设备介绍
Catalyst9K系列的里面包含了多款交换机,以及无线控制器,甚至包含了无线AP,如下将简单的介绍这几款产品的情况: 首先,这是一种总体的对应关系: 1.Catalyst9200 Series 主要 ...
- Virtual Box配置CentOS7网络(图文教程)
之前很多次安装CentOS7虚拟机,每次配置网络在网上找教程,今天总结一下,全图文配置,方便以后查看. Virtual Box可选的网络接入方式包括: NAT 网络地址转换模式(NAT,Network ...
- 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?
引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...
- VR ( Virtual Reality )、AR(Augmented Reality)、MR(Mix Reality)和CR(Cinematic Reality)是什么鬼?
整个社会对虚拟现实的研究和开发源于上个世纪六十年代,计算机图形学.人机接口技术.图像处理与模式识别.多传感技术.语音处理与音响技术.高性能计算机系统.人工智能等领域在之后半个世纪取得了长足的发展为虚拟 ...
- C#中Abstract和Virtual的区别
c# 中 Abstract和Virtual比较容易混淆,都与继承有关,并且涉及override的使用.下面讨论一下二者的区别: 一.Virtual方法(虚方法) virtual 关键字用于在基类中修饰 ...
- Java/C++之 public、protected、private ; virtual & abstract
一.绪 Java/C++都是面向对象的第三代计算机高级编程语言,其本质雷同,而语法确有差异,稍不注意容易引起混淆.本文总结了一些这两门语言的差异之处,仅供参考. 二.C++ 对于C++这门语言,就其类 ...
- 初识virtual memory
一.先谈几个重要的东西 virtual memory是一个抽象概念,书上的原文是"an abstraction of main memory known as virtual memory& ...
- php编译 :virtual memory exhausted: Cannot allocate memory
有时候用vps建站时需要通过编译的方式来安装主机控制面板.对于大内存的VPS来说一般问题不大,但是对于小内存,比如512MB内存的VPS来说,很有可能会出现问题,因为编译过程是一个内存消耗较大的动作. ...
- Delphi之静态方法,虚方法virtual,动态dynamic,抽象abstract,消息
Delphi之静态方法,虚方法virtual,动态dynamic,抽象abstract,消息 http://www.cnblogs.com/zhwx/archive/2012/08/28/266055 ...
随机推荐
- nginx显示静态html爆502 bad gateway的错误提示
在centos的服务器上,没有启动php-fcgi. 本来是想设置显示一个静态文件目录的,用不着php,于是就关闭了php-fcgi. 结果打开爆了一个大大的nginx502 bad gateway的 ...
- Web实验一 国内旅游界面
Web实验一 旅游界面的设计 一.首页代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <me ...
- windows服务搭建与删除简单介绍
安装windows服务: 1 VS的开发命令使用管理员权限打开, 2 installutl.exe /servicename="服务名称" "服务地址" 卸载 ...
- 5W随想
什么时候都要想5个W:what.where.when.why.who 比如:提bug的时候:这个问题是什么问题,在哪里发现的,什么时候发现的/什么时候修复好,怎么发现的/为什么是bug,谁发现的/指给 ...
- 在vue中实现锚点定位功能
场景如下: 今天早上看到需求方新提的一个需求,这是一份网上答卷,点击题数要实现滚动到对应题目的位置: 注意点:每题题目的高度是不受控制的,你可以取到想跳转的index:(我再循环题目时做了index+ ...
- 使用PageHelper插件分页时,如何对对象进行转换以及添加属性
一.插件介绍 PageHelper是针对Mybaits的分页插件,支持任何复杂的单表.多表分页. 二.基本用法 以springboot为例,有两种方式配置,一种是传统的,引入依赖,编写配置类:一种是使 ...
- Open live Writer 直接发布wps文章,优点是可以带上图片
官方网站: http://openlivewriter.org/ 博客园的设置里面的 MetaWeblog访问地址
- 扩展gRPC支持consul服务发现和Polly策略
gRPC由于需要用工具生成代码实现,可开发性不是很高,在扩展这方面不是很友好 最近研究了下,进行了扩展,不需要额外的工具生成,直接使用默认Grpc.Tools生成的代理类即可 相关源码在文章底部 客户 ...
- org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout 和 RocketmqRemoting closeChannel: close the connection to remote address[] result: true
org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout ...
- 记一次RSA解密过程
有问题可以评论 openssl rsa -pubin -text -modulus -in warmup -in pub.key