The Codes of ICMP

In today’s post I wanted to talk about the widely used Ping command. Which is one of the best methods (I think) to begin network troubleshooting. When part of the network goes down it is sometimes hard to figure out why? When you issue the ping command or the extended ping command in a Cisco router several ICMP codes can come up on the router. Let’s discuss them!

The first status code “!” (Exclamation mark) is a good sign, when you issued the Ping command from the router it was able to get a ICMP echo reply from the device you specified in the command. This also verifies that routing is also working. If you get a reply from the device you are pinging it usually means everything is up and running.

The next status code “.” (Period) is usually not a good sign. When you issued the ping command from the router it was not able to get a reply back from the device you are pinging along with the router unable to get any other traffic like an ICMP unreachable before the ICMP packet expired. This usually means the router does not have a route to the specified IP address.

The third status code”U” means that the router received an ICMP unreachable packet. There is route for the specified IP address in the router’s routing table however the device did not respond and is unavailable. So the router that has a route to that device sends back an ICMP Unreachable packet to the device that sent the ping.

The fourth status code “N” means the router received an ICMP unreachable packet but instead of destination host unreachable this is a network/subnet unreachable. If the router receives an IP packet that is destined to another network but can not send the packet based on its own routing table it will send an ICMP unreachable packet with the network/subnet code.

These are the most common ICMP codes that you could run into. There are others like the ICMP “can’t fragment” which would result in the code”M” this would happen when the router needs to fragment the ICMP packet but in the packet itself a flag in the IP header can be set not to fragment the packet. The router would discard the packet and issue the code. Pings are always a good troubleshooting tool but ICMP is only helpful if you know some the ICMP codes which makes it easier for you to troubleshoot the problem. Like always I hope this information is helpful, if you have an idea about a topic in ICND1 or ICND2 let me know!


One thought on “The Codes of ICMP

Comments are closed.