Client_transmit_Release_02 - Creation and Transmission of Release Messages (fail) #2
Host
CLIENT0 NUT SERVER0
| | |
Link0 --------+-----------+-----------+-----+
|
RELAY0
|
+-------+--------------+-------Link1
| |
CLIENT1 SERVER1
Link0 3ffe:501:ffff:100::/64 Link1 3ffe:501:ffff:101::/64 CLIENT0 3ffe:501:ffff:100:200:ff:fe00:a6a6 fe80::200:ff:fe00:a6a6 00:00:00:00:a6:a6 CLIENT1 3ffe:501:ffff:101:200:ff:fe00:a7a7 fe80::200:ff:fe00:a7a7 00:00:00:00:a7:a7 SERVER0 3ffe:501:ffff:100:200:ff:fe00:a2a2 fe80::200:ff:fe00:a2a2 00:00:00:00:a2:a2 SERVER1 3ffe:501:ffff:101:200:ff:fe00:a3a3 fe80::200:ff:fe00:a3a3 00:00:00:00:a3:a3 RELAY0 (Link0) 3ffe:501:ffff:100:200:ff:fe00:a4a4 fe80::200:ff:fe00:a4a4 00:00:00:00:a4:a4 RELAY0 (Link1) 3ffe:501:ffff:101:200:ff:fe00:a5a5 fe80::200:ff:fe00:a5a5 00:00:00:00:a5:a5
Creation and Transmission of Release Messages #1
NUT SERVER0
| |
| | initialize NUT (as a DHCPv6 Client)
| |
| ----> | Solicit (*1)
| <---- | Advertise
| |
| ----> | Request (*2)
| <---- | Reply (IA_NA, valid lifetime=60)
| |
| <---- | Echo Request
| ----> | Echo Reply (to assigned address) (*3)
| |
| | (turn down network interface)
| ----> | Release (*4)
| <---- | Reply (IA_NA, with Status Code Option: UnspecFail)
| |
1. initialize NUT as a dhcpv6 server
2. SERVER0 receives Solicit Message from NUT
3. SERVER0 sends Advertise Message to NUT
4. SERVER0 receives Request Message from NUT
5. SERVER0 sends Reply Message to NUT
6. SERVER0 sends Echo Request
7. SERVER0 receives Echo Reply
8. Turn down Network Interface
9. SERVER0 receives Release Message from NUT
10. SERVER0 sends Reply Message to NUT
(*1) PASS: SERVER0 receives Solicit Message (not checking the options in Solicit Message) (*2) PASS: SERVER0 receives Request Message (not checking the options in Request Message) (*3) PASS: SERVER0 receives Echo Reply (*4) PASS: SERVER0 receives Release Message
<draft-ietf-dhc-dhcpv6-28.txt>
18.1.6. Creation and Transmission of Release Messages
To release one or more addresses, a client sends a Release message to the server.
The client sets the "msg-type" field to RELEASE. The client generates a transaction ID and places this value in the "transaction-id" field.
The client places the identifier of the server that allocated the address(es) in a Server Identifier option.
The client MUST include a Client Identifier option to identify itself to the server. The client includes options containing the IAs for the addresses it is releasing in the "options" field. The addresses to be released MUST be included in the IAs. Any addresses for the IAs the client wishes to continue to use MUST NOT be in added to the IAs.
The client MUST NOT use any of the addresses it is releasing as the source address in the Release message or in any subsequently transmitted message.
Because Release messages may be lost, the client should retransmit the Release if no Reply is received. However, there are scenarios where the client may not wish to wait for the normal retransmission timeout before giving up (e.g., on power down). Implementations SHOULD retransmit one or more times, but MAY choose to terminate the retransmission procedure early.
The client transmits the message according to section 14, using the following parameters:
IRT REL_TIMEOUT
MRT 0
MRC REL_MAX_MRC
MRD 0
The client MUST stop using all of the addresses being released as soon as the client begins the Release message exchange process. If addresses are released but the Reply from a DHCP server is lost, the client will retransmit the Release message, and the server may respond with a Reply indicating a status of NoBinding. Therefore, the client does not treat a Reply message with a status of NoBinding in a Release message exchange as if it indicates an error.
Note that if the client fails to release the addresses, each address assigned to the IA will be reclaimed by the server when the valid lifetime of that address expires.