DHCPv6 Relay

Overview

DHCPv6 relay agents relay DHCPv6 messages between DHCPv6 clients and servers that reside on different network segments to facilitate dynamic address assignment. This function enables a single DHCPv6 server to serve DHCPv6 clients on different network segments, which reduces costs and facilitates centralized management.

  • A DHCPv6 relay agent relays both messages from clients and Relay-Forward messages from other relay agents. When a relay agent receives a valid message to be relayed, it constructs a new Relay-Forward message. The relay agent copies the received DHCP message (excluding IP or UDP headers) into the Relay Message option in the new message. If other options are configured on the relay agent, it also adds them to the Relay-Forward message. Table 1 lists the fields that a DHCPv6 relay agent can encapsulate into a Relay-Forward message.
    Table 1 Fields that a DHCPv6 relay agent can encapsulate into a Relay-Forward message

    Field

    Encapsulation Description

    Source address in the IP header

    Set to the IPv6 global unicast address of the outbound interface.

    Destination address in the IP header

    1. Used to send unicast packets if the inbound interface is configured with a unicast address of a server or relay agent.
    2. Used to send multicast packets to the All_DHCP_Servers multicast address FF05::1:3 if the inbound interface is not configured with a unicast address of any server or relay agent.

    Hop limit in the IP header

    • Set to 32 if the destination address is the All_DHCP_Servers multicast address FF05::1:3.
    • Set to 255 if the destination address is a unicast address.

    Source port number in the UDP header

    Set to 547.

    Destination port number in the UDP header

    Set to 547.

    Hop-count in the Relay-Forward message

    • Set to 0 if the message comes from a client.
    • Set to the value of the hop-count field in the received message incremented by 1 if the hop-count is less than the maximum value. If the hop-count is greater than or equal to the maximum value, the relay agent discards the received message.

    Link-address in the Relay-Forward message

    • Set to a global unicast or link-local address assigned to the inbound interface if the message comes from a client. The server then determines the link it uses to assign addresses and other configuration parameters to the client.
    • Set to 0 if the message comes from another relay agent.

    Peer-address in the Relay-Forward message

    Set to the source address in the IP header of the received message.

  • A DHCPv6 relay agent relays a Relay-Reply message from a server. The relay agent extracts the Relay Message option from a Relay-Reply message and relays it to the address contained in the peer-address field of the Relay-Reply message. Table 2 lists the fields that a DHCPv6 relay agent can encapsulate into a Relay-Reply message.
    Table 2 Fields that a DHCPv6 relay agent can encapsulate into a Relay-Reply message

    Field

    Encapsulation Description

    Source address in the IP header

    Set to the IPv6 global unicast address of the outbound interface.

    Destination address in the IP header

    Set to the peer-address of the received outer Relay-Reply message.

    Hop limit in the IP header

    Set to 255.

    Source port number in the UDP header

    Set to 547.

    Destination port number in the UDP header

    • Set to 547 if the Relay-Reply message is sent to other relay agents.
    • Set to 546 if the message extracted from the Relay-Reply message is sent to the client.
DHCPv6 servers construct Relay-Reply messages.

A server uses a Relay-Reply message to return a response to a client if the original message from the client was relayed to the server in the Relay Message option of a Relay-Forward message.

If a server does not have an address it can use to send a Reconfigure message directly to a client, the server encapsulates the Reconfigure message into the Relay Message option of a Relay-Reply message to be relayed by the relay agent to the client.

The Relay-Reply message must be relayed through the same relay agents as the original client message. The server must be able to obtain the addresses of the client and all relay agents on the return path so it can construct the appropriate Relay-Reply message carrying the response.

DHCPv6 Client Applying for an IP Address Through a DHCPv6 Relay Agent for the First Time

Figure 1 illustrates how a DHCPv6 client applies for an IP address to a DHCPv6 server through a DHCPv6 relay agent for the first time.

Figure 1 DHCPv6 client applying for an IP address to a DHCPv6 server through a DHCPv6 relay agent for the first time

  1. The DHCPv6 client sends a Solicit message to discover servers. The DHCPv6 relay agent that receives the Solicit message constructs a Relay-Forward message with the Solicit message in the Relay Message option and sends the Relay-Forward message to the DHCPv6 server.

  2. After the DHCPv6 server receives the Relay-Forward message, it parses the Solicit message and constructs a Relay-Reply message with the Advertise message in the Relay Message option. The DHCPv6 server then sends the Relay-Reply message to the DHCPv6 relay agent. The DHCPv6 relay agent parses the Relay Message option in the Relay-Reply message and sends the Advertise message to the DHCPv6 client.

  3. The DHCPv6 client then sends a Request message to request IP addresses and other configuration parameters. The DHCPv6 relay agent constructs a Relay-Forward message with the Request message in the Relay Message option and sends the Relay-Forward message to the DHCPv6 server.

  4. After the DHCPv6 server receives the Relay-Forward message, it parses the Request message and constructs a Relay-Reply message with the Reply message in the Relay Message option. The Reply message contains the assigned IPv6 address and other configuration parameters. The DHCPv6 server then sends the Relay-Reply message to the DHCPv6 relay agent. The DHCPv6 relay agent parses the Relay Message option in the Relay-Reply message and sends the Reply message to the DHCPv6 client.

Supported DHCPv6 Relay Options

  • Interface-ID option (Option 18)

    A DHCPv6 relay agent sends the Interface-ID option to identify the interface on which the client message was received. A DHCPv6 server uses the Interface-ID option for parameter assignment policies. The server must copy the Interface-ID option from the Relay-Forward message into the Relay-Reply message the server sends to the relay agent in response to the Relay-Forward message. The Interface-ID option applies only to Relay-Forward and Relay-Reply messages.

  • Remote-ID option (Option 37)

    A DHCPv6 relay agent sends the Remote-ID option to carry additional information, such as the DUID, port identifier, and VLAN ID. A DHCPv6 server uses the Remote-ID option to determine the addresses, delegated prefixes, and configuration parameters to assign to clients.

  • Subscriber-ID option (Option 38)

    A DHCPv6 relay agent sends the Subscriber-ID option to carry the client's physical information, such as the MAC address. A DHCPv6 server uses the Subscriber-ID option to determine the addresses, delegated prefixes, and configuration parameters to assign to clients.

DHCPv6 Prefix Delegation

On a hierarchical network, IPv6 addresses are generally configured manually, which limits extensibility and prevents uniform IPv6 address planning and management. Standard protocols provide a delegation mechanism, DHCPv6 Prefix Delegation (PD), which automates the process of assigning prefixes to networking equipment on the customer's premises.

Figure 2 DHCPv6 PD networking

On the network shown in Figure 2, IPv6 prefixes do not need to be manually configured for the CPEs. The DHCPv6 prefix delegation mechanism allows a CPE to apply for IPv6 prefixes by sending DHCPv6 messages carrying the IA_PD option to the DHCPv6 server. After the DHCPv6 server assigns a prefix that has less than 64 bits to the CPE, the CPE automatically subnets the delegated prefix into /64 prefixes and assigns the /64 prefixes to the user network through RA messages. This mechanism implements automatic configuration of IPv6 addresses for IPv6 hosts and hierarchical IPv6 prefix delegation.

If a DHCPv6 relay agent is deployed to forward DHCPv6 messages between CPEs (DHCPv6 clients) and the DHCPv6 server, the DHCPv6 relay agent must set up routes to the network segments on which the clients reside and advertises these network segments after the DHCPv6 server assigns PD prefixes to the clients. Otherwise, core network devices cannot learn the routes destined for the CPEs, and IPv6 hosts cannot access the network. If a client sends a Release message to the server to return a delegated prefix, or the lease of a delegated prefix is not extended after expiration, the DHCPv6 relay agent deletes the network segment of the client.

Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
< Previous topic