透明网桥最早于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。
思科路由器有三种不同的桥接实施方法:默认行为、并发路由和桥接(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]MAC =介质访问控制
[2]LSAP =链路服务接入点
症状:主机之间连接暂时中断。多个主机同时受到影响。
表20-4列出了可能导致此症状的问题,并提出了解决方案。
表 20-4:透明桥接:不稳定的生成树
可能的原因 | 建议的行动 |
---|---|
链路抖动 |
注意:由于调试输出在CPU进程中被分配了高优先级,因此使用debug spantree event命令可能会使系统不可用。因此,请仅使用debug命令来排除特定问题,或在会话中使用debug命令来排除与Cisco技术支持人员的问题。此外,最好在网络流量低、用户较少的时段使用debug命令。如果在这些时间段内进行调试,则会降低debug命令开销进程增加影响系统使用的可能性。 |
根网桥继续更改/多个网桥声称是根网桥 |
|
未交换Hello |
|
症状:在透明桥接环境中成功建立连接,但会话有时突然终止。
表20-5列出了可能导致此症状的问题,并提出了解决方案。
表 20-5:透明桥接:会话意外终止
可能的原因 | 建议的行动 |
---|---|
重新传输过多 |
|
串行链路延迟过大 | 增加带宽、应用优先级队列、增加保持队列大小或修改系统缓冲区大小。有关详细信息,请参阅第15章“排除串行线路故障”。 |
症状:数据包循环和广播风暴发生在透明网桥环境中。终端站被强制进行过度重新传输,这会导致会话超时或丢弃。
注意:数据包环路通常由网络设计问题或硬件问题引起。
表20-6列出了可能导致此症状的问题,并提出了解决方案。
桥接环路是桥接网络中最糟糕的情况,因为它可能会影响每个用户。在紧急情况下,快速恢复连接的最佳方法是手动禁用网络中提供冗余路径的所有接口。遗憾的是,如果您这样做,将很难确定桥接环路的原因。如果可能,请事先尝试表20-6操作。
表 20-6:透明桥接:循环和广播风暴
可能的原因 | 建议的行动 |
---|---|
未实施生成树 |
|
生成树算法不匹配 |
注意:DEC和IEEE生成树算法不兼容。 |
多个桥接域配置不正确 |
|
链路错误(单向链路)、双工不匹配、端口上的高错误级别。 | 当应阻止的端口转为转发状态时,会出现环路。端口需要从附近的网桥接收BPDU才能保持阻塞状态。导致BPDU丢失的任何错误都可能是桥接环路的原因。
|
[1]IEEE =电气和电子工程师协会
当网络稳定时,收集尽可能多的有关其拓扑的信息。
至少收集以下数据:
网络的物理拓扑
根网桥(和备用根网桥)的预期位置
阻塞端口的位置
书籍:
互连、网桥和路由器、Radia Perlman、Addison-Wesley
Cisco LAN Switching、K.Clark、K.Hamilton、Cisco出版社