Router for DHCP client
TN TN1 TN2 | | | ISP site --+----+---+---+------- Link0 | NUT Host | | Customer site -------+-------+------- Link1 3ffe:501:fffd:XXXX::/64
TN (Preference 1) Link-local fe80::200:ff:fe00:a2a2 Ether 00:00:00:00:a2:a2 Delegate Prefix 3ffe:501:fffd:: Prefix Length 48 TN1 (Preference 200) Link-local fe80::200:ff:fe00:a0a0 Ether 00:00:00:00:a0:a0 Delegate Prefix 3ffe:501:fffd:: Prefix Length 48 TN2 (Preference 100) Link-local fe80::200:ff:fe00:a1a1 Ether 00:00:00:00:a1:a1 Delegate Prefix 3ffe:501:fffd:: Prefix Length 48 Host Link-local fe80::200:ff:fe00:101 ether 00:00:00:00:01:01
Tester as Server Target as Client Tester as Host | | | |<--------------------------| | | DHCP Solicit message | | | | |
1. Wait DHCP Solicit message
AddresseSolicit messagesUDP Ports
Src NUT link-local address Dst All_DHCP_Relay_Agents_and_Servers
All_DHCP_Relay_Agents_and_Servers FF02::1:2
Clients listen for DHCP messages on UDP port 546 Server listen for DHCP messages on UDP port 547
DHCP MessageDHCP 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)
Tester as Server Target as Client Tester as Host | | | |-------------------------->| | | DHCP Advertise messages | | | with Preference option | | | containing preference | | | value: 1 | | | | | |-------------------------->| | | DHCP Advertise messages | | | with Preference option | | | containing preference | | | value: 200 | | | | | |-------------------------->| | | DHCP Advertise messages | | | with Preference option | | | containing preference | | | value: 100 | | | | | |<--------------------------| | | Judgment #1 | | | DHCP Request message | | | using SID with preference| | | value: 200 | | | | | |-------------------------->| | | DHCP Reply message | | | | | | | | v v v
1. Send DHCP Advertise messages with preference value 1 2. Send DHCP Advertise messages with preference value 200 3. Send DHCP Advertise messages with preference value 100 4. Wait DHCP Request message using SID of the server which has transmitted the preference value 200. 5. Send DHCP Reply message
AddressesRequest messagesUDP Ports
Src NUT link-local address Dst All_DHCP_Relay_Agents_and_Servers
All_DHCP_Relay_Agents_and_Servers FF02::1:2
Advertise message 1
Src fe80::200:ff:fe00:a2a2 Dst NUT link-local address
Advertise message 2, Reply message
Src fe80::200:ff:fe00:a0a0 Dst NUT link-local address
Advertise message 3
Src fe80::200:ff:fe00:a1a1 Dst NUT link-local address
Clients listen for DHCP messages on UDP port 546 Server listen for DHCP messages on UDP port 547
DHCP MessagesDHCP Advertise message 1, 2 and 3 include preference option. As for the message, Server Identifier Option differ.
DHCP Advertise message 1 with Preference option including pref-value 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:a2:a2 Preference Option pref-value 1 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:fffd::
DHCP Advertise message 2 with Preference option including pref-value 200
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 Preference Option pref-value 200 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:fffd::
DHCP Advertise message 3 with Preference option including pref-value 100
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 Preference Option pref-value 100 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:fffd::
DHCP Request message with IA_PD option including TN1s DUID
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:fffd:: 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:fffd::
1. Requesting Router chooses SID of the server which has transmitted the preference value 200.
N/A
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.
The requesting router processes any received Advertise messages as described in section "Receipt of Advertise Messages" in the DHCP specification [6]. The requesting router MAY choose to consider the presence of advertised prefixes in its decision about which delegating router to respond to.
draft-ietf-dhc-dhcpv6-28.txt
17. DHCP Server Solicitation
17.1. Client Behavior
17.1.3. Receipt of Advertise Messages
The client MUST ignore any Advertise message that includes a Status Code option containing the value NoAddrsAvail, with the exception that the client MAY display the associated status message to the user.
Upon receipt of one or more valid Advertise messages, the client selects one or more Advertise messages based upon the following criteria.
- Those Advertise messages with the highest server preference value are preferred over all other Advertise messages.
- Within a group of Advertise messages with the same server preference value, a client MAY select those servers whose Advertise messages advertise information of interest to the client. For example, the client may choose a server that returned an advertisement with configuration options of interest to the client.
- The client MAY choose a less-preferred server if that server has a better set of advertised parameters, such as the available addresses advertised in IAs.
Once a client has selected Advertise message(s), the client will typically store information about each server, such as server preference value, addresses advertised, when the advertisement was received, and so on.
If the client needs to select an alternate server in the case that a chosen server does not respond, the client chooses the next server according to the criteria given above.
perldoc V6evalTool