本文档提供有关在Catalyst 5000系列交换机上使用路由交换模块(RSM)排除VLAN间路由故障的信息。在排除RSM故障时,首先要将其视为简单的外部路由器。在涉及VLAN间路由时,RSM特定问题很少导致问题。因此,本文档仅涵盖可能发生这种情况的两个主要领域:
RSM硬件相关问题:本文档介绍RSM架构,并提供要跟踪的其他RSM相关计数器的详细信息。
VLAN间配置特定问题(主要与路由器和交换机之间的交互有关):这同样适用于其他内部路由器(例如多层交换功能卡[MSFC]、路由交换功能卡[RSFC]、8510CSR等),通常也适用于外部路由器。
注意:本文档不涉及在Catalyst 4000、5000和6000交换机上配置VLAN间路由。有关这些详细信息,请参阅以下文档:
本文档不涉及基本路由协议故障排除或多层交换(MLS)相关问题。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
在讨论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视为外部路由器,该路由器具有多个接口,这些接口直接连接到Catalyst 5000交换机的不同VLAN中。
这些接口不是称为以太网接口,而是根据它们所连接的VLAN命名的。(接口VLAN1直接连接到VLAN1,依此类推。)
RSM是Catalyst 5000线卡内的Cisco 7500路由交换处理器(RSP)路由器。您无需对卡的架构了如指掌即可对其进行配置和故障排除。但是,了解RSM的构建方式有助于了解它与普通外部路由器有何不同。在介绍show controller c5ip命令时,此知识尤其重要。
此图找出RSM线卡中的主要组件:
Catalyst 5000接口处理器(C5IP)是RSM的一部分,它模拟Catalyst 7500系统IP,并将Catalyst 5000交换总线作为网络接口。C5IP包括R4700处理器和两个SAGE专用集成电路(ASIC),负责访问Catalyst 5000交换总线。
这两个ASIC从交换总线获取数据包并缓冲它们。除了数据包中的数据,它们还会获得一个索引,用于标识交换机中数据包的目的地。
目的VLAN接口不是根据数据包本身的内容确定的,而是根据索引得出的。数据包和索引首先存储在SAGE内的两个不同的FIFO中。读取索引,并在目标VLAN的区域保留必要的共享内存。然后,使用直接存储器访问(DMA)将数据包复制到存储器设备(MEMD)中到SAGE。
两个SAGE并行工作以在路由器和交换总线之间通信,可能导致数据包传输顺序不正确。(例如,在SAGE0上接收的大数据包可以在SAGE1稍后接收的小数据包之后传输。) 为避免这种情况,每个VLAN被静态分配给给给定的SAGE。此操作在启动时自动完成。(根据路由器,VLAN与两个DMA通道中的一个相关联,每个通道都通向SAGE。) 来自给定VLAN的数据包始终按顺序传送。
MEMD是路由器用于发送和接收数据包的共享内存。RSM上每个已配置的VLAN接口都分配了可用共享内存的一部分。配置的VLAN接口越多,每个接口的共享内存就越少。VLAN接口保留其共享内存的一部分,即使在禁用或关闭时也是如此。只有管理性地添加或删除VLAN接口,才会触发VLAN接口之间MEMD的新重新分区。
通常的Cisco IOS®路由器文档中未涵盖的RSM特定主要问题是访问RSM的问题,以及性能问题。
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引擎的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上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#
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 — 此计数器显示有关上次丢弃的数据包的特定信息。这是本文档范围之外的低级信息。
以下是配置了十个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的主要目的是确保与交换机的Supervisor引擎有效通信。由于这是隐藏接口,因此不能使用简单的show interface vlan0命令查看有关它的统计信息。
桥接的一个常见问题是,断开的链路可以很容易地将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,它们的工作方式就像它们直接连接在一起一样,其中一个会阻塞。下图说明了以下内容:
在发生故障时测试其网络重新配置速度的客户通常会处理与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路由器就足以排除交换环境中的路由问题。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
02-Sep-2005 |
初始版本 |