Dynamic Host Configuration Protocol (DHCPv6) Options for Session Initiation Protocol (SIP) Servers
Extracted elements (16)
Because DHCPv6 does not suffer from a shortage of option codes, the encoding byte found in the IPv4 DHCP SIP option (RFC 3361) is omitted, making options shorter, easier to parse, better word-aligned for numeric addresses, and allowing clients to request either option type via the option request option.
RFC 1035 label encoding was chosen for domain names to accommodate future internationalized domain name mechanisms.
Multiple domain names in OPTION_SIP_SERVER_D are not intended to replace NAPTR or SRV records, but to allow a single DHCP server to indicate outbound proxy servers operated by multiple providers.
A server configured with OPTION_SIP_SERVER_A MUST send that option to a client that requested it and did not request the domain name list option in an ORO.
An implementation of this specification MUST support both the SIP Servers Domain Name List option (OPTION_SIP_SERVER_D) and the SIP Servers IPv6 Address List option (OPTION_SIP_SERVER_A).
Domain names in OPTION_SIP_SERVER_D MUST be listed in order of preference; multiple names SHOULD refer to different NAPTR records rather than different A records.
If a client receives both options, it SHOULD use the SIP Servers Domain Name List option; it MAY use the IPv6 Address List option only if no server in the domain name list can be resolved or reached.
If a client requests both options and the server is configured for both, the server MAY send only one and SHOULD send the SIP Servers Domain Name List (OPTION_SIP_SERVER_D).
IPv6 addresses in OPTION_SIP_SERVER_A MUST be listed in order of preference for use by the client.
The SIP server referenced in these options MUST be an outbound proxy server as defined in RFC 3263. A SIP client refers to the host on which the SIP client software runs.
When the domain name list option contains multiple entries, the client MUST try the records in the order listed, applying the RFC 3263 Section 4.1 mechanism for each, and only resolves subsequent names if the first fails, yields no common transport, or is administratively prohibited.
Two DHCPv6 options are defined: OPTION_SIP_SERVER_D (option code 21) carries a list of SIP server domain names, and OPTION_SIP_SERVER_A (option code 22) carries a list of 128-bit IPv6 addresses of SIP outbound proxy servers.
IANA assigned DHCPv6 option number 21 for 'SIP Servers Domain Name List' (OPTION_SIP_SERVER_D) and option number 22 for 'SIP Servers IPv6 Address List' (OPTION_SIP_SERVER_A).
If an adversary modifies a DHCP server response or inserts its own, a SIP user agent could be directed to a rogue SIP server that intercepts call requests or denies service. A modified DHCP answer could also omit TLS-based SIP server names, facilitating interception. Security considerations from RFC 3315, RFC 3261, and RFC 3263 apply.
OPTION_SIP_SERVER_A (code 22): 2-octet option code, 2-octet option-length (must be a multiple of 16), followed by one or more 128-bit IPv6 addresses of SIP servers listed in preference order.
OPTION_SIP_SERVER_D (code 21): 2-octet option code, 2-octet option-length (variable), followed by SIP Server Domain Name List encoded per RFC 1035 Section 3.1 — each label as a one-octet length field plus that many octets, terminated by a zero-length octet; total domain name length restricted to 255 octets or less.