前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据中心分解实验(五)–abricPath

数据中心分解实验(五)–abricPath

作者头像
全栈程序员站长
发布2022-11-15 17:31:46
4280
发布2022-11-15 17:31:46
举报
文章被收录于专栏:全栈程序员必看

这个实验有点长,看官慢慢看!

传说中用来取代生成树(Spanning-tree)的FabricPath(这个还真不太好翻译,就简称FP吧),到底是啥?先别急,首先回顾一下生成树协议,作为二层网络的防环路机制,生成树确实有积极的一面,不过缺点也是一大堆啦:

1. 收敛很慢,论秒计的速度;

2. 运算机制也比较复杂,配置管理和维护也相对复杂;

3. 网络里有接口被BLOCK,才能形成无环路的树;

数据中心网络里,这些缺点都会进一步被放大,设想:一台服务器连接到网络上,需要若干秒才能开始转发数据,这个速度太慢了;一个巨大的二层网络的生成树维护,想想也是醉了的;花了大价钱买来的10G、40G甚至是100G端口,却被置于BLOCK状态,那可真是叔可忍婶儿也不能忍啊!

小小的吐槽了一下生成树,当然是为了显示出社会主义制度,哦,不对,是FabricPath的巨大优越性:

1. 收敛速度大大加快,FP的底层协议是ISIS,ISIS作为一个路由协议的收敛速度可以达到毫秒级;

2. 虽然原理并不那么简单,不过配置起来那就… 哈哈哈,容我大笑五分钟;

3. 一个二层网络,居然不用BLOCK任何端口也不会产生环路,好神奇,对比生成树,最起码带宽的利用率高了不少;

实验逻辑拓扑:

wKioL1XNvHni4MuVAAQRxmsilEY615.jpg
wKioL1XNvHni4MuVAAQRxmsilEY615.jpg

实验目标:四台设备互联的标记为绿色的线路上运行FabricPath协议

如果不是运行FabricPath,这样一个二层网络如果不BLOCK掉一部分接口,那环路是不可避免的了,接踵而来的就是广播风暴,最后网络瘫痪,这里用了FabricPath,情况就完全不一样了~

Showtime,实验开始

第一步,允许设备运行FabricPath

wKiom1XNuoqBaFD9AACK4cy3UIY536.jpg
wKiom1XNuoqBaFD9AACK4cy3UIY536.jpg

DefaultVDC里开启FabricPath这个特性集,然后到需要运行FP的VDC里去开启FP

wKiom1XNusvTUiXWAABzPt7AxLE856.jpg
wKiom1XNusvTUiXWAABzPt7AxLE856.jpg
wKioL1XNvOXxnvddAABvgudIs6M754.jpg
wKioL1XNvOXxnvddAABvgudIs6M754.jpg

N5K也类似,

wKiom1XNvATAGuT_AACq-84T7fY858.jpg
wKiom1XNvATAGuT_AACq-84T7fY858.jpg
wKiom1XNvBaDVqgnAACdWItg49g308.jpg
wKiom1XNvBaDVqgnAACdWItg49g308.jpg

第二步,定义FP模式的VLAN,

wKiom1XNvCzyuy6BAAF6jw7iJjQ096.jpg
wKiom1XNvCzyuy6BAAF6jw7iJjQ096.jpg

可以看出VLAN的模式有两种CE和FabricPath,关于这个模式是啥意思,最后详细说明下 (每台设备上配置VLAN的方式是一样的,我这里就只贴一个图了)

第三步,把互连接口配置成FP模式

wKiom1XNvEjCtQqCAAExxdxVl4A516.jpg
wKiom1XNvEjCtQqCAAExxdxVl4A516.jpg
wKioL1XNvtWTtOSxAAFtf_dCCSc093.jpg
wKioL1XNvtWTtOSxAAFtf_dCCSc093.jpg
wKioL1XNvoqgk8wLAAJv7LsHyKQ297.jpg
wKioL1XNvoqgk8wLAAJv7LsHyKQ297.jpg
wKioL1XNvxTRTHMcAAJzXhP3wbk210.jpg
wKioL1XNvxTRTHMcAAJzXhP3wbk210.jpg

好吧,事情发展到了这个地步,我必须告诉你们,FP的实验已经做完了…

wKioL1XNv6OzMwTAAAI0EgT0O2I339.jpg
wKioL1XNv6OzMwTAAAI0EgT0O2I339.jpg
wKiom1XNvbqR-Jy2AAJmtUsVcRM161.jpg
wKiom1XNvbqR-Jy2AAJmtUsVcRM161.jpg

邻居建立成功,控制层面开始计算,生成FabricPath路由表和MAC地址表之后,数据层面该怎么转发就怎么转发啦~

FabricPath的基本操作就是这么简单,

细心的同学可能会问,为啥两台N7K之间的链路没有运行FabricPath呢,这个留个大家去思考一下咯?小提示,结合实验一里面的“主干、枝叶”结构去思考~

根据以上实验,补充一些关于FabricPath的知识点,不关心理论的,请直接忽视啦

wKiom1XNvePz48rRAAPISQVNzQQ052.jpg
wKiom1XNvePz48rRAAPISQVNzQQ052.jpg

传统生成树网络中,Server A要访问Server B,过程是这样的:基于数据帧头部里的Destination MAC信息,ServerB的MAC地址是MAC B

帧头部包含的信息

Destination MAC (MACA)

Source MAC (MACB)

… …

DC2-N5K-1交换机上去查CAM表

设备

MAC

端口

DC2-N5K-1

MAC A

E1/15

MAC B

E1/21-22

通过E1/21-22转发给DC2-N7K-3,

于是,逐跳逐跳的,数据帧从DC2-N5K-1 -> DC2-N7K-3 ->DC2-N5K-2 最后到达Server B,是传统网络中的二层交换过程。其核心的思路是转发是逐跳的,每一跳都要根据地址进行表项查找,这种执行效率是比较低下的。

FabricPath原理相对于二层交换,非常类似于MPLS相对于传统路由的关系,FabricPath在原有数据帧的前面增加了一个新的二层头部(MAC in MAC),于是网络的选路不再基于MAC信息,而是基于新头部中的信息 – – – Switch ID。

FP网络中每个节点都有一个唯一的Switch ID(类似于路由协议的router-id),协议会分配,也可以手工指定Switch ID,但必须保证唯一性;FP的底层协议是IS-IS,IS-IS根据Switch-ID来做二层路由计算,在二层路由中用到的表项有两个FabricPath IS-IS路由表、 FabricPath路由表和mac address-table,

FabricPath IS-IS routing table,到任何一个Switch-ID应该从哪个接口转发,

例如下图红框:60是通过Port-Channel200可达,

wKiom1XNv2DSUBQEAAGkLrQUaqA849.jpg
wKiom1XNv2DSUBQEAAGkLrQUaqA849.jpg

Mac address-table,除了MACVLAN 等信息之外,还有SWID/SSID/LID,例如40/0/210

wKioL1XNwYGBpt2FAALTZSnCT5A981.jpg
wKioL1XNwYGBpt2FAALTZSnCT5A981.jpg

SWID

Switch-ID,FabricPath环境中设备的标识符,必须唯一不冲突

SSID

SubSwitch-ID,没有vPC+,这个值始终为0

LID

FabricPath头部里的Port-ID,用来标识交换机上的具体接口, (这个值看起来会很奇怪,不过交换机知道是指的哪个接口啦)

wKioL1XNwjCRJlukAAOnVyD39KA263.jpg
wKioL1XNwjCRJlukAAOnVyD39KA263.jpg

那么这个时候,Server A 到Server B的访问是怎么样的呢?

首先,数据帧到达DC2-N5K-1之后,会被加上一个新的FabricPath 头部

wKiom1XNwDzBWUTyAAYmltdNPjg872.jpg
wKiom1XNwDzBWUTyAAYmltdNPjg872.jpg

<— Outer DA –><— Outer SA –>

Switch ID

Sub Switch ID

Port ID

Switch ID

Sub Switch ID

Port ID

Ftag

……

40

0

4306

30

0

4306

1

从进入FabricPath的域开始,设备的路由都是基于Switch ID,所有Switch ID该如何到达,在FabricPath路由表和FabricPath IS-IS路由表里可以查到。

并且数据包是直接要求发送往具体某个Switch ID上的某个PortID对应的接口的,End-to-End的方式,(非常类似于MPLS的标签查找,完全区别于基于MAC的逐跳查找)

wKiom1XNwN3BvzojAANS0A3gokU978.jpg
wKiom1XNwN3BvzojAANS0A3gokU978.jpg

最后我们来看看,FabricPath跟vPC强强联合的情景吧,这种工作场景被称之为vPC+(一般的vPC的二层网络都是运行Spanning-Tree生成树协议的)

wKioL1XNwwChzNs3AAM2Ax6GeEM003.jpg
wKioL1XNwwChzNs3AAM2Ax6GeEM003.jpg
wKiom1XNwQrjJSrqAAQc82-wiM4315.jpg
wKiom1XNwQrjJSrqAAQc82-wiM4315.jpg

vPC跟FabircPath两个家伙,想要一起工作,除了前面实验四里面演示过的vPC配置和实验五上半部分介绍过的FabricPath配置之外,vPC的配置要做如下改动

wKioL1XNwyeQjxhjAALRfVl67Zc828.jpg
wKioL1XNwyeQjxhjAALRfVl67Zc828.jpg

FabricPath工作在vPC+的环境下只所以有些特殊,原因是:SwitchID跟设备应该是一一对应的,但是vPC的Peer Switch两台可以看做是一台设备在工作,所以,

有vPC+的情况下,vPC的PeerSwitch会增加一个虚拟的节点,这个节点有一个虚拟的Switch ID,称之为VirtualSwitch ID。

接入层Switch通过vPC20发送数据,目的地址不是DC2-N5K-1或DC2-N5K-2的Switch ID,而是这两台PeerSwitch虚拟出来的Virtual Switch ID,至于这个流量是从Port7发送还是Port6发送,这个会HASH算法运算之后进行负载均衡。

当数据要发往Switch的时候,情形也类似,数据包的目的地址其实是而是这两台PeerSwitch虚拟出来的Virtual Switch ID,数据包到底是从DC2-N5K-1还是DC2-N5K-2走?其实是谁都不重要,最终都会从vPC PeerSwitch共同管理的vPC20走,至于最终是哪台设备来做处理,会用HASH算法计算后做负载均衡。

wKiom1XNwTyAeLSUAAPY5YFDOqo316.jpg
wKiom1XNwTyAeLSUAAPY5YFDOqo316.jpg

FabricPath IS-IS routing table,会增加一个virtualSwitch ID的条目

Mac address-table,除了MAC、VLAN、老化时间等信息之外,还有SWID/SSID/LID,例如: 70/0/0

wKioL1XNw1uRFw5gAAGZDauIdcs430.jpg
wKioL1XNw1uRFw5gAAGZDauIdcs430.jpg

Mac address-table,除了MAC、VLAN、老化时间等信息之外,还有SWID/SSID/LID,例如: 70/0/0

SWID

vPC+环境里,是vPCdomain里配置的virutal Switch-ID

SSID

用来标识vPC+下的一个Port-Channel, 可以这么理解,在vPC+环境中,这个值标识出接口,只不过这个出接口是个virtualPort-Channel

LID

无意义

wKioL1XNw7-Sy5GeAAT9RxKLWAc941.jpg
wKioL1XNw7-Sy5GeAAT9RxKLWAc941.jpg
wKiom1XNwdfxHi9xAARUEmv0Qls760.jpg
wKiom1XNwdfxHi9xAARUEmv0Qls760.jpg
wKiom1XNwf6QJDKJAAKn1x67GjQ025.jpg
wKiom1XNwf6QJDKJAAKn1x67GjQ025.jpg
wKiom1XNwgvwRorFAALUuPXSTOc794.jpg
wKiom1XNwgvwRorFAALUuPXSTOc794.jpg

转载于:https://blog.51cto.com/lu16520/1684753

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/227284.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档