NAME

  RRSolicit.seq - Requesting Router behavior for Prefix Delegation


TARGET

  Router for DHCP client


SYNOPSIS

  RRSolicit.seq [-tooloption ...] -pkt RRSolicit.def -tooloption : v6eval tool option


TOPOLOGY

   TN       TN1 TN2
    |        |   |        ISP site
  --+----+---+---+------- Link0   
         |
        NUT     Host
         |       |        Customer site
  -------+-------+------- Link1 3ffe:501:ffff:XXXX::/64
TN Link-local fe80::200:ff:fe00:a0a0
Ether 00:00:00:00:a0:a0
Delegate Prefix 3ffe:501:ffff::
Prefix Length 48
TN1 Link-local fe80::200:ff:fe00:a1a1
Ether 00:00:00:00:a1:a1
Delegate Prefix 3ffe:501:ffff::
Prefix Length 48
TN2 Link-local fe80::200:ff:fe00:a2a2
Ether 00:00:00:00:a2:a2
Delegate Prefix 3ffe:501:ffff::
Prefix Length 48
Host Link-local fe80::200:ff:fe00:101
ether 00:00:00:00:01:01


INITIALIZATION

  1. NUT sets up Prefix Delegation.
  2. NUT sets up Router Advertisement to the interface by the side of downstream.


TEST PROCEDURE

Tester as Server          Target as Client        Tester as Host
    |                           |                           |
    |                           |                           |
    |<--------------------------|                           |
    |   Judgment #1             |                           |
    |   DHCP Solicit message    |                           |
    |                           |                           |
    |                           |                           |
    |-------------------------->|                           |
    |   DHCP Advertise message 1|                           |
    |   DHCP Advertise message 2|                           |
    |   DHCP Advertise message 3|                           |
    |                           |                           |
    |<--------------------------|                           |
    |   Judgment #2             |                           |
    |   DHCP Request message    |                           |
    |                           |                           |
    |                           |                           |
    |-------------------------->|                           |
    |   DHCP Reply message      |                           |
    |                           |                           |
    |                           |<--------------------------|
    |                           |    Router Solicitation    |
    |                           |                           |
    |                           |-------------------------->|
    |                           |    Judgment #3            |
    |                           |    Router Advertisement   |
    |                           |    w/ delegated prefix    |
    |                           |                           |
    |-------------------------->|                           |
    |    Router Solicitation    |                           |
    |                           |                           |
    |(<------------------------)|                           |
    |   Judgment #4             |                           |
    |   No Router Advertisement |                           |
    |   w/ delegated prefix     |                           |
    |                           |                           |
    v                           v                           v

1. Wait DHCP Solicit message 2. Send DHCP Advertise message 1, 2 and 3 3. Wait DHCP Request message 4. Send DHCP Reply message 5. Send Router Solicitation 6. Wait Router Advertisement 7. Send Router Solicitation from DHCP administrative domain. 8. No Router Advertisement
Addresses
Solicit, Request messages
Src NUT link-local address
Dst All_DHCP_Relay_Agents_and_Servers

All_DHCP_Relay_Agents_and_Servers FF02::1:2
Advertise message 1, Reply message
Src fe80::200:ff:fe00:a0a0
Dst NUT link-local address

Advertise message 2
Src fe80::200:ff:fe00:a1a1
Dst NUT link-local address

Advertise message 3
Src fe80::200:ff:fe00:a1a1
Dst NUT link-local address
UDP Ports
Clients listen for DHCP messages on UDP port 546 Server listen for DHCP messages on UDP port 547
DHCP Messages
DHCP Solicit message
msg-type SOLICIT(1)
transaction-id The transaction ID for this message exchange
options
Client Identifier Option (MUST)
IA_PD Option (MUST)
  Code 33 (TBD)
  IAID The unique identifier which client specified
  T1 ANY
  T2 ANY
Elapsed Time Option (MUST)
  elapsed-time ANY
Option Request Option (Optional)

DHCP Advertise message 1, 2 and 3 doesn't include preference option. As for the message, only Server Identifier Option differ.
DHCP Advertise message 1
msg-type ADVERTISE(2)
transaction-id The same transaction ID previous message
options
Client Identifier Option
Server Identifier Option
  DUID Contents type 1 Link-layer address plus time
  hardware type 1 Ether
  time Time which the server included
  link-layer address 00:00:00:00:a0:a0
IA_PD Option
  Code 33 (TBD)
  IAID Unique identifier which client specified
  T1 300
  T2 480
  IA_PD Prefix Option
    Code 34 (TBD)
    preferred-lifetime 600
    valid-lifetime 1200
    prefix-length 48
    IPv6 prefix 3ffe:501:ffff::

DHCP Advertise message 2
msg-type ADVERTISE(2)
transaction-id The same transaction ID previous message
options
Client Identifier Option
Server Identifier Option
  DUID Contents type 1 Link-layer address plus time
  hardware type 1 Ether
  time Time which the server included
  link-layer address 00:00:00:00:a1:a1
IA_PD Option
  Code 33 (TBD)
  IAID Unique identifier which client specified
  T1 300
  T2 480
  IA_PD Prefix Option
    Code 34 (TBD)
    preferred-lifetime 600
    valid-lifetime 1200
    prefix-length 48
    IPv6 prefix 3ffe:501:ffff::

DHCP Advertise message 3
msg-type ADVERTISE(2)
transaction-id The same transaction ID previous message
options
Client Identifier Option
Server Identifier Option
  DUID Contents type 1 Link-layer address plus time
  hardware type 1 Ether
  time Time which the server included
  link-layer address 00:00:00:00:a2:a2
IA_PD Option
  Code 33 (TBD)
  IAID Unique identifier which client specified
  T1 300
  T2 480
  IA_PD Prefix Option
    Code 34 (TBD)
    preferred-lifetime 600
    valid-lifetime 1200
    prefix-length 48
    IPv6 prefix 3ffe:501:ffff::

DHCP Request message with IA_PD option
msg-type REQUEST(3)
transaction-id The transaction ID for this message exchange
options
Client Identifier Option (MUST)
Server Identifier Option (MUST)
  DUID Contents type 1 Link-layer address plus time
  hardware type 1 Ether
  time Time which the server included
  link-layer address 00:00:00:00:a0:a0
IA_PD Option (MUST)
  Code 33 (TBD)
  IAID Unique identifier which client specified
  T1 ANY
  T2 ANY
  IA_PD Prefix Option (Optional)
    Code 34 (TBD)
    preferred-lifetime ANY
    valid-lifetime ANY
    prefix-length 48
    IPv6 prefix 3ffe:501:ffff::
Elapsed Time Option (MUST)
  elapsed-time ANY
Option Request Option (Optional)

DHCP Reply message with IA_PD option including IA_Prefix option
msg-type REPLY(7)
transaction-id The same transaction ID previous message
options
Client Identifier Option
Server Identifier Option
  DUID Contents type 1 Link-layer address plus time
  hardware type 1 Ether
  time Time which the server included
  link-layer address 00:00:00:00:a0:a0
IA_PD Option
  Code 33 (TBD)
  IAID Unique identifier which client specified
  T1 300
  T2 480
  IA_PD Prefix Option
    Code 34 (TBD)
    preferred-lifetime 600
    valid-lifetime 1200
    prefix-length 48
    IPv6 prefix 3ffe:501:ffff::


JUDGEMENT


  1. DHCP Solicit message is recieved

  2. DHCP Request message is recieved

  3. Router Advertisement is recieved include delegated prefix, validlifietime less than validlifetime of IA_PD prefix option and prefix-length logner than delegated prefix-length

  4. Router Advertisement is not received on PE side link.


TERMINATION

  N/A


REFERENCE

draft-ietf-dhc-dhcpv6-opt-prefix-delegation-01.txt

10. Delegating Router Solicitation
The requesting router locates and selects a delegating router in the same way as described in section "DHCP Server Solicitation" of the DHCP specification [6]. The details of the solicitation process are described in this section.
10.1 Requesting router behaviour
The requesting router creates and transmits a Solicit message as described in sections "Creation of Solicit Messages" and "Transmission of Solicit Messages" of the DHCP specification [6]. The requesting router creates an IA_PD and assigns it an IAID. The requesting router MUST include the IA_PD option in the Solicit message.
11. Requesting router initiated prefix delegation
A requesting router uses the same message exchanges as described in section "DHCP Client-Initiated Configuration Exchange" of the DHCP specification [6] to obtain or update prefix(es) from a delegating router. The requesting router and the delegating router use the IA_PD Prefix option to exchange information about prefix(es) in much the same way IA Address options are used for assigned addresses.
11.1 Requesting router behaviour
The requesting router uses a Request message to populate IA_PDs with prefixes. The requesting router includes one or more IA_PD options in the Request message. The delegating router then returns the prefixes for the IA_PDs to the requesting router in IA_PD options in a Reply message.
Upon the receipt of a valid Reply message, the requesting router assigns a subnet from each of the delegated prefixes to each of the links to which it is attached, with the following exception: the requesting router MUST NOT assign any delegated prefixes or subnets from the delegated prefix(es) to the link through which it received the DHCP message from the delegating router.
If the requesting router assigns a delegated prefix to a link to which the router is attached, and begins to send router advertisements for the prefix on the link, the requesting router MUST set the valid lifetime in those advertisements to be no later than the valid lifetime specified in the IA_PD Prefix option. A requesting router MAY use the preferred lifetime specified in the IA_PD Prefix option.
draft-ietf-dhc-dhcpv6-28.txt
14. Reliability of Client Initiated Message Exchanges
see the retransmission mechanism
15. Message Validation
15.2. Solicit Message
Clients MUST discard any received Solicit messages.
Servers MUST discard any Solicit messages that do not include a Client Identifier option or that do include a Server Identifier option.
15.4. Request Message
Clients MUST discard any received Request messages.
Servers MUST discard any received Request message that meet any of the following conditions:
- the message does not include a Server Identifier option
- the contents of the Server Identifier option do not match the server's DUID
- the message does not include a Client Identifier option
17. DHCP Server Solicitation
17.1.1. Creation of Solicit Messages
The client sets the "msg-type" field to SOLICIT. The client generates a transaction ID and inserts this value in the "transaction-id" field.
The client MUST include a Client Identifier option to identify itself to the server. The client includes IA options for any IAs to which it wants the server to assign addresses. The client MAY include addresses in the IAs as a hint to the server about addresses for which the client has a preference. The client MUST NOT include any other options in the Solicit message except as specifically allowed in the definition of individual options.
The client uses IA_NA options to request the assignment of non-temporary addresses and uses IA_TA options to request the assignment of temporary addresses. Either IA_NA or IA_TA options, or a combination of both can be included in DHCP messages.
The client SHOULD include an Option Request option (see section 22.7) to indicate the options the client is interested in receiving. The client MAY additionally include instances of those options that are identified in the Option Request option with data values as hints to the server about parameter values the client would like to have returned.
The client includes a Reconfigure Accept option (see section 22.20) if the client is willing to accept Reconfigure messages from the server.
17.1.2. Transmission of Solicit Messages
The first Solicit message from the client on the interface MUST be delayed by a random amount of time between 0 and SOL_MAX_DELAY. In the case of a Solicit message transmitted when DHCP is initiated by IPv6 Neighbor Discovery, the delay gives the amount of time to wait after IPv6 Neighbor Discovery causes the client to invoke the stateful address autoconfiguration protocol (see section 5.5.3 of RFC2462). This random delay desynchronizes clients which start at the same time (for example, after a power outage).
The client transmits the message according to section 14, using the following parameters:
IRT SOL_TIMEOUT
MRT SOL_MAX_RT
MRC 0
MRD 0
If the client has included a Rapid Commit option in its Solicit message, the client terminates the waiting process as soon as a Reply message with a Rapid Commit option is received.
If the client is waiting for an Advertise message, the mechanism in section 14 is modified as follows for use in the transmission of Solicit messages. The message exchange is not terminated by the receipt of an Advertise before the first RT has elapsed. Rather, the client collects Advertise messages until the first RT has elapsed. Also, the first RT MUST be selected to be strictly greater than IRT by choosing RAND to be strictly greater than 0.
A client MUST collect Advertise messages for the first RT seconds, unless it receives an Advertise message with a preference value of 255. The preference value is carried in the Preference option (section 22.8). Any Advertise that does not include a Preference option is considered to have a preference value of 0. If the client receives an Advertise message that includes a Preference option with a preference value of 255, the client immediately begins a client-initiated message exchange (as described in section 18) by sending a Request message to the server from which the Advertise message was received. If the client receives an Advertise message that does not include a Preference option with a preference value of 255, the client continues to wait until the first RT elapses. If the first RT elapses and the client has received an Advertise message, the client SHOULD continue with a client-initiated message exchange by sending a Request message.
If the client does not receive any Advertise messages before the first RT has elapsed, it begins the retransmission mechanism described in section 14. The client terminates the retransmission process as soon as it receives any Advertise message, and the client acts on the received Advertise message without waiting for any additional Advertise messages.
18. DHCP Client-Initiated Configuration Exchange
18.1.1. Creation and Transmission of Request Messages
The client uses a Request message to populate IAs with addresses and obtain other configuration information. The client includes one or more IA options in the Request message. The server then returns addresses and other information about the IAs to the client in IA options in a Reply message.
The client generates a transaction ID and inserts this value in the "transaction-id" field.
The client places the identifier of the destination server in a Server Identifier option.
The client MUST include a Client Identifier option to identify itself to the server. The client adds any other appropriate options, including one or more IA options (if the client is requesting that the server assign it some network addresses).
The client MUST include an Option Request option (see section 22.7) to indicate the options the client is interested in receiving. The client MAY include options with data values as hints to the server about parameter values the client would like to have returned.
The client includes a Reconfigure Accept option (see section indicating whether or not the client is willing to accept Reconfigure messages from the server.
The client transmits the message according to section 14, using the following parameters:
IRT REQ_TIMEOUT
MRT REQ_MAX_RT
MRC REQ_MAX_RC
MRD 0
18.1.8. Receipt of Reply Messages
Upon the receipt of a valid Reply message in response to a Solicit (with a Rapid Commit option), Request, Confirm, Renew, Rebind or Information-request message, the client extracts the configuration information contained in the Reply. The client MAY choose to report any status code or message from the status code option in the Reply message.
The client SHOULD perform duplicate address detection [21] on each of the addresses in any IAs it receives in the Reply message before using that address for traffic. If any of the addresses are found to be in use on the link, the client sends a Decline message to the server as described in section 18.1.7.
If the Reply was received in response to a Solicit (with a Rapid Commit option), Request, Renew or Rebind message, the client updates the information it has recorded about IAs from the IA options contained in the Reply message:
- Record T1 and T2 times
- Add any new addresses in the IA option to the IA as recorded by the client
- Update lifetimes for any addresses in the IA option that the client already has recorded in the IA
- Discard any addresses from the IA as recorded by the client that have a valid lifetime of 0 in the IA Address option
5.5. Transmission and Retransmission Parameters
This section presents a table of values used to describe the message transmission behavior of clients and servers.
Parameter Default Description ------------------------------------- SOL_MAX_DELAY 1 sec Max delay of first Solicit SOL_TIMEOUT 1 sec Initial Solicit timeout SOL_MAX_RT 120 secs Max Solicit timeout value REQ_TIMEOUT 1 sec Initial Request timeout REQ_MAX_RT 30 secs Max Request timeout value REQ_MAX_RC 10 Max Request retry attempts
24.2. DHCP Message Types
IANA is requested to record the following message types (defined in section 5.3). IANA is requested to maintain a registry of DHCP message types.
SOLICIT 1 ADVERTISE 2 REQUEST 3 REPLY 7
A. Appearance of Options in Message Types
The following table indicates with a "*" the options are allowed in each DHCP message type:
Client Server IA_NA Option Pref Time Relay Auth. Server ID ID IA_TA Request Msg. Unica. Solicit * * * * * Advert. * * * * * * Request * * * * * * Reply * * * * * * *
Status Rap. User Vendor Vendor Inter. Recon. Recon. Code Comm. Class Class Spec. ID Msg. Accept Solicit * * * * * Advert. * * * * * Request * * * * Reply * * * * * *


SEE ALSO

  perldoc V6evalTool