networking:mtu
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| networking:mtu [2025/09/11 01:12] β aperez | networking:mtu [2025/10/04 15:48] (current) β aperez | ||
|---|---|---|---|
| Line 41: | Line 41: | ||
| </ | </ | ||
| + | ---- | ||
| + | |||
| + | |||
| + | |||
| + | <note tip> | ||
| + | **MTU & PMTU Validation (side note)** | ||
| + | |||
| + | Quick reference on how to confirm the effective MTU and Path MTU (PMTU) end-to-end. Use these tests when enabling jumbo frames or troubleshooting connectivity. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **1) ICMP Check with ping** | ||
| + | Command: | ||
| + | <code bash> | ||
| + | ping -M do -s 1472 8.8.8.8 | ||
| + | </ | ||
| + | |||
| + | Expected output (OK, MTU 1500): | ||
| + | < | ||
| + | PING 8.8.8.8 (8.8.8.8) 1472(1500) bytes of data. | ||
| + | 1480 bytes from 8.8.8.8: icmp_seq=1 ttl=114 time=8.0 ms | ||
| + | 1480 bytes from 8.8.8.8: icmp_seq=2 ttl=114 time=7.9 ms | ||
| + | --- 8.8.8.8 ping statistics --- | ||
| + | 2 packets transmitted, | ||
| + | </ | ||
| + | |||
| + | π If **1472 passes**, effective MTU β **1500**. | ||
| + | π If it fails (e.g., *Frag needed*), the link is forcing MTU < | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **2) Path MTU Discovery with tracepath** | ||
| + | Command: | ||
| + | <code bash> | ||
| + | tracepath -n 8.8.8.8 | ||
| + | </ | ||
| + | |||
| + | **Case A β Standard network (PMTU 1500): | ||
| + | < | ||
| + | 1: 192.168.1.1 | ||
| + | 1: 192.168.1.1 | ||
| + | 2: 10.10.10.1 | ||
| + | 3: 8.8.8.8 | ||
| + | | ||
| + | </ | ||
| + | |||
| + | **Case B β Jumbo end-to-end (PMTU ~9000): | ||
| + | < | ||
| + | 1: 10.0.0.1 | ||
| + | 1: 10.0.0.1 | ||
| + | 2: 172.20.0.1 | ||
| + | 3: 8.8.8.8 | ||
| + | | ||
| + | </ | ||
| + | |||
| + | π If you see **`pmtu 1500`**, the path is limited to standard frames. | ||
| + | π If you see **`pmtu 9000`** (or similar), jumbo frames are preserved across the path. | ||
| + | π If it drops (e.g., 9000 β 1500 mid-path), a hop does not support jumbo. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Validation summary** | ||
| + | |||
| + | ^ Test ^ Expected outcome | ||
| + | | `ping -M do -s 1472` | Successful reply β effective MTU β 1500 | | ||
| + | | `tracepath -n` | Reports PMTU 1500 (standard) or 9000 (jumbo)| | ||
| + | |||
| + | </ | ||
| ---- | ---- | ||
| Line 88: | Line 156: | ||
| + | ---- | ||
| + | |||
| + | > **Note: PMTU and PMTUD (Path MTU / Path MTU Discovery)** | ||
| + | |||
| + | The *Path Maximum Transmission Unit (PMTU)* is the **largest IP packet size that can travel end-to-end without fragmentation**. | ||
| + | It is determined by the **smallest MTU along the entire path**. | ||
| + | |||
| + | Example: | ||
| + | * Link 1: MTU = 9000 | ||
| + | * Link 2: MTU = 1500 | ||
| + | * Link 3: MTU = 1400 | ||
| + | β **PMTU = 1400 bytes** | ||
| + | |||
| + | --- | ||
| + | |||
| + | **Path MTU Discovery (PMTUD): | ||
| + | A dynamic mechanism to discover the PMTU using the **DF (Donβt Fragment)** bit. | ||
| + | |||
| + | Steps: | ||
| + | - Source sends a large packet with DF=1. | ||
| + | - If a router cannot forward due to its MTU, it discards the packet and replies with ICMP *Fragmentation Needed* (Type 3, Code 4). | ||
| + | - The source reduces the size until it learns the **real PMTU**. | ||
| + | |||
| + | --- | ||
| + | |||
| + | **Verification on Linux**:: | ||
| + | |||
| + | ping -M do -s 1472 8.8.8.8 | ||
| + | β If it replies: path supports 1500 (1472+28 headers). | ||
| + | β If it fails: PMTU is smaller. | ||
| + | |||
| + | tracepath -n 8.8.8.8 | ||
| + | β Displays estimated PMTU along the route. | ||
| + | |||
| + | --- | ||
| + | |||
| + | **Common pitfalls** | ||
| + | * Blocking ICMP β breaks PMTUD (TCP sessions may hang). | ||
| + | * Tunnel/VPN overhead β reduces MTU (e.g., IPSec 1500 β ~1400). | ||
| + | * Misconfigured Jumbo Frames β one 1500 hop breaks 9000 end-to-end. | ||
| + | |||
| + | --- | ||
| + | |||
| + | **In summary: | ||
| + | * **PMTU** = max packet size without fragmentation. | ||
| + | * **PMTUD** = process to dynamically discover it using ICMP + DF. | ||
| Line 198: | Line 312: | ||
| + | {{ : | ||
| - | Β | + | {{pdfjs 46em >: |
| ---- | ---- | ||
| ---- | ---- | ||
networking/mtu.1757571125.txt.gz Β· Last modified: 2025/09/11 01:12 by aperez
