MN-4-1-2-2-005 - Invalid type2 routing header (segments left != 1)
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
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 to HA0. (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.ICMP Echo Reply
| | | | |
| | <--------------------- | 9.ICMP Echo Request
| | | | |10.(no reply) (*1)
| | | | |
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 ICMP Echo Reply or [8]. (out: NUTX -> HA0, in: NUT0 -> CN0)
7. Receive Binding Update to CN. (NUTX -> CN0)
8. [6] or Receive ICMP Echo Reply. (NUTX -> CN0)
9. Send ICMP Echo Request. (CN0 -> NUTX)
# The Destination Address is set to care-of address.
# The Hdr Ext Len field in type2 routing header is set to 4.
# The Segments Left field in type2 routing header is set to the invalid value (2).
10. (no reply)
# Wait during the lifetime in the Lifetime field of Binding Update[7].
(*1) PASS: CN0 does not receive ICMP Echo Reply by Route Optimization.
(draft-ietf-mobileip-ipv6-24.txt)
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.