Router Solicitation

Any node can send a Router Solicitation (RS) message at any time to request all routers on the local link to immediately send Router Advertisement (RA) messages. Routers send RA messages periodically, but when a node first powers on, it usually sends an RS message in order to get the RA information immediately, rather than waiting for the next periodic transmission. This is the only function of an RS message, so it has a very simple syntax:

nd rs msg

Fields in the IPv6 Packet Header:

The Source Address field is set to the link-local address of the sending interface. Optionally, if no address is currently assigned to that interface, it can use the unspecified address (::).

The Destination Address field is set to the all routers on local link multicast address (ff02::2). The RS message will be received by all routers in the local link, and each of them should reply with a Router Advertisement message.

The Hop Limit field is set to 255.

Fields in the RS message:

The Type field (8 bits) contains 133 for Router Solicitation

The Code field (8 bits) must contain zero.

The Checksum field (16 bits) contains a standard IP checksum.

The Reserved field (bytes 4-7, 32 bits) is unused, and must be set to zero.

The Options field (variable length, starting at offset 8) may contain the following options:

Up to one instance of the Source Link-Layer Address option. This specifies the Link Layer address of the sender. If the IP source address is the unspecified address, this option must not be included. Otherwise, this option should be included.

Now let’s look at a captured Neighbor Solicitation message:

rs msg capture

The Link Layer is Ethernet II. The source MAC address is 50:46:5d:6b:7a:54 (the MAC address of lawrence-pc). The destination MAC address is 33:33:00:00:00:02 (the Ethernet multicast address corresponding to the IPv6 multicast address ff02::2). The Ethertype is 0x86dd (IPv6).

The Internet Layer is IPv6. The source IPv6 address is fe80::2030:9139:9cd5:ab52 (the link-local address of lawrence-pc). The destination IPv6 address is ff02::1 (the “all nodes on local link” multicast address). The Next Header field is 58 (ICMPv6).

The ICMPv6 message follows: The Message Type is 134 (Router Advertisement). The Code is zero. The M Flag (Managed Address Configuration) is set (so there is a stateful DHCPv6 server available). The O Flag is clear (since M=1, O doesn’t matter). The Router Lifetime is 1800 seconds (the SolidGate firewall is willing to act as a gateway).The Reachable Time and Retrans Time are both zero.

There is one option:

The first option is a type 1 option, Source Link-Layer address. Its value is 00:90:0b:1b:57:62, the MAC address of the SolidGate firewall.