CCNP笔记--MSTP上
第一次看CCNP学习指南时,对书中描述MST的部分简直一头雾水,有种受挫的感觉。后来通过实验并结合书中的内容才对MST有了初步的了解。下面通过实验说明自己对MSTP的认识:
实验环境:如图1所示,S1和S2属于MST管理域CCNA,S3和S4属于MST管理域CCNP,都将VLAN 1-2映射到MST实例1。
图1:实验环境
从图中可以看到,当MSTP生成树算法运算完成后,S1将成为总根和域根,S3成为域根,S3的e0/2端口是master端口,S4的e0/2端口将被阻塞。先简单描述一下MSTP新加入的几个概念:
1.总根:总根是一个全局的概念,对于所有互联运行STP/RSTP/MSTP的交换机只能有一个总根。
2.域根:域根是一个局部概念,是相对于某个域的实例而言的,每个域所包含的域根数目与实例个数有关。
3.MASTER端口:MASTER端口是所有边界端口中到达总根开销最小的端口,也就是连接MSTP域到总根的端口。
我觉得这些概念不用特别在意,顺其自然就好。学习MSTP还是先从MSTP的BPDU入手比较好,如下图:
图2:MSTP的BPDU
对照书本上的内容来看,书上说MSTPBPDU包含一些配置属性,交换机在接收到BPDU之后能够与本地MST配置进行比较。如果属性的比对结果相互匹配,那么MST内的STP实例可以成为相同管理区的一部分。反之,本地交换机将被视为MST管理区的边界。也就是说只有格式选择器,配置名,配置修订号,VLAN与实例映射关系(消息摘要)这四项属性都相同,交换机才认为对方与自己在同一个MSTP域内。书上还说只有IST(MST0)允许发送和接受BPDU,其他MST的实例信息被附加在MSTBPDU中,作为一种M记录。这一观点在BPDU报文中已经看得很清楚了。
*注:CIST BRIDGEIDENTIFIER 这东西是让同一个MST域中的交换机看的,也让不同域中的交换机看,只能先这样理解。
了解了MST BPDU中的一些配置属性后,现在要回到实验结果上。首先S1是总根,因为S1的BID最小,确切的说是MST0的BID最小。
图3:MST0实例
*注:选举总根(对于运行STP/PVST/RSTP的交换机来说叫选举根桥)。
其实就是比较谁BID小而已,不用管什么实例号,选择总根就是比较MST0的BID,如果连接STP/PVST/RSTP交换机,也是用MST0的BID去选举根桥。这也是MST能够兼容其他类型生成树的原因。图3还有一个很关键的问题就是COST值,S3到总根的开销是2000000,那么S4到总根的开销为什么还是2000000?(中间隔着个S2),S2到总根的开销又为何是0?问题的答案还是在BPDU报文中,如图:
图4:同一管理域发送的BPDU
可以看出S2发送的BPDU根路径开销为0,发送者网桥ID是S1的。不同点就是CIST内部根路径开销为2000000,CIST网桥标示符是S2。根据图4中BPDU的内容,可以想像出一副画面,如下图:
图5
书上说MST管理域作为一台虚拟的网桥(大号交换机),使其能够与外部的CST进行交互。结合图4和图5正好对应上这一概念。然后在说说实例1,如图6所示:
图6:实例1
从图6中可以看到,S2认为S1是实例1的根桥,S4认为S3是实例1的根桥。它们处于不同的管理域,各玩各的。最后来看看MST的兼容性,如图7所示,加入一台运行PVST+的交换机。
图7:MST兼容PVST+
重点还是在BPDU上,S1和S2发送给S5的是版本0的BPDU。S5通过比较发送者网桥ID来选举根端口,如图8所示:
图8
根路径开销都为0(同一管理域),只能比发送者ID了。S5的PVST+有2个VLAN实例,S1向S5发送BPDU时会复制两份BPDU,分别代表不同VLAN。这是书中提到的概念,事实也确实如此。
总结:个人觉得MST是最难学的生成树,CCNP学习指南中对MST描述并不细致,一些新概念,新的端口角色都是一笔带过。比如MASTER端口,书中对该端口的定义是所有边界端口中到达总根开销最小的端口。从图1看出S3的E0/2端口是MASTER端口。S4的E0/2是一个边界端口,为什么却不是MASTER端口?说明该端口到总根开销并不是最小,从图4的BPDU中可以看到答案。重点还是BPDU,还是BPDU,还是BPDU。