本文档概述了ATM网络中使用的地址解析和数据包封装方法。它还提供在启用新的永久虚电路(PVC)时无法通过ATM云ping通时要使用的故障排除步骤。
使用路由的RFC 1483 ,您可以将ATM视为第2层协议,用于通过物理线路传输IP和其他第3层数据包。事实上,ATM与以太网技术非常相似。在以太网络上成功通信需要以下两条规则:
地址解析 — 必须将目的IP地址解析为目的MAC地址。IP使用地址解析协议(ARP)动态发现此映射。您还可以在路由器或主机上配置静态ARP条目。
数据包封装 — 必须包含一个报头,告知接收方下一层协议或报头是什么。以太网通常使用逻辑链路控制(LLC)或子网访问协议(SNAP)报头。例如,LLC报头中的目标服务接入点(DSAP)或源服务接入点(SSAP)值“AA”表示SNAP报头后跟。SNAP报头包括组织唯一标识符(OUI)(或OUI字段)和协议标识符(PID)字段。PID为“0800”表示以太网帧的数据部分包含IP数据包。
本文档不限于特定的软件或硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
与帧中继一样,ATM支持两种类型的接口:点对点和多点。您选择的命令确定是否需要使用确保IP到ATM映射的配置命令。在配置PVC本身后,您必须告诉路由器使用哪个PVC才能到达特定目的地。请考虑以下选项:
点对点子接口 — 对于点对点子接口,每对路由器都有自己的子网。如果将PVC放在点对点子接口上,路由器会假设该子接口上只配置了一个点对点PVC。因此,在同一子网中具有目的IP地址的所有IP数据包都会通过此虚电路(VC)转发。 因此这是配置映射最简单的方法因此也是推荐的方法。
多点网络 — 多点网络在同一子网中有三台或多台路由器。如果将PVC放在点对多点子接口或主接口(默认为多点)中,则需要配置静态映射或启用动态映射的逆向地址解析协议(ARP)。
在以太网络中,基于IP的网络设备在知道目的第3层地址并需要发现目的MAC地址时使用ARP。当第2层网络设备知道目的MAC地址并需要发现目的第3层地址时,会使用逆向ARP(InARP)。
在ATM网络上,RFC 1577, Classical IP和ARP over ATM ,指定地址解析机制并定义逆向ATM地址解析协议(InATMARP)。
使用InATMARP时,ATM接口会知道第2层地址。这是PVC的虚拟路径标识符(VPI)或虚拟通道标识符(VCI)。 但是,它仍然需要发现连接的远程端可以到达哪个IP地址。为此,路由器通过虚拟连接发送InATMARP请求,以获取另一端的地址。
注意:InATMARP与以太网InARP是相同的协议。这在RFC 1293中定义 ,并附加扩展以支持ATM网络中的ARP。
点对点子接口上不需要静态映射和InARP,因为流量有一条VC和一条路径。路由器只需查询路由表并做出转发决策。
从Cisco IOS®软件版本12.2(4)和12.1(11)起,点对点子接口仅响应InATMARP请求,不生成此类请求(CSCdu53060)。 以前,根据Cisco IOS软件的版本,点对点子接口会发起ARP请求,或者在某些版本中,无法响应ARP请求。在点对点子接口上,InARP默认保持启用状态,以支持具有多点集线器和点对点末节的中心和分支拓扑。如果集线器未配置静态映射,末节必须响应集线器的InARP请求。在这种情况下,show atm map命令(用于通过点对点接口的InARP显示动态或静态映射)不再显示点对点链路上的静态条目,如以下输出示例所示:
Luke# show run int a2/0.3 Building configuration... ! interface ATM2/0.3 point-to-point ip address 192.168.3.1 255.255.255.252 no ip route-cache no ip mroute-cache pvc 0/300 ! Luke# show atm map Luke#
默认情况下,InARP在多点链路上启用。在下一个示例中,会创建多点子接口。通过使用debug atm arp命令,您可以看到InATMARP在第3层IP地址和第2层VPI或VCI之间构建动态映射:
7500-1# show running-config !--- Output suppressed. interface ATM1/1/0.200 multipoint ip address 2.2.2.1 255.255.255.0 no ip directed-broadcast pvc 2/200 !--- Output suppressed. 5d10h: ATMARP:Sending first PVC INARP 5d10h: ATMARP(ATM1/1/0.200)O: INARP_REQ to VCD#20 2/200 for link 7(IP) 5d10h: ATMARP(ATM1/1/0.200)I: INARP Reply VCD#20 2/200 from 2.2.2.2 7500-1# show atm map Map list ATM1/1/0.100_ATM_INARP : DYNAMIC ip 1.1.1.2 maps to VC 19, VPI 2, VCI 100, ATM1/1/0.100 Map list ATM1/1/0.200_ATM_INARP : DYNAMIC ip 2.2.2.2 maps to VC 20, VPI 2, VCI 200, ATM1/1/0.200
您可以使用inarp 命令更改传输新InATMARP数据包的频率,以重新确认映射:
7500-1(config-subif)# pvc 2/200 7500-1(config-if-atm-vc)# inarp ? <1-60> InARP Frequency in minutes <cr> 7500-1(config-if-atm-vc)# inarp 5 7500-1(config-if-atm-vc)# end 7500-1# show atm vc 5d10h: ATMARP:Sending first PVC INARP 5d10h: ATMARP(ATM1/1/0.200)O: INARP_REQ to VCD#20 2/200 for link 7(IP) 5d10h: ATMARP(ATM1/1/0.200)I: INARP Reply VCD#20 2/200 from 2.2.2.2 ATM1/1/0.200: VCD: 20, VPI: 2, VCI: 200 UBR, PeakRate: 44209 AAL5-LLC/SNAP, etype:0x0, Flags: 0xC20, VCmode: 0x0 OAM frequency: 0 second(s) InARP frequency: 5 minutes(s) Transmit priority 4 InPkts: 10, OutPkts: 11, InBytes: 680, OutBytes: 708 InPRoc: 10, OutPRoc: 5, Broadcasts: 0 InFast: 0, OutFast: 0, InAS: 0, OutAS: 6 InPktDrops: 0, OutPktDrops: 0 CrcErrors: 0, SarTimeOuts: 0, OverSizedSDUs: 0 OAM cells received: 0 OAM cells sent: 0 Status: UP
show atm map命令通过InATMARP显示动态映射,而show arp和show atm arp命令则不显示。您可以通过查看以下输出来看到这一点:
7500-1# show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 172.16.81.82 2 0010.7be8.674b ARPA FastEthernet1/0/0 Internet 172.16.81.15 - 0030.71d3.1020 ARPA FastEthernet1/0/0 Internet 172.16.81.10 2 0000.0c45.419a ARPA FastEthernet1/0/0 7500-1# show atm arp 7500-1#
RFC 1483,ATM适配第5层多协议封装 ,定义了如何封装各种类型的协议数据单元(PDU)以通过ATM传输。RFC 1483规定了两种方法。
最常见的方法是LLC或SNAP封装,在LLC或SNAP封装中,多个协议可以通过同一虚拟连接传输。标准LLC或SNAP报头标识封装数据包的类型。LLC封装支持路由协议和桥接协议。数据包的SNAP报头标识协议类型。
LLC报头由三个一个二进制八位数字段组成:
DSAP | SSAP | Ctrl键 |
LLC报头值0xAA-AA-03表示SNAP报头。此报头的格式如下:
OUI | PID | PDU |
三个二进制八位数的OUI标识管理两个二进制八位数PID含义的组织。这些协议共同标识不同的路由或桥接协议。以下是路由PDU的ATM自适应第5层(AAL5)公共部分融合子层(CPCS)PDU负载字段的格式:
LLC 0xAA-AA-03 |
OUI 0x00-00-00 |
EtherType(2个八位组) |
PDU(最多216 - 9个二进制八位数) |
下一个示例输出是使用debug atm packet命令生成的。
注意:在发出debug命令之前,请参阅有关debug命令的重要信息。
router# debug atm packet !--- These timestamped lines of output appear on one line. Dec 7 10:21:16 CST: ATM2/IMA0.294(O): VCD:0x5 VPI:0x7 VCI:0xC0 DM:0x100 SAP:AAAA CTL:03 OUI:000000 TYPE:0800 Length:0x70 Dec 7 10:21:16 CST: 4500 0064 0032 0000 FF01 7643 0A90 9801 0A90 9802 0800 BAA2 0031 0EB1 0000 Dec 7 10:21:16 CST: 0000 5A75 5A50 ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD Dec 7 10:21:16 CST: ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD ABCD Dec 7 10:21:16 CST: ABCD ABCD ABCD ABCD ABCD Dec 7 10:21:16 CST: ..
请考虑该输出的以下含义:
ATM2/IMA0.294(O) — 数据包是输出数据包。
VCD:0x5 VPI:0x7 VCI:0xC0 — 数据包正在VPI 7和VCI 192(0xC0)上传输。 这些值以十六进制格式提供。将其转换为十进制,以确保路由器使用ATM 5字节报头中的正确PVC值。在本例中,VCI十六进制值0xC0以十进制转换为192。
DM:0100 — 数据包使用AAL5封装。此值由更高的软件层设置,以便特定ATM硬件上的驱动程序可以处理数据包的特殊情况。例如,此值可指示驱动程序将操作、管理和维护(OAM)数据包放置在特殊的OAM虚电路描述符(VCD)上,例如PA-A3的VCD 0和PA-A2的VCD 4096。其他值包括:
AAL5数据包:0x4000
AAL1信元:0x2000
AAL1数据包:0x8000
如果应用程序已放置自己的CRC:0x0400
AAL3或AAL4数据包:0x0000
OAM数据包:0x0300
SAP:AAAA - SNAP报头如下。
OUI:000000 — 以下PID是EtherType。
类型 :0800 - IP的“公认”EtherType值。
ping zhi yong zhi xuan ji - ping数据包的默认负载模式。
静态映射列表是Cisco IOS软件的一项功能,可替代使用ATMARP和InATMARP机制。使用静态映射,可以将协议地址与交换虚电路(SVC)上的ATM地址或PVC上的VPI或VCI关联。
注意:静态映射列表与RFC 1483或RFC 1577 无关 。
虽然对于少数节点而言,静态映射很简单,但配置的复杂性和出错的可能性随着您必须配置的设备数量的增加而增加。
Cisco IOS软件版本11.3T引入了ATM VC命令模式,该模式又引入了几个新的ATM命令,使您能够更轻松地配置ATM参数。新的VC配置模式使用protocol ip和其他语句(用ipx 、decnet 等替换ip)来配置静态映射。protocol语句取代11.3T之前的Cisco IOS软件版本中使用的map-list和map-group语句。
下一个示例显示如何在ATM接口1/1/0.200上创建PVC 2/200。它使用全局默认LLC或SNAP封装(通过AAL5)。接口位于IP地址2.2.2.1,连接另一端为2.2.2.2。
interface ATM1/1/0.200 multipoint ip address 2.2.2.1 255.255.255.0 no ip directed-broadcast pvc 2/200 inarp 5 protocol ip 2.2.2.2 broadcast
可以使用show atm map命令检查映射。如您所见,第3层到第2层地址的映射是永久的,而不是动态的,就像您使用InARP时一样。
7500-1# show atm map Map list ATM1/1/0.100_ATM_INARP : DYNAMIC ip 1.1.1.2 maps to VC 19, VPI 2, VCI 100, ATM1/1/0.100 Map list ATM1/1/0.200pvc20 : PERMANENT ip 2.2.2.2 maps to VC 20, VPI 2, VCI 200, ATM1/1/0.200, broadcast
注意:避免将静态映射与点对点子接口配合使用。以前,配置两条协议ip语句,然后删除一条语句会导致在极少数情况下路由器重新加载(CSCdk58757 、CSCdr43838)。
如果您运行的是Cisco IOS软件版本11.3(非T系列)或更早版本,则ATM VC配置命令模式不可用,因此您应改用旧语法。如您所见,整个PVC配置仅在一行中完成,严重限制了配置可能性。有关可用ATM PVC命令的详细信息,请参阅ATM命令的“atm pvc”部分。
interface ATM3/0.1 multipoint no ip directed-broadcast map-group MyMap atm pvc 4 0 36 aal5snap 2000 1000 32 ! map-list MyMap ip 10.2.1.1 atm-vc 4 broadcast ip 10.2.1.2 atm-vc 4 broadcast 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
静态映射也适用于SVC。要建立到目的协议地址的连接,ATM接口会定位与映射列表中的协议地址对应的ATM网络服务接入点(NSAP)地址,然后设置到该ATM地址的SVC。
interface atm 4/0 ip address 131.108.168.1 255.255.255.0 atm nsap-address AB.CDEF.01.234567.890A.BCDE.F012.3456.7890.1234.12 atm maxvc 1024 pvc 0/5 qsaal ! svc svc-1 nsap BC.CDEF.01.234567.890A.BCDE.F012.3456.7890.1334.13 protocol ip 131.108.168.2
如果遇到IP over ATM连接问题,请使用以下故障排除步骤:
确保路由器知道使用哪条VC到达远程目的地。在接口上发出debug atm errors命令。此debug命令不会干扰,只有在出现大量ATM错误时,它才会生成输出。
注意:如果使用InATMARP,请改用debug atm arp命令。
注意:在发出debug命令之前,请参阅有关debug命令的重要信息。
您可能会看到类似以下行:
Jul 12 05:01:26.161: ATM(ATM6/0): Encapsulation error1, link=7, host=B010117
如果是,则问题可能是您未正确配置ATM映射。有关如何对此问题进行故障排除的说明,请参阅使用debug atm errors命令排除封装故障。
如果发出debug atm errors命令未产生任何输出,请尝试发出debug atm packet interface atm命令。
注意:debug atm packet命令为通过VC的每个数据包打印一条日志消息。在启用此调试之前,请确保通过删除常规流量并仅允许ping或keepalive通过VC来控制调试输出的量。
下一个示例尝试ping 10.144.152.2。点对点子接口与单条PVC一起使用,因此路由器会自动从此PVC发送所有发往同一IP子网的ping。
发出show running-config命令,并确认您尝试ping的配置和IP地址。
interface ATM2/IMA0.294 point-to-point ip address 10.144.152.1 255.255.255.252 no ip directed-broadcast pvc test 7/192 vbr-nrt 500 500 10
发出debug atm packet interface atm命令。
请注意,调试配置应尽可能具体地限制对路由器的影响。
cisco# debug atm packet interface atm2/im0.294 vc ? <0-255> VPI/VCI value(slash required) <0-65535> VCI WORD Connection Name cisco# debug atm packet interface atm2/im0.294 vc 7/192 ATM packets debugging is on Displaying packets on interface ATM2/IMA0.294 VPI 7, VCI 192 only
发出terminal monitor命令,以确保如果使用telnet命令访问路由器,则能够查看调试输出。
要显示当前终端和会话的debug命令输出和系统错误消息,请发出terminal monitor EXEC命令。此外,请考虑将所有调试输出定向到缓冲区,而不是控制台。为此,请在全局配置模式下发出logging buffered和no logging console命令。发出show logging命令,确认更改。
请记住,所有终端参数设置命令都在本地设置,在会话结束后不会保持有效。
cisco# terminal monitor % Console already monitors
注意PVC的传出数据包(OutPkts)和传入数据包(InPkts)的当前值。
cisco# show atm pvc test ATM2/IMA0.294: VCD: 5, VPI: 7, VCI: 192, Connection Name: test VBR-NRT, PeakRate: 500, Average Rate: 500, Burst Cells: 100 AAL5-LLC/SNAP, etype:0x0, Flags: 0x20, VCmode: 0x0 OAM frequency: 0 second(s), OAM retry frequency: 10 second(s), OAM retry frequency: 10 second(s) OAM up retry count: 2, OAM down retry count: 2 OAM Loopback status: OAM Disabled OAM VC state: Not Managed ILMI VC state: Not Managed InARP frequency: 15 minutes(s) Transmit priority 2 InPkts: 0, OutPkts: 2920, InBytes: 0, OutBytes: 163784 InPRoc: 0, OutPRoc: 6 InFast: 0, OutFast: 4, 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: 2901 F5 OutEndloop: 2901, F5 OutSegloop: 0, F5 OutRDI: 0 F4 OutEndloop: 0, F4 OutSegloop: 0, F4 OutRDI: 0 OAM cell drops: 0 Status: UP
对远程终端执行ping操作,并确保路由器显示InPkts和OutPkts的五个数据包增量。
查找ABCD负载模式,确保数据包是ping数据包,而不是其他数据包的OAM信元。另请参阅:
再次发出show atm pvc vcd_number命令,并确保OutPkts计数器至少增加五个数据包。
注意:您必须运行Cisco IOS软件版本11.3(2)T或更高版本;否则,请改为发出show atm vc命令。
将OutPkts值与执行ping操作前记录的值进行比较。在下一个示例输出中,OutPkts计数器的增量为10,因为发送了两组五个ping。请注意,此接口仍未记录任何InPkts。此输出表明路由器正在发送数据包,但远程设备没有接收数据包。InPkts的值为0表示ATM交换机云中的端到端路径未正确调配。
cisco# show atm pvc test ATM2/IMA0.294: VCD: 5, VPI: 7, VCI: 192, Connection Name: test VBR-NRT, PeakRate: 500, Average Rate: 500, Burst Cells: 100 AAL5-LLC/SNAP, etype:0x0, Flags: 0x20, VCmode: 0x0 OAM frequency: 0 second(s), OAM retry frequency: 10 second(s), OAM retry frequency: 10 second(s) OAM up retry count: 2, OAM down retry count: 2 OAM Loopback status: OAM Disabled OAM VC state: Not Managed ILMI VC state: Not Managed InARP frequency: 15 minutes(s) Transmit priority 2 InPkts: 0, OutPkts: 2930, InBytes: 0, OutBytes: 164904 InPRoc: 0, OutPRoc: 16 InFast: 0, OutFast: 4, 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: 2901 F5 OutEndloop: 2901, F5 OutSegloop: 0, F5 OutRDI: 0 F4 OutEndloop: 0, F4 OutSegloop: 0, F4 OutRDI: 0 OAM cell drops: 0 Status: UP
注意:输出取决于您使用的卡。
通过在远程端发出debug ip icmp命令,确认远程端在ping输出时收到ping。
确定两端都在发送数据包后,您需要确定没有端到端连接的原因。要完成该操作,请执行下列步骤:
检查show interface命令的输出以查找非零输入或输出错误计数器,例如循环冗余校验(CRC)错误或输入队列丢弃。
检查ping时这些计数器是否增加。有关详细信息,请参阅《ATM接口的CRC故障排除指南》。
在两端使用环回。
有关详细信息,请参阅了解Cisco路由器的环回模式。
在提供商的云中执行环回测试,以检查提供商是否可以通过链路的端到端路径发送数据包。
确定在两个终端上是启用还是禁用负载扰码。
一个接口上的大量CRC错误可能表明一端已启用加扰,而另一端未启用加扰。
对最大传输单位(MTU)的不同大小执行ping测试,以检查ping是否仅在特定大小时失败。
检查您没有遇到管制问题。有关详细信息,请参阅排除WAN环境中的ATM PVC故障。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
15-Nov-2007 |
初始版本 |