最大传输单元(MTU)定义接口可以传输的最大数据包大小,而无需分段。大于MTU的IP数据包必须经过IP分段过程。
Cisco ATM路由器接口支持64到17966字节之间的MTU。每个接口都支持默认的最大数据包大小。例如,ATM接口处理器(AIP)和网络处理器模块(NP)上的最大值为9288字节,PA-A3和PA-A2端口适配器上的最大值为4470字节。
本文档回顾ATM接口的默认MTU值,并阐明路由器何时增加AAL5超大SDU和AAL5长度违规计数器。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
大多数Cisco ATM路由器接口使用默认MTU大小4470字节。选择此编号是为了完全匹配用于自主交换的光纤分布式数据接口(FDDI)和高速串行接口(HSSI)接口。
在接口配置模式下使用mtu命令配置非默认值。请注意,只要主接口的值与最大子接口MTU相同或大于,子接口就支持与主接口不同的值。
7200#show interface atm 3/0 ATM3/0 is up, line protocol is up Hardware is ENHANCED ATM PA Internet address is 1.1.1.1/8 MTU 4470 bytes, sub MTU 1500, BW 149760 Kbit, DLY 80 usec, reliability 255/255, txload 1/255, rxload 1/255
使用show atm interface atm命令查看当前配置的值。
7200#show atm interface atm 3/0 Interface ATM3/0: AAL enabled: AAL5 , Maximum VCs: 4096, Current VCCs: 2 Maximum Transmit Channels: 0 Max. Datagram Size: 4528 PLIM Type: SONET - 155000Kbps, TX clocking: LINE Cell-payload scrambling: ON sts-stream scrambling: ON 8359 input, 8495 output, 0 IN fast, 0 OUT fast, 0 out drop Avail bw = 155000 Config. is ACTIVE
show interface atm命令报告两个计数器,以粗体突出显示,与讨论数据包大小相关。
7200#show interface atm1/ima0 ATM1/IMA0.1 is up, line protocol is up Hardware is ATM IMA MTU 4470 bytes, BW 6000 Kbit, DLY 20000 usec, reliability 255/255, txload 1/255, rxload 2/255 Encapsulation ATM 1382 packets input, 399282 bytes 1558 packets output,205883 bytes 0 OAM cells input, 0 OAM cells output AAL5 CRC errors : 280 AAL5 SAR Timeouts : 0 AAL5 Oversized SDUs : 0 AAL5 length violation : 210285 AAL5 CPI Error : 302
两个计数器都指ATM适配层5(AAL5)。 它们将路由或桥接协议数据单元(PDU)封装在ATM堆栈的公共部分融合子层(CPCS)。RFC 1483 定义了AAL5帧尾的格式,如下图所示。
AAL5报尾中的双字节长度字段指示CPCS-PDU负载字段的大小。两个字节是16位或最大长度值65,535(216)个二进制八位数。
MTU定义第3层数据报的大小。AAL5服务数据单元(SDU)定义为第3层数据报加上可选的逻辑链路控制/子网访问协议(LLC/SNAP)报头。AAL5 PDU定义为组合AAL5 SDU加上8字节AAL5报尾。因此,MTU 9180可以生成9180字节的AAL5 SDU,以及8字节的AAL5报尾的9188字节的AAL5 PDU。
当ATM接口收到大于MTU的数据包时,路由器会增加超大SDU计数器。RFC 1695中定义了超大SDU计数器 。
aal5VccOverSizedSDUs OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of AAL5 CPCS PDUs discarded on this AAL5 VCC at the interface associated with an AAL5 entity because the AAL5 SDUs were too large." ::= { aal5VccEntry 5 }
RFC 1695还支持使用以下对象ID设置单独的传输和接收SDU大小:
atmVccAal5CpcsTransmitSduSize OBJECT-TYPE SYNTAX INTEGER (1..65535) MAX-ACCESS read-create STATUS current DESCRIPTION "An instance of this object only exists when the local VCL end-point is also the VCC end-point, and AAL5 is in use. The maximum AAL5 CPCS SDU size in octets that is supported on the transmit direction of this VCC." DEFVAL { 9188 } := { atmVclEntry 9 } atmVccAal5CpcsReceiveSduSize OBJECT-TYPE SYNTAX INTEGER (1..65535) MAX-ACCESS read-create STATUS current DESCRIPTION "An instance of this object only exists when the local VCL end-point is also the VCC end-point, and AAL5 is in use. The maximum AAL5 CPCS SDU size in octets that is supported on the receive direction of this VCC." DEFVAL { 9188 } ::= { atmVclEntry 10 }
遵循RFC 1695的ATM接口在检测到过大的SDU错误时也会增加ifInErrors计数器。除CRC-32和SAR超时错误外,这两个计数器也在RFC中定义。
当重新组装的数据包的计算大小与AAL5长度字段的接收值不匹配时,路由器会增加AAL5长度违规计数器,而与MTU无关。要了解这些违规如何发生,您需要了解接收ATM接口如何识别帧的最后一个信元。
信元报头包括三位负载类型标识符(PTI)字段。这三个位表示:
位1 — 指示单元格是包含用户数据还是管理数据。
位2 — 指示信元在传输期间是否发生拥塞。
位3 — 指示单元是否是较高层数据帧的最终单元。设置为1时,此位称为标记(EOM)的结尾。
PTI值001或011标记AAL5 PDU的最后一个信元,并告知接收ATM接口开始重组。在拥塞或错误情况期间,ATM链路可能丢弃最后一个信元。结果,接收接口在接收到第二AAL5分组的标记单元的结束之前不开始重组,产生长度违规。
在某些情况下,您的路由器报告AAL5长度违规计数器的值较大,而AAL5 CRC错误计数器的值小得多。当ATM接口声明长度违规并丢弃重组的数据包而不干扰检查CRC时,会出现此情况。ATM接口仅在确认数据包大小与AAL5长度字段匹配后才检查CRC。
在网络中的多个接口上使用一致且最大的MTU具有以下优势:
减少或消除分段。更大的MTU可通过消除分段来增强TCP性能。因此,网络文件系统(NFS)等应用可以更大程度地利用其8 kB左右的大本地MTU。
优化在Cisco 7500系列平台上路由交换处理器(RSP)上的数据包内存(MEMD)中划分的数据包缓冲池的大小。在此平台上,MTU在缓冲区划分中起着重要作用。具体而言,此平台使用缓冲区划分算法,根据MTU创建四个缓冲池。如果所有接口使用相同的MTU,路由器会创建一个大型的相同大小缓冲区池。在此平台上使用大型且变化广泛的MTU会强制Cisco IOS®软件划分少量的大型缓冲区,可能会影响其他接口。在7500系列平台上,调整MTU可能导致忽略的输入错误数量减少。请参阅导致“%RSP-3-RESTART的原因:cbus complex"?
注意:最初,AIP支持最大为9180的MTU。原因需要了解架构。ATM接口支持通告的最大活动同步虚电路(VC)数的能力基于统计复用和具有足够的数据包缓冲区来执行一些同时重组。思科将AIP上的MTU大小限制为大约9000字节,以支持通告的最大活动VC值2000。
通过最小化处理的数据包数来提高路由器性能。路由器中的大多数性能成本与“已处理的数据包”有关,而不是与“已传输的字节”有关。路由器通常在中断模式下处理中转数据包。较大的MTU可带来更高的性能,因为更快的CPU不一定会导致快速中断密集型操作。
下表列出了与数据报大小相关的注释请求(RFC)。
注意:表中的所有链接都是RFC1483 。
请求评论 | 描述 |
---|---|
RFC 791 | 定义IP分段过程。 |
RFC 1191 和RFC 1435 | 定义路径MTU发现,这是减少Internet中IP分段的关键机制。此机制非常重要,因为ATM使用的默认MTU大小与以太网和FDDI等其他技术有很大不同。 |
RFC 1209 | 指定SMDS上的IP MTU(9180个二进制八位数)。Internet工程任务组(IETF)使用此值和RFC为IP over ATM AAL5设置9180个二进制八位数的MTU,如RFC 2225中所定义 。 |
RFC 1626 和RFC 2225 | 指定ATM接口必须尝试使用交换虚电路(SVC)的ATM信令协议协商AAL CPCS-SDU大小的其他项。 |
RFC 791 定义了IP分段,并将其描述为“如果总长度小于或等于最大传输单元,则将此数据报提交到数据报处理的下一步;否则,将数据报分为两个分段,第一个分段是最大大小,第二个分段是数据报的其余部分。”
debug ip packet{host access-list}命令输出捕获两台主机192.168.1.51和192.168.1.254之间的ping。对于每个数据包,路由器报告它收到两个分段:长度为1500字节,长度为48字节。
注意:在发出debug命令之前,请参阅有关Debug命令的重要信息。
*Mar 28 09:59:27.002: IP: s=192.168.1.51 (ATM4/0.3), d=192.168.1.254, len 1500, rcvd 4 *Mar 28 09:59:27.002: IP: recv fragment from 192.168.1.51 offset 0 bytes *Mar 28 09:59:27.002: IP: s=192.168.1.51 (ATM4/0.3), d=192.168.1.254, len 48, rcvd 4 *Mar 28 09:59:27.002: IP: recv fragment from 192.168.1.51 offset 1480 bytes
路由器以回应应答作出响应,并报告它正在发送两个分段。
*Mar 28 09:59:27.002: ICMP: echo reply sent, src 192.168.1.254, dst 192.168.1.51 *Mar 28 09:59:27.002: IP: s=192.168.1.254 (local), d=192.168.1.51 (ATM4/0.3), len 1528, sending *Mar 28 09:59:27.002: IP: s=192.168.1.254 (local), d=192.168.1.51 (ATM4/0.3), len 1500, sending fragment *Mar 28 09:59:27.006: IP: s=192.168.1.254 (local), d=192.168.1.51 (ATM4/0.3), len 48, sending last fragment
Cisco Catalyst 5000和6000交换机上的千兆以太网接口支持MTU为9,216字节的巨型帧。从Cisco IOS软件版本12.1(10)E开始,根据版本说明,Catalyst 6000系列ATM模块(WS-X6101)支持巨型帧。
在子接口上配置MTU大小不会影响Catalyst 6000系列ATM模块上可传输的最大帧大小。当模块启动时,最大帧大小(9218字节)会初始化,当MTU大小使用CLI更改时,最大帧大小不会更改。
要桥接巨型帧,应使用set port jumbo mod/port命令为管理引擎上的ATM模块启用该功能。
在早于12.1(10)E的Cisco IOS软件版本中,Catalyst ATM模块在命令行处接受MTU命令,最大值为9218字节。但是,如果没有巨帧支持,此配置更改会产生误导。最初不支持巨型帧的原因是任何VC支持的最大缓冲区数。
ATM#show interface atm0 ATM0 is down, line protocol is down Hardware is Catalyst 5000 ATM MTU 1584 bytes, sub MTU 0, BW 156250 Kbit, DLY 80 usec, rely 255/255, load 1/255 Encapsulation ATM, loopback not set, keepalive not supported Encapsulation(s): AAL5, PVC mode 4096 maximum active VCs, 1024 VCs per VP, 0 current VCCs VC idle disconnect time: 300 seconds Signaling vc = 1, vpi = 0, vci = 5 UNI Version = 3.1, Link Side = user PHY Type : SINGLE PHY; Link Status: DOWN [snip]
LANE第1版规范要求SETUP消息包括AAL参数信息元素(IE)。 在此IE中,主叫方或源ATM接口必须指定Forward Maximum CPCS-SDU Size和Backward Maximum CPCS-SDU Size。支持的AAL5 SDU最大八位字节值为1516、4544、9234和18190。自Cisco IOS软件版本12.1(10)E起,LEC可以传输最多9218字节的帧。
8540增强型千兆以太网线卡的规划图中已包含巨型帧支持。8510的千兆以太网卡正在研究此类支持。8540的ATM路由器模块2(ARM2)现在支持可配置的MTU大小。
如果故障症状指向数据报大小问题,请完成以下步骤以缩小故障排除范围。
确认主接口和子接口上的MTU是否正确。
如果超过某个数据包大小的ping失败,则问题可能与流量整形有关。请参阅了解ATM VC的VBR-nrt服务类别和流量整形。确认数据包从源路由器送出,并/或使用以下命令进入目的路由器:
debug ip packet(仅主机访问列表)
注意:此调试可在生产输出中产生大量输出。启用此调试时,请采取额外的预防措施。
debug atm packet interface atm mod/port vpi vci
debug atm errors
在show interface atm的输出中,检查giants计数器的非零值。巨型帧计数器是否随ping而增加?
执行show buffers命令,并为未命中和故障计数器查找非零值。确定计数器是否在增加,特别是当您ping路由器并使用系统缓冲区时。有关详细信息,请参阅缓冲区调整。
7500#show buffers Buffer elements: 499 in free list (500 max allowed) 913677 hits, 0 misses, 0 created Public buffer pools: Small buffers, 104 bytes (total 480, permanent 480): 474 in free list (20 min, 1000 max allowed) 1036212 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Middle buffers, 600 bytes (total 360, permanent 360): 358 in free list (20 min, 800 max allowed) 635809 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Big buffers, 1524 bytes (total 360, permanent 360): 360 in free list (10 min, 1200 max allowed) 23457 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) VeryBig buffers, 4520 bytes (total 40, permanent 40): 40 in free list (5 min, 1200 max allowed) 8969 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Large buffers, 5024 bytes (total 40, permanent 40): 40 in free list (3 min, 120 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Huge buffers, 18024 bytes (total 4, permanent 0): 3 in free list (3 min, 52 max allowed) 0 hits, 1 misses, 427 trims, 431 created 0 failures (0 no memory)
执行show ip interface atm命令,并确定是否启用了思科快速转发(CEF)。如果是,请检查与目标的邻接条目中引用的MTU大小。
router#show adj atm 5/0.1 interface Protocol Interface Address IP ATM5/0.1 point2point(6) 0 packets, 0 bytes 00040000 AAAA030000000800 CEF expires: 00:02:49 refresh: 00:00:49 ATM-PVC never Fast adjacency enabled IP redirect enabled IP mtu 4470 (0x0) Fixup disabled
Cisco Bug ID CSCdv42095(仅限注册客户)解决了在桥接接口上将MTU配置为小于1502字节时,对大于1498字节的数据包执行ping操作失败的问题。更改允许最大数据包大小等于MTU加上最大ATM封装(以字节为单位)。将MTU设置为1502作为解决方法。