IPv6 Neighbor Solicitation Message
A value of 135 in the Type field of
the ICMP packet header identifies a neighbor solicitation message. Neighbor
solicitation messages are sent on the local link when a node wants to determine
the link-layer address of another node on the same local link (see the figure
below). When a node wants to determine the link-layer address of another node,
the source address in a neighbor solicitation message is the IPv6 address of
the node sending the neighbor solicitation message. The destination address in
the neighbor solicitation message is the solicited-node multicast address that
corresponds to the IPv6 address of the destination node.
The neighbor solicitation message
also includes the link-layer address of the source node. After receiving the neighbor
solicitation message, the destination node replies by sending a neighbor advertisement
message, which has a value of 136 in the Type field of the ICMP packet header,
on the local link. The source address in the neighbor advertisement message is
the IPv6 address of the node (more specifically, the IPv6 address of the node
interface) sending the neighbor advertisement message. The destination address
in the neighbor advertisement message is the IPv6 address of the node that sent
the neighbor solicitation message. The data portion of the neighbor
advertisement message includes the link-layer address of the node sending the
neighbor advertisement message.
After the source node receives the
neighbor advertisement, the source node and destination node can
communicate. Neighbor solicitation
messages are also used to verify the reachability of a neighbor after the
link-layer address of a neighbor is identified. When a node wants to verifying
the reachability of a neighbor, the destination address in a neighbor
solicitation message is the unicast address of the neighbor. Neighbor
advertisement messages are also sent when there is a change in the link-layer
address of a node on a local link. When there is such a change, the destination
address for the neighbor advertisement is the all-nodes multicast address.
Neighbor solicitation messages are
also used to verify the reach-ability of a neighbor after the link-layer address
of a neighbor is identified. Neighbor unreachability detection identifies the failure
of a neighbor or the failure of the forward path to the neighbor, and is used
for all paths between hosts and neighboring nodes (hosts or routers). Neighbor
unreachability detection is performed for neighbors to which only unicast
packets are being sent and is not performed for neighbors to which multicast
packets are being sent.
A neighbor is considered reachable
when a positive acknowledgment is returned from the neighbor (indicating that
packets previously sent to the neighbor have been received and processed). A
positive acknowledgment--from an upper-layer protocol (such as TCP)--indicates
that a connection is making forward progress (reaching its destination) or the
receipt of a neighbor advertisement message in response to a neighbor
solicitation message. If packets are reaching the peer, they are also reaching
the next-hop neighbor of the source. Therefore, forward progress is also a
confirmation that the next-hop neighbor is reachable. For destinations that are
not on the local link, forward progress implies that the first-hop router is
reachable.
When acknowledgments from an
upper-layer protocol are not available, a node probes the neighbor using
unicast neighbor solicitation messages to verify that the forward path is still
working.
The return of a solicited neighbor
advertisement message from the neighbor is a positive acknowledgment that the
forward path is still working (neighbor advertisement messages that have the
solicited flag set to a value of 1 are sent only in response to a neighbor
solicitation message). Unsolicited messages confirm only the one-way path from
the source to the destination node; solicited neighbor advertisement messages
indicate that a path is working in both directions.
Note : A neighbor
advertisement message that has the solicited flag set to a value of 0 must not
be considered as a positive acknowledgment that the forward path is still
working.
Neighbor solicitation messages are
also used in the stateless autoconfiguration process to verify the uniqueness
of uni-cast IPv6 addresses before the addresses are assigned to an interface.
Duplicate address detection is performed first on a new, link-local IPv6
address before the address is assigned to an interface (the new address remains
in a tentative state while duplicate address detection is performed).
Specifically, a node sends a neighbor solicitation message with an unspecified
source address and a tentative link-local address in the body of the message.
If another node is already using that address, the node returns a neighbor
advertisement message that contains the tentative link-local address. If
another node is simultaneously verifying the uniqueness of the same address,
that node also returns a neighbor solicitation message. If no neighbor advertisement
messages are received in response to the neighbor solicitation message and no
neighbor solicitation messages are received from other nodes that are
attempting to verify the same tentative address, the node that sent the
original neighbor solicitation message considers the tentative link-local
address to be unique and assigns the address to the interface.
Every IPv6 unicast address (global
or link-local) must be verified for uniqueness on the link; however, until the
uniqueness of the link-local address is verified, duplicate address detection
is not performed on any other IPv6 addresses associated with the link-local
address. The Cisco implementation of duplicate address
detection in the Cisco IOS software does not verify the
uniqueness of any-cast or global addresses that are generated from 64-bit interface identifiers.
No comments:
Post a Comment