簡介
本檔案介紹不同的MTU組態,並討論包含具有不同組合和填充的行為的案例。
背景
分段發生在L3路徑中,而不是L2上
填充主要用於確保IP資料包報頭的長度是32位的倍數
必備條件
IP分段和重組
Cisco Nexus交換機上的MTU
有關填充的資訊
- Sender[initiator]將執行填充,間歇性[transit]裝置將不執行填充
- 封包經過直通交換器時,不應修改填充
- 如果建立者無法執行填充,交換器會將該封包視為大小不足的訊框
- Wireshark捕獲將在填充之前進行
- 基本上,即使要傳送到線路的資料包大小小於64B,交換機也會新增額外的位元組
- 當64位元組802.1q標籤的乙太網幀通過L2/L3上的中繼埠接收並被路由/轉發到未標籤的接入埠時,802.1q標籤會減少,幀大小會減少4個位元組
- 在取消標籤幀的過程中,幀不再滿足IEEE 802.1q規範中規定的64位元組最小MTU,交換機應該將幀填充回到64位元組
分段和MTU不匹配
- 如果路徑是L3,則會進行分段,且不會丟棄資料包。
- 如果路徑是L2,則不會進行分段,封包將完全捨棄
- 使用封包大小1540B發起[ICMP],且路徑中仍有第2層你沒有看到捨棄,總大小變為1568 [1540+20+8]
- Initiate [ICMP with ]packet-size 1541B, total packet becomes 1569, you see the drops, and drops are be as Giants counters
- 如果MTU不匹配以下計數器遞增 — 基於方案和配置的巨型、Giants、Runt等。
拓撲
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
已使用資料包大小5000(資料包計數50)從N5k1對Nexus-Sw2發起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