P. 1
dhcp6

dhcp6

|Views: 25,973|Likes:
Published by TXUSTDK6891

More info:

Published by: TXUSTDK6891 on Aug 11, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/10/2013

pdf

text

original

DHCP for IPv6

(RFC3315)
Last updated: March 2008 The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) has been standardized by the IETF through RFC3315. The Dynamic Host Configuration Protocol for IPv6 (DHCP) enables DHCP servers to pass configuration parameters, such as IPv6 network addresses, to IPv6 nodes. It offers the capability of automatic allocation of reusable network addresses and additional configuration flexibility. This protocol is a stateful counterpart to "IPv6 Stateless Address Autoconfiguration" (RFC 2462), and can be used separately, or concurrently with the latter, to obtain configuration parameters. The basic DHCPv6 client-server concept is similar to using DHCP for IPv4. If a client wishes to receive configuration parameters, it will send out a request on the attached local network to detect available DHCPv6 servers. This done through the “Solicit” and “Advertise” messages. Well known DHCPv6 Multicast addresses are used for this process. Next, the DHCPv6 client will ”Request” parameters from an available server which will respond with the requested information with a “Reply” message. The diagram below demonstrates the sequence of events:
DHCPv6 Client Reply Request Advertise Solicit 5 4 3 2 8 bits Message Type DHCPv6 Server

At-A-Glance

The DHCPv6 client will know when it wants to use DHCPv6, either based upon instruction of an attached router, or when no default gateway is present. The default gateway has two configurable bits in an Router Advertisement (RA) available for this purpose:

Table 1 DHCPv6 vs. DHCPv4 Message Type Comparison

DHCPv6 Message Type
SOLICIT (1) ADVERTISE (2) REQUEST (3), RENEW (5), REBIND (6) REPLY (7) RELEASE (8) INFORMATION-REQUEST (11) DECLINE (9) CONFIRM (4) RECONFIGURE (10) RELAY-FORW (12), RELAY-REPLY (13)

DHCPv4 Message Type
DHCPDISCOVER DHCPOFFER DHCPREQUEST DHCPACK/DHCPNAK DHCPRELEASE DHCPINFORM DHCPDECLINE none DHCPFORCERENEW none

• •

‘O’ bit—When this bit is set, the client can use DHCPv6 to retrieve Other configuration parameters (ie: DNS addresses) ‘M’ bit—When this bit is set, the client may use DHCPv6 to retrieve a Managed IPv6 address from a DHCPv6 server

When a router sends an RA with ‘O’ bit set, but does not set the ‘M’ bit, the client can do Stateless Address Autoconfiguration (SLAAC) to obtain its IPv6 address, and use DHCPv6 for obtaining additional information. (An example of additional information is DNS). This mechanism is well known as Stateless DHCPv6, because the DHCPv6 server does not need to keep track of the client address bindings. DHCPv6 uses an architecture concept of “options” to carry additional parameters and information within DHCPv6 messages. These options are aligned in TypeLength-Value (TLV) structure. Each Type and Length field has a length of 16 bits, with a variable length available for the Value field.
32 bits 24 bits Transaction ID

New DHCPv6 Message Type Overview
CONFIRM (4) A client sends a Confirm message to any available server to determine whether the addresses it was assigned are still appropriate to the link to which the client is connected. RELAY-FORW (12) A relay agent sends a Relay-forward message to relay messages to servers, either directly or through another relay agent. RELAY-REPL (13) A server sends a Relay-reply message to a relay agent containing a message that the relay agent delivers to a client.

1 RA with ‘O’ and/or ‘M’ bit set

Options (Variable length)

DHCP for IPv6
(RFC3315)
Central DHCPv6 Server Network

At-A-Glance

DHCPv6 Client

DHCPv6 Relay

DHCPv6 Solicit Message

Relayed Solicit Message Msg-type (Relay-Forw)

Msg-type (Solicit) Transaction-id (12)

Hop-count (0) Link-address (2001:db8:BEEF::) Peer-address (2001:DB8:1234:0:218:FEFF:FEFB:CC0E) Msg-type (Solicit) Transaction-id (12) Options IA_NA Option ia-na (3) option (12 bytes) (iaid 1, t1 0, t2 0) DUID Option client-identifier (1) option (10 bytes) 00:03:00:01:01:02:03:04:05:06

DHCPv6 performs on the assumption that the DHCPv6 server is directly attached to the LAN segment of the client. If this is not the situation (which is the case in most deployments), then the DHCPv6 server can be replaced by a DHCPv6 Relay agent. This Relay agent will encapsulate the received messages from the directly connected DHCPv6 client, and forward these encapsulated DHCPv6 packets towards the DHCPv6 server. In the opposite direction, the Relay Agent will decapsulate the packets received from the central DHCPv6 Server. Well known multicast addresses commonly used with DHCPv6 are:

Note: DHCP Unique Identifier (DUID)—Each DHCPv6 component has a DUID (DHCPv6 Unique Identifier) which is used to identify the device when exchanging DHCPv6 messages. IA_NA Option—Options related to an IPv6 Address hop-count—Number of relay agents that have relayed this message link-address—A global or site-local address that will be used by the server to identify the link on which the client is located. peer-address—The address of the client or relay agent from which the message to be relayed was received.

Options

• • • •

“ff02:::1:2” (All DHCPv6 relay agents and servers) “ff05::1:3” (All DHCPv6 Servers)

IA_NA Option ia-na (3) option (12 bytes) (iaid 1, t1 0, t2 0)

Well known port numbers: Clients listen for DHCP messages on UDP port 546 Servers and relay agents listen for DHCP messages on UDP port 547

DUID Option client-identifier (1) option (10 bytes) 00:03:00:01:01:02:03:04:05:06

Copyright © 2008 Cisco Systems, Inc. All rights reserved. Cisco, Cisco IOS, Cisco Systems, and the Cisco Systems logo are registered trademarks or trademarks of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries.

C45-456070-00 3/08

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->