本章介绍如何排除在WAN主干上传输第2层帧/第3层数据包时出现的ATM问题。它评论:
帧或数据包如何分段到ATM信元
show命令的重要性以及如何解释它们
如何检测错误整形或管制并排除故障
注:本章中的信息适用于所有思科设备,因为它只关注技术本身,而不依赖于硬件或软件。
异步传输模式(ATM)是ITU-T(以前称为CCITT)在20世纪90年代初定义的技术。相关标准描述了一种传输技术,其中信息以称为信元的小型固定长度数据单元传输。
在ATM网络中,可以明确区分支持应用的设备(称为终端系统(ES))和仅中继信元的设备。这些中继设备是中间系统(IS)或ATM交换机。ES的示例包括路由器和LAN仿真(LANE)模块。IS的示例包括LS1010、8540MSR、BPX。
这是ATM网络的表示:
ATM定义了如何分段和重组不同类型的信息。ATM可以传输视频、语音和数据。ATM网络保留并保证适当的服务质量(QoS)。由于任何类型的信息都可以按照相关标准分割成信元,因此ATM是一种灵活的工具,因此可以在许多环境中使用。这些环境可分为两大类:
LAN交换环境 — LANE最常用。通常,由于ATM连接是按需建立和移除的,因此此动态环境中的QoS很少。
WAN环境 — 有两个参与者:
_Telco — 通常在静态环境中提供非常精确的服务质量。电话公司的ATM网络由ATM交换机组成。由于电话公司提供ATM服务,因此请致电ATM服务提供商。
_Enterprise — 通常向ATM服务提供商请求ATM服务
本章仅重点介绍企业WAN环境中的ATM连接。在这种环境中,终端系统是99%的路由器。因此,您只在本文档的其余部分使用“路由器”一词。这些路由器交换数据包1。您使用IP作为参考协议,所有解释对其他第3层协议(如IPX和ATALK)都有效。从企业角度来看,网络与以下类似:
通常,企业路由器和ATM服务提供商会遵守有关服务质量的流量合同。最初,它看起来非常简单,只有图中的两台设备和ATM提供商的云,从企业角度看不到。遗憾的是,此环境中的问题并非微不足道,因为您对ATM提供商的设备没有完全的可视性。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
AAL(ATM适配层)使用户信息(包括数据、语音、视频等)适应可以轻松划分为ATM信元的格式。一旦您拥有了AAL-PDU,它就会传递到分段和重组(SAR)层,该层将这个大数据包分段为ATM信元。AAL5是最常用于数据传输的AAL类型。此处的数据还包括IP语音。本图说明了AAL5的SAR过程。
在目的路由器上,将应用反向过程。观察信元报头中设置为1的特殊位,以便目的路由器轻松识别AAL5数据包的最后一个信元。
整个过程通常在硬件中实现,运行效率高。以下是可能出现的两个主要问题:
ATM网络中的发射器或设备可能会在目的地损坏一个或多个信元。信元中执行循环冗余校验(CRC)类型的唯一字段是报头校验和字段(HEC)。 如名称所示,它只检查单元格报头。
在提供商的网络中可以丢弃一个或多个信元。
这是您如何检查这两个问题在目的路由器上的影响以及如何检测它们:
如果一个单元格损坏,则单元格数量仍然相同。CPCS-PDU帧以正确的大小重新组装。路由器检查长度字段是否确实正确。但是,由于一个单元损坏了整个帧,因此只是略微损坏了。因此,AAL5 CPCS-PDU帧的CRC字段与最初发送的字段不同。
如果目的地缺少一个信元,则其大小和CRC与CPCS-PDU帧中包含的信元不同。
无论真正的问题是什么,在目的地检测到错误的CRC。检查接口统计信息,以便路由器管理员检测到此情况。一个CRC错误导致输入错误计数器增加1 2。show interface atm命令输出说明了以下行为:
Medina#show interface atm 3/0 ATM3/0 is up, line protocol is up Hardware is ENHANCED ATM PA MTU 4470 bytes, sub MTU 4470, BW 149760 Kbit, DLY 80 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ATM, loopback not set Keepalive not supported Encapsulation(s): AAL5 4096 maximum active VCs, 2 current VCCs VC idle disconnect time: 300 seconds Signalling vc = 1, vpi = 0, vci = 5 UNI Version = 4.0, Link Side = user 0 carrier transitions Last input 00:00:07, output 00:00:07, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0 (size/max/drops); Total output drops: 0 Queueing strategy: Per VC Queueing 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 104 packets input, 2704 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 32 input errors, 32 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 106 packets output, 2353 bytes, 0 underruns 0 output errors, 0 collisions, 1 interface resets 0 output buffer failures, 0 output buffers swapped out
在上一个输出中,输入错误计数器表示32个错误(32个输入错误)。 如果路由器已配置多条PVC,则仅依赖接口全局计数器可能不足,因为输入错误计数器可能显示多条PVC的流量。建议在此场景中使用show atm pvc vpi/vci命令。例如:
Medina#show atm pvc 0/36 ATM3/0.1: VCD: 4, VPI: 0, VCI: 36 VBR-NRT, PeakRate: 2000, Average Rate: 1000, Burst Cells: 32 AAL5-LLC/SNAP, etype:0x0, Flags: 0x20, VCmode: 0x0 OAM frequency: 0 second(s), OAM retry frequency: 1 second(s), OAM retry frequen) OAM up retry count: 3, OAM down retry count: 5 OAM Loopback status: OAM Disabled OAM VC state: Not Managed ILMI VC state: Not Managed InARP frequency: 15 minutes(s) Transmit priority 2 InPkts: 24972, OutPkts: 25032, InBytes: 6778670, OutBytes: 6751812 InPRoc: 24972, OutPRoc: 25219, Broadcasts: 0 InFast: 0, OutFast: 0, InAS: 0, OutAS: 0 InPktDrops: 0, OutPktDrops: 0 CrcErrors: 0, SarTimeOuts: 0, OverSizedSDUs: 0 OAM cells received: 0 F5 InEndloop: 0, F5 InSegloop: 0, F5 InAIS: 0, F5 InRDI: 0 F4 InEndloop: 0, F4 InSegloop: 0, F4 InAIS: 0, F4 InRDI: 0 OAM cells sent: 0 F5 OutEndloop: 0, F5 OutSegloop: 0, F5 OutRDI: 0 F4 OutEndloop: 0, F4 OutSegloop: 0, F4 OutRDI: 0 OAM cell drops: 0 Status: UP
在此输出3中,CRC错误计数器指示CPCS-PDU帧的CRC错误数。两个命令都是在同一台路由器上键入的。由于在显示PVC 0/36的统计信息时看不到CRC错误(CrcErrors),因此假设show interface 命令的输入错误是由另一个PVC引起的。
注意: 一个输入错误并不总是意味着一个数据包丢失。由ATM提供商丢弃的信元可以是帧的最后一个。因此,被丢弃的单元将此特殊位设置为1。目的地查找帧边界的唯一方法是检查此位。因此,目的路由器在重组时会连接它接收的所有信元,直到找到此位设置为1的信元。如果丢弃帧的最后一个单元,则两个CPCS-PDU帧会丢失,这只会导致一个CRC和长度错误。
流量整形是指由ATM流量源执行的操作。管制是指ATM交换机(通常在提供商端)执行的操作。
流量整形是小区流量适应特定交通契约的行为。这如下图所示。
策略是检查信元流是否符合特定流量合同的操作。此图如下所示:
注意:这些图并不表示流量整形和管制是指通用合同并使用类似算法。错误配置的管制或整形通常会导致被监察器丢弃的信元。即使整形和策略都设置为相同的值,策略也可以开始丢弃信元。这通常是因为整形器不良或监察器出现故障。
本节仅介绍流量整形。您可以在ATM论坛网站上提供的流量管理规范中找到更多详细信息。
在ATM中,在信元之间插入等时间间隔,以使流量整形工作。例如,如果OC-3/STM-1连接为155Mbit/sec,则只能使用~149Mbit/sec来转发ATM信元4。因此,最大速率为353.208个信元(353.208 * 53 * 8位可在一秒内装入OC-3c/STM-1帧负载)。 如果请求连接74.5 Mbit/秒(线速的一半),则每个单元之间将插入2.83微秒的等距。2.83微秒是在OC3c/STM-1(1/353.208秒)处发送一个信元所需的时间。 当您请求半个线速时,您可以发送一个信元,等待相等的时间,然后重新开始。
请求的最传统流量是可变比特率(VBR)流量整形:
VBR流量整形是繁忙网络的有效方法。使用的参数包括峰值细胞率(PCR)、可持续细胞率(SCR)和最大突发大小(MBS)。 一旦达成流量合同,ATM网络就会保证VBR参数内的信元传输。允许超过SCR的细胞数由MBS设置并由PCR绑定。
以下是这些参数的定义:
PCR — 源可发送信元的最大速率
SCR — 长期平均信元速率上的绑定
MBS — 在PCR时可在SCR上方发送的最大细胞数
问题的常见原因是ATM映射配置不正确。配置PVC本身后,必须告诉路由器要到达特定目的地要使用哪个PVC。有三种方法可确保映射正确:
如果将PVC放在点对点子接口上,路由器会假设该子接口上只配置了一个点对点PVC。因此,目的IP地址位于同一子网的所有IP数据包都会在此VC上转发。因此这是配置映射最简单的方法因此也是推荐的方法。
如果将PVC放在点对多点子接口或主接口中,则必须创建静态映射。有关配置示例,请参阅故障排除部分。
您可以使用逆向ARP自动创建映射。有关详细信息,请参阅重要命令。
假设信息在两台路由器之间丢失的两种最常见症状是:
由于信元在ATM云中被丢弃,导致IP数据包被丢弃,并且重新传输的次数很多,因此TCP连接速度很慢。TCP本身认为这是由于拥塞,并尝试降低其传输窗口,这会导致TCP连接速度非常慢。这会影响所有基于TCP的协议,如Telnet或FTP。
大型IP数据包在小数据包通过ATM网络时通常会失败,而且没有问题。这又是由于信元被丢弃。
请集中注意第二个症状,这有助于检测问题。假设,对于源路由器传输的每100个信元,提供商会因为管制而放弃最后一个信元。这意味着,如果ping的数据部分为100字节,则需要3个ATM信元才能发送它。这是因为包含ICMP回应请求需要3 x 48字节。实际上,这意味着前33个ping操作成功。更准确地说,前99个信元是提供商在合同中看到的,而第34个信元则因其中一个信元被丢弃而失败。
如果假设您保持相同的设置,并且您使用1500字节数据包而不是小型ICMP回声(ping),则需要32个信元来传输每个大数据包(32 x 48 = 1536字节,是数据包大小以上48的最小倍数)。 如果网络在100个信元中丢弃一个信元,则大约3个或4个信元中的一个数据包将被丢弃。证明您存在策略问题的一种简单而有效的方法是提高数据包大小。
实际上,您可以从路由器自身生成大量ping。
Medina#ping Protocol [ip]: Target IP address: 10.2.1.2 Repeat count [5]: 100 Datagram size [100]: 1500 Timeout in seconds [2]: 2 Extended commands [n]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 100, 1500-byte ICMP Echos to 10.2.1.2, timeout is 2 seconds: !!!.!!.!!!.!!.!!!.!!.!!!.!!.!!!.!!.!!!.!!.!!!.!!.!!!.!!.!!!.!!.!!!.!!.!!!.!!.!!! .!!.!!!.!!.!!!.!!.!
成功率为72%(72/100)。
如果真正的问题与策略有关,则对较大数据包执行相同测试会生成不同的结果:
Medina#ping Protocol [ip]: Target IP address: 10.2.1.2 Repeat count [5]: 100 Datagram size [100]: 3000 Timeout in seconds [2]: 2 Extended commands [n]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 100, 3000-byte ICMP Echos to 10.2.1.2, timeout is 2 seconds: !.!.!..!.!.!..!.!..!.!...!..!.!.!..!.!.!.!.!.!.!..!..!.!...!..!.!.!..!.!.!..!.!. !..!.!..!.!.!.!..!..!
成功率为42%(42/100)。
如果在运行这些测试后您断定您遇到管制问题,请与ATM提供商联系并检查以下几点:
提供商是否确实在丢弃信元?提供商必须能够告诉您这一点。
如果是,具体原因是什么?答案通常是管制,但有时,其网络只是拥塞。
如果原因是管制,则流量参数是什么?它们是否与路由器上的设置匹配?
如果路由器和提供商确实使用相同的流量参数,则存在实际问题。路由器整形不良或提供商策略管制不准确。请参阅Bug工具包。(仅限注册客户)没有两种流量整形实施会提供完全相同的结果流量。可以接受小的变体。但是,实施只能产生可忽略不计的流量损失。
市场上的一些流量分析器可以根据给定的一组流量参数(例如GN Nettest和HP)检查流量合规性。这些设备可以判断来自路由器的流量是否整形正确。
如果您发现思科路由器整形不准确,并且找不到任何已记录的漏洞和/或卡限制,请向思科技术支持部门提交案例。
上一节重点介绍部分丢包。本节重点介绍总连接丢失。
表 1:两台连接ATM的路由器之间的总连接丢失
可能的问题 | 解决方案 |
---|---|
PVC在提供商云中断开。 | 这是最常见的问题。如果提供商的ATM云中存在大问题,则来自提供商设备的信号仍然良好。因此,路由器的接口仍处于up状态。同时,路由器发送的任何信元都被提供商接受,但永远无法到达目的地。通常,呼叫提供商会快速回答。但是,由于接口不关闭,因此路由表不会删除第3层路由,并且不能使用备用或备用路由5。在此环境中,最佳解决方案是启用OAM管理,以自动执行流程。有关详细信息,请参阅《Cisco WAN Manager安装和配置指南》。使用环回以证明ATM卡正常。有关详细信息,请参阅“其中一个接口关闭,下表”条目的解决方案。 |
其中一个接口关闭,关闭。 |
|
存在第3层路由问题。 |
|
对等路由器的第3层地址映射不匹配。 | PVC与路由器的第3层地址之间没有自动映射(使用PVC可到达)。 使用show atm map命令可检查以下内容: Ema#show atm map Map list test: PERMANENT ip 164.48.227.142 maps to VC 140 |
本节介绍旧语法(show atm vc和atm pvc)与新语法(如Cisco IOS®软件版本11.3T(show atm pvc和pvc)所提供)之间的区别。
使用pvc interface 配置命令可执行以下一个或多个操作,其完整说明可在命令参考中找到:
在主接口或子接口上创建ATM PVC。
为ATM PVC分配名称。
指定要在此PVC上使用的ILMI、QSAAL或SMDS协议。
进入interface-atm-pvc配置模式。
接口配置
Medina#show running-config interface atm 3/0.1 Building configuration... Current configuration: ! interface ATM3/0.1 multipoint ip address 10.2.1.1 255.255.255.252 no ip directed-broadcast pvc 0/36 protocol ip 10.2.1.1 broadcast protocol ip 10.2.1.2 broadcast vbr-nrt 2000 1000 32 encapsulation aal5snap ! end
使用show atm pvc 0/36 ,以检查其状态(如前所示),或使用早期命令show atm vc:
Medina#show atm vc VCD / Peak Avg/Min Burst Interface Name VPI VCI Type Encaps SC Kbps Kbps Cells Sts 3/0 1 0 5 PVC SAAL UBR 149760 UP 3/0 2 0 16 PVC ILMI UBR 149760 UP 3/0.1 4 0 36 PVC SNAP VBR 2000 1000 32 UP
找到正确的VCD编号后,即可显示VC统计信息:
Medina#show atm vc 4 ATM3/0.1: VCD: 4, VPI: 0, VCI: 36 VBR-NRT, PeakRate: 2000, Average Rate: 1000, Burst Cells: 32 AAL5-LLC/SNAP, etype:0x0, Flags: 0x20, VCmode: 0x0 OAM frequency: 0 second(s) InARP frequency: 15 minutes(s) Transmit priority 2 InPkts: 24972, OutPkts: 25137, InBytes: 6778670, OutBytes: 6985152 InPRoc: 24972, OutPRoc: 25419, Broadcasts: 0 InFast: 0, OutFast: 0, InAS: 0, OutAS: 0 InPktDrops: 0, OutPktDrops: 0 CrcErrors: 0, SarTimeOuts: 0, OverSizedSDUs: 0 OAM cells received: 0 OAM cells sent: 0 Status: UP
可以比较新的show atm pvc命令和旧的show atm vc命令。建议使用新命令。
映射已配置,因为这是点对多点接口,可使用show atm map 命令检查:
Medina#show atm map Map list ATM3/0.1pvc4 : PERMANENT ip 10.2.1.1 maps to VC 4, VPI 0, VCI 36, ATM3/0.1 , broadcast ip 10.2.1.2 maps to VC 4, VPI 0, VCI 36, ATM3/0.1 , broadcast
子接口类型为多点,因此需要映射。如果是点对点子接口,则可跳过PVC配置中的协议行,因为路由器假设所有目标位于同一子网的IP数据包都需要转发到PVC。逆向ARP也可以在PVC配置中配置,以便自动执行映射过程。
如果运行Cisco IOS软件版本11.3(非T系列)或更早版本,则PVC config命令尚不可用,应使用旧语法。整个PVC配置仅在一行中完成,这限制了配置的可能性。完整说明可在命令参考中找到。
接口配置
Medina#show run interface atm 3/0.1 Building configuration... Current configuration: ! interface ATM3/0.1 multipoint no ip directed-broadcast map-group MyMap atm pvc 4 0 36 aal5snap 2000 1000 32 end
以下是映射列表定义与映射组名称匹配的部分配置示例:
<snip> ! map-list MyMap ip 10.2.1.1 atm-vc 4 broadcast ip 10.2.1.2 atm-vc 4 broadcast <snip>
使用上述部分配置,以便使用与新语法相同的命令检查映射:
Medina#show atm map Map list MyMap : PERMANENT ip 10.2.1.1 maps to VC 4 , broadcast ip 10.2.1.2 maps to VC 4 , broadcast
您将再次看到,新语法更简单、更清晰。
在致电思科技术支持之前,请阅读本章并完成针对系统问题建议的操作。
完成以下步骤并记录结果,以便思科技术支持部门更好地为您提供帮助:
对两台路由器发出show tech命令。这有助于思科支持工程师(CSE)了解路由器行为。
在两台路由器上发出show atm pvc 命令,并在PVC上发出show atm pvc vpi/vci命令,导致问题。这有助于CSE了解问题。
解释ATM提供商对问题的看法,并说明提供商是否认为问题出在路由器上。
比较点对点和点对多点子接口上的PVC配置。
为路由器和交换机配置不匹配的整形和策略。通过ping测试检验路由器发送的流量是否确实受到了错误的管制。
配置OAM管理,使子接口在PVC故障时关闭。
将PVC的配置与旧语法和新语法进行比较。迁移到新语法的主要原因是什么?
比较使用旧命令show atm vc与新命令show atm pvc检查PVC状态/统计信息的情况。新语法提供哪些增强功能?
ATM基本上可以将任何类型的信息分割成信元。我们经常讨论数据包或帧(第3层或第2层数据单元)。 我们可以使用“协议数据单元”一词,它允许我们按照OSI规范的要求,大致讨论任何层。为了清晰起见,我们将讨论数据包。
您会看到,show interface的CRC错误计数器等于输入错误的数量。在某些终端系统(如Catalyst 5000的LANE模块)上,只增加输入错误计数器。因此,您应该关注输入错误。根据经验,如果不运行最新版本,建议还检查show controller的输出,因为它提供了有关ATM卡自身计数器的更多物理详细信息。
show atm pvc的输出可能会有所不同,具体取决于卡的功能和代码功能。所示示例使用PA-A3和Cisco IOS软件版本代码版本12.1。
SONET/SDH的开销约为3%。
这假定已使用静态路由。如果在此ATM PVC上使用动态路由协议,则协议最终会收敛。此过程可能很慢,请参阅相应路由协议的故障排除部分。
show controller输出特定于每个ATM卡。通常,可以从此输出推断出有价值的信息,但无法给出通用描述。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
11-Oct-2006 |
初始版本 |