Dynamic Host Configuration Protocol (DHCP-for-IPv4) Option for Session Initiation Protocol (SIP) Servers
Extracted elements (17)
Multiple domain names are intended to let a single DHCP server indicate outbound proxies operated by multiple providers, not to replace NAPTR and SRV records.
RFC 1035 label encoding was chosen for domain names (over other formats) to accommodate future internationalized domain name mechanisms.
The option carries domain names preferably rather than raw IPv4 addresses because domain names allow NAPTR/SRV-based server selection and transport negotiation per RFC 3263, while IPv4 addresses bypass that mechanism.
The security considerations of RFC 2131 (DHCP), RFC 2543 (SIP), and RFC 3263 (SIP server location) all apply to this option; implementations must be aware of the combined threat model.
A DHCP server MUST NOT mix the two encodings (domain name and IPv4 address) in the same DHCP message, even if it sends two different instances of option 120, because DHCP processing concatenates multiple instances of the same option before processing.
All implementations MUST support both the domain name encoding (enc=0) and the IPv4 address encoding (enc=1) of the SIP Server DHCP option.
Clients MUST support DNS name compression as defined in RFC 1035 Section 4.1.4 when processing the domain name list encoding.
If the domain list exceeds 254 octets, it MUST be split across multiple option instances in the DHCP message per the long options encoding specification.
In the IPv4 address encoding, servers MUST be listed in order of preference.
Multiple domain names in the option SHOULD refer to different NAPTR records rather than different A records, to allow a single DHCP server to indicate proxies from multiple providers.
The SIP server referenced in the option MUST be an outbound proxy server as defined in RFC 3263.
When the domain name list is provided, the client MUST try the domain names 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 protocols, or is administratively prohibited.
The SIP Server DHCP option (code 120) carries either a list of DNS fully-qualified domain names or a list of IPv4 addresses identifying SIP outbound proxy servers. An encoding byte ('enc') immediately follows the code byte: value 0 indicates domain names, value 1 indicates IPv4 addresses.
IANA assigned DHCP option code 120 for the 'SIP Servers DHCP Option' defined in this document.
An adversary who modifies or spoofs a DHCP server response could redirect SIP user agents to a rogue SIP server that intercepts call requests or denies service. A modified DHCP answer could also omit TLS-capable SIP server names, facilitating interception.
Domain name encoding (enc=0): Code=120, Len=n, enc=0, followed by DNS labels encoded per RFC 1035 Section 3.1. Each label is a one-octet length field followed by that many octets; a zero-length byte terminates each name. Minimum length is 3.
IPv4 address encoding (enc=1): Code=120, Len=n, enc=1, followed by one or more 4-octet IPv4 addresses. Minimum length is 5; total length MUST be a multiple of 4 plus one.