|ICMP type 10, Router solicitation|
|Protocol type:||Transport layer control protocol.|
|Base protocol:||ICMP, Internet Control Message Protocol.|
|Related ICMP message:||Router advertisement.|
|Links:||IANA: ICMP parameters.|
RFC 1256, page 3:
The ICMP router discovery messages are called "Router Advertisements" and "Router Solicitations". Each router periodically multicasts a Router Advertisement from each of its multicast interfaces, announcing the IP address(es) of that interface. Hosts discover the addresses of their neighboring routers simply by listening for advertisements. When a host attached to a multicast link starts up, it may multicast a Router Solicitation to ask for immediate advertisements, rather than waiting for the next periodic ones to arrive; if (and only if) no advertisements are forthcoming, the host may retransmit the solicitation a small number of times, but then must desist from sending any more solicitations. Any routers that subsequently start up, or that were not discovered because of packet loss or temporary link partitioning, are eventually discovered by reception of their periodic (unsolicited) advertisements. (Links that suffer high packet loss rates or frequent partitioning are accommodated by increasing the rate of advertisements, rather than increasing the number of solicitations that hosts are permitted to send.)
The router discovery messages do not constitute a routing protocol: they enable hosts to discover the existence of neighboring routers, but not which router is best to reach a particular destination. If a host chooses a poor first-hop router for a particular destination, it should receive an ICMP Redirect from that router, identifying a better one.
Router Solicitation messages must not be sent from an interface that is not configured to transmit these messages.
RFC 1122, page 56:
The following information MUST be configurable: (1) IP address(es). (2) Address mask(s). (3) A list of default gateways, with a preference level.
RFC 1256, page 12:
A host that implements the ICMP router discovery messages must allow for variables to be configured by system management.
RFC 1256, page 13:
The Host Requirements -- Communication Layers ... [RFC 1122], Section 126.96.36.199 specifies that each host implementation must support a configurable list of default router addresses. The purpose of the ICMP router discovery messages is to eliminate the need to configure that list in hosts attached to multicast links. On non-multicast links, and on multicast links for which ICMP router discovery is not (yet) supported by the routers or is administratively disabled, it will continue to be necessary to configure the default router list in each host.
RFC 1256, page 14:
A host must silently discard any received Router Solicitation messages.
A host silently discards any Router Advertisement message that arrives on an interface for which the host's configured PerformRouterDiscovery flag is FALSE, and it never sends a Router Solicitation on such an interface.
RFC 1256, page 16:
A host is permitted (but not required) to transmit up to MAX_SOLICITATIONS Router Solicitation messages from any of its multicast interfaces after any of the following events:
- The interface is initialized at system startup time.
- The interface is reinitialized after a temporary interface failure or after being temporarily disabled by system management.
- The system changes from being a router to being a host, by having its IP forwarding capability turned off by system management.
- The PerformRouterDiscovery flag for the interface is changed from FALSE to TRUE by system management.
RFC 1256, page 7:
A router that implements the ICMP router discovery messages must allow for variables to be configured by system management.
RFC 1256, page 9:
A router must silently discard any received Router Solicitation messages that do not satisfy the validity checks.
A solicitation that passes the validity checks is called a "valid solicitation".
The router joins the all-routers IP multicast group (188.8.131.52) on all interfaces on which the router supports IP multicast.
RFC 1812, page 62:
An IP router MUST support the router part of the ICMP Router Discovery Protocol on all connected networks on which the router supports either IP multicast or IP broadcast addressing. The implementation MUST include all the configuration variables specified for routers, with the specified defaults.
Routers are not required to implement the host part of the ICMP Router Discovery Protocol, but might find it useful for operation while IP forwarding is disabled (i.e., when operating as a host).
|MAC header||IP header||ICMP message||Data|
ICMP type 10, Router solicitation message:
|Type||Code||ICMP header checksum|
Type. 8 bits. Set to 10.
Code. 8 bits. Cleared to 0.
ICMP Header Checksum.
The 16-bit one's complement of the one's complement sum of the ICMP message, starting with the ICMP Type field. When the checksum is computed, the checksum field should first be cleared to 0. When the data packet is transmitted, the checksum is computed and inserted into this field. When the data packet is received, the checksum is again computed and verified against the checksum field. If the two checksums do not match then an error has occurred.
reserved. 32 bits. Cleared to 0.
[RFC 1122] Requirements for Internet Hosts -- Communication Layers.
[RFC 1256] ICMP Router Discovery Messages.
[RFC 1812] Requirements for IP Version 4 Routers.
[RFC 1009] Requirements for Internet Gateways.
[RFC 1716] Towards Requirements for IP Routers.