HPlogo HP-UX Reference > D

dhcpv6d(1M)

HP-UX 11i Version 2: December 2007 Update
» 

Technical documentation

 » Table of Contents

 » Index

NAME

dhcpv6d — Dynamic Host Configuration Protocol Server daemon for IPv6

SYNOPSIS

/usr/sbin/dhcpv6d [-d] [-c config_file]

/usr/sbin/dhcpv6d -k

/usr/sbin/dhcpv6d -r

DESCRIPTION

The dhcpv6d server daemon is the IPv6 version of the bootpd daemon. This version supports the following features:

  • Dynamic renumbering

  • Relay preconfiguration with server addresses, or use of multicast addresses

  • Multiple IP addresses for an interface

The dhcpv6d daemon is run as a stand-alone daemon and not spawned by inetd.

Options

-d

Toggle debugging on or off.

-c config_file

Specify an alternate configuration file for the server. The default configuration file is /etc/dhcpv6tab.

-r

Re-read the configuration file and trigger the server to send a reconfig-init message to the clients when the configuration file has any new or updated information.

-k

Kill the server gracefully.

Configuration

When an unconfigured host needs to be configured, it checks for router advertisements. From the router advertisement, depending on the prefix obtained, the host will generate either a site-local or a global address.

If there are no routers on the link on which the host is located, it uses dhcpv6client to configure itself. The client forms a SOLICIT message and sends it to the pre-determined ALL DHCP agents address. In response to this, the client will receive ADVERTISE messages from a few DHCP servers. The client will select the server based on the preference values in advertise messages. Refer to the "Configuraion File" section for information on how to set the DHCP's server preference value.

In response to the ADVERTISE message, the client will send a REQUEST message to the server either directly if the server is on the same link as that of the client or through the on-link relay. The server responds with REPLY message containing the requested configuration parameters.

The DHCP server assigns addresses to the clients using "Identity Association (IA)", which is a collection of addresses assigned to a client. The client uses the addresses in the IA to configure its interfaces.

If the client determines that the address allocated to it by the server is already in use, it will send a RELEASE message to the server.

To extend the lifetime of the addresses assigned to an IA, the client sends a RENEW message to the server, which contains the IA and the associated addresses. The server will determine the new lifetimes for the addresses on the IA based on the server's administrative configuration. The server will respond to this message with a REPLY message. The server controls the time at which the client contacts the server to extend the lifetimes on assigned addresses through the T1 and T2 parameters that are assigned to the IA. The client initiates a RENEW message at time T1.

If the server to which the RENEW message is sent does not respond, then the client will increase the timeout and wait for a response. The client continues sending the message until the expiration of T2. But at time T2 for the IA, the client initiates a REBIND message. This message is sent to all the servers in the domain. The server will respond to this message and will renew the lifetime of the assigned addresses. If the client does not receive a response to its REBIND message, it tries resending the message until the expiration of lifetimes of all the addresses in IA. The client will choose one of the following alternatives:

  • Some addresses in the IA may have lifetimes that extend beyond the lease of the IA. The client may choose to continue to use those addresses.

  • The client may have other addresses in other IAs, so the client can discard the expired IA and use the addresses in the other IAs.

The client sends a RELEASE message to release an IA. This message is sent to the server that assigned the addresses to the client initially and the client will wait until the timeout value expires. If the server cannot be reached after 5 attempts, the client will abandon this release attempt. These addresses will be claimed by the servers when the lifetimes of the addresses expire.

The administrator will trigger dhcpv6d to unicast a RECONFIGURE-INIT message to all those clients who have their addresses assigned by this server when the server configuration changes are vital. This message is a trigger which will cause the clients to initiate a standard REQUEST message to the server to obtain the new or updated configuration parameters.

Configuration File

Upon startup, dhcpv6d reads the configuration file, /etc/dhcpv6tab, or a file specified with the -c option to build its internal database and then listens for SOLICIT/REQUEST messages from the client. If configuration parameters are added, deleted, or modified, then their entries in the internal database are updated when dhcpv6d is invoked with the -r option.

The configuration file contains the following sections:

1.

DHCPv6 client Default settings

2.

DHCPv6 pool group settings

3.

DHCPv6 relay settings

Blank lines and lines beginning with "#" in the configuration file are ignored. Entries are separated from one another by a semicolon. Multiple entries of a group can be extended over multiple lines if the lines end with a backslash \. A final semicolon ; followed by a new line indicates the end of a group.

IP addresses are specified in the standard IPv6 notation (colon notation) and can use hexadecimal numbers.

The tags for the DHCP_CLIENT_DEFAULT_SETTINGS are as listed below. These tags are applicable to all the addresses that the server assigns to the DHCPv6 client.

client-settings-name=client-settings-name-in-string-format;

This tag specifies the name of the group default settings.

POSIX-time-zone=POSIX-time-zone-string;

This tag specifies the POSIX time zone of the client. This should be as per the IEEE 1003.1 format.

DNS-server-address=List-of-IP-addresses-in-IPv6-Address-Format;

This tag specifies the list of DNS nameservers available to the client. Multiple nameserver addresses are separated by white spaces.

DNS-suffix=string-format;

This tag specifies the default domain name suffix that the client should use while resolving hostnames via DNS.

NIS-domain-name=string-format;

This tag specifies the name of the client's NIS domain. The NIS-domain-name is formatted as a character string consisting of characters from the NVT-ASCII character set.

NIS-server-address=List-of-IP-addresses-in-IPv6-Address-Format;

This tag specifies the list of NIS servers available to the client. Servers SHOULD be listed in the order of their preference.

NIS+client-domain-name=string-format;

This tag specifies the name of the client's NIS+ domain. The domain is formatted as a character string consisting of characters from the NVT-ASCII character set.

NIS+server-address=List-of-IP-addresses-in-IPv6-Address-Format;

This tag specifies the list of NIS+ servers available to the client.

NTP-server-address=List-of-IP-addresses-in-IPv6-Address-Format;

This tag specifies the list of NTP servers available to the client.

SLP-DA-address=list-of-DA-addresses-followed-by-their-scope-list;

This tag specifies the list of SLP Directory agents available to the client. The scope list should be as per the format specified in RFC 2165.

SLP-scope-list=scope-list;

This tag specifies the scope list. The scope list should be as per the format specified in RFC 2165.

The message transaction configuration values are as listed below:

min-sol-delay=seconds;

This tag specifies the minimum allowable delay (in seconds) before the first SOLICIT message is sent.

max-sol-delay=seconds;

This tag specifies the maximum allowable delay (in seconds) before the first SOLICIT message is sent.

adv-msg-timeout=milliseconds;

This tag specifies the time (in milliseconds), for which the client will wait for the ADVERTISE message.

adv-msg-max=seconds;

This tag specifies the maximum advertise message timeout value in seconds.

sol-max-attempts=value;

This tag specifies the maximum number of times the SOLICIT message will be (re)sent to the server.

rep-msg-timeout=milliseconds;

This tag specifies the time by which the REQUEST message times out.

req-msg-attempts=value;

This tag specifies the maximum number of attempts the client makes to deliver the REQUEST message to the server to get a response.

rel-msg-attempts=value;

This tag specifies the maximum number of attempts the client makes to deliver the RELEASE message to the server to get a response.

rec-rep-min=value;

This tag specifies the minimum pause interval (in seconds) before the REQUEST message is sent in response to the RECONFIGURE-INIT message.

rec-rep-max=value;

This tag specifies the maximum pause interval (in seconds) before the REQUEST message is sent in response to the RECONFIGURE-INIT message.

Note:

Currently, the mechanism of transferring these parameters to the client is not defined in RFCs. This may be made possible in the future releases.

The tags applicable for the individual DHCPv6 pool groups are as listed below:

DHCP_POOL_GROUP;

This tag specifies the individual pool groups.

pool-group-name=name-of-the-pool-group;

This tag specifies the name of the pool group as an ASCII string.

default-settings=default-settings-name;

This tag specifies the default settings for the pool group.

subnet-prefix=IPv6-hex-address-format;

This tag specifies the subnet-prefix of the network that the server manages. Note that you need to specify the complete address of the subnet.

prefix-length=unsigned-integer;

This tag specifies the length of the subnet-prefix.

address-pool=start_addr1 - end_addr1 start_addr2 - end_addr2... ;

This tag specifies the list of start and end address, which constitute the address pool.

reserved-address-list=start_addr1 - end_addr1 start_addr2 - end_addr2... ;

This tag specifies the start and end addresses of the list of addresses, which constitute the reserved addresses of the address pool.

reserved-addresses=list-of-IPv6-addresses;

This tag specifies the list of reserved IPv6 addresses separated by a white space.

preference=unsigned-integer;

This tag specifies the server preference to manage the subnet. This value can range between 0 and 255.

T1=time-value-in-seconds;

This variable is used by the server to control the time at which the client contacts the server to extend the lifetimes on assigned addresses. On expiration of T1, the client sends a RENEW message to the server. Default value is 250 seconds.

T2=time-value-in-seconds;

This variable is used by the server to control the time at which the client contacts the server to extend the lifetimes on assigned addresses. On expiration of T2, the client sends a REBIND message to the server. Default value is 437 seconds.

preferred-life-time=time-value-in-seconds;

This tag specifies the preferred life time for the IP addresses in seconds. Default is 500 seconds.

valid-life-time=time-value-in-seconds;

This tag specifies the valid life time for the addresses in seconds. Default is 600 seconds.

reconf-grace-period=value;

This tag specifies the grace period (in seconds) until when the old configuration parameters remain valid. Default is 300 seconds.

Note: Values for the above listed tags must satisfy the following condition:

reconf-grace-period < T1 < T2 < preferred-life-time < valid-life-time

If the above condition fails, the server takes the default values.

The DHCPv6 relay-specific tags are as listed below:

DHCP_RELAY_SETTINGS;

This tag indicates the start of the DHCP relay settings.

pool-group-name=name-of-the-pool-group;

This tag specifies the name of the pool group as an ASCII string.

subnet-prefix=IPv6-hex-address-format;

This tag specifies the IPv6 subnet prefix in hex. This should be a complete address of the subnet.

prefix-length=unsigned-integer;

This tag specifies the length of the subnet prefix.

dest-dhcp-server-address=IPv6-hex-address-format;

This tag specifies the address of the DHCPv6 server to which the relay forwards the client messages.

EXAMPLES

A sample /etc/dhcpv6tab file is shown below:

DHCP_CLIENT_DEFAULT_SETTINGS; client-settings-name=TESTING-GROUP;\ POSIX-time-zone=EST5EDT4,116/02:00:00,298/02:00:00;\ DNS-server-address=3ffe::200:fe23:b580 3ffe::200:fe23:b540;\ DNS-suffix=india.hp.com;\ NIS-domain-name=india.hp.com;\ NIS-server-address=3ffe::200:fe23:b123 3ffe::200:fe23:b034;\ NIS+client-domain-name=cup.hp.com;\ NIS+server-address=3ffe:200:fe23::2341;\ NTP-server-address=3ffe::200:fe23:b123 3ffe::200:fe23:b034;\ SLP-DA-address=3ffe::200:fe23:b123 (netman=mgmt),(proxystuff=labs);

DHCP_POOL_GROUP;\ pool-group-name=TESTING-POOL;\ default-settings=TESTING-GROUP;\ subnet-prefix=3ffe:305:1002:1::;\ prefix-length=64;\ T1=56;\ T2=90;\ preferred-life-time=300;\ valid-life-time=500;\ address-pool = 3ffe:305:1002:1:200:c0ff:fe23:b560 - 3ffe:305:1002:1:200:c0ff:fe23:b570 3ffe:305:1002:1:200:c0ff:fe23:b580 - 3ffe:305:1002:1:200:c0ff:fe23:b590;\ preference=255;\ NTP-server-address=3ffe::200:fe23:b102;

DHCP_RELAY_SETTINGS;\ pool-group-name=RED-POOL;\ subnet-prefix=5ffe:305:1002:1::;\ prefix-len=64;\ dest-dhcp-server-address=5ffe:305:1002:1:2345:203:1ff3:3048;

AUTHOR

dhcpv6d was developed by Hewlett-Packard.

FILES

/etc/dhcpv6tab

This is the dhcpv6 server configuration file.