最大传输单位(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)。 它们在ATM堆栈的通用部分融合子层(CPCS)封装路由或桥接协议数据单元(PDU)。RFC 1483
,定义了AAL5报尾的格式,如下图所示。
AAL5报尾中的双字节长度字段指示CPCS-PDU负载字段的大小。两个字节为16位,或最大长度值为65,535(216)个二进制八位数。
MTU定义第3层数据报的大小。AAL5服务数据单元(SDU)定义为第3层数据报加上可选的逻辑链路控制/子网访问协议(LLC/SNAP)报头。AAL5 PDU定义为组合的AAL5 SDU加上八字节AAL5报尾。因此,9180的MTU可以生成9180字节的AAL5 SDU和9188字节的AAL5 PDU以及八字节的AAL5报尾。
当ATM接口收到大于MTU的数据包时,路由器会增加Oversized SDUs计数器。
RFC 1695中定义了Oversize SDUs计数器。
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 }
在检测到过大的SDU错误时,遵循RFC 1695的ATM接口也会增加ifInErrors计数器。这是除CRC-32和SAR超时错误之外的其他错误,这两个错误也是在RFC中定义的两个计数器。
当重组数据包的计算大小与AAL5长度字段的接收值不匹配时,无论MTU如何,路由器都会增加AAL5长度违规计数器。要了解这些违规是如何发生的,您需要了解接收的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 |
定义路径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 |
除其他项外,指定ATM接口必须使用交换虚电路(SVC)的ATM信令协议尝试协商AAL CPCS-SDU大小。 |
RFC 791
,定义了IP分段,并将过程描述为“如果总长度小于或等于最大传输单位,则将此数据报提交到数据报处理的下一步;否则,请将数据报分成两个分段,第一个分段为最大大小,第二个分段为数据报的其余部分。"
debug ip packet {host access-list} 命令输出捕获两台主机192.168.1.51和192.168.1.254之间的ping。对于每个数据包,路由器报告它收到两个分段:1个长度为1500字节,1个长度为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交换机上的千兆以太网接口支持具有9,216字节MTU的超巨型帧。根据发行说明,从Cisco IOS软件版本12.1(10)E开始,即可为Catalyst 6000系列ATM模块(WS-X6101)提供巨型帧支持。
在子接口上配置MTU大小不会影响Catalyst 6000系列ATM模块上可传输的最大帧大小。模块启动时初始化最大帧大小(9218字节),使用CLI更改MTU大小时,最大帧大小(9218字节)保持不变。
要桥接超巨型帧,应使用set port jumbo mod/port命令为Supervisor引擎上的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的输出中检查巨型帧计数器的非零值。巨型帧是否随着您的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作为解决方法。