源路由桥接(SRB)是令牌环环境中的站点通过多环网络建立到其目的地的路由的概念。本文档讨论SRB的组件,并提供基本配置和故障排除信息。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本文档假设读者了解源路由桥接的基本概念,如下所述:
站点到达另一个站点的第一步是创建一个称为Explorer的数据包。此数据包由网络中的所有网桥复制。它们都会添加有关数据包经过的位置的信息。由于这是通过网络构建的,因此终端站将开始接收这些数据包。然后,终端站决定使用哪条路由来返回发起者,或者它将发送另一个探测器,以便始发站可以确定路由。
在SRB中,路由信息字段(RIF)是浏览器的一部分,其中包含浏览器所经过的位置的信息。在RIF中,路由描述符是有关到网络路径的信息存储的。路由控制包含有关RIF本身的信息。下图显示RIF分为以下部分:
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。
路由控制(RC)字段从MAC令牌环帧的第14字节开始。这是令牌环帧上RIF字段的第一部分。
类型字段长度为3位。下表列出了广播指示灯。
价值 | 广播类型 |
---|---|
B'0XX' | 定向帧 |
B'10X' | 所有路由管理器 |
B'11X' | 单个路由管理器 |
定向帧表示该帧包含网络中已定义的路径,并且根据定义,RIF无需更改。
所有的路线探索者都经过整个网络。所有SRB必须将帧复制到除RIF中已有目标环的端口外的每个端口。
单路由探索器是通过网桥中由生成树算法(STA)构建的预定路径的探索器。站点应仅从网络接收一个路由管理器。
浏览器在路由信息字段中可以保持的振铃数有一个非常重要的限制。根据令牌环的定义,RIF总共可以容纳14个环。但是,IBM将网络网桥上RIF的限制为7个;思科也采用了这一限制。因此,Cisco路由器会丢弃已经横穿7个环的资源管理器。在Cisco路由器中可以设置一些参数来减少此值,以便达到x个环的数据包将被丢弃。这是控制网络中流量的有效方法。
此外,路由器仅检查探测器数据包上的RIF长度,但如果帧被定向,则不会注意。如果发送站使用静态RIF生成数据包,则路由器仅检查RIF以进行转发,并且可能有14个限制跳数。
此字段中的第三位保留(当前未使用,终端站将忽略)。
Length 字段长度为5位,包含RIF的长度(以字节为单位)。
方向位确定网络中的SRB应如何读取RIF,以遵循到达终端站的路径。
如果位设置为B'0,则应从左到右读取RIF。
如果设置为B'1',则RIF应从右到左读取。
最大帧位(3位)确定可通过网络传输的最大帧,如下图所示。
最大帧字段发生以下情况:
PC#1在此帧上构建RIF,在最大帧位中将B'111'。这在嗅探器中解释为4.9万。
SRB#1在两个接口上的MTU均为4K。源路由网桥向RIF添加有关环号的信息并修改长度字段和最大帧。在本例中,值更改为B'011'。
SRB#2的两个接口的MTU为2K。源路由网桥将最大帧更改为B'010'。
下图列出了可能的值。
价值 | 最大帧大小 |
---|---|
000 | 516 bytes |
001 | 1500 字节 |
010 | 2052 bytes |
011 | 4472 bytes |
100 | 8191 bytes |
101 | 114076 bytes |
110 | 17800 bytes |
111 | 用于所有路由探索器 |
路由指示符(RD)字段包含有关数据包到达目的站所应采用的路由的信息。令牌环网络中的每个环必须唯一,否则数据包可能在错误的位置完成。这在RSRB环境中尤其重要,因为路由器会缓存有关远程环的信息。路由指示符字段中的每个条目都包含环号和网桥号。环部分长12位,桥部分长4位。这使环的值可以从1到4095,网桥的值可以从1到16。思科路由器将这些值存储为十进制值,但RIF显示十六进制值。
RCF | 振铃 | bridge | 振铃 | bridge | 振铃 | bridge |
---|---|---|---|---|---|---|
C820 | 001 | 1 | 002 | 1 | 003 | 0 |
1100100000100000 | 000000000001 | 0001 | 000000000010 | 0001 | 000000000011 | 0000 |
上表包含十六进制的RIF,如show rif命令输出所示。然后,它以二进制显示相同的内容来解码它。解码版本如下表所示。
位的位置 | 价值 | 描述 |
---|---|---|
1-3 | 110 | 单个路由管理器 |
4-8 | 01000 | RD长度为8字节 |
9 | 0 | 在正向读取RIF |
10-12 | 010 | 最大帧2052 |
13-16 | 0000 | 预留 |
本节讨论如何为SRB配置Cisco路由器。此配置的一个重要细节是虚拟环的概念。虚拟环是路由器内部逻辑构建的虚拟环。它会连接到路由器的所有接口,这非常重要,因为接口只能指向一个目的环,而不能指向多个环。接口配置示例如下所示。
source-bridge ring-group 200 ... Interface tokenring 0/0 ip address 10.1.1.1 255.255.255.0 ring-speed 16 source-bridge 100 1 200
上述配置使用命令source-bridge ring-group 200设置虚拟环组200。接口的配置正确指向从环100到环200(即虚拟接口)。
您还可以配置,在配置中,您可以指向没有虚拟环组的接口。此命令示例如下:
Interface tokenring 0/0 ip address 10.1.1.1 255.255.255.0 ring-speed 4 source-bridge 100 1 300 Interface tokenring 0/1 ip address 10.1.2.1 255.255.255.0 ring-speed 16 source-bridge 300 1 100
上述配置连接SRB的前两个接口。现在,这两个接口可以交换SRB帧,但无法与此路由器上的任何其他源路由网桥接口通信。
虚拟环在远程源路由桥接(RSRB)和数据链路交换(DLSw)中起着必要的作用,因为必须为这些功能进行配置。
source-bridge spanning命令起着重要作用。当我们之前讨论不同类型的探险家时,我们提到了所有的探险家和单一的探险家。source-bridge spanning命令允许我们转发单个路由管理器帧。否则路由器将直接在接口上丢弃该帧。不会增加任何丢弃计数器来表示此情况。因此,在具有NetBIOS工作站的网络中,必须确保已启用生成。此外,如果已配置DLSw,则需要配置source-bridge spanning命令,因为DLSw将使用单个路由资源管理器帧来定位站点。在以下配置中,路由器配置为转发单个路由管理器帧:
source-bridge ring-group 200 Interface tokenring 0/0 ip address 10.1.1.1 255.255.255.0 ring-speed 4 source-bridge 100 1 200 source-bridge spanning Interface tokenring 0/1 ip address 10.1.2.1 255.255.255.0 ring-speed 16 source-bridge 300 1 200 source-bridge spanning
此配置的扩展版本如下所示。
source-bridge ring-group 200 Interface tokenring 0/0 ip address 10.1.1.1 255.255.255.0 ring-speed 4 source-bridge 100 1 200 source-bridge spanning 1 Interface tokenring 0/1 ip address 10.1.2.1 255.255.255.0 ring-speed 16 source-bridge 300 1 200 source-bridge spanning 1 bridge 1 protocol ibm
IBM生成树协议(STP)用于创建生成树,以便通过阻塞桥接环境上的端口,通过单个路径转发单个路由管理器帧。这与常规IEEE生成树相似,只是它仅用于单个路由探索器。如果您有此配置,则可能还需要监控路由器上的show spann命令输出以确定端口的状态,因为端口可能会根据拓扑进入阻塞状态。此路由器现已配置为参与IBM生成树协议。
source-bridge ring-group 200 Interface tokenring 0/0 ip address 10.1.1.1 255.255.255.0 ring-speed 4 source-bridge 100 1 200 source-bridge spanning 1 Interface tokenring 0/1 ip address 10.1.2.1 255.255.255.0 ring-speed 16 source-bridge 300 1 200 source-bridge spanning 1 bridge 1 protocol ibm
SRB在路由器中的一个重要部分是能够在源路由桥接网络中传递路由协议。路由器始终从路由的帧中删除LLC信息,并为目的介质重建LLC层。下图说明了这一点:
如果客户端A要到达客户端B,路由器A必须销毁帧中的所有LLC信息及其以下信息,为WAN创建LLC帧,然后将该帧分派给路由器B。路由器B现在收到该帧,销毁该帧中的WAN LLC信息,并准备好到达客户端B的IP帧。
路由器需要源路由信息才能到达客户端B,因为它是SRB上的环。然后,RouterB充当源路由网桥网络终端站,在该终端站中,它必须找到到达客户端B的路径。RouterB必须发送一个资源管理器来确定客户端B的位置。当客户端B响应路由器B时,它存储路由信息字段(RIF),并使用它向客户端B发送更多数据包。
在接口上配置多环时,路由器B的幕后情况就是这样。如果客户端B与路由器B处于同一环,则不需要此命令,因为路由器将在本地发送广播并从客户端B获得响应。此配置如下所示:
Interface tokenring 0/1 ip address 10.1.2.1 255.255.255.0 ring-speed 16 multiring ip
可以为特定多个协议配置多环,也可以为指定所有路由协议的多环全部配置多环。这仅对实际由路由器路由的协议生效。如果协议是桥接的,则不适用多环所有这些。
配置多环时,show rif命令非常重要。由于路由器必须缓存RIF,以便将来发往客户端B的数据包,因此它需要存储RIF,以避免为需要到达客户端B的每个数据包发送浏览器。
s4a#sh rif Codes: * interface, - static, + remote Dst HW Addr Src HW Addr How Idle (min) Routing Information Field 0000.30b0.3b69 N/A To3/2 * C820.0A01.0B02.0C00 s4a#
对于需要源路由IP数据包的IP网络,请使用show arp命令显示您尝试到达的站点的MAC地址。一旦您拥有了MAC地址,就可以使用show rif命令来确定路由器用于到达源路由网络中该站的路径。
s4a#sh arp Protocol Address Age (min) Hardware Addr Type Interface Internet 10.17.1.39 - 4000.0000.0039 SNAP TokenRing3/0 Internet 171.68.120.39 - 4000.0000.0039 SNAP TokenRing3/0 s4a#
在排除源路由网桥故障时,show命令非常有用。show interface命令的输出如下所示。
TokenRing3/2 is up, line protocol is up Hardware is cxBus Token Ring, address is 0000.30b0.3b69 (bia 0000.30b0.3b69) MTU 4464 bytes, BW 16000 Kbit, DLY 630 usec, rely 255/255, load 1/255 Encapsulation SNAP, loopback not set, keepalive set (10 sec) ARP type: SNAP, ARP Timeout 4:00:00 Ring speed: 16 Mbps Single ring node, Source Route Transparent Bridge capable Source bridging enabled, srn 25 bn 4 trn 31 (ring group) proxy explorers disabled, spanning explorer disabled, NetBIOS cache disabled Group Address: 0x00000000, Functional Address: 0x0800011A Ethernet Transit OUI: 0x0000F8 Last Ring Status 0:21:03(0x2000) Last input 0:00:02, output 0:00:02, output hang never Last clearing of "show interface" counters never Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 41361 packets input, 2149212 bytes, 0 no buffer Received 3423 broadcasts, 0 runts, 0 giants 3 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 40216 packets output, 2164005 bytes, 0 underruns 8 output errors, 0 collisions, 4 interface resets, 0 restarts 0 output buffer failures, 0 output buffers swapped out 4 transitions s4a#
在show interface命令输出中,请特别注意以下部分:
环速度可告诉您此环当前运行的速度。
启用SRB后,您还可以检查为环号和网桥号配置的信息。例如SRN是源环号,BN是网桥号,而TRN是为该路由器选择的虚拟环的目标环号。
最后振铃状态提供振铃的最后振铃状态。例如,0x2000 指示软件错误。可能的状态值列表如下所示。
#define RNG_SIGNAL_LOSS FIXSWAP(0x8000) #define RNG_HARD_ERROR FIXSWAP(0x4000) #define RNG_SOFT_ERROR FIXSWAP(0x2000) #define RNG_BEACON FIXSWAP(0x1000) #define RNG_WIRE_FAULT FIXSWAP(0x0800) #define RNG_HW_REMOVAL FIXSWAP(0x0400) #define RNG_RMT_REMOVAL FIXSWAP(0x0100) #define RNG_CNT_OVRFLW FIXSWAP(0x0080) #define RNG_SINGLE FIXSWAP(0x0040) #define RNG_RECOVERY FIXSWAP(0x0020) #define RNG_UNDEFINED FIXSWAP(0x021F) #define RNG_FATAL FIXSWAP(0x0d00) #define RNG_AUTOFIX FIXSWAP(0x0c00) #define RNG_UNUSEABLE FIXSWAP(0xdd00) /* may still be open */
drops 计数器有助于确定出站队列中已存在多少个丢弃,以用于进程级流量和输入内存缓冲区。这有助于确定节流的数量。
输出速率和输入速率可全面了解路由器在接口上转发/接收帧的繁忙程度。
残帧和巨帧是位于令牌环SPEC下方和上方的帧。您很少在令牌环中遇到这些,但它们在以太网中非常有用。
输入错误至关重要。如果环是健康的,应该没有。如果环中存在问题(如大量噪音),CRC将失败,帧将被丢弃。如果ignore count递增,则意味着输入缓冲区已满,路由器将丢弃发往我们接口的数据包。
接口重置可以是管理(发出clear int tok x命令),也可以是接口级别发生错误时的内部重置。
transitions 计数器表示接口从up到down的次数。
show source命令是排除源路由桥接故障的所有最重要信息的来源。此命令的输出示例如下所示。
s4a#show source Local Interfaces: receive transmit srn bn trn r p s n max hops cnt:bytes cnt:bytes drops Ch0/2 402 1 200 * f 7 7 7 0:0 0:0 0 Ch0/2 111 1 200 * f 7 7 7 0:0 0:0 0 Ch1/2 44 2 31 * f 7 7 7 17787:798947 18138:661048 0 To3/0 1024 10 200 * f 7 7 7 0:0 0:0 0 To3/1 222 1 200 * b 7 7 7 0:0 0:0 0 To3/2 25 4 31 * b 7 7 7 18722:638790 17787:692225 0 Global RSRB Parameters: TCP Queue Length maximum: 100 Ring Group 401: No TCP peername set, TCP transport disabled Maximum output TCP queue length, per peer: 100 Rings: Ring Group 200: No TCP peername set, TCP transport disabled Maximum output TCP queue length, per peer: 100 Rings: bn: 1 rn: 402 local ma: 4000.30b0.3b29 Channel0/2 fwd: 0 bn: 1 rn: 111 local ma: 4000.30b0.3b29 Channel0/2 fwd: 0 bn: 10 rn: 1024 local ma: 4000.30b0.3b29 TokenRing3/0 fwd: 0 bn: 1 rn: 222 local ma: 4000.30b0.3ba9 TokenRing3/1 fwd: 0 Ring Group 31: No TCP peername set, TCP transport disabled Maximum output TCP queue length, per peer: 100 Rings: bn: 4 rn: 25 local ma: 4000.30b0.3b69 TokenRing3/2 fwd: 17787 bn: 2 rn: 44 local ma: 4000.30b0.3b29 Channel1/2 fwd: 17919 Explorers: ------- input ------- ------- output ------- spanning all-rings total spanning all-rings total Ch0/2 0 0 0 0 0 0 Ch0/2 0 0 0 0 0 0 Ch1/2 0 0 0 0 219 219 To3/0 0 0 0 0 0 0 To3/1 0 0 0 0 0 0 To3/2 0 762 762 0 0 0 Local: fastswitched 762 flushed 0 max Bps 38400 rings inputs bursts throttles output drops Ch0/2 0 0 0 0 Ch0/2 0 0 0 0 Ch1/2 0 0 0 0 To3/0 0 0 0 0 To3/1 0 0 0 0 To3/2 762 0 0 0
show source命令分为以下几个部分:接口级SRB信息、RSRB部分和探测器部分。下面将介绍浏览器和SRB部分。RSRB部分在配置远程源路由桥接中介绍。
源路由网桥部分包含以下信息:
Local Interfaces: receive transmit srn bn trn r p s n max hops cnt:bytes cnt:bytes drops Ch0/2 402 1 200 * f 7 7 7 0:0 0:0 0 Ch0/2 111 1 200 * f 7 7 7 0:0 0:0 0 Ch1/2 44 2 31 * f 7 7 7 17787:798947 18138:661048 0 To3/0 1024 10 200 * f 7 7 7 0:0 0:0 0 To3/1 222 1 200 * b 7 7 7 0:0 0:0 0 To3/2 25 4 31 * b 7 7 7 18722:638790 17787:692225 0
对于每个接口,您应看到SRN、BN和TRN。这将告诉您从接口转发源路由信息的位置。
r:环组已分配给此接口。
p:接口配置了代理探测器。
s:生成树探测器已配置。
n:已配置NetBIOS名称缓存。
接收和发送计数显示此接口已处理的SRB流量的数量/字节。
丢弃:路由器接口丢弃的源路由帧的数量。这些丢弃的可能原因如下。
当没有路径时(源网桥语句配置不当)收到SRB数据包。
收到的RIF太长。
过滤器丢弃该帧。
未找到在源网桥语句中为接口指定的环组。
收到的RIF太短。
指定紧靠环组之外的目标环,但路由器未将其包含在来自任何远程对等体的远程环列表中。
RIF要求在其输入接口上输出帧。
收到格式不良的浏览器(例如,没有RII)。
发送的资源管理器带有D位集或奇数字节长度RIF字段。
在未指定生成的接口上收到生成资源管理器。
探索器框架试图找到它输入的环。
如果路由器尝试转发帧,将超出最大RIF长度。
未发往路由器的组播帧没有RIF,因此路由器无法转发。
Cisco IOS将资源管理器流量与常规源路由流量分离。这为我们提供了一个有益的故障排除工具。任何广播介质最严重的问题之一就是广播数量庞大。在以太网环境中,同一以太网下的广播可能占用太多计算机。在令牌环网络中,广播更被称为探险者,因为广播从振铃到振铃探索,在振铃上为站点探索。这些探险者只能穿越七个环。但是,在网状环境中,一个浏览器可以完成被多个网桥复制的过程,这可能导致太多的浏览器。
因为你可以区分探险家和真实数据,你可以利用它们。下表中列出的命令用于路由器中的资源管理器操作。
任务 | 命令 |
---|---|
设置最大资源管理器队列深度。 | source-bridge explorerq-depth depth |
通过过滤已转发一次的探测器,防止冗余网络拓扑中的探测器风暴。 | source-bridge explorer-dup-ARE-filter |
设置每个环的探测器的最大字节速率。 | source-bridge explorer-maxrate maxrate |
关掉探险者的快速切换。 | no source-bridge explorer-fastswitch |
在下图中,有两种不同类型的连接:路由器中从环到环,以及WAN中从环到环。从Cisco IOS 10.3开始,您可以使用快速交换浏览器,这比进程交换快五倍。可以使用explorer-maxrate或explorer-qdepth 命令执行此操作。
在上图中,站SFPC4发送一个资源管理器以访问SFPC1。路由器将快速切换资源管理器以振铃1和2。但路由器也会将资源管理器发送到资源管理器队列,以便RSRB处理将帧发送到远程站点(这是假设netbios enable name cache和proxy explorer命令已关闭)。
例如,如果这是一家庞大的NetBIOS商店,则资源管理器流量将非常高。要控制此情况,可以使用explorer-maxrate和explorer-qdepth参数。这两者在不同的操作级别上都有行为。Explorer maxrate在接口级别运行,快速交换代码和explorer-qdepth在进程级别运行。组合使用时,这些参数可提供对浏览器的最佳控制。explorer-maxrate的默认值是38400(小型)和64000(高端)。对于所有平台,explorer-qdepth默认为30。
以下是show source命令输出的资源管理器部分。
Explorers: ------- input ------- ------- output ------- spanning all-rings total spanning all-rings total Ch0/2 0 0 0 0 0 0 Ch0/2 0 0 0 0 0 0 Ch1/2 0 0 0 0 219 219 To3/0 0 0 0 0 0 0 To3/1 0 0 0 0 0 0 To3/2 0 762 762 0 0 0 Local: fastswitched 762 flushed 0 max Bps 38400 rings inputs bursts throttles output drops Ch0/2 0 0 0 0 Ch0/2 0 0 0 0 Ch1/2 0 0 0 0 To3/0 0 0 0 0 To3/1 0 0 0 0 To3/2 762 0 0 0
要确定浏览器的速率,请参阅下面列出的参数。
fastswitched显示了快速切换的浏览器数量。
已刷新显示由于接口级别超出maxrate值,路由器丢弃了多少个探测器。
max Bps表示路由器接受每个接口入站的每秒浏览器字节数量。
burst显示路由器达到浏览器队列中浏览器的最大数量的次数。
throttles显示路由器清理接口输入缓冲区的次数,因为路由器无法足够快地为这些缓冲区提供服务。这会导致在输入缓冲区中等待的所有未处理数据包被丢弃。
output drops是在此接口上出站的探测器数。
例如,查看上图中的旧金山路由器。它当前配置为以38,400 Bps的速率运行,总共有三个本地接口。每台都能以38,400 Bps的速度运行。每10秒检查一次,这意味着每10秒,路由器就能吸收3,840 Bps的探测器流量。如果将3,840除以64(平均为NetBIOS浏览器数据包),则相当于每10秒大约60个浏览器(每秒600个浏览器)。
这很重要,因为它可以告诉您路由器可以到达出站接口的探险器数量。如果流量从环2和环3流向环1,则环1的出站转发速率可能为每秒1200个探测器。这很容易在网络中造成问题。
explorer-queue是一种不同的机制,比maxrate慢五倍。按定义,资源管理器队列中的所有浏览器都进行进程交换。这通常是导致RSRB的原因,但取决于设置,因为您可以通过关闭explorer-fastswitch(有关RSRB的详细信息,请参阅配置远程源路由桥接),轻松告知路由器在进程交换模式下运行所有流量。 资源管理器队列处理的主要度量是show source输出中的突发值。这是路由器达到最大资源管理器队列深度的次数。如果队列总是超限,则路由器只会增加一次突发:首次达到最大值时。
show source interface命令提供了show source输出的更短版本。如果您有一台大型路由器,并且想要简要了解其配置方式,这会很有帮助。您还可以使用它确定路由器接口的MAC地址。此命令的输出示例如下所示:
s4a#show source interface Status v p s n r Packets Line Pr MAC Address srn bn trn r x p b c IP Address In Out Ch0/0 down dn 0 0 Ch0/1 admin dn 10.1.1.2 0 0 Ch0/2 up up 0 0 Ch1/0 admin dn 0 0 Ch1/1 up up 10.17.32.1 31201 45481 Ch1/2 up up 10.18.1.39 17787 18137 To3/0 admin dn 4000.0000.00391024 10 200 * f F 10.17.1.39 0 0 To3/1 admin dn 0000.30b0.3ba9 222 1 200 * b F 0 0 To3/2 up up 0000.30b0.3b69 25 4 31 * b F 41598 40421 To3/3 admin dn 0000.30b0.3be9 0 0 Lo0 up up 11.100.100.1 0 28899
另一个有用的命令是show ip interface brief。它汇总了每个端口的IP地址,并让您知道接口是否处于up/up状态。下表列出了其他几个有用的show命令。
任务 | 命令 |
---|---|
提供有关特定接口的源桥接状态的高级统计信息。 | show interfaces |
显示LLC2和SDLLC连接的任何当前本地确认的当前状态。 | show local-ack |
显示NetBIOS缓存的内容。 | show netbios-cache |
显示RIF缓存的内容。 | show rif |
显示当前源网桥配置和其他统计信息。 | show source-bridge |
显示路由器的生成树拓扑。 | show span |
显示硅交换处理器(SSP)统计信息摘要。 | show sse summary |
排除任何网络故障时,请从底层开始。不要立即认为代码中存在Bug。首先,在相关路由器上发出show interface命令。您将看到下列输出:
TokenRing3/2 is up, line protocol is up Hardware is cxBus Token Ring, address is 0000.30b0.3b69 (bia 0000.30b0.3b69) MTU 4464 bytes, BW 16000 Kbit, DLY 630 usec, rely 255/255, load 1/255 Encapsulation SNAP, loopback not set, keepalive set (10 sec) ARP type: SNAP, ARP Timeout 4:00:00 Ring speed: 16 Mbps Single ring node, Source Route Transparent Bridge capable Source bridging enabled, srn 25 bn 4 trn 31 (ring group) proxy explorers disabled, spanning explorer disabled, NetBIOS cache disabled Group Address: 0x00000000, Functional Address: 0x0800011A Ethernet Transit OUI: 0x0000F8 Last Ring Status 0:21:03 <Soft Error> (0x2000) Last input 0:00:02, output 0:00:02, output hang never Last clearing of "show interface" counters never Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 41361 packets input, 2149212 bytes, 0 no buffer Received 3423 broadcasts, 0 runts, 0 giants 3 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 40216 packets output, 2164005 bytes, 0 underruns 8 output errors, 0 collisions, 4 interface resets, 0 restarts 0 output buffer failures, 0 output buffers swapped out 4 transitions s4a#
从此输出中,请自问以下问题:
接口是否打开/打开?
每秒有多少个数据包进入或离开接口?
是否存在任何输入错误(如CRC、帧、超限等)?
当然,如果您在40亿个输入数据包中看到4000个输入错误,那就不会被视为问题。但是,8000个中的4000个传输非常糟糕。
如果您看到一个接口正在发送和接收数据包,则下一个命令是show interface token x accounting。此命令让您了解通过接口的数据包类型。所有路由的流量将显示为独立于网桥流量。如果接口上只有SRB,您将看到这些内容。此命令的输出示例如下所示。
s4a#sh int tok 3/2 acc TokenRing3/2 Protocol Pkts In Chars In Pkts Out Chars Out SR Bridge 10674 448030 5583 187995 LAN Manager 119 4264 4 144 CDP 6871 2039316 5326 1549866 s4a#
在此输出中,您可以看到只执行SRB、思科发现协议(CDP)和LAN网络管理器的接口。使用此信息确定路由器是否在接口上接收源路由的数据包。
一旦排除了接口转发和接收源路由帧的可能性,请查看路由器配置以验证源路由网桥配置,如下所示。
! interface TokenRing3/2 ip address 10.17.30.1 255.255.255.0 ring-speed 16 source-bridge 25 4 31 source-bridge spanning !
从此配置中,您可以确定路由器配置为从环25到网桥4到环31的源路由。检验路由器的配置可显示环31是已配置的虚拟环。它还配置为源网桥生成,这意味着路由器将转发单个路由管理器帧。您需要考虑的一些配置问题列于下面。
还有谁指向31?
指向虚拟环31的另一个接口是否显示入站和出站数据包(源路由)?
如果接口指向具有源网桥远程对等体的虚拟环,请参阅配置远程源路由桥接以从此进行诊断。
上述步骤一般会排除配置问题或没有从工作站接收数据包。如果您使用任何类型的过滤、NetBIOS名称缓存或代理浏览器,并且无法通过路由器连接,请从基础知识开始。始终尝试将接口移到其最简单的配置。删除条目或进行双重验证。接口上的访问列表结构不正确也可能导致问题。示例如下所示:
! interface TokenRing3/2 ip address 10.17.30.1 255.255.255.0 no keepalive ring-speed 16 source-bridge 25 4 31 source-bridge spanning source-bridge input-address-list 700 ! access-list 700 deny 4000.3745.0001 8000.0000.0000 access-list 700 permit 0000.0000.0000 ffff.ffff.ffff
这将使路由器丢弃源地址为4000.3745.0001的所有数据包。要验证整个框中的访问列表,请使用show access-list命令。此命令输出将告诉您路由器中的所有访问列表。
问题的另一个原因可能是代理探险者。如果配置了代理浏览器,请查看show rif命令输出,如下所示。
s4a#show rif Codes: * interface, - static, + remote Dst HW Addr Src HW Addr How Idle (min) Routing Information Field 0000.30b0.3b69 N/A To3/2 * - s4a#
浏览访问列表并查找您尝试通过路由器到达的工作站/主机的MAC地址。代理浏览器可能缓存了错误信息,并且正在向错误方向发送帧。尝试从所讨论路由器的接口中删除代理探测器,然后执行清除rif。如果您正在为RSRB运行本地确认,则路由器需要RIF在本地确认帧。在繁忙的路由器中,这可能有点危险。
NetBIOS名称缓存是问题的另一个可能原因。要验证NetBIOS名称缓存表,请使用show netbios 命令。它提供有关由于缓存功能而未通过路由器发送的帧数的有用信息。这也与show rif命令有关;如果路由器将数据包从复制到所有端口中保存,则它必须存储有关如何到达真正目的地的信息。
要清除上述部分缓存,请使用下表中列出的命令。
任务 | 命令 |
---|---|
清除所有动态获知的NetBIOS名称的条目。 | clear netbios-cache |
清除整个RIF缓存。 | clear rif-cache |
清除SRB统计计数器。 | clear source-bridge |
重新初始化Cisco 7000系列上的SSP。 | clear sse |
另一个常见情况是同一环上有多个网桥,如下图所示。
当同一环有多条路径来自另一个环时,每个网桥必须具有不同的网桥编号。上图所示的场景在具有DLSw+和RSRB的环境中最常见。
请勿将netbios名称缓存与DLSw一起使用。DLSw内置了类似的功能。同时使用这两种方法只会产生更多问题。
如果您有双TIC环境(其中有两个FEP具有相同的MAC地址),请不要运行代理探索器,因为路由器将捕获RIF中两个MAC地址,但只使用表中的第一个。
在运行local-acknowledgement的RSRB环境中,clear rif命令要小心。
调试SRB可能非常复杂。您最常使用的debug命令是debug source error和debug source events。这些命令在RSRB环境中最有用。
您应尽量避免debug source bridge debug token ring命令,即使这些命令最能确定帧是否确实通过路由器。这些命令在调试时向屏幕发送大量输出,这可能导致路由器挂起。如果您通过telnet连接到路由器,则效果不会那么严重,但路由器CPU的使用率会非常高,而高流量会使效果更差。
Cisco IOS 10.3及更高版本中有一项功能,允许您应用访问列表来调试输出。这意味着即使在最繁忙的路由器中,您也可以进行调试。请谨慎使用此功能。
要使用此功能,请首先在路由器上构建1100类型访问列表,如下所示。
access-list 1100 permit 4000.3745.1234 8000.0000.0000 0800.1234.5678 8000.0000.0000 access-list 1100 permit 0800.1234.5678 8000.0000.0000 4000.3745.1234 8000.0000.0000
此访问列表允许流量进出上述两个MAC地址,允许流量在两个方向上传输。8000.0000.0000位掩码告知路由器忽略MAC地址的第一位。这是为了避免源路由且设置了高位的帧出现问题。您可以更改掩码以忽略MAC地址上需要的任何内容。这对于将访问列表应用于所有类型的供应商特定MAC非常有用。
构建访问列表后,您可以将其应用于要应用的调试,如下所示。
s4a#debug list 1100 s4a#debug token ring Token Ring Interface debugging is on for access list: 1100 s4a#
列表:(可选)0-1199范围内的访问列表编号。
接口:(可选)接口类型。允许的值包括:
channel - IBM通道接口
以太网 - IEEE 802.3
fddi - ANSI X3T9.5
null — 空接口
serial — 串行
令牌环 - IEEE 802.5
tunnel — 隧道接口
下面列出了其他debug命令。
debug llc2 errors
debug llc2 packets
debug llc2 state
debug rif
debug sdlc
debug token ring
此功能允许您使用该访问列表调试令牌环接口(接口进出的所有数据包),这对于确定路由器中数据包的状态非常有用。如果执行RSRB,则需要发出该访问列表下的常用调试源网桥,以确定该代码是否看到了数据包。