别被扩展系统ID迷惑了

别被扩展系统ID迷惑了


扩展系统ID的作用:

    二层交换机使用STP技术来防止网络中的桥接环路,STP算法的核心在于交换机发送的BPDU(桥接协议数据单元),BPDU报文里有交换机的BID(网桥优先级),BID由2字节(16位)网桥优先级和6字节MAC地址组成。每台交换机的BID都是唯一的,但是这只能为所有VLAN去维护一棵生成树,如果要为每个VLAN都维护一棵生成树的话,那么必须使每个VLAN的BID都不同,这就引入了系统扩展ID。使用系统扩展ID后,将网桥优先级(2字节)的前四位用来表示交换机优先级,后12位作为系统ID扩展,也就是对应每个VLAN的编号。

系统扩展ID

实验扩展系统ID引发的奇怪现象:

图1:实验环境

实验环境:如图1所示,IOU1,IOU2,IOU3都运行PVRST生成树,都划分了VLAN1和VLAN2,IOU1的E0/0-1属于VLAN2,IO2的E0/0,E0/2属于VLAN2,IOU3的E0/1-2属于VLAN1,交换机之间并没有TRANK链路。

实验说明:假设交换机之间的链路都是TRANK链路,那么IOU1将成为VLAN1和VLAN2的根桥,因为IOU1的MAC地址最小,根据生成树算法的原则,当网桥优先级相同时(默认是相同的),MAC地址小的将成为根桥。三台交换机VLAN1的网桥优先级都是32768/1/MAC,VLAN2网桥优先级都是32768/2/MAC。IOU3将阻塞E0/2端口,因为IOU3的BID比IOU2的大(MAC地址更大)。这样的选举结果无可非议,不过现在将环境改成图1的情况,再次观察生成树选举的情况。

实验步骤:

第一步:查看三台交换机 VLAN1生成树选举情况,结果每台交换机都认为自己是VLAN1的根桥。如下图:

IOU1认为自己是VLAN1的根桥

IOU2认为自己是VLAN1的根桥

IOU3也认为自己是VLAN1的根桥

分析:由于IOU1和IOU2都没有VLAN1的活动接口,也没有TRANK接口,只有VLAN1的非活动端口(默认所有接口属于VLAN1),它们俩发送BPDU报文的接口属于VLAN2,所以只能发出VLAN2的BPDU。IOU3发送BPDU的两个接口是属于VLAN1的,捕获IOU3 E0/1接口的数据帧,如图所示:

IOU3E0/1接口发送的BPDU

从BPDU中可以看到IOU3说自己是VLAN1(扩展系统ID=1)的根桥,E0/1接口属于VLAN1,发出VLAN1的BPDU很正常,同理E0/2接口发出的BPDU和E0/1接口发出的相同(端口标识不一样)。现在问题来了,IOU1和IOU2收到IOU3发来的BPDU会作何处理?IOU3说我是VLAN1的根桥,可是IOU1和IOU2都认为自己VLAN1的根桥,难道它们对IOU3发来的BPDU置之不理?问题的答案就在一个奇怪的BPDU报文中。

第二步:查看三台交换机VLAN2生成树选举结果,如下图:

IOU1认为IOU3是VLAN2的根桥

IOU2认为IOU3是VLAN2的根桥

分析:IOU1和IOU2都认为IOU3是VLAN2的根桥,IOU3显示没有运行VLAN2的生成树实例(图片忘了截),这里有两个问题:

问题1:为何IOU1和IOU2会认为IOU3是VLAN2的根桥,IOU3发送的BPDU明明是针对VLAN1(系统ID=1)。

问题2:既然IOU1和IOU2都认为IOU3是VLAN2的根桥了,为何IOU3显示没有运行VLAN2生成树实例?

分析问题2:IOU3没有属于VLAN2的活动端口,没有TRANK端口,连非活动端口都没有,所以IOU3不会运行VLAN2的生成树实例(这也解释了IOU1和IOU2为什么认为自己是VLAN1根桥的原因)。

分析问题1:当IOU1和IOU2收到IOU3发送针对VLAN1(系统ID=1)的BPDU时,它们不认为这是VLAN1的BPDU,即便系统扩展ID=1。因为它们的接口是属于VLAN2的,它们认为这是针对VLAN2的BPDU。通过捕获IOU1从E0/0接口发出的数据帧可以看到特殊的BPDU:

IOU1从E0/0接口发的BPDU

注:*32768+1<32768+2*

从BPDU中可以看到,IOU1认为IOU3是VLAN2的根桥是因为32768/1/MAC(IOU3的BID)小于32768/2/MAC(IOU1的BID),IOU2也是这样认为的。之所以说这是针对VLAN2的BPDU,是因为数据帧打上了VLAN2的标记。交换机ACCESS接口打标记是够奇葩的。

实验总结:

1.交换机为每个VLAN运行生成树时,如果交换机没有任何接口属于某个创建的VLAN,那么该VLAN的生成树实例将无法运行。

2.交换机不通过系统扩展ID识别VLAN的BPDU,而是通过VLAN标记来识别,系统扩展ID只是让每个VLAN具有不同的BID。

3.以上结论只是个人的YY。

时间: 2024-10-11 22:49:53

别被扩展系统ID迷惑了的相关文章

Android进阶——自定义View之扩展系统Dialog

引言 今天给大家总结有关自定义对话框的相关内容,前面文章Android入门--AlertDialog和ProgressDialog总结都在在利用系统提供的函数来实现对话框,但局限性太大,当我们想自己定义Dialog视图的时候,就不能利用系统函数了,就需要我们这里的自定义对话框了来满足产品经理的各种idea. 一.Dialog部分源码结构 学习下源码的编程风格和规范 /** * Base class for Dialogs. * Activity提供了一系列的方法用于dialog的管理:onCre

Android获取系统ID(com.android.internal.R)

R.id.icon 怎么获取,这个东西其实在 com.android.internal.R 这个里面,但是这个类我们访问不到怎么办? 反射呗, Java 的反射可谓是万能啊,啥都可以拿到只要他在. [java] view plaincopy Class<?> clazz = Class.forName("com.android.internal.R$id"); Field field = clazz.getField("icon"); field.set

如何为可扩展系统进行Java Socket编程

从简单I/O到异步非阻塞channel的Java Socket模型演变之旅 上世纪九十年代后期,我在一家在线视频游戏工资工作,在哪里我主要的工作就是编写Unix Unix Berkley Socket和Windows WinSock代码.我的任务是确保视频游戏客户端和一个游戏服务器通信.很幸运有这样的机会写一些Java Socket代码,我对Java流式网络编程和简洁明了的API着迷.这一点都不让人惊讶,Java最初就是设计促进智能设备之间的通信,这一点很好的转移到了桌面应用和服务器应用. 19

STP 抓包分析

# STP(Spanning-Tree Protocol,生成树协议)的工作原理,在分层网络中存在冗余链路的情况下容易引起流量环路,使用STP能够动态的管理这些冗余链路:当某台交换机的一条连接丢失时,另一条链路能迅速取代失败链路,并且不会产生流量环路.文章主要包括下面几点内容:冗余拓扑中存在的问题.生成树协议.生成树收敛.利用生成树实现负载均衡等. # 1.STP交换机角色 # 根交换机(root bridge)和非根交换机(none root bridge) # 首先要知道什么是BID(Bri

Layer2-STP生成树协议

session 1 STP STP(Spanning Tree Protocol)是生成树协议的英文缩写.该协议可应用于在网络中建立树形拓扑,消除网络中的环路,并且可以通过一定的方法实现路径冗余,但不是一定可以实现路径冗余.生成树协议适合所有厂商的网络设备,在配置上和体现功能强度上有所差别,但是在原理和应用效果是一致的. STP的基本原理是,通过在交换机之间传递一种特殊的协议报文,网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),来确定网络的拓扑结构.BPDU

cisco learn book index

------------------------------------------------------------------ Routing TCP/IP Volume 1 , Second Edition ------------------------------------------------------------------ Routing TCP/IP Volume 2 ---------------------------------------------------

思科CCNA第三学期第五章答案

1.请参见图示. 从图中所示的输出可得出什么结论? 在 Fa0/2 和 Fa0/4 之间通信的两台主机的开销为 38. 已经静态配置了优先级,目的在于确定根. 此交换机上禁用了 STP. 已经更改了计时器,目的在于缩短收敛时间. 2.请参见图示.服务器发送了一个 ARP 请求,询问其默认网关的 MAC 地址.如果未启用 STP,则此 ARP 请求的结果是什么? Router_1 会丢弃该广播并使用下一跳路由器的 MAC 地址来回应. Switch_A 会使用 Router_1 的 E0 接口的

BPDU(桥协议数据单元)介绍

BPDU 是运行 STP 的交换机之间交换的消息帧.每个 BPDU 都包含一个 BID,用于标识发送该 BPDU 的交换机.BID 内含有优先级值.发送方交换机的 MAC 地址以及可选的扩展系统 ID.BID 值的大小由这三个字段共同决定. BPDU组播地址:01-80-C2-00-00-00 BPDU分为2种类型: 1.配置BPDU – 用于STP计算 2.拓扑变更通告(TCN)BPDU – 用于通告网络拓扑的变化

STP生成树配置和原理

目标:二层网络中有可能出现因为线路故障而导致的通信故障,通过冗余线路可以消除因为某一线路故障而导致的网络中断.但是因为冗余线路的存在,又可能会出现广播风暴.相同帧的不断复制和MAC地址表不稳定. 配置Switch1为vlan1的主根,Switch2为vlan1的次根方案:为了保证在冗余环境下不会出广播风暴等问题,引入了生成树(STP)协议.通过生成树协议可以把冗余线路上的某一个端口置为阻塞(BLOCKING)状态,防止广播风暴的产生,当某一线路出现故障时,被阻塞的端口自动进入转发(FORWARD