According to why ICMP Time Exceeded packet takes longer ICMP Echo Reply, it is normal for ICMP time exceeded be treated as low priority and slowed down or even discarded. I'm observing this problem on a lightly loaded PowerConnect 7048 and I would like to bump up the priority so that those packets aren't discarded.
My topology is as follows:
HostA PC7048 (routing) HostB
192.168.0.1/24 ----- 192.168.0.2/24,10.10.0.2/24 ----- 10.10.0.1/24
- When I ping from 192.168.0.1 to 10.10.0.1 I get 0% packet loss
- When I ping from 192.168.0.1 to 10.10.0.2 I get 0% packet loss
- When I use MTR from 192.168.0.1 to 10.10.0.1 I get 5% to 30% packet loss on the first hop. By doing tcpdump I confirmed that the way MTR seems to work is by shortening TTL and listening for ICMP time exceeded response (same approach like plain traceroute). This confirms that I have the same problem as why ICMP Time Exceeded packet takes longer ICMP Echo Reply
So I understand why this is happening. Or at least kind of. It's suppose to drop ICMP time exceeded packets when it's "busy" except I would not call my PC7048 busy at all. It's pushing at most 2Gbps spread across about 15 active ports - so in my opinion almost idle. It also does OSPF routing with approx 120 routes in the routing table, so it does this in L3 but still, that's not too much to ask from this model of a switch. Is it?
This is my processor usage
switch#show process cpu
Memory Utilization Report
status bytes
------ ----------
free 559607072
alloc 435529120
CPU Utilization:
PID Name 5 Secs 60 Secs 300 Secs
-----------------------------------------------------------------
53923d0 tNet0 0.00% 0.09% 0.09%
53b99f0 BusM A 0.16% 0.12% 0.10%
55c1ab0 ipnetd 0.00% 0.01% 0.00%
5637b80 envMonTask 8.71% 3.22% 1.83%
5641370 osapiTimer 0.00% 0.10% 0.08%
568bba0 bcmDPC 0.00% 0.03% 0.04%
5926150 bcmL2X.0 3.01% 3.18% 3.15%
5b34440 bcmCNTR.0 1.84% 1.49% 1.55%
5bb3620 bcmTX 0.00% 0.02% 0.04%
63468d0 bcmRX 1.84% 1.66% 1.72%
6366ac0 bcmNHOP 0.16% 0.04% 0.02%
6379390 bcmATP-TX 0.00% 0.02% 0.03%
6382890 bcmATP-RX 0.00% 0.07% 0.05%
695e640 MAC Send Task 0.00% 0.03% 0.03%
6967b40 MAC Age Task 0.16% 0.02% 0.01%
8280660 bcmLINK.0 0.00% 0.09% 0.14%
850b8b0 LOG 0.00% 0.01% 0.01%
b822e50 tL7Timer0 0.00% 0.01% 0.02%
b848740 osapiMonTask 0.00% 0.00% 0.02%
c9a7f90 servPortMonTask 0.00% 0.01% 0.00%
cb1a310 portMonTask 0.00% 0.00% 0.01%
cb44a80 simPts_task 0.00% 0.01% 0.04%
d25df40 dtlTask 0.50% 0.31% 0.28%
d2b0f50 hapiRxTask 0.00% 0.12% 0.14%
d2da220 emWeb 0.00% 0.02% 0.00%
dd953c0 hapiL3AsyncTask 0.00% 0.49% 0.46%
e6cdc50 trafficStormControl 0.00% 0.01% 0.02%
e9f14c0 DHCP snoop 0.16% 0.03% 0.03%
f0b8930 SNMPTask 0.00% 0.04% 0.03%
109f7730 dot1s_timer_task 0.50% 0.35% 0.34%
10a08a00 dot1s_task 0.00% 0.00% 0.01%
11dd3920 tacacs_rx_task 0.16% 0.02% 0.00%
11de64b0 unitMgrTask 0.00% 0.02% 0.01%
11f865a0 snoopTask 0.33% 0.16% 0.14%
12f18930 dhcpsPingTask 0.00% 0.00% 0.01%
13055e50 spmTask 0.16% 0.03% 0.02%
130dcbe0 ipMapForwardingTask 2.51% 2.70% 2.97%
13327130 tArpCallback 0.00% 0.13% 0.15%
136bfd30 OSPF Proto 0.50% 0.12% 0.08%
137788d0 ARP Timer 1.50% 1.45% 1.54%
1bee9f50 lldpTask 0.00% 0.31% 0.34%
1c90dce0 tCptvPrtl 0.00% 0.01% 0.02%
1da0a130 RMONTask 0.16% 0.10% 0.10%
1da26e50 boxs Req 0.00% 0.00% 0.01%
1e9d81f0 OSPF Receive 0.00% 0.03% 0.06%
1ea71060 sshd[0] 0.00% 0.03% 0.01%
-----------------------------------------------------------------
Total CPU Utilization 22.44% 16.96% 15.98%
What resource is the switch running out of that it can't send back a few ICMP time exceeded packets? How do I prioritize ICMP time exceeded packets so that the switch knows these are very important for me and treats them accordingly? The reason these packets are very important to me is that when clients see this, they incorrectly conclude that there is a fault in my network. I could send them to this article that explains why, but the questions remains in their head "why am I paying so much money for oversubscribed switch that's so busy it can't spare a millisecond to send back a couple ICMP time exceeded packets?". In other words it looks really bad when the only row in a trace that shows packet loss belongs to you. How come everyone else is able to get 0% packet loss?