Hello, folks. I would like to introduce DHCPv6 proxy agent in a saparate thread. The following is a rough description regarding the DHCPv6 proxy agent. Any comments will be appreciated.
1. Motivation Under the environments where classic bridge technology can not be applicable, local hosts on the link connected to the ND proxy [RFC4389] can be easily configured with global addresses through SLAAC. However, if the service provider provides DHCPv6 service for the internet connectivity of customer's hosts and is willing to give only /128 addresses without delegating prefixes, there are no other feasible solutions than 6to6 NAPT for of local hosts to share the Internet connection. To address this problem, new element called DHCPv6 proxy agent is suggested, which supports message transactions between hosts in the LAN and remote server in the provider network using IAID demultiplexing. 2. Behavior Description of DHCPv6 proxy agent DHCPv6 Proxy Agent | +-------+ +--------+ local |Ethernet | | Wireless | Access | +---------+ A +-))) (((-+ +--> rest of network hosts | | | link | Point | | +-------+ +--------+ ND Proxy DHCPv6 proxy agent is devised to proxy DHCPv6 clients on the LAN side links of the agent. In order to achieve this goal, the proxy agent joins to the All_DHCP_Relay_Agents_and_Servers (FF02::1:2) mulicast group with the LAN interface and listen for DHCP messages on UDP port 547. When an RA message indicating DHCPv6 service for addresses with M flag set to 1, the ND proxy advertises proxyed RA message derived from the received one to the LAN. When the proxyed RA message is received at a local host, the host invokes DHCPv6 client if the host has DHCPv6 client installed. Then, a solicit message sent by the local host is processed by the proxy agent as following. Firstly, it checks with DUID and transcation ID if the solicit message is arrived for the first time. If so, it creates new proxy transaction for proxing the solicit message, which comprise the following elements. - original transaction related information (IAID, IA-type, DUID, transaction ID) from the received message. - proxy transaction related information (proxy IAID, proxy DUID, proxy transaction ID). - expire time. For the new proxy transaction, the agent generates new transaction ID and chooses a IAID value from pre-configured proxy IAID pool by its policy. If the solicit message includes multiple IAIDs, the agent should choose same number of proxy IAID values as original IAIDs. The proxy DUID is the DUID of the agent which is supposed to be same for all proxy transactions, which is not a requirement. The expire time is the time until the proxy transaction is valid and calculated from MAX timeout value for each type of message as is specified in RFC3315 5.5. For example, expire time for the proxyed solicit message is current time plus 120 seconds(SOL_MAX_RT) plus some marginal delay. After creating the new proxy transaction, the agent generates new proxy solicit message by substituting IAID, DUID and transaction ID in the original message with proxy IAID, proxy DUID and proxy transaction ID respectively. and sends it through the upstream interface (Wireless link from the above illustration). If a retransmitted message sent by the local host is arrived at the proxy agent, proxy message is generated using existing proxy transaction and expire time is recalculated by the above rule. When a reply message for a proxied message is received at the upstream interface of the proxy agent, relevant proxy transaction is searched by comparing DUID in the client ID option and transaction ID in the message with proxy DUID and proxy transaction ID in existing transactions. If the match proxy transaction is found, the agent generates new proxy reply message by substituting IAID, DUID and transaction ID in the original message with proxy IAID, proxy DUID and proxy transaction ID respectively. and sends it through the LAN interface. If no match proxy transaction is found, reply message is silently ignored. If a binding information is conveyed in the received Reply message, the agent also populates or refreshes the coresponding proxy binding using the match proxy transaction, which comprises the following elements. - original binding related information (IAID, IA-type, DUID) - proxy binding related information (proxy IAID, proxy DUID, server DUID, IA address and valid lifetime, ...) The proxy binding is required since the agent should initiate a proxy transaction for Confirm message in case that the upstream interace might be moved to different link, and also be able to forward messages initiated by the server or the proxy agent to the local hosts. Joseph -------------------------------------------------------------------- IETF IPv6 working group mailing list ipv6@ietf.org Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6 --------------------------------------------------------------------