定义: 透明: 对其转发的帧结构不做任何处理和改动(VLAN的trunk除外)。
(网桥)交换机收到一个数据帧时,查找地址表,找到目的MAC对应的端口,之后:
1. 如果目的端口是接收端口,抛弃;
2. 如果不是接收端口,转发;
3. 如果是数据帧且在地址表中找不到目的地址,从收到数据的端口之外的其他端口广播出去;
4. 如果是广播帧,从收到数据的端口之外的其他端口广播出去;
由于这种(透明)工作方式,可能造成“路径回环”。造成 广播风暴、帧的重复复制、交换机MAC表的不稳定。
【生成树协议 STP】(802.1D)
根桥(Root Bridge):生成树的参考点。
根端口(Root Port):非根桥到达跟桥的最近的端口。
指定端口(Designated port):连接个网段的转发端口。
路径开销(Path Cost)整个路径上端口开销只和。
生成树算法 STA(Spanning Tree Algorithm)
原理: 交换机彼此之间传递一种特殊的配置消息,生成树协议(802.1D)将这种配置消息称为“桥协议数据单元”或 BPDU。其中包含了足够的信息来保证桥完成生成树的计算。交换机根据BPDU消息来完成如下工作:
1. 在桥连接网络的所有参与生成树计算的网桥中,选出一个作为根桥;
2. 计算出其他网桥到这个根桥的最短路径;
3. 为每一个LAN选出一个指定网桥,该网桥必须是离根网桥最近的。指定网桥负责将这个lan上的包转发给根桥;
4. 为每一个网桥选择一个根端口,该端口给出的路径是本网桥到跟网桥的最短路径;
5.确定除根端口之外的包含于生成树上的端口(指定端口);
BPDU(Bridge Protocol Data Unit)帧格式
【DMA】【SMA】【L/T】【LLC Header】【Payload】
DMA:目的MAC,固定的组播地址--0x0180c2000000
SMA: 源MAC,即发送该配置消息的桥的MAC地址
L/T:帧长
PayLoad:BPDU数据
Payload:
[2B] Protocal ID
[1B] Version
[1B] Message Type
[1B] Flags
[8B] Root ID:根桥ID
[4B] Cost of Path:从指定网桥到根桥的最小路径开销
[8B] Bridge ID:指定网桥ID
[2B] Port ID:指定端口ID
[2B] Message Age
[2B] Maximum Tim
[2B] Hello Time
[2B] Forward Delay
网桥间通过传递上面绿色的4项内容 就足以完成生成树的计算。(算法我不懂 -_-! 还好不是做开发的)
桥接网络中,每个网桥都有一个用来标识自己的唯一的 48 位 MAC 地址。在生成树协议中,使用网桥优先级( 16 位)和该 48 位地址的组合作为网桥的 ID ( Bridge ID ),在配置消息的数据部分中来表示这个网桥。对每个网桥来说,这个网桥的所有端口可以用端口优先级和端口索引值作为 ID 来表示,生成树协议使用这个 ID 在配置消息中唯一的表示网桥中的某个特定端口。
BPDU的作用:
1. 选举根桥。
2. 检测发生环路的位置。
3. 阻止环路的发生。
4. 通告网络状态的改变。
5. 监控生成树的状态。
STP对BPDU处理的大概算法是: 最初,所有的启用生成树的网桥都发送以自己为根的配置信息,比如A发送配置消息为(A,0,A,PortID);网桥将收到的消息和自己的配置消息进行优 先级比较,保留优先级较高的配置消息,并依此完成生成树的计算。(还是不懂,优先级怎么判断?再次庆幸不是做开发的。)