目录

简介

先决条件

要求

使用的组件

规则

什么是VLAN间路由？

RSM 结构

逻辑 体系结构

已实施的结构

RSM特定故障排除

访问 RSM

性能问题

VLAN间路由常见问题

使用RSM自动状态功能

回退桥接

临时黑洞（ST 收敛）

结论

相关信息

简介

本文档提供有关在Catalyst 5000系列交换机上使用路由交换模块(RSM)排除VLAN间路由故障的信息。在排除RSM故障时，首先要将其视为简单的外部路由器。在涉及VLAN间路由时，RSM特定问题很少导致问题。因此，本文档仅涵盖可能发生这种情况的两个主要领域：

- RSM硬件相关问题:本文档介绍RSM架构，并提供要跟踪的其他RSM相关计数器的详细信息。

- VLAN间配置特定问题（主要与路由器和交换机之间的交互有关）：这同样适用于其他内部路由器（例如多层交换功能卡[MSFC]、路由交换功能卡[RSFC]、8510CSR等），通常也适用于外部路由器。

注意：本文档不涉及在Catalyst 4000、5000和6000交换机上配置VLAN间路由。有关这些详细信息，请参阅以下文档：

- Catalyst 4500/4000系列的路由模块(WS-X4232-L3)配置和概述

- 为Catalyst 4000第3层服务模块的安装和配置说明中的“配置VLAN间路由模块”部分

- 在运行 CatOS 系统软件的 Catalyst 5500/5000 和 6500/6000 交换机上使用内部路由器（第三层卡）配置 VLAN 间路由

本文档不涉及基本路由协议故障排除或多层交换(MLS)相关问题。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文件规则的更多信息请参见“ Cisco技术提示规则”。

什么是VLAN间路由？

在讨论VLAN间路由之前，本文档重点介绍VLAN概念。这不是关于VLAN需求的理论讨论，而只是简单地讨论VLAN在交换机上的运行方式。在交换机上创建VLAN时，就好像您将交换机拆分成多个虚拟网桥，每个虚拟网桥只有属于同一VLAN的桥接端口。

此图表表示交换机，它有9个端口分配给三个不同的VLAN:

这完全等同于以下网络（由三个独立网桥组成）：

在交换机中，由于每个VLAN都创建一个单独的网桥，因此有三个不同的网桥。由于每个VLAN都创建一个单独的生成树协议(STP)实例，因此STP维护着三个不同的转发表。

使用第二张图，很明显，虽然连接到同一物理设备，但属于不同VLAN的端口无法直接在第2层(L2)通信。 即使可能，这也不合适。例如，如果将端口1连接到端口4，则只需将VLAN1合并到VLAN2。在这种情况下，没有理由使用两个单独的VLAN。

VLAN之间唯一需要的连接是通过路由器在第3层(L3)实现的。这是VLAN间路由。为了进一步简化图，VLAN表示为不同的物理以太网段，因为您并不真正感兴趣交换机提供的特定桥接功能。

在此图中，两个VLAN被视为两个不同的以太网网段。VLAN间流量需要通过外部路由器。如果主机A要与主机B通信，它通常使用路由器作为默认网关。

RSM 结构

逻辑 体系结构

您可以将RSM视为外部路由器，该路由器具有多个接口，这些接口直接连接到Catalyst 5000交换机的不同VLAN中。

这些接口不是称为以太网接口，而是根据它们所连接的VLAN命名的。（接口VLAN1直接连接到VLAN1，依此类推。）

已实施的结构

RSM是Catalyst 5000线卡内的Cisco 7500路由交换处理器(RSP)路由器。您无需对卡的架构了如指掌即可对其进行配置和故障排除。但是，了解RSM的构建方式有助于了解它与普通外部路由器有何不同。在介绍show controller c5ip命令时，此知识尤其重要。

此图找出RSM线卡中的主要组件：

Catalyst 5000接口处理器

Catalyst 5000接口处理器(C5IP)是RSM的一部分，它模拟Catalyst 7500系统IP，并将Catalyst 5000交换总线作为网络接口。C5IP包括R4700处理器和两个SAGE专用集成电路(ASIC)，负责访问Catalyst 5000交换总线。

SAGE

这两个ASIC从交换总线获取数据包并缓冲它们。除了数据包中的数据，它们还会获得一个索引，用于标识交换机中数据包的目的地。

目的VLAN接口不是根据数据包本身的内容确定的，而是根据索引得出的。数据包和索引首先存储在SAGE内的两个不同的FIFO中。读取索引，并在目标VLAN的区域保留必要的共享内存。然后，使用直接存储器访问(DMA)将数据包复制到存储器设备(MEMD)中到SAGE。

两个SAGE并行工作以在路由器和交换总线之间通信，可能导致数据包传输顺序不正确。（例如，在SAGE0上接收的大数据包可以在SAGE1稍后接收的小数据包之后传输。） 为避免这种情况，每个VLAN被静态分配给给给定的SAGE。此操作在启动时自动完成。（根据路由器，VLAN与两个DMA通道中的一个相关联，每个通道都通向SAGE。） 来自给定VLAN的数据包始终按顺序传送。

MEMD

MEMD是路由器用于发送和接收数据包的共享内存。RSM上每个已配置的VLAN接口都分配了可用共享内存的一部分。配置的VLAN接口越多，每个接口的共享内存就越少。VLAN接口保留其共享内存的一部分，即使在禁用或关闭时也是如此。只有管理性地添加或删除VLAN接口，才会触发VLAN接口之间MEMD的新重新分区。

RSM特定故障排除

通常的Cisco IOS®路由器文档中未涵盖的RSM特定主要问题是访问RSM的问题，以及性能问题。

访问 RSM

RSM可通过三种不同方式访问：

- Telnet至RSM

- 从交换机Supervisor向RSM发起会话

- 直接控制台连接

Telnet至RSM

要Telnet至RSM，您需要知道分配给其其中一个VLAN接口的IP地址。Telnet会话的工作方式与您尝试连接到普通Cisco IOS路由器时完全相同。您可能需要为vty分配密码才能实现Telnet和启用访问。

此示例显示从Supervisor引擎到RSM的Telnet会话，其中VLAN1 IP地址为10.0.0.1:

sup> (enable) telnet 10.0.0.1

Trying 10.0.0.1...

Connected to 10.0.0.1.

Escape character is '^]'.

User Access Verification

Password: rsm> enable

Password: rsm# show run

!--- Output suppressed.

!

hostname rsm

!

enable password ww

!--- An enable password is configured.

!

!--- Output suppressed.

line vty 0 4

password ww

login

!--- Login is enabled. A password must be configured on the vty.

!

end

这类似于其他外部路由器Cisco IOS配置。

从交换机Supervisor向RSM发起会话

使用Supervisor引擎的session x命令将您连接到插槽x中的RSM。

该方法与前一个方法相同：RSM有一个隐藏的VLAN0接口，其IP地址为127.0.0.(x+1)，其中x是安装RSM的插槽。session 命令会向此地址发出隐藏的Telnet会话。

注意：此时，vty和使能口令不必在配置中即可获得对RSM的完全访问权限。

sup> (enable) show module

Mod Slot  Ports      Module-Type Model          Status

--- ---- ----- ------------------------- -------------------

1     1    0     Supervisor III WS-X5530          ok

2     2          Route Switch Ext Port

3     3    1     Route Switch WS-X5302            ok

4     4   24     10/100BaseTX Ethernet WS-X5225R  ok

5     5   12     10/100BaseTX Ethernet WS-X5203   ok

!--- Output suppressed.

sup> (enable) session 3

Trying Router-3...

Connected to Router-3.

Escape character is '^]'.

rsm> enable

rsm#

使用Supervisor引擎命令show module标识交换机中安装RSM的插槽。您可以使用session命令直接访问它。

直接控制台连接

RSM上的系统控制台端口是用于连接数据终端的DB-25插座DCE端口，可用于配置和与系统通信。使用提供的控制台电缆将终端连接到RSM上的控制台端口。控制台端口位于RSM上辅助端口旁，并标记为控制台。

在连接控制台端口之前，请检查终端文档以确定您将使用的终端的波特率。终端的波特率必须与默认波特率（9600波特）匹配。 将终端设置为：9600波特、8个数据位、无奇偶校验和2个停止位(9600、8N2)。

无法访问RSM

RSM可以出于多种原因被隔离。即使无法与其连接，你也可以从外面看到一些生命迹象：

- 检查RSM上LED的状态:

- CPU Halt LED is OFF — 系统检测到处理器硬件故障。

- 橙色状态LED — 模块已禁用、测试正在进行或系统启动正在进行。

- 检查Supervisor引擎，查看交换机是否能看到RSM。为此，请发出show module 命令：

sup> (enable) show module

Mod Slot Ports    Module-Type Model              Status

--- ---- ----- -------------------------  -------------------

1    1    0    Supervisor III WS-X5530             ok

2    2         Route Switch Ext Port

3    3    1    Route Switch WS-X5302               ok

4    4   24    10/100BaseTX Ethernet WS-X5225R     ok

5    5   12    10/100BaseTX Ethernet WS-X5203      ok

!--- Output suppressed.

在尝试连接控制台之前，切勿声明您的RSM已死。如您所见，会话和Telnet访问都依赖于到RSM的IP连接。例如，如果RSM正在启动或停滞在ROMMON模式下，则无法通过Telnet或会话访问它。不过，这是相当正常的。

即使RSM显示有故障，也尝试连接到其控制台。这样，您可能会看到一些错误消息，这些错误消息将显示在此处。

性能问题

与RSM相关的大多数性能问题可以采用与普通Cisco IOS路由器完全相同的方式进行故障排除。本节重点介绍RSM实施的具体部分，即C5IP。命令show controller c5ip可提供有关C5IP操作的信息。此输出描述了其一些重要字段：

RSM# show controllers c5ip

DMA Channel 0 (status ok)

51 packets, 3066 bytes

One minute rate, 353 bits/s, 1 packets/s

Ten minute rate, 36 bits/s, 1 packets/s

Dropped 0 packets

Error counts, 0 crc, 0 index, 0 dmac-length, 0 dmac-synch, 0 dmac-timeout

Transmitted 42 packets, 4692 bytes

One minute rate, 308 bits/s, 1 packets/s

Ten minute rate, 32 bits/s, 1 packets/s

DMA Channel 1 (status ok)

Received 4553 packets, 320877 bytes

One minute rate, 986 bits/s, 2 packets/s

Ten minute rate, 1301 bits/s, 3 packets/s

Dropped 121 packets

0 ignore, 0 line-down, 0 runt, 0 giant, 121 unicast-flood

Last drop (0xBD4001), vlan 1, length 94, rsm-discrim 0, result-bus 0x5

Error counts, 0 crc, 0 index, 0 dmac-length, 0 dmac-synch, 0 dmac-timeout

Transmitted 182 packets, 32998 bytes

One minute rate, 117 bits/s, 1 packets/s

Ten minute rate, 125 bits/s, 1 packets/s

Vlan Type DMA Channel Method

1 ethernet 1 auto

2 ethernet 0 auto

Inband IPC (status running)

Pending messages, 0 queued, 0 awaiting acknowledgment

Vlan0 is up, line protocol is up

Hardware is Cat5k Virtual Ethernet, address is 00e0.1e91.c6e8 (bia 00e0.1e91.c6e8)

Internet address is 127.0.0.4/8

MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,

reliability 255/255, txload 1/255, rxload 1/255

Encapsulation ARPA, loopback not set

ARP type: ARPA, ARP Timeout 04:00:00

Last input 00:00:00, output 00:00:00, output hang never

Last clearing of "show interface" counters never

Queueing strategy: fifo

Output queue 0/40, 0 drops; input queue 0/75, 0 drops

5 minute input rate 0 bits/sec, 1 packets/sec

5 minute output rate 0 bits/sec, 0 packets/sec

53 packets input, 3186 bytes, 0 no buffer

Received 0 broadcasts, 0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

RSM#

DMA通道0/1

RSM内的RSP路由器通过两个不同的DMA通道（通向两个SAGE ASIC）与交换机通信。 每个VLAN接口都自动与其中一个DMA通道关联。show controllers c5ip命令在两个不同的部分显示每个控制器的信息。

接收/传输

这些统计信息有助于识别不同DMA通道上的负载。查找与其他信道相比稳定过载的DMA信道。如果所有流量密集型VLAN都分配到同一DMA通道，则可能会发生这种情况。如有必要，可以使用interface命令dma-channel将VLAN接口手动分配给特定DMA通道。

已丢弃

这表示RSM接收但丢弃的数据包数。当与数据包一起收到的索引未将RSM指定为数据包的特定目的地时，会发生这种情况。

错误计数

- CRC — 当RSM检测到错误的CRC时，会出现循环冗余循环(CRC)错误。背板上不应存在任何CRC错误的数据包，RSM检测到这些数据包表明某些线卡或其他背板连接设备无法正常工作。

注意：CRC错误也可能来自通过ISL中继连接的远程设备。大多数Catalyst线卡不检查从背板接收并在中继上转发的数据包的CRC。

- index — 当索引不准确时会出现索引错误。C5IP不知道它为什么收到此数据包。这也会增加“已丢弃”计数器。

- dmac-length — 当C5IP接口阻止SAGE ASIC超量运行最大传输单元(MTU)大小时，会发生这些错误，如果未被检测，将损坏路由器共享内存。

- dmac-synch — 如果SAGE ASIC丢弃数据包，则数据包FIFO和索引FIFO将失去同步。如果出现此错误，则自动检测到该错误，并且dmac-synch计数器递增。这种情况不太可能发生，但如果发生，性能影响将极低。

- dmac-timeout — 此计数器已添加到Cisco IOS软件版本11.2(16)P和12.0(2)中的show controllers c5ip命令。 当DMA传输未在最长传输所需的最长时间内完成时，该DMA传输会递增。它表示硬件故障，而显示此计数器非零值的RSM是很好的替换候选。

- ignore — 当路由器用完输入数据包的MEMD缓冲区时，会发生忽略。当CPU处理数据包的速度不如它们传入时发生这种情况。这可能是因为CPU繁忙的原因。

- line-down - Line-down表示发往线路协议关闭VLAN的数据包已丢弃。C5IP收到了一个VLAN接口的数据包，它认为该接口已关闭。这不应发生，因为交换机应停止将数据包转发到关闭的RSM接口。但是，由于RSM声明接口关闭与交换机收到通知之间的时间安排，您可能会看到一些接口关闭的情况。

- runt/giant — 此计数器跟踪无效大小的数据包。

- unicast-flood — 单播泛洪数据包是发送到特定MAC地址的数据包。Catalyst 5000内容可寻址存储器(CAM)表不知道MAC地址位于哪个端口，因此它将数据包泛洪到VLAN上的所有端口。RSM也会接收这些数据包，但除非该VLAN上配置了桥接，否则它对不匹配其自身MAC地址的数据包不感兴趣。RSM会丢弃这些数据包。这相当于以太网接口芯片中实际以太网接口上发生的情况，该接口芯片被编程为忽略其他MAC地址的数据包。在RSM中，这在C5IP软件中完成。大多数丢弃的数据包是单播泛洪数据包。

- Last drop — 此计数器显示有关上次丢弃的数据包的特定信息。这是本文档范围之外的低级信息。

DMA通道间的VLAN分布

以下是配置了十个VLAN接口的RSM上show controllers c5ip命令的输出部分：

Vlan Type DMA Channel Method

1 ethernet 1 auto

2 ethernet 0 auto

3 ethernet 1 auto

4 ethernet 0 auto

5 ethernet 1 auto

6 ethernet 0 auto

7 ethernet 1 auto

8 ethernet 0 auto

9 ethernet 1 auto

10 ethernet 0 auto

此输出显示给定VLAN接口分配给哪个DMA通道。您可以看到奇数VLAN转到通道0，而偶数VLAN链接到通道1。如有必要，可使用接口配置命令dma-channel对此通信进行硬编码。本示例显示如何将RSM的接口VLAN1分配给DMA通道0:

RSM# show controllers c5ip

!--- Output suppressed.

Vlan Type DMA Channel Method

1 ethernet 1 auto

2 ethernet 0 auto

!--- Output suppressed.

RSM# configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

RSM(config)# interface vlan 1

RSM(config-if)# dma-channel 0

RSM(config-if)# ^Z

RSM#

RSM# show controllers c5ip

!--- Output suppressed.

Vlan Type DMA Channel Method

1 ethernet 0 configured

2 ethernet 0 auto

!--- Output suppressed.

VLAN0信息

VLAN0的主要目的是确保与交换机的Supervisor引擎有效通信。由于这是隐藏接口，因此不能使用简单的show interface vlan0命令查看有关它的统计信息。

VLAN间路由常见问题

使用RSM自动状态功能

桥接的一个常见问题是，断开的链路可以很容易地将L2网络分成两个部分。由于不连续网络中断了路由，因此应不惜一切代价避免出现这种情况。（这通常通过部署冗余链路来实现。）

以下示例为例，在交换机2上连接的客户端与交换机1上连接的服务器通信：

仅考虑从客户端到服务器的流量。来自VLAN3中客户端的传入流量由RSM2路由，RSM2通过其接口VLAN2直接连接到服务器的子网。紫色箭头表示遵循的路径：

假设交换机1和交换机2之间的链路中断VLAN1。这里的主要问题是，从RSM2的角度看，网络中没有任何变化。RSM2仍有一个直接连接到VLAN1的接口，它通过此路径将流量从客户端转发到服务器。交换机2中的流量丢失，客户端与服务器之间的连接中断。

RSM自动状态功能旨在解决此问题。如果交换机上没有特定VLAN的启用端口，则RSM的对应VLAN接口将关闭。

在本例中，当交换机1和交换机2之间VLAN中的链路发生故障时，交换机2上VLAN1中的唯一端口将断开（链路断开）。 RSM自动状态功能禁用RSM2上的接口VLAN1。现在接口VLAN1关闭，RSM2可以使用路由协议为发往服务器的数据包查找另一路径，并最终通过另一个接口转发流量，如下图所示：

RSM自动状态仅在VLAN中没有其他端口启用时才起作用。例如，如果VLAN1中的另一个客户端连接到交换机2，或者机箱中的RSM定义了接口VLAN1，则如果交换机1和交换机2之间的链路发生故障，接口VLAN1将不会被禁用。然后流量将再次中断。

默认情况下，RSM自动状态功能已启用。如果需要，可以在Supervisor引擎上使用set rsmautostate命令手动禁用它：

sup> (enable) show rsmautostate

RSM Auto port state: enabled

sup> (enable) set rsmautostate disable

sup> (enable) show rsmautostate

RSM Auto port state: disabled

回退桥接

回退桥接包括VLAN之间的桥接协议，同时路由其他协议。如果可能，您应避免此类配置，并仅在过渡迁移期间使用它。通常，当您使用不同的IP子网（每个子网位于不同的VLAN上）对网络进行分段，但您希望继续桥接一些旧的不可路由协议（例如，局域网传输[LAT]）时，就需要这样做。 在这种情况下，您希望将RSM用作IP的路由器，但用作其他协议的网桥。只需在RSM接口上配置桥接，同时保留IP地址即可。以下示例说明使用回退桥接的非常简单的网络，以及此类配置可能出现的最常见问题。

这个非常简单的网络由两个VLAN组成，对应两个不同的IP子网。给定VLAN中的主机可以将两个RSM中的任意一个用作默认网关（甚至使用热备用路由器协议[HSRP]），因此可以与其他VLAN中的主机通信。网络如下所示：

两个RSM也配置为在其接口（VLAN1和VLAN2）之间桥接其他协议。假设您有提供LAT服务的主机和使用它们的客户端。您的网络将如下所示：

在此图中，每个Catalyst分为两个不同的网桥（每个VLAN一个）。 您可以看到，两个VLAN之间的桥接导致两个VLAN合并。就桥接协议而言，您只有一个VLAN，LAT服务器和客户端可以直接通信。当然，这也意味着您在网络中有环路，STP必须阻塞一个端口。

如您所见，此阻塞端口将引起问题。交换机是纯L2设备，无法区分IP和LAT流量。因此，如上图所示，如果交换机2阻塞了一个端口，它会阻塞所有类型的流量（IP、LAT或其他）。 因此，您的网络如下所示：

VLAN2分为两部分，您的子网10.2.0.0不连续。使用此配置，主机10.2.0.10无法与主机10.2.0.20通信，尽管它们位于同一子网和VLAN中。

解决方案是在唯一能够区分L2和L3流量的设备上移动阻塞端口。该设备是RSM。实现这一点主要有两种方法：

- 通过调整STP参数：您需要增加一台或多台设备的成本，以便最终阻塞端口位于RSM1或RSM2上。此方法不太灵活，意味着STP配置非常严格。添加交换机或更改链路带宽（快速以太网或千兆以太网）可能导致调整的完全返工。

- 在RSM上使用不同的生成树算法(STA):交换机只运行IEEE STA，对DEC STP完全透明。如果在两个RSM上配置DEC STP，它们的工作方式就像它们直接连接在一起一样，其中一个会阻塞。下图说明了以下内容：

临时黑洞（ST 收敛）

在发生故障时测试其网络重新配置速度的客户通常会处理与STP相关的配置问题。考虑以下网络，其中客户端通过两条不同的路径访问服务器。默认情况下，从客户端到服务器的流量由RSM2通过接口VLAN2路由：

为了执行测试，用户中断了交换机2和交换机3之间的链路。相应的端口立即断开，RSM自动状态功能使RSM2上的接口VLAN2断开。服务器的直连路由从RSM2的路由表中消失，RSM2通过RSM1快速获取新路由。OSPF)或增强型内部网关路由协议(EIGRP)，收敛速度非常快，因此在此操作期间几乎不会丢失ping。

在发生故障时，两条路径（黄色VLAN2和绿色VLAN3）之间的切换已立即进行。但是，如果用户在Switch 2和Switch 3之间重新建立链路，客户端将在约30秒内失去与服务器的连接。

原因也与STA有关。运行STA时，新连接的端口首先经过侦听和学习阶段，然后进入转发模式。在前两个15秒的阶段，端口为up状态，但不传输流量。这意味着，一旦链路连接，RSM自动状态功能会立即重新启用RSM2上的接口VLAN2，但流量在交换机2和交换机3之间链路上的端口到达转发阶段后才能通过。这解释了客户端与服务器之间暂时连接的丢失。如果交换机1和交换机2之间的链路不是中继链路，您可以启用PortFast功能跳过侦听和学习阶段并立即收敛。

注意：PortFast在中继端口上不工作。有关详细信息，请参阅使用 PortFast 和其他命令解决工作站启动连接延迟问题。

结论

本文档重点介绍一些RSM特定问题以及一些非常常见的VLAN间路由问题。只有在尝试了所有正常的Cisco IOS路由器故障排除程序时，此信息才有用。如果由RSM路由的一半数据包由于路由表错误而丢失，则尝试解释DMA通道统计信息并无帮助。即使一般的VLAN间路由问题也是高级主题，并且不经常发生。在大多数情况下，将RSM（或交换机内的任何其他集成路由设备）视为简单的外部Cisco IOS路由器就足以排除交换环境中的路由问题。

相关信息

- IP 路由协议支持页

- IP多层交换故障排除

- 配置 InterVLAN 路由

- 使用 PortFast 和其他命令解决工作站启动连接延迟问题

- LAN 产品支持页

- LAN 交换技术支持页

- 技术支持和文档 - Cisco Systems