NAME

hostRecvRedirect4OnlinkNUD - Verifying Redirect (to a better router) vs. Neighbor Unreachability Detection


TARGET

Host only


SYNOPSIS

  hostRecvRedirect4OnlinkNUD.seq [-tooloption ...]
                                  -p hostRecvRedirect4OnlinkNUD.def


INITIALIZATION

  1. Clear IPv6 routes.
  2. Send RA with RouterLifetime=0 to clear the Default Router List.
  3. Set R1 as the default router by sending RA and NA.

  TN                 NUT
  ----------------------

State: NONCE (for all)
==== unsolicited RA ===> src=R1's link-local dst=all-node M=0, O=0 RouterLifetime=0 ReachableTime=0 RetransTimer=0
==== unsolicited RA ===> src=R1's link-local dst=all-node M=0, O=0 RouterLifetime=600 ReachableTime=0 RetransTimer=0 w/ SLLA Prefix Option: L=1, A=1 ValidLifetime=2592000 PreferredLifetime=604800 Prefix=3ffe:501:ffff:100::/64
State: STALE (for R1)
==== solicited NA ===> src=R1's link-local dst=NUT's link-local R=1, S=1, O=1 target=R1's link-local TLLA=R1's LLA
State: REACHABLE (for R1)
Wait (3 sec) for DAD NS


TEST PROCEDURE

hostRecvRedirect4OnlinkNUD verifies that an entry of Destination Cache updated by a redirect message is removed by Neighbor Unreachability Detection.

  1. Send echo-request (src:H1, dst:NUT)
  2. Verify that NUT send echo-reply to the default router, R1
  3. Send redirect message to NUT.
  4. Send echo-request (src:H1, dst:NUT) again.
  5. Verify that NUT throw echo-reply to on-link.
  6. Wait for NC state to NONCE.
  7. Send echo-request (src:H1, dst:NUT) again.
  8. Verify that NUT send echo-reply to the default router, R1
  TN               NUT
  ----------------------

State: REACHABLE (for R1), NONCE (for H1)
==== echo-request ===> src=H1(off-link global), prefix=3ffe:501:ffff:109::/64, but LLA is R1's one dst=NUT's global, prefix=3ffe:501:ffff:100::/64
<=== Judgment #1: echo-reply ==== src=NUT's global, prefix=3ffe:501:ffff:100::/64 dst=H1(off-link global), prefix=3ffe:501:ffff:109::/64, but LLA is R1's one
==== redirect ===> src=R1's link-local dst=NUT's link-local icmp target=H1's global icmp destination=H1's global TLLA=H1's LLA w/o Redirected header
State: REACHABLE (for R1), STALE (for H1)
==== echo-request ===> src=H1(off-link global), prefix=3ffe:501:ffff:109::/64, but LLA is R1's one dst=NUT's global, prefix=3ffe:501:ffff:100::/64
<=== Judgment #2: echo-reply ==== src=NUT's global, prefix=3ffe:501:ffff:100::/64 dst=H1(off-link global), prefix=3ffe:501:ffff:109::/64, LLA is as same as TLLA option of the redirect message has.
State: REACHABLE (for R1), DELAY (for H1)
Wait (5 sec)
State: REACHABLE (for R1), PROBE (for H1)
Wait (3 sec)
State: REACHABLE (for R1), NONCE (for H1)
==== echo-request ===> src=H1(off-link global), prefix=3ffe:501:ffff:109::/64, but LLA is R1's one dst=NUT's global, prefix=3ffe:501:ffff:100::/64
<=== Judgment #1: echo-reply ==== src=NUT's global, prefix=3ffe:501:ffff:100::/64 dst=H1(off-link global), prefix=3ffe:501:ffff:109::/64, but LLA is R1's one


JUDGMENT

  1. NUT must throw echo-reply whose destination is off-link global
    to the default router (i.e. R1).

  2. NUT must throw echo-reply to on-link.


TERMINATION

  - Send RA with RouterLifetime=0 to clear the Default Router List.
  - Clear IPv6 routes with remote command. XXX


NOTE

  The test invokes the following command:
  - Clear IPv6 routes


SEE ALSO

  perldoc V6evalTool
  perldoc V6evalRemote