Let's say I have a following setup:
Cisco891[Gi0] <- L2 last-mile provider -> [ae0.199]M10i
Both
Gi0 and
ae0.199 have MTU 1500 bytes. Cisco 891 has 10.10.10.2 configured to it's
Gi0 and
M10i has 10.10.10.1 on it's
ae0.199.
If I execute "ping 10.10.10.2 size 1473 count 1"(or larger packet size) in
M10i and
tcpdump traffic, I can see following:
00:14:51.326107 Out 0:19:e2:8c:8b:f0 > c8:9c:1d:33:f8:d4, ethertype 802.1Q (0x8100), length 68: vlan 199, p 0, ethertype IPv4, truncated-ip - 1450 bytes missing! 10.10.10.1 > 10.10.10.2: ICMP echo request, id 57716, seq 0, length 1480
00:14:51.326151 Out 0:19:e2:8c:8b:f0 > c8:9c:1d:33:f8:d4, ethertype 802.1Q (0x8100), length 39: vlan 199, p 0, ethertype IPv4, 10.10.10.1 > 10.10.10.2: icmp
00:14:51.345959 In PFE proto 2 (ipv4): 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 57716, seq 0, length 1480
In other words ICMP "echo request" probe gets fragmented(first part is sent out at 00:14:51.326107 and the second part is sent out at 00:14:51.326151). In addition, there is a reply from
Cisco 891 received at 00:14:51.345959.
Why isn't this ICMP "echo reply" message accepted by ping utility? I mean ping utility in Juniper shows that the ICMP "echo request" did not get "echo reply" back: 1 packets transmitted, 0 packets received, 100% packet loss. How does ping utility know that the reply he got was incomplete?