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: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.
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.
2. The test invokes the following command: - Clear IPv6 routes
perldoc V6evalTool perldoc V6evalRemote