您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网 > 电子技术应用 > 行业新闻 > 新品快讯 >

Cisco最后的王牌—FabricPath

2011年03月27日 09:30 CNW 作者:秩名 用户评论(

  众所周知,Cisco正凭借Nexus产品平定整个数据中心网络市场,2010年,Cisco打出了深藏已久的最后一张王牌—FabricPath,至此,Nexus交换机的主要特性已全部面向公众发布,FabricPath为整个计划添上了最后一块基石,进一步稳固了Nexus作为下一代数据中心网络平台的地位。

  大部分人(包括我)第一次阅读FabricPath华丽的白皮书后,只朦胧地知道这是一个“能在大型二层数据中心网络实现多路径的东东”,既然FabricPath解决的是数据中心的问题,我们首先需要弄清楚数据中心到底有什么问题。

  今天的大部分数据中心网络是遵循标准的层次化理念建设的,分为接入层和汇聚/核心层,接入层和汇聚层之间为二层链路,三层网关设在汇聚或核心,所有的二层链路上都运行生成树协议(STP),当任意两点间有一条以上路径可达时,STP会block多余的路径,以保证两点间只有一条路径可达,从而防止环路的产生。这种模式在过去很长一段时间被大规模采用,因为其部署起来非常简单,接入层设备不需要复杂的配置,大部分的网络策略只要在汇聚层集中部署就能分发到全网。但随着数据中心的规模不断扩张,这种模型逐渐显得力不从心。

  未来数据中心内部的横向流量将越来越大,新加入的设备同原有设备之间仍然要运行STP,如果两台服务器之间只有一条链路可行,其余的万兆交换机端口全被block,不但是投资的极大浪费,也无法支持业务的快速扩展;其次,当交叉链路数量增加时,二层网络的设计会变得非常复杂,哪条链路该保留哪条链路该阻断?三层网关设在何处?类似这样的问题会冒出一大堆,这就失去二层网络配置简单的优势;最后,传统的二层MAC地址没有层次化的概念,同一个二层网络内的接入交换机上存储本网段所有设备的MAC地址,这很容易导致边缘设备的MAC地址空间耗尽,特别是在虚拟化的数据中心内,虚拟机的MAC地址数量可能以千计。

  如果二层互联不能解决问题,另一种思路是在汇聚交换机和接入交换机上设置IP网关,通过三层路由将所有交换机连接起来,类似的解决方案还包括将网关设置在核心设备上,通过核心设备集中互联。这个做法以前也许勉强可行,但在虚拟化环境中,二层网络是虚拟机迁移的基础。虚拟化的最大特点是可以将业务动态部署到数据中心的任何计算资源上,如果这些计算资源(也就是服务器)被过多的三层网关隔离开来,也就失去了虚拟化的优势。

  同时,采用三层接入设备会产生大量的三层网关以及无数个让网管人员抓狂的地址段。动态路由协议的行为往往难以预测,在重要数据中心,为了保证网络行为的可控性,每台交换机的路由策略都要经过仔细琢磨,这个工作量过于庞大;而如果采用静态路由,一旦后期需要改动某个地址段的范围,可能需要改写一大段接入换机的路由表,更不用提相关访问控制策略的变动。

  至此,我们走进了死胡同,虚拟化的应用要求基础网络在扩展时保持一个完整的二层环境,而随之而来的STP和地址空间问题又成为绕不开的坎,在接受二层环境的同时,我们基本上也就同一大堆时髦的字眼say byebye了,这些字眼包括但不仅限于“动态扩展”、“多路径”、“快速收敛”、“层次化寻址”等等,仰望IP路由,二层网络就好象一个生活在原始社会的苦行僧,忍受着种种的考验,传统网络在支持虚拟化数据中心扩张时已经越来越吃力。

  为了改变这种尴尬的局面,在烧掉大把银子之后,Cisco的FabricPath终于闪亮登场了!

  目标

  简单说,FabricPath是Cisco Nexus交换机上的一项技术特性,其目标是在保证二层环境的前提下,修复前文所说的缺陷,这个技术需要做到以下几点:

  实现两点间多条路径同时转发流量EMCP(Equal Cost Multi Pathing);

  类似IP网络的平滑扩展;

  快速收敛;

  防止广播风暴;

  保持原有二层网络配置的简洁性

  更准确地说,我们要摆脱传统二层“交换”的弊端,在二层环境中实现类似三层IP的“路由”行为。

  二、FabricPath:从“交换”到“路由”

  L2不给力的原因

  我们知道FabricPath的目标是为传统二层环境设计一个增强型方案,以屏蔽原来的缺陷,实现对数据帧的“路由”转发。要明白FabricPath是怎么做到这点的,首先要看看layer 2这些不给力的毛病到底是怎么出来的?

  传统二层以太网环境中的数据转发是非常简单的,一台二层交换机一辈子干的活可以用以下几句话概括:

  1)收到数据帧–>2)查看目的地址–>3)查看MAC地址表–>4)将数据帧从对应端口送出去

  偶尔,当这个流程进行到第三步时,交换机会发现目的地址不在自己的MAC地址表中,它会怎么做呢?这台茫然的交换机就会将这个数据帧从所有的端口广播出去!没错,是整个帧从所有端口发送出去,希望其他交换机能知道正确目的地。且不说,这个方式在今天看来是多没有效率,当设备之间存在环路时,这种帧会被无尽地转发下去,最终形成广播风暴。

  为了解决这个问题,交换机厂商引入了STP。STP的机制也极其简单,就是通过阻断二层端口来防止环路,并阻止数据帧从其接收到的端口再转发出去。

  广播帧在任意节点只会被转发一次,避免了被永远转发下去。但如前所述,运行STP的代价是非常昂贵的,接入设备只有一条上联链路没被block,而且,在复杂的网络连接中,控制STP的行为变得很困难,一旦出现震荡,其收敛效率也非常低下。

  另一方面,二层交换机通过学习接收到的数据帧的源地址建立MAC地址表,所有接收到的数据帧源地址都会被放进MAC地址表中,导致一台交换机可能学习到整个网段内的所有二层地址,就算它大部分时间只跟其中的一小部分有联系。

  由此可见,今天的二层网络过于简单,交换机只会学习网络地址,不会基于学到的地址规划出一套转发数据的最优方案,它的问题类似于只有一个数据平面,没有控制平面的概念,这就导致二层交换机不可能有效地进行“路由”,从而引入了STP等一系列问题。

  

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

( 发表人:简单幸福 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!