# Internet Control Message Protocol

IP was not designed to provide reliable delivery service. The higher-layer protocols that operate as clients of IP implement their own reliability procedures if reliable communications are required.

Internet Control Message Protocol (ICMP) provides a mechanism that enables a router or destination host to report an error in data traffic processing to the original source of the packet. ICMP messages provide feedback about problems that occur in the communication environment.

ICMP messages are sent only when errors occur in either the processing of an unfragmented data packet or the first fragment of a fragmented data packet.

ICMP messages are encapsulated as part of the data portion of an IP data packet and are routed like any other IP data packets. Thus, there is no guarantee to the sender of an ICMP message that the message will be delivered to its destination.

The router supports ICMP redirects. When a packet enters an IP interface and exits the same interface, the router may send an ICMP message to the originator of the packet. This message notifies the originator that a better gateway exists to the assigned destination address.

With the ip redirects command (used in Interface Configuration mode) you can enable or disable ICMP redirects. This attribute is enabled by default. If it is enabled on the IP interface and if the internal ICMP redirect queue is not full, the router sends an ICMP redirect packet to the originator. When the originator receives the ICMP redirect notification, the originator determines whether to start using the better gateway.

## ICMP Tasks

You can enable the following ICMP features:

- ICMP Router Discovery Protocol (IRDP)
- ICMP netmask reply
- Sending of IP redirects
- Generation of ICMP unreachable messages

ip irdp

- Use to enable IRDP processing on an interface.
- Example
  host1(config-if)#ip irdp
- Use the no version to disable the function.
- See ip irdp

ip mask-reply

- Use to enable ICMP netmask reply.
- Example
  host1(config-if)#ip mask-reply
- Use the no version to disable the function.
- See ip mask-reply

ip redirects

- Use to enable the sending of redirect messages if software is forced to resend a packet through the same interface on which it was received.
- Example
  host1(config-if)#ip redirects
- Use the no version to disable the sending of redirect messages.
- See ip redirects

ip unreachables

- Use to enable the generation of an ICMP unreachable message when a packet is received that the router cannot deliver.
- Example
  host1(config-if)#ip unreachables
- Use the no version to disable the function.
- See ip unreachables

## Specifying a Source Address for ICMP Messages

By default, ICMP uses the IP address of the outgoing interface as the source IP address for the ICMP message. However, you can use the ip icmp update-source command to instruct ICMP to use an already configured interface or a specified IP address, as the source address of the ICMP message.

For example, you can specify that ICMP use Fast Ethernet interface 1 in slot 0 as the source for any messages that it sends:

host1(config)#ip icmp update-source fastEthernet 0/1

You must use an already configured interface or an existing IP address when using the ip icmp update-source command. Also, you cannot specify a multicast address when using this command.

ip icmp update-source

- Use to define an update source address for all ICMP messages that the E Series router generates from the specified interface.
- Example
  host1(config)#ip icmp update-source 192.35.42.1
- Use the no version to disable the function.
- See ip icmp update-source