简介
本文档介绍不同的MTU配置,并讨论涉及不同组合和填充行为的场景。
背景
分段发生在第3层路径,而不是第2层
填充基本上用于确保IP数据包报头的长度是32位的倍数
先决条件
IP 分段与重组
Cisco Nexus交换机上的MTU
有关填充的信息
- 发送方[发起方]将执行填充,间歇性[传输]设备将不执行填充
- 当数据包通过直通交换机时,不应修改填充
- 如果发起方无法填充,交换机会将数据包视为小帧
- Wireshark捕获将在填充之前进行
- 基本上,即使交换机要发送到线路的数据包大小小于64B,交换机也会添加额外的字节
- 当通过L2/L3的中继端口接收到64字节的802.1q标记以太网帧并将其路由/转发到无标记接入端口时,802.1q标记会减少,帧大小会减少4字节
- 在解除帧标记的过程中,帧不再符合IEEE 802.1q规范中指定的64字节最小MTU,交换机应将帧重新填充到64字节
分段和MTU不匹配
- 如果路径为L3,则会进行分段,数据包不会被丢弃。
- 如果路径为L2,则不会发生分段,数据包将完全丢弃
- 使用数据包大小1540B启动[ICMP],路径中仍有L2,但您看不到丢弃,其中总大小变为1568 [1540+20+8]
- 发起[ICMP with ]packet-size 1541B,总数据包变为1569,您会看到丢弃,丢弃被视为Giants计数器
- 如果MTU不匹配后的计数器根据场景和配置递增 — 巨型帧、巨型帧、残帧等。
拓扑
9K = MTU 9K [巨型]
1.5K = MTU 1.5K +配置为L2
上述实验拓扑分为以下多个场景:
使用ping测试排除MTU故障
使用数据包大小1500执行ping操作
已启动ping并成功执行,且没有任何ping丢弃。
即使我们有L2,我们也看不到丢弃,因为它使用的ping大小是默认值1500。
N5K-1# ping 10.1.1.2 count 10
PING 10.1.1.2 (10.1.1.2): 56 data bytes
64 bytes from 10.1.1.2: icmp_seq=0 ttl=254 time=3.228 ms
64 bytes from 10.1.1.2: icmp_seq=1 ttl=254 time=4.832 ms
数据包大小为5000的Ping
从N5k1向Nexus-Sw2发起使用数据包大小为5000且数据包计数为50的ping,并在传输L2时丢弃
N5K-1# ping 10.1.1.2 packet-size 5000 count 50
PING 10.1.1.2 (10.1.1.2): 5000 data bytes
Request 0 timed out
Request 1 timed out
在Nexus-sw1的入口处被视为巨型帧的数据包
Nexus-Sw1# sh interface ethernet 3/3 | i MTU|jumbo
MTU 9216 bytes, BW 10000000 Kbit, DLY 10 usec
50 jumbo packets 0 storm suppression packets >>>>>>> exact 50 jumbo packets are seeing in the RX counter.
Nexus-sw1出口处被视为巨型帧的数据包
Nexus-Sw1# sh interface ethernet 3/1 | i MTU|jumbo >>>>>>> Intertace connected towards to N7k2 with MTU 1500
MTU 1500 bytes, BW 10000000 Kbit, DLY 10 usec
50 jumbo packets >>>>>>> Exact 50 jumbo packets are egress in the TX.
在Nexus-sw2的入口丢弃的数据包
Nexus-Sw2# sh interface et3/1 | i MTU|giant >>>>>>> Interface connected towards Nexus-Sw1 with e3/1 MTU 1500
MTU 1500 bytes, BW 10000000 Kbit, DLY 10 usec
0 runts 50 giants 0 CRC/FCS 0 no buffer >>>>>>> Exact 50 input error and 50 Giants packets observed in the RX counter.
50 input error 0 short frame 0 overrun 0 underrun 0 ignored
Nexus-Sw2# sh interface et3/4 | i MTU|giant|error >>>>>>> Interface with MTU 1500
MTU 1500 bytes, BW 10000000 Kbit, DLY 10 usec
0 runts 0 giants 0 CRC/FCS 0 no buffer >>>>>>> No counter seen
0 output error 0 collision 0 deferred 0 late collision >>>>>>> No counter seen