目录

目标

透明桥接技术基础

桥接环路

生成树算法

帧格式

消息字段

不同的IOS桥接技术

排除透明桥接故障

透明桥接:无连接

透明桥接:不稳定的生成树

透明桥接:会话意外终止

透明桥接:循环和广播风暴

致电思科系统TAC团队之前

其他来源

相关信息

目标

透明网桥最早于20世纪80年代初在Digital Equipment Corporation(DEC)开发，现在在以太网/IEEE 802.3网络中非常流行。

- 本章首先将透明网桥定义为实现生成树协议的学习网桥。其中包括生成树协议的详细说明。

- 实施透明网桥的思科设备过去分为两类：运行Cisco IOS®软件的路由器和运行特定软件的Catalyst系列交换机。现在情况已经不同了。目前，多种Catalyst产品都基于IOS。本章介绍IOS设备上提供的不同桥接技术。有关Catalyst软件特定配置和故障排除，请参阅LAN交换一章。

- 最后，我们介绍一些故障排除步骤，这些步骤根据透明桥接网络中常见的潜在问题症状进行分类。

透明桥接技术基础

透明网桥的名称源于其存在和运行对网络主机透明的事实。当透明网桥通电时，它们通过分析来自所有连接网络的入站帧的源地址来获知网络拓扑。例如，如果网桥看到某帧从主机A到达第1行，则网桥会得出结论，主机A可以通过连接到第1行的网络到达。通过此过程，透明网桥会构建内部桥接表，如表20-1中的表20-1。

表 20-1：透明桥接表

主机地址

网络号

0000.0000.0001

1

0000.b07e.ee0e

7

?

-

0050.50e1.9b80

4

0060.b0d9.2e3d

2

0000.0c8c.7088

1

?

-

网桥使用其桥接表作为流量转发的基础。当在其中一个网桥接口上收到帧时，网桥会在其内部表中查找帧的目的地址。如果表映射到目的地址和网桥的任何端口（除接收帧的端口外），则帧会转发到指定端口。如果未找到映射，帧将泛洪到所有出站端口。广播和组播也以这种方式泛洪。

透明网桥成功隔离网段内流量并减少每个网段上的流量。这通常会缩短网络响应时间。流量减少和响应时间改善的程度取决于网段间流量（相对于总流量）以及广播和组播流量。

桥接环路

如果没有网桥到网桥协议，当网际网络中任意两个LAN之间有多条网桥和局域网(LAN)路径时，透明网桥算法会失败。图20-1显示了这种桥接环路。

图 20-1：透明桥接环境中的不准确转发和学习

假设主机A向主机B发送帧。两个网桥都收到该帧，并正确地断定主机A在网络2上。遗憾的是，主机B收到主机A帧的两个副本后，两个网桥在其网络1接口上再次收到该帧，因为所有主机都接收广播LAN上的所有消息。在某些情况下，网桥会更改其内部表以指示主机A在网络1上。如果是这样，当主机B回复主机A的帧时，网桥会接收并随后丢弃应答，因为其表显示目的（主机A）与帧的源位于同一网段上。

除了基本的连接问题（如所述的问题）外，网络中具有环路的广播消息的激增也代表着潜在的严重网络问题。参照图20-1，假设主机A的初始帧是广播帧。两个网桥无休止地转发帧，使用所有可用的网络带宽，并阻止两个网段上其他数据包的传输。

如图20-1所示的具有环路的拓扑既有用，又可能有害。环路表示存在通过网际网络的多条路径。从源到目的地有多条路径的网络具有所谓的增强的拓扑灵活性，这提高了网络的整体容错能力。

生成树算法

生成树算法(STA)由关键以太网供应商DEC开发，旨在保留环路的优势，同时消除环路的问题。DEC算法随后由IEEE 802委员会修订并发布在IEEE 802.1d规范中。DEC算法和IEEE 802.1d算法不相同，也不兼容。

STA通过放置这些网桥端口来指定网络拓扑的无环子集，因此，如果处于活动状态，它可以将环路形成为备用（阻塞）状态。网桥端口阻塞可在主链路发生故障时激活，从而提供通过网际网络的新路径。

STA使用图论的结论作为构建网络拓扑的无环子集的基础。图论表示：“对于任何由节点和连接节点对的边组成的连接图，都有一个边生成树，它可保持图的连通性，但不包含环路。”

图20-2说明了STA如何消除环路。STA呼叫为每个网桥分配唯一标识符。通常，此标识符是网桥的介质访问控制(MAC)地址之一加上优先级指示。每个网桥中的每个端口也分配一个唯一（在该网桥内）标识符（通常是其自己的MAC地址）。 最后，每个网桥端口都与路径开销相关联。路径开销表示帧通过该端口传输到LAN的开销。在图20-2中，每个网桥发出的线路上都记录了路径开销。路径开销通常是默认值，但网络管理员可手动分配。

图 20-2：透明网桥网络（STA之前）

生成树计算中的第一个活动是选择根网桥，根网桥是具有最低网桥标识符值的网桥。在图20-2中，根网桥为网桥1。接下来，确定所有其他网桥的根端口。网桥的根端口是以最小聚合路径开销到达根网桥的端口。到根的最小聚合路径开销的值称为根路径开销。

最后，确定指定网桥及其指定端口。指定网桥是每个LAN上提供最低根路径开销的网桥。LAN的指定网桥是唯一允许将帧转发到LAN或从LAN转发帧的网桥，LAN是指定网桥。LAN的指定端口是将其连接到指定网桥的端口。

在某些情况下，两个或多个网桥可能具有相同的根路径开销。例如，在图20-2中，网桥4和5都可以到达网桥1（根网桥），路径开销为10。在这种情况下，将再次使用网桥标识符来确定指定的网桥。网桥4的LAN V端口通过网桥5的LAN V端口选择。

通过此过程，除直接连接到每个LAN的网桥外的所有网桥都将被消除，从而消除所有的双LAN环路。STA还消除了涉及两个以上LAN的环路，但仍然保持连接。图20-3显示了将STA应用到图20-2所示网络的结果。图20-2更清楚地显示了树状拓扑。将此图与图20-3的比较显示，STA已将网桥3和网桥5中的端口置于备用模式。

图 20-3：透明网桥网络（STA后）

生成树计算在网桥通电和检测到拓扑更改时进行。计算需要生成树网桥之间的通信，通过配置消息（有时称为网桥协议数据单元或BPDU）完成。 配置消息包含标识假定为根桥（根标识符）的网桥的信息，以及从发送网桥到根桥的距离（根路径开销）。 配置消息还包含发送网桥的网桥和端口标识符以及配置消息中包含的信息老化时间。

网桥以固定间隔（通常为1到4秒）交换配置消息。 如果网桥发生故障（导致拓扑更改），附近的网桥会很快检测到缺少配置消息并启动生成树重新计算。

所有透明网桥拓扑决策都在本地制定。配置消息在附近的网桥之间交换。网络拓扑或管理没有中央权威。

帧格式

透明网桥交换配置消息和拓扑更改消息。在网桥之间发送配置消息以建立网络拓扑。在检测到拓扑更改后发送拓扑更改消息，以指示必须重新运行STA。

表20-2显示IEEE 802.1d配置消息格式。

表 20-2：透明网桥配置

协议标识符

version

消息类型

标志

根 ID

根路径开销

网桥 ID

端口 ID

消息年龄

最大老化时间

Hello 时间

转发延迟

2 个字节

1 个字节

1 个字节

1 个字节

8 个字节

4 个字节

8 个字节

2 个字节

2 个字节

2 个字节

2 个字节

2 个字节

消息字段

透明网桥配置消息包含35个字节。以下是消息字段：

- 协议标识符：包含值0。

- 版本：包含值0。

- 消息类型：包含值0。

- 标志：一个字节字段，其中仅使用前两位。拓扑更改(TC)位表示拓扑更改。拓扑更改确认(TCA)位被设置为确认接收配置消息，并设置TC位。

- 根 ID:标识根网桥并列出其2字节优先级，后跟6字节ID。

- 根路径开销:包含从网桥向根网桥发送配置消息的路径开销。

- 网桥 ID:标识发送消息的网桥的优先级和ID。

- 端口 ID:标识发送配置消息的端口。此字段允许检测和处理由多个连接网桥创建的环路。

- 消息年龄:指定自根用户发送当前配置消息所基于的配置消息以来经过的时间。

- 最大老化时间:指示何时必须删除当前配置消息。

- Hello 时间：提供根网桥配置消息之间的时间段。

- 转发延迟:提供拓扑更改后，网桥在转换到新状态之前必须等待的时间。如果网桥过早过渡，则并非所有网络链路都可以更改其状态，并且可能导致环路。

拓扑更改消息格式与透明网桥配置消息的格式类似，不过它只包含前四个字节。以下是消息字段：

- 协议标识符：包含值0。

- 版本：包含值0。

- 消息类型：包含值128。

不同的IOS桥接技术

思科路由器有三种不同的桥接实施方法：默认行为、并发路由和桥接(CRB)以及集成路由和桥接(IRB)。

默认行为

在IRB和CRB功能可用之前，您只能桥接或路由基于平台的协议。即，如果使用ip route命令，例如，IP路由在所有接口上完成。在这种情况下，IP无法桥接到路由器的任何接口。

并发路由和桥接(CRB)

使用CRB，您可以确定是桥接还是路由基于接口的协议。也就是说，您可以在某些接口上路由给定协议，并在同一路由器的网桥组接口上桥接相同协议。然后，路由器既可以是指定协议的路由器，也可以是网桥，但路由定义接口和网桥组接口之间不能进行任何通信。

本示例说明，对于给定协议，单台路由器在逻辑上可以充当独立的独立设备：一台路由器和一个或多个网桥：

图 20-4：并发路由和桥接(CRB)

集成路由与桥接 (IRB)

IRB使用称为网桥组虚拟接口(BVI)的概念在网桥组和路由接口之间提供路由。 由于桥接发生在数据链路层和网络层路由，因此它们具有不同的协议配置模式。例如，在IP中，网桥组接口属于同一网络并具有一个集体IP网络地址，而每个路由接口代表一个具有自己IP网络地址的不同网络。

BVI的概念是为了使这些接口能够为给定协议交换数据包而创建的。从概念上看，如本例所示，Cisco路由器看起来像连接到一个或多个网桥组的路由器：

图 20-5：集成路由与桥接 (IRB)

BVI是路由器中充当普通路由接口的虚拟接口。BVI代表路由器内路由接口的对应网桥组。BVI的接口编号是此虚拟接口代表的网桥组编号。编号是此BVI和网桥组之间的链路。

本示例说明BVI原则如何应用于Catalyst交换机中的路由交换模块(RSM):

图 20-6：Catalyst交换机中的路由交换模块(RSM)。

排除透明桥接故障

本节介绍透明桥接网际网络中连接问题的故障排除信息。它描述了特定的透明桥接症状、可能导致每个症状的问题以及这些问题的解决方案。

注意：与源路由桥接(SRB)、转换桥接和源路由透明(SRT)桥接相关的问题在第10章“IBM故障排除”中讨论。

为了有效地排除桥接网络的故障，您必须了解其设计的基本知识，尤其是当涉及生成树时。

这些必须可用：

- 桥接网络的拓扑图

- 根网桥的位置

- 冗余链路（和阻塞端口）的位置

排除连接问题时，请将问题减少到最少的主机数，最好只有客户端和服务器。

以下各节介绍透明桥接网络中最常见的网络问题：

- 透明桥接:无连接

- 透明桥接:不稳定的生成树

- 透明桥接:会话意外终止

- 透明桥接:循环和广播风暴

透明桥接:无连接

症状：客户端无法通过透明桥接网络连接到主机。

表20-3列出了可能导致此症状的问题，并提出了解决方案。

表 20-3：透明桥接:无连接

可能的原因

建议的行动

硬件或介质问题

1. 使用show bridge EXEC命令查看是否存在连接问题。如果是，输出将不显示桥接表中的任何MAC[1]地址。

2. 使用show interfaces EXEC命令确定接口和线路协议是否处于启用状态。

3. 如果接口关闭，请排除硬件或介质故障。请参阅第3章“排除硬件和引导问题故障”。

4. 如果线路协议关闭，请检查接口和网络之间的物理连接。确保连接牢固，电缆未损坏。

如果线路协议已启用，但输入和输出数据包计数器未增加，请检查介质和主机连接。请参阅介质故障排除章节，该章介绍网络中使用的介质类型。

主机关闭

1. 在网桥上使用show bridge EXEC命令，确保桥接表包含连接的终端节点的MAC地址。桥接表包括主机的源MAC地址和目的MAC地址，并在来自源或目的地的数据包通过网桥时填充。

2. 如果缺少任何预期的终端节点，请检查节点的状态以验证它们是否已连接并正确配置。

3. 根据需要重新初始化或重新配置终端节点，并使用show bridge命令重新检查桥接表。

桥接路径已断开

1. 确定数据包在终端节点之间必须采用的路径。如果此路径上有路由器，请将故障排除分为两部分：节点1 — 路由器和路由器 — 节点2。

2. 连接到路径上的每个网桥，并检查终端节点之间路径上使用的端口的状态（如“硬件或介质问题”表条目中所述）。

3. 使用show bridge命令确保节点的MAC地址在正确的端口上获取。否则，您的生成树拓扑可能会不稳定。请参阅表20-2“透明桥接：不稳定的生成树。”

4. 使用show span命令检查端口的状态。如果可以在终端节点之间传输流量的端口未处于转发状态，则树的拓扑可能已意外更改。请参阅表20-4“透明桥接不稳定生成树”。

桥接过滤器配置错误

1. 使用show running-config特权执行命令确定是否配置了网桥过滤器。

2. 在可疑接口上禁用网桥过滤器并确定连接是否已恢复。

3. 如果连接未恢复，则过滤器不是问题。如果删除过滤器后恢复连接，则一个或多个错误过滤器是导致连接问题的原因。

4. 如果存在多个过滤器或存在使用具有多个语句的访问列表的过滤器，请分别应用每个过滤器以识别问题过滤器。检查输入和输出LSAP[2]和TYPE过滤器的配置，TYPE过滤器可同时用于阻止不同协议。例如，LSAP(F0F0)可用于阻止NetBIOS，TYPE(6004)可用于阻止本地传输。

5. 修改阻止流量的任何过滤器或访问列表。继续测试过滤器，直到所有过滤器都启用且连接仍然有效。

输入和输出队列已满

过多的组播或广播流量可能导致输入和输出队列溢出，从而导致丢包。

1. 使用show interfaces命令查找输入和输出丢弃。丢弃表示通过介质的流量过大。如果输入队列中的当前数据包数始终在输入队列当前大小的80%或以上，则需要调整输入队列的大小以适应数据包速率。即使输入队列中的当前数据包数似乎从未接近输入队列的大小，数据包的突发量仍可能使队列溢出。

2. 使用桥接过滤器减少连接网络上的广播和组播流量，或使用更多网际网络设备对网络分段。

3. 如果连接是串行链路，请增加带宽、应用优先级队列、增加保持队列大小或修改系统缓冲区大小。有关详细信息，请参阅第15章“排除串行线路故障”。

[1]MAC =介质访问控制

[2]LSAP =链路服务接入点

透明桥接:不稳定的生成树

症状：主机之间连接暂时中断。多个主机同时受到影响。

表20-4列出了可能导致此症状的问题，并提出了解决方案。

表 20-4：透明桥接:不稳定的生成树

可能的原因

建议的行动

链路抖动

1. 使用show span命令查看拓扑数量是否稳步增加。

2. 如果是，请使用show interface命令检查网桥之间的链接。如果此命令不显示两个网桥之间的链路抖动，请在网桥上使用debug spantree event特权执行命令。

这将记录与生成树相关的所有更改。在稳定拓扑中，不能有任何。唯一要跟踪的链路是将网桥设备连接在一起的链路。链路到终端站的过渡对网络没有影响。
注意：由于调试输出在CPU进程中被分配了高优先级，因此使用debug spantree event命令可能会使系统不可用。因此，请仅使用debug命令来排除特定问题，或在会话中使用debug命令来排除与Cisco技术支持人员的问题。此外，最好在网络流量低、用户较少的时段使用debug命令。如果在这些时间段内进行调试，则会降低debug命令开销进程增加影响系统使用的可能性。

根网桥继续更改/多个网桥声称是根网桥

1. 在不同网桥上使用show span命令检查整个桥接网络中根网桥信息的一致性。

2. 如果有多个网桥声称是根网桥，请确保在每个网桥上运行相同的生成树协议（请参见表20-6中的“生成树算法不匹配”表条目）。

3. 在根网桥上使用网桥<group> priority<number>命令，强制所需网桥成为根网桥。优先级越低，网桥成为根桥的可能性就越大。

4. 检查网络直径。设置标准生成树后，两台主机之间的网桥跳数不能超过七跳。

未交换Hello

1. 检查网桥是否相互通信。使用网络分析器或特权EXEC命令debug spantree tree查看是否交换了生成树hello帧。
注意：由于调试输出在CPU进程中被分配了高优先级，因此使用debug spantree event命令可能会使系统不可用。因此，请仅使用debug命令来排除特定问题，或在会话中使用debug命令来排除与Cisco技术支持人员的问题。此外，最好在网络流量低、用户较少的时段使用debug命令。如果在这些时间段内进行调试，则会降低debug命令开销进程增加影响系统使用的可能性。

2. 如果没有交换问询，请检查网桥上的物理连接和软件配置。

透明桥接:会话意外终止

症状：在透明桥接环境中成功建立连接，但会话有时突然终止。

表20-5列出了可能导致此症状的问题，并提出了解决方案。

表 20-5：透明桥接:会话意外终止

可能的原因

建议的行动

重新传输过多

1. 使用网络分析器查找主机重新传输。

2. 如果在慢速串行线路上看到重新传输，请增加主机上的传输计时器。有关如何配置主机的信息，请参阅供应商文档。有关如何排除串行线路故障的信息，请参阅第15章“排除串行线路故障”。 如果在高速LAN介质上看到重新传输，请检查是否按顺序发送和接收数据包或被任何中间设备（如网桥或交换机）丢弃。 根据需要排除LAN介质故障。有关详细信息，请参阅有关如何对包含网络中所用介质类型的介质进行故障排除的章节。

3. 使用网络分析器确定重传次数是否存在。

串行链路延迟过大

增加带宽、应用优先级队列、增加保持队列大小或修改系统缓冲区大小。有关详细信息，请参阅第15章“排除串行线路故障”。

透明桥接:循环和广播风暴

症状：数据包循环和广播风暴发生在透明网桥环境中。终端站被强制进行过度重新传输，这会导致会话超时或丢弃。

注意：数据包环路通常由网络设计问题或硬件问题引起。

表20-6列出了可能导致此症状的问题，并提出了解决方案。

桥接环路是桥接网络中最糟糕的情况，因为它可能会影响每个用户。在紧急情况下，快速恢复连接的最佳方法是手动禁用网络中提供冗余路径的所有接口。遗憾的是，如果您这样做，将很难确定桥接环路的原因。如果可能，请事先尝试表20-6操作。

表 20-6：透明桥接:循环和广播风暴

可能的原因

建议的行动

未实施生成树

1. 检查网际网络的拓扑图以检查可能的环路。

2. 消除任何存在的环路，或确保适当的链路处于备份模式。

3. 如果广播风暴和数据包环路持续存在，请使用show interfaces EXEC命令获取输入和输出数据包计数统计信息。如果这些计数器以异常高的速率递增（相对于正常流量负载），则网络中可能仍存在环路。

4. 实施生成树算法以防止环路。

生成树算法不匹配

1. 在每个网桥上使用show span EXEC命令来确定使用哪种生成树算法。

2. 确保所有网桥运行相同的生成树算法（DEC或IEEE）[1]。对于某些非常特定的配置（通常是涉及IRB的配置），可能需要在网络中同时使用DEC和IEEE生成树算法。 如果生成树协议中不匹配，请根据需要重新配置网桥，以便所有网桥使用相同的生成树算法。

注意：DEC和IEEE生成树算法不兼容。

多个桥接域配置不正确

1. 在网桥上使用show span EXEC命令，确保所有域组编号都与给定桥接域匹配。

2. 如果为网桥配置了多个域组，请确保正确分配所有域规范。使用bridge <group> domain <domain-number>全局配置命令进行任何必要的更改。

3. 确保桥接域之间不存在环路。域间桥接环境不提供基于生成树的环路防御。每个域都有自己的生成树，独立于其他域中的生成树。

链路错误（单向链路）、双工不匹配、端口上的高错误级别。

当应阻止的端口转为转发状态时，会出现环路。端口需要从附近的网桥接收BPDU才能保持阻塞状态。导致BPDU丢失的任何错误都可能是桥接环路的原因。

1. 从网络图中确定阻塞端口。

2. 使用show interface和show bridge EXEC命令检查桥接网络中应阻塞的端口的状态。

3. 如果您发现某个可能被阻止的端口当前正在转发或即将转发（即处于学习或侦听状态），则您找到了问题的真正根源。检查此端口是否收到BPDU。否则，连接到此端口的链路可能存在问题。然后检查链路错误、双工设置等)。

如果端口仍然收到BPDU，请转到您期望为此LAN指定的网桥。然后检查路径上指向根的所有链路。您会发现其中一条链路存在问题（前提是初始网络图正确）。

[1]IEEE =电气和电子工程师协会

致电思科系统TAC团队之前

当网络稳定时，收集尽可能多的有关其拓扑的信息。

至少收集以下数据：

- 网络的物理拓扑

- 根网桥（和备用根网桥）的预期位置

- 阻塞端口的位置

其他来源

书籍：

- 互连、网桥和路由器、Radia Perlman、Addison-Wesley

- Cisco LAN Switching、K.Clark、K.Hamilton、Cisco出版社

相关信息

- 透明桥接文档

- 技术支持和文档 - Cisco Systems