recvNsBasic - Verifying that NUT acknowledges valid NSs
Host and Router
recvNsBasic.seq [-tooloption ...] -p recvNsBasic.def
recvNsBasic verify that NUT acknowledges a valid NS w/ SLLA, then returns a valid NA.
TN NUT ------------------------ ==== unsolicited RA ===> src=X's link-local dst=NUT's link-local M=0, O=0 LifeTime=600; ReachableTime=0; RetransTimer=0; Prefix Option: L=1, A=1 ValidLifetime=2592000; PreferredLifetime=604800;
TN NUT -----------------------
State: NONCE
==== NS ===> src=TN's link-local, global dst=NUT's link-local or global or solicited-node[NUT's link-local] or solicited-node[global] w/ SLL
State: INCOMPLETE
<=== Judgement #1: NA ==== src=NUT's link-local or global dst=TN's link-local or global w/ or w/o TLL
Input & output ===============================+=================================== NS (input) | NA (expected) -------+---------------+-------+-----------+------+-+-+-+---------- Src | Dst | SLLA | Src | Dst |r|s|o| TLLA =======+===============+=======+===========+======+=+=+=+========== link link exist |link link * 1 0 none |link link * 1 1 exist -------+---------------+-------+-----------+------+-+-+-+---------- link global exist |link/global link * 1 0 none |link/global link * 1 1 exist -------+---------------+-------+-----------+------+-+-+-+---------- global link exist |link/global global * 1 0 none |link/global global * 1 1 exist -------+---------------+-------+-----------+------+-+-+-+---------- global global exist |global global * 1 0 none |global global * 1 1 exist =======+===============+=======+===========+======+=+=+=+========== link sol-node[link] exist |link link * 1 1 exist -------+---------------+-------+-----------+------+-+-+-+---------- link sol-node[global]exist |link/global link * 1 1 exist -------+---------------+-------+-----------+------+-+-+-+---------- global sol-node[link] exist |link/global global * 1 1 exist -------+---------------+-------+-----------+------+-+-+-+---------- global sol-node[global]exist |global global * 1 1 exist =======+===============+=======+===========+======+=+=+=+========== *If NUT is a host, r-flag must be the zero. *If NUT is a router, r-flag is must be the one.
recvNsBasic verify that NUT acknowledges a valid NS w/o SLLA, then returns a valid NA.
Clear NC state for TN.
TN NUT ---------------------------------
State: NONCE
==== unicast NS ===> src=TN's link-local dst=NUT's link-local w/o SLL
State: INCOMPLETE
<=== Judgment #2: multicast NS ==== src=NUT's link-local dst=solicited-node[TN's link-local] w/ SLL
==== solicited NA ===> src=TN's link-local dst=NUT's link-local R=0, S=1, O=1 w/ TLL
State: REACHABLE
<=== Judgment #3: solicited NA (if any) ==== src=NUT's link-local dst=TN's link-local R=0/1, S=1, O=0 w/ or w/o TLL
1. Input and output ===============================+=================================== NS (input) | NA (expected) -------+---------------+-------+-----------+------+-+-+-+---------- Src | Dst | SLLA | Src | Dst |r|s|o| TLLA =======+===============+=======+===========+======+=+=+=+========== link link none |link link * 1 0 none |link link * 1 0 exist =======+===============+=======+===========+======+=+=+=+========== *If NUT is a host, r-flag must be the zero. *If NUT is a router, r-flag is must be the one. 2. NUT may send at the least one multicast NS. src=NUT's link-local, dst=solicited-node[TN's link-local], w/ SLL 3. NUT may send a solicited NA.
3.1. NUT is a host src=NUT's link-local, dst=TN's link-local, r=0, s=1, O=0, w/ or w/o TLL
3.2. NUT is a router src=NUT's link-local, dst=TN's link-local, r=1, s=1, O=0, w/ or w/o TLL
Send RA with RouterLifetime=0 to clear the Default Router List.
1. The command does not invoke any remote command.
RFC2461
7.2.4. Sending Solicited Neighbor Advertisements
A node sends a Neighbor Advertisement in response to a valid Neighbor Solicitation targeting one of the node's assigned addresses. The Target Address of the advertisement is copied from the Target Address of the solicitation. If the solicitation's IP Destination Address is not a multicast address, the Target Link-Layer Address option MAY be omitted; the neighboring node's cached value must already be current in order for the solicitation to have been received. If the solicitation's IP Destination Address is a multicast address, the Target Link-Layer option MUST be included in the advertisement. Furthermore, if the node is a router, it MUST set the Router flag to one; otherwise it MUST set the flag to zero.
If the Target Address is either an anycast address or a unicast address for which the node is providing proxy service, or the Target Link-Layer Address option is not included, the Override flag SHOULD be set to zero. Otherwise, the Override flag SHOULD be set to one. Proper setting of the Override flag ensures that nodes give preference to non-proxy advertisements, even when received after proxy advertisements, and also ensures that the first advertisement for an anycast address "wins".
If the source of the solicitation is the unspecified address, the node MUST set the Solicited flag to zero and multicast the advertisement to the all-nodes address. Otherwise, the node MUST set the Solicited flag to one and unicast the advertisement to the Source Address of the solicitation.
If the Target Address is an anycast address the sender SHOULD delay sending a response for a random time between 0 and MAX_ANYCAST_DELAY_TIME seconds.
Because unicast Neighbor Solicitations are not required to include a Source Link-Layer Address, it is possible that a node sending a solicited Neighbor Advertisement does not have a corresponding link- layer address for its neighbor in its Neighbor Cache. In such situations, a node will first have to use Neighbor Discovery to determine the link-layer address of its neighbor (i.e, send out a multicast Neighbor Solicitation).
perldoc V6evalTool perldoc V6evalRemote