hostRecvRedirect4RouterLifetime02 - Verifying Redirect (to a better router) vs. RA w/ RouterLifetime=0
Host only
hostRecvRedirect4RouterLifetime02.seq [-tooloption ...]
-p hostRecvRedirect4RouterLifetime02.def
TN NUT ----------------------
State: NONCE (for R1, TN)
==== 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), NONCE (for TN)
==== 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), NONCE (for TN)
Wait (3 sec) for DAD NS
hostRecvRedirect4RouterLifetime02 verifies that an entry of Destination Cache updated by a redirect message (ICMP Target != ICMP Destination) is removed by RA w/ RouterLifetime=0.
TN NUT ----------------------
State: REACHABLE (for R1), NONCE (for TN)
==== 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=TN's link-local icmp destination=H1's global w/ TLLA w/o Redirected header
State: REACHABLE (for R1), STALE (for TN)
==== unsolicited RA ===> src=TN's link-local dst=all-node M=0, O=0 RouterLifetime=0 ReachableTime=0 RetransTimer=0 w/ SLLA
==== 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
CASE 1: Redirected entries are flushed by RA w/ RouterLifetime=0 ********************************************************************
<=== 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
State: REACHABLE (for R1), STALE (for TN)
********************************************************************
CASE 2: Redirected entries are flushed by not RA w/ RouterLifetime=0, but Neighbor Unreachability Detection. ********************************************************************
<=== 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, but LLA is TN's one
State: REACHABLE (for R1), DELAY (for TN)
Wait (5 sec)
State: REACHABLE (for R1), PROBE (for TN)
<=== NS ==== src=NUT's link-local dst=TN's link-local target=TN's link-local
<=== NS ==== src=NUT's link-local dst=TN's link-local target=TN's link-local
<=== NS ==== src=NUT's link-local dst=TN's link-local target=TN's link-local
State: REACHABLE (for R1), NONCE (for TN)
==== 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
********************************************************************
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 whose destination is off-link global
to the better router (i.e. TN).
Send RA with RouterLifetime=0 to clear the Default Router List. XXX
Clear IPv6 routes by remote command. XXX
1. It is not fail that NUT does not flush the redirected entries
with RA w/ RouterLifetime=0. Because RFC2461 does not mention
the case where a router's address is not present in NUT's
Default Router List and received Router Lifetime value is zero:
6.3.4. Processing Received Router Advertisements
On receipt of a valid Router Advertisement, a host extracts the
source address of the packet and does the following:
- If the address is not already present in the host's Default
Router List, and the advertisement's Router Lifetime is non-
zero, create a new entry in the list, and initialize its
invalidation timer value from the advertisement's Router
Lifetime field.
- If the address is already present in the host's Default Router
List as a result of a previously-received advertisement, reset
its invalidation timer to the Router Lifetime value in the
newly-received advertisement.
- If the address is already present in the host's Default Router
List and the received Router Lifetime value is zero, immediately
time-out the entry as specified in Section 6.3.5.
If NUT is so, the test veirfy if NUT's NUD can flush the redirected
entries or not. However, if NUT's Reachable Time is long, the redirected
efntries will remain for a while. This is why the test judges NUT
WARN in sted of FAIL in the case.
2. The test invokes the following command:
- Clear IPv6 routes
perldoc V6evalTool perldoc V6evalRemote