如图所示网络中,生成树结构在图中用虚线表示,所有链路开销相同,BID大小S6<S5<S4<S3<S2<S1。经RSTP计算,S6为根交换设备,S2和S5之间、S1和S4之间的链路被阻塞。HostA和B同属于VLAN2,由于S2和S5之间的链路被阻塞,S3和S6之间的链路又不允许VLAN2的报文通过,因此HostA和HostB之间无法互相通讯。
如图所示,MSTP通过设置VLAN映射表,把VLAN和MSTI联系起来。每个VLAN只能对应一个MSTI(即同一VLAN的数据只能在一个MSTI中传输),而一个MSTI可能对应多个VLAN。经计算,最终生成两棵生成树:MSTI1以S4为根,转发VLAN2的报文;MSTI2以S6为根,转发VLAN3的报文。这样,不同VLAN的报文沿不同的路径转发,实现了负载分担,同时,解决了VLAN2内主机A和主机B的不互通问题。
MSTP中名词的概念:
MST域,由交换网络中的多台交换设备以及它们之间的网段构成。同一个MST域的设备具有以下特点:均使能MSTP,有相同的域名、有相同的修订级别、有相同的VLAN映射表。
多生成树实例MSTI,可以看成是多个拓扑结构相同的VLAN的一个集合。通过将多个结构相同的VLAN捆绑到一个MSTI,即把多个相同拓扑结构的VLAN映射到一个实例里,可以节省通信开销和资源占用率。MSTI的计算相互独立,在这些实例上可以实现负载均衡。
VLAN映射表,即VLAN和MSTI的对应关系。一个VLAN只能对应一个MSTI(即同一VLAN的数据只能在一个MSTI中传输),一个MSTI可能对应多个拓扑结构相同的VLAN。
CST:公共生成树,连接所有MST域的一棵生成树。它将每个MST域看成是一个交换机,通过STP或RSTP协议计算生成的一棵生成树。
IST:内部生成树,是各MST域内的一棵生成树。它是一个特殊的MSTI:MSTI的ID为0;无论有没有配置,IST都是存在的;所有VLAN默认都映射到IST实例。
CIST:所有MST域内的IST加上CST就构成了CIST。
总根:即CIST的根交换机。在整个网络中,每台交换机都有IST,IST中BID最小的交换机就是总根。
域根:分为IST域根和MSTI域根。IST域根,是指IST中距离总根最近(域间)的交换设备;MSTI域根,是每个生成树实例MSTI的树根,即每个MSTI中BID最小的交换设备。
主桥:每个MST域各一个,是MST域内距离总根最近(这里的“最近”是仅考虑区域间路径而言的)的交换设备。因此,每个MST域中,主桥就是该MST域的IST域根。
*IST域根,并不是BID最小的,而是距离总根最近的(域间).在各MST域中,IST域根、主桥,二者是同一设备。
MSTP端口角色:
MSTP在RSTP的基础上新增了2种端口角色,MSTP的端口角色共有7种:RP、DP、AP、BP、EP、域边缘端口和Master端口。前5种与RSTP中的定义一致。
域边缘端口:位于MST域的边缘并连接其它MST域的端口。
Master端口:主桥上距离总根最近的端口(即主桥上CIST的RP端口)。
Master端口解读:
【Master端口,是一种特殊的域边缘端口。特殊,是因为它是MST域中的报文去往总根的必经之路(最近),也是唯一出口。
Master端口,在CIST上的角色是RP端口,MST域中,在各MSTI的角色都是Master端口。】
MSTP与RSTP的端口状态是一样的。
MSTP报文:
MSTP使用多生成树桥接协议数据单元MST BPDU作为生成树计算的依据。MST BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录。
MSTP二层网络中,一个MST域中可以定义多个MSTI,但所有自定义的MSTI和IST实例共用一批MST BPDU来进行生成树的计算,通过这批MST BPDU的交互完成所有树的收敛。
目前,MSTP的报文存在两种格式:
dot1s:IEEE802.1S规定的报文格式
legacy:私有协议报文格式
华为采用的是端口收发MSTP报文格式可配置功能(stp compliance),能够实现对BPDU报文格式的自适应。
在IEEE802.1S规定的报文格式(dot1s)中,除MST专有字段外,其它字段与RST BPDU类似。
某些类似字段:
CIST RID:表示总根。
CIST ERPC:CIST外部路径开销,表示发送此BPDU的网桥所属的域距离总根所属的域的CST路径开销。
CIST Region Root ID:表示IST域根的ID(也即主桥的ID)。如果把一个MST域看成是一个交换设备,用IST域根代表一个MST域,则CIST Region Root ID与RST BPDU中的BID类似。
CIST PID:表示MST BPDU的发送端口ID。
某些MST专有字段:
MST Configuration ID:MST配置标识,表示MST域的标识信息。共包括4个字段,只有4个字段全相同并且互联的交换设备才被认为是在同一MST域中。Format Selector固定为0,Config Digest(配置摘要)是利用MD5算法把MST配置表(即VLAN映射表)加密成摘要信息。
CIST IRPC:CIST内部路径开销,表示从本端口到IST域根(即主桥)的路径开销。
CIST BID:发送此MST BPDU的交换机BID。
MSTI Configuration Messages:MSTI配置信息。每个MSTI的配置信息占16B,总大小为16B*n。每
个MSTI包含有6个字段:
MSTI Flags:新增Master标志位取代了TCA位,表示该交换设备是否为主桥。
MSTI Region Root ID:表示MSTI域根。
MSTI IRPC:MSTI内部路径开销,表示从本端口到MSTI域根的路径开销。
MSTI Bridge Pri:交换机在此MSTI中的优先级。
MSTI Port Pri:端口在此MSTI中的优先级。
MSTI 剩余跳数:BPDU报文在MSTI中的剩余跳数。
MSTP拓扑计算过程:
MSTP通过交互MST BPDU进行MSTP拓扑计算。MSTP拓扑计算过程可分为2大部分:CIST的计算和MSTI的计算。具体过程如下:
(1)先选出总根,即CIST根桥。
(2)在每个MST域中选出IST域根,即主桥。
(3)在IST域根(即主桥)上选出RP端口,即主桥在CIST上的RP端口。
(4)计算出MST域间链路的DP和AP/BP端口。
(5)在每个MST域中,IST和MST上计算出相应角色的端口。
优先级向量及比较规则:
CIST和MSTI都是根据优先级向量来计算的,而这些优先级向量信息都包含在MST BPDU中。各交换设备通过交互MST BPDU来生成MSTI和CIST。
参与CIST计算的优先级向量:{总根ID、ERPC、IST域根ID、IRPC、发送者ID、发送端口ID、接收端口ID}。
参与MSTI计算的优先级向量:{MSTI域根ID、IRPC、发送者ID、发送端口ID、接收端口ID}。
比较规则如下:
依次比较优先级向量内部的各个变量,值越小优先级越高,值相同比较下一个变量。
如果接口收到的BPDU优于接口缓存的BPDU,则接口缓存的BPDU被替换,同时,更新交换设备保存的全局BPDU;反之,新收到的BPDU被丢弃。
MSTI的特点:
每个MSTI独立计算自己的生成树,互不干扰。
每个MSTI的生成树可以有不同的树根,不同的拓扑。
每个MSTI在自己的生成树内发送MST BPDU,进行维护。
每个MSTI的拓扑通过命令配置决定。
每个端口在不同MSTI上的生成树参数可以不同。
每个端口在不同MSTI上的角色、状态可以不同。
另外需要注意的是,在运行MSTP协议的网络中,一个VLAN报文将沿着如下路径转发:在MST域内,沿着其对应的MSTI转发,在MST域间沿着CST转发。
我们以下图为案例进行分析:
已知交换机BID:SW1<SW2<SW3…<SW10,则CIST实例拓扑计算过程如下:
第一,选举CIST根桥。BID最小的交换机就是CIST的根桥,即总根。启动时,10台交换机都认为自己既是CIST根桥,同时也是域内主桥,所有端口都是DP/Discarding,所以开始向外发送自己的BPDU。例如SW1中,参与CIST拓扑计算的优先级向量是{SW1,0,SW1,0,SW1,X}。所有交换机产生的BPDU经过比较后,最终SW1因在实例0中的BID最小而成为CIST的根桥,同时也是region1的主桥。
第二,选举MST域内主桥。依次比较外部路径开销ERPC和BID,较小者优选。在region1中主桥就是SW1(总根也是所在MST域的主桥),首先根据定义主桥一定是边界交换机,依据比较选举规则,在region2中主桥是SW4,在region3中主桥是SW7。如果把SW2-SW4之间的链路成本加倍,这时在region2中SW4和SW6到CIST根桥所在域的ERPC是一样的,继续比较BID,由于SW4小于SW6,所以SW4是region2的主桥。
第三,在每个MST域中,选出IST域根(即主桥)的RP端口。依次比较ERPC、指定交换机ID、指定端口ID和接收端口ID,较小者优选。如下图所示,新增2条链路。这时,主桥SW4上RP端口选举,ERPC相同,指定交换机SW2<SW3,再比较指定端口ID,则优选e0/0/2口为RP端口。
第四,计算出MST域间链路的DP和AP/BP端口。依次比较ERPC、指定交换机ID和指定端口ID,较小者优选。总根所在MST域的边界交换机上的对外端口都是DP端口(不考虑自环而致的BP端口),所以SW2和SW3上的对外端口都是DP端口;SW6和SW8间的互连链路的两个端口,ERPC相同,由于SW6<SW8,所以优选SW6上的e0/0/1口为DP端口,而SW8上的为AP端口。
第五,在每个MST域内,计算IST和MSTI的拓扑。(与STP类似)
--------------------------------------------------------------------
大家可以根据下面的拓扑思考一下下面的案例:
案例思考:
如图,SW1是CIST的根桥,BID:SW1<SW4<SW11<SW22<SW33<SW44。请分析SW4访问SW1的路径。
与上一个案例的分析过程类似,最终得出:SW1是CIST根桥(即总根),SW4的e0/0/2口是RP端口,e0/0/1口是AP端口。
--------------------------------------------------------------------
多区域案例分析:
多区域的问题:多区域会造成区域间流量没有负载分担能力,及可能存在次优路径,如非必要,尽量使用单区域去设计生成树。
如图所示,公司有4台交换设备,核心层设备SW1和SW2处在区域1,汇聚层设备SW3和SW4处在区域2中,交换机彼此之间全互连。Vlan和实例的映射关系如图所示。其中,BID关系:SW1<SW2<SW3<SW4。分析核心层和汇聚层的访问链路;如果4台设备在同一区域会如何?
分析过程:
首先,很容易看出:SW1是CIST的根桥,也是region1的主桥,SW3是region2的主桥。
其次,SW3 G0/2口收到的BPDU{SW1,0,SW1,0,SW2,G0/2},SW3 G0/3口收到BPDU{SW1,0,SW1,0,SW1,G0/3},经计算,依次比较ERPC(均为10),指定交换机ID(SW1<SW2),得出G0/3口是RP端口。由于区域之间主桥上的RP口是唯一出口,所以两个区域间的其它链路被阻塞,即SW3 G0/2口,SW4的对外两个端口都是AP。
所以,核心层和汇聚层的访问链路就是SW1和SW3之间的G0/3接口链路。
若配置多区域,区域间互访仅一条互通链路,没有负载分担能力,流量集中在单根链路上容易形成瓶颈。比如此例中,SW1-SW3链路是2个区域间的唯一互访路径。 而配置单区域,上下两部分互访时,可能存在多条互通链路。比如,若SW1是根桥,则上下两部分互访时可通过SW1-SW3和SW1-SW4这两条链路。
若配置多区域,区域间互访时流量一定经过主桥,可能存在次优路径。比如,PC4访问PC2,流量访问路径是SW4-SW3-SW1-SW2(次优路径)。而配置单区域,访问路径是SW4-SW1-SW2,优于多区域时的访问路径。
MSTP的快速收敛机制:
MSTP支持普通P/A机制和增强P/A机制。其中,普通P/A机制与RSTP中的P/A机制相同。增强P/A机制,是在普通P/A机制的基础上,改变下游根端口进入Forwarding状态的条件。普通P/A机制中,下游根端口是当同步过程完成后(所有其他端口的synced置位后根端口的synced置位),进入Forwarding状态;增强P/A机制中,上游交换机(DP)主动发送Agreement使下游根端口进入转发Forwarding状态。
所以增强型的P/A机制为:
1.上游设备发送Proposal报文,请求进行快速迁移。下游设备接收到后,若与上游设备相连的端口被设置为根端口,则阻塞所有非边缘端口。
2.上游设备继续发送Agreement报文。下游设备接收到后,根端口转为Forwarding。
3.下游设备回应Agreement报文。上游设备接收到后,把与下游设备相连的端口设置为指定端口,并立即进入Forwarding状态。
备注:缺省情况下,华为设备使用增强型PA机制。如果华为设备与使用普通P/A机制的厂商设备进行互通,需要在华为设备上配置命令“stp no-agreement-check”使其转变为普通P/A机制。
还是那句话STP知识点比较多,所以要学习就需要耐心去学习,不明白的就先去看之前发的STP、RSTP的分享贴,以上就是MSTP的知识,以案例为基础,大家可以自行根据我的叙述进行研究,思考一下中间留下的案例是否你的思路跟答案一致。
以上就是本次的网络技术原理详解分享之MSTP(Multiple Spanning Tree Protocol)多生成树协议原理分享,后续再陪同大家完成MSTP的实验分享,关于STP章节的学习任务我们将顺利毕业完结,坚持的小伙伴恭喜们STP章节顺利毕业,感谢大佬们的参阅,此贴先到这里后续会带上更加实用的帖子,感谢大家!
励志分享超清壁纸语句~~:
熟读唐诗三百首,不会作诗也会吟。——孙洙
好的今天就到这里,老样子,感谢各位大神的参阅,孩子为了挣豆子不容易,孩子家里穷没豆子吃饭了!!!