MN-3-2-1-2-017 - Valid Lifetime (Lifetime of BA < Lifetime of BU)
Host
|
R CN0
| |
-----+-------+--------+---------------- LinkZ
|
R2 NUTY
| |
-----+-------+-----------------+------- LinkY
|
R1 NUTX
| |
-----+-------+-----------------+------- LinkX
|
HA0 Node0 NUT0
| | |
----------------------+---------------+---------+------- Link0
| Link0 |
3ffe:501:ffff:100::/64 |
home link |
| LinkX |
3ffe:501:ffff:102::/64 |
|
| LinkY |
3ffe:501:ffff:103::/64 |
|
| LinkZ |
3ffe:501:ffff:104::/64 |
|
| HA0(Link0) |
3ffe:501:ffff:100:200:ff:fe00:a0a0 |
|
| Node0(Link0) |
3ffe:501:ffff:100:200:ff:fe00:a3a3 |
|
| R1(LinkX) |
3ffe:501:ffff:102:200:ff:fe00:a4a4 |
|
| R2(LinkY) |
3ffe:501:ffff:103:200:ff:fe00:a6a6 |
|
| CN0(LinkZ) |
3ffe:501:ffff:104:200:ff:fe00:a8a8 |
|
1. Selection Option
- Route Optimization support : YES
- CN registration Acknowledge bit : ON
2. Position of Mobile Node
HA0 NUT0 R1 R2 CN0
| | | | |
| ----> | | | | 1.Router Advertisement
| | | | |
| NUTX | | |
| | | | |
| | <---- | | | 2.Router Advertisement
| | | | |
| <---- | | | | 3.Neighbor Solicitations
| | | | | 4.(no reply:3 seconds)
| | | | |
| <---- | | | | 5.Binding Update
| ----> | | | | 6.Binding Acknowledgement
| | | | |
1. Send Router Advertisement. (HA0 -> HA0_allnode_multi)
2. Send Router Advertisement. (R1 -> R1_allnode_multi)
3. Receive Neighbor Solicitations. (NUT0 -> HA0)
4. (no reply)
# Wait during a maximum of 3 seconds(RFC2461).
5. Receive Binding Update. (NUTX -> HA0)
6. Send Binding Acknowledgement. (HA0 -> NUTX)
HA0 NUTX R1 R2 CN0
| | | | |
| ====> | <--------------------- | 1.ICMP Echo Request
| | | | |
| <==== | ---------------------> | 2.Home Test Init
| | ---------------------> | 3.Care-of Test Init
| | <--------------------- | 4.Care-of Test
| ====> | <--------------------- | 5.Home Test
| | | | |
| <==== | ---------------------> | 6.ICMP Echo Reply
| | ---------------------> | 7.Binding Update
| | <--------------------- | 8.Binding Acknowledgement
| | ---------------------> | 9.ICMP Echo Reply
| | | | |
| | | | | 10.(wait)
| | <--------------------- | 11.ICMP Echo Request
| <==== | ---------------------> | 12.ICMP Echo Reply (*1)
| | | | |
| ====> | <--------------------- | 13.ICMP Echo Request
| | | | |
| <==== | ---------------------> | 14.Home Test Init (*2)
| | ---------------------> | 15.Care-of Test Init (*2)
| | | | |
1. Send ICMP Echo Request. (out: HA0 -> NUTX, in: CN0 -> NUT0)
2. Receive Home Test Init. (out: NUTX -> HA0, in: NUT0 -> CN0)
3. Receive Care-of Test Init. (NUTX -> CN0)
4. Send Care-of Test. (CN0 -> NUTX)
5. Send Home Test. (out: HA0 -> NUTX, in: CN0 -> NUT0)
6. Receive reverse tunneled ICMP Echo Reply or [9]. (out: NUTX -> HA0, in: NUT0 -> CN0)
7. Receive Binding Update to CN0. (NUTX -> CN0)
8. Send Binding Acknowledgement to NUTX. (CN0 -> NUTX)
9. [6] or Receive ICMP Echo Reply. (NUTX -> CN0)
10. (wait)
# Wait during the Lifetime value of Binding Acknowledgement[9].
11. Send ICMP Echo Request. (CN0 -> NUTX)
# Type2 Routing Header is included.
12. Receive reverse tunneled ICMP Echo Reply. (out: NUTX -> HA0, in: NUT0 -> CN0)
13. Send ICMP Echo Request. (out: HA0 -> NUTX, in: CN0 -> NUT0)
14. Receive Home Test Init. (out: NUTX -> HA0, in: NUT0 -> CN0)
15. Receive Care-of Test Init. (NUTX -> CN0)
Packet Format is:
8.Binding Acknowledgement
13.ICMP Echo Request Data is:
IPv6 header (source = home agent,
destination = Care-of Address)
ESP header
IPv6 header (source = correspondent node,
destination = Home Address)
ICMPv6 Echo Request
14.Home Test Init
15.Care-of Test Init
(*1) PASS: CN0 receives ICMP Echo Reply by reverse tunneling.
(*2) PASS: CN0 receives Home/Care-of Test Init.
(draft-ietf-mobileip-ipv6-24.txt)
11.7.3 Receiving Binding Acknowledgements
(snip)
When a mobile node receives a packet carrying a valid Binding
Acknowledgement, the mobile node MUST examine the Status field as
follows:
o If the Status field indicates that the Binding Update was accepted
(the Status field is less than 128), then the mobile node MUST
update the corresponding entry in its Binding Update List to
indicate that the Binding Update has been acknowledged; the mobile
node MUST then stop retransmitting the Binding Update. In
addition, if the value specified in the Lifetime field in the
Binding Acknowledgement is less than the Lifetime value sent in
the Binding Update being acknowledged, then the mobile node MUST
subtract the difference between these two Lifetime values from the
remaining lifetime for the binding as maintained in the
corresponding Binding Update List entry (with a minimum value for
the Binding Update List entry lifetime of 0). That is, if the
Lifetime value sent in the Binding Update was L_update, the
Lifetime value received in the Binding Acknowledgement was L_ack,
and the current remaining lifetime of the Binding Update List
entry is L_remain, then the new value for the remaining lifetime
of the Binding Update List entry should be
max((L_remain - (L_update - L_ack)), 0)
where max(X, Y) is the maximum of X and Y. The effect of this
step is to correctly manage the mobile node's view of the
binding's remaining lifetime (as maintained in the corresponding
Binding Update List entry) so that it correctly counts down from
the Lifetime value given in the Binding Acknowledgement, but with
the timer countdown beginning at the time that the Binding Update
was sent.
Mobile nodes SHOULD send a new Binding Update well before the
expiration of this period in order to extend the lifetime. This
helps to avoid disruptions in communications, which might
otherwise be caused by network delays or clock drift.
11.3.3 Receiving Packets While Away from Home
(snip)
A node receiving a packet addressed to itself (i.e., one of the
node's addresses is in the IPv6 destination field) follows the next
header chain of headers and processes them. When it encounters a
type 2 routing header during this processing it performs the
following checks. If any of these checks fail the node MUST silently
discard the packet.
o The length field in the routing header is exactly 2.
o The segments left field in the routing header is 1 on the wire.
(But implementations may process the routing header so that the
value may become 0 after the routing header has been processed,
but before the rest of the packet is processed.)
o The Home Address field in the routing header is one of the node's
home addresses, if the segments left field was 1. Thus, in
particular the address field is required to be a unicast routable
address.
Once the above checks have been performed, the node swaps the IPv6
destination field with the Home Address field in the routing header,
decrements segments left by one from the value it had on the wire,
and resubmits the packet to IP for processing the next header.
Conceptually this follows the same model as in RFC 2460. However, in
the case of type 2 routing header this can be simplified since it is
known that the packet will not be forwarded to a different node.