PPP IPCP DNS Addresses: PPP Internet Protocol Control Protocol Extensions for Name Server Addresses
Extend PPP to negotiate DNS and NetBIOS name server addresses when a dial-up link comes up.
Cobb, S., "PPP Internet Protocol Control Protocol Extensions for Name Server Addresses", RFC 1877, DOI 10.17487/RFC1877, December 1995, <https://www.rfc-editor.org/info/rfc1877>.
@misc{rfc1877,
series = {Request for Comments},
number = 1877,
howpublished = {RFC 1877},
publisher = {RFC Editor},
doi = {10.17487/RFC1877},
url = {https://www.rfc-editor.org/info/rfc1877},
author = {S. Cobb},
title = {{PPP Internet Protocol Control Protocol Extensions for Name Server Addresses}},
pagetotal = 6,
year = 1995,
month = dec,
} RFC text
Contents
Network Working Group S. Cobb
Request for Comments: 1877 Microsoft
Category: Informational December 1995
PPP Internet Protocol Control Protocol Extensions for
Name Server Addresses
Status of this Memo
This memo provides information for the Internet community. This memo
does not specify an Internet standard of any kind. Distribution of
this memo is unlimited.
Abstract
The Point-to-Point Protocol (PPP) [1] provides a standard method for
transporting multi-protocol datagrams over point-to-point links. PPP
defines an extensible Link Control Protocol and a family of Network
Control Protocols (NCPs) for establishing and configuring different
network-layer protocols.
This document extends the NCP for establishing and configuring the
Internet Protocol over PPP [2], defining the negotiation of primary
and secondary Domain Name System (DNS) [3] and NetBIOS Name Server
(NBNS) [4] addresses.
Table of Contents
1. Additional IPCP Configuration options ................. 1
1.1 Primary DNS Server Address .................... 2
1.2 Primary NBNS Server Address ................... 3
1.3 Secondary DNS Server Address .................. 4
1.4 Secondary NBNS Server Address ................. 5
REFRENCES .................................................... 6
SECURITY CONSIDERATIONS ...................................... 6
CHAIR'S ADDRESS .............................................. 6
AUTHOR'S ADDRESS ............................................. 6
1. Additional IPCP Configuration Options
The four name server address configuration options, 129 to 132,
provide a method of obtaining the addresses of Domain Name System
(DNS) servers and (NetBIOS Name Server (NBNS) nodes on the remote
network.
Primary and secondary addresses are negotiated independently. They
serve identical purposes, except that when both are present an
attempt SHOULD be made to resolve names using the primary address
before using the secondary address.
For implementational convenience, these options are designed to be
identical in format and behavior to option 3 (IP-Address) which is
already present in most IPCP implementations.
Since the usefulness of name server address information is dependent
on the topology of the remote network and local peer's application,
it is suggested that these options not be included in the list of
"IPCP Recommended Options".
1.1. Primary DNS Server Address
Description
This Configuration Option defines a method for negotiating with
the remote peer the address of the primary DNS server to be used
on the local end of the link. If local peer requests an invalid
server address (which it will typically do intentionally) the
remote peer specifies the address by NAKing this option, and
returning the IP address of a valid DNS server.
By default, no primary DNS address is provided.
A summary of the Primary DNS Address Configuration Option format is
shown below. The fields are transmitted from left to right.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Primary-DNS-Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Primary-DNS-Address (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
129
Length
6
Primary-DNS-Address
The four octet Primary-DNS-Address is the address of the primary
DNS server to be used by the local peer. If all four octets are
set to zero, it indicates an explicit request that the peer
provide the address information in a Config-Nak packet.
Default
No address is provided.
1.2. Primary NBNS Server Address
Description
This Configuration Option defines a method for negotiating with
the remote peer the address of the primary NBNS server to be used
on the local end of the link. If local peer requests an invalid
server address (which it will typically do intentionally) the
remote peer specifies the address by NAKing this option, and
returning the IP address of a valid NBNS server.
By default, no primary NBNS address is provided.
A summary of the Primary NBNS Address Configuration Option format is
shown below. The fields are transmitted from left to right.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Primary-NBNS-Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Primary-NBNS-Address (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
130
Length
6
Primary-NBNS-Address
The four octet Primary-NBNS-Address is the address of the primary
NBNS server to be used by the local peer. If all four octets are
set to zero, it indicates an explicit request that the peer
provide the address information in a Config-Nak packet.
Default
No address is provided.
1.3. Secondary DNS Server Address
Description
This Configuration Option defines a method for negotiating with
the remote peer the address of the secondary DNS server to be used
on the local end of the link. If local peer requests an invalid
server address (which it will typically do intentionally) the
remote peer specifies the address by NAKing this option, and
returning the IP address of a valid DNS server.
By default, no secondary DNS address is provided.
A summary of the Secondary DNS Address Configuration Option format is
shown below. The fields are transmitted from left to right.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Secondary-DNS-Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Secondary-DNS-Address (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
131
Length
6
Secondary-DNS-Address
The four octet Secondary-DNS-Address is the address of the primary
NBNS server to be used by the local peer. If all four octets are
set to zero, it indicates an explicit request that the peer
provide the address information in a Config-Nak packet.
Default
No address is provided.
1.4. Secondary NBNS Server Address
Description
This Configuration Option defines a method for negotiating with
the remote peer the address of the secondary NBNS server to be
used on the local end of the link. If local peer requests an
invalid server address (which it will typically do intentionally)
the remote peer specifies the address by NAKing this option, and
returning the IP address of a valid NBNS server.
By default, no secondary NBNS address is provided.
A summary of the Secondary NBNS Address Configuration Option format
is shown below. The fields are transmitted from left to right.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Secondary-NBNS-Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Secondary-NBNS-Address (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
132
Length
6
Secondary-NBNS-Address
The four octet Secondary-NBNS-Address is the address of the
secondary NBNS server to be used by the local peer. If all
four octets are set to zero, it indicates an explicit request
that the peer provide the address information in a Config-Nak
packet.
Default
No address is provided.
References
[1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51,
RFC 1661, Daydreamer, July 1994.
[2] McGregor, G., "PPP Internet Control Protocol", RFC 1332, Merit,
May 1992.
[3] Auerbach, K., and A. Aggarwal, "Protocol Standard for a NetBIOS
Service on a TCP/UDP Transport", STD 19, RFCs 1001 and 1002,
March 1987.
[4] Mockapetris, P., "Domain Names - Concepts and Facilities", STD
13, RFC 1034, USC/Information Sciences Institute, November 1987.
[5] Mockapetris, P., "Domain Names - Implementation and
Specification", STD 13, RFC 1035, USC/Information Sciences
Institute, November 1987.
Security Considerations
Security issues are not discussed in this memo.
Chair's Address
The working group can be contacted via the current chair:
Fred Baker
Cisco Systems
519 Lado Drive
Santa Barbara, California 93111
EMail: fred@cisco.com
Author's Address
Questions about this memo can also be directed to:
Steve Cobb
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052-6399
Phone: (206) 882-8080
EMail: stevec@microsoft.com
AI ELI5
On this page
§1Name Server Addresses over PPP
The Point-to-Point Protocol (PPP) is the standard protocol for dial-up and other point-to-point connections. PPP uses Network Control Protocols (NCPs) to set up different network layers: one NCP handles IP configuration. This RFC extends the IP Control Protocol (IPCP) to allow negotiation of Domain Name System (DNS) server addresses and NetBIOS Name Server (NBNS) addresses.
Without this extension, a dial-up client has no way to learn which DNS servers the ISP uses, and must either have them pre-configured or ask the user to enter them manually. This RFC enables automatic discovery during the PPP handshake, so clients can resolve domain names immediately after connecting.
PPP is the protocol dial-up modems use to talk to ISPs. This RFC adds a way for the ISP to tell your computer which name servers to use, instead of you having to type them in yourself.
§2Four New Configuration Options
This RFC defines four new IPCP configuration options, numbered 129 through 132. Each option carries a single Internet address (four octets) and specifies what role it plays:
Type 129: Primary DNS Server Address—The primary DNS server the local peer should use for name resolution. Type 130: Primary NBNS Server Address—The primary NetBIOS Name Server, used on Windows networks for computer name resolution. Type 131: Secondary DNS Server Address—A secondary DNS server for fallback if the primary is unavailable. Type 132: Secondary NBNS Server Address—A secondary NBNS server.
All four options have identical format and behavior by design, matching the existing IPCP option 3 (IP-Address) for implementation simplicity. Primary and secondary servers are negotiated independently, and when both are present, the primary should be tried first.
There are four new types of information you can ask for: which DNS server to use first, which to use as backup, and the same two things for Windows network names.
§3Configuration Option Format
Each option follows a simple format: one byte for the Type (129, 130, 131, or 132), one byte for the Length (always 6, meaning one byte type plus one byte length plus four bytes of address), and four octets containing the IP address in network byte order.
The negotiation works as follows: the client sends a Configuration-Request with the desired option values. If the client sends zero in all four address octets (0.0.0.0), it is explicitly requesting that the peer provide the correct address in a Configuration-Nak response. The server responds with either an acknowledgment if the values are acceptable, or a Configuration-Nak containing the values the server wants the client to use. This is the standard IPCP negotiation mechanism: the client makes a suggestion, and the server either accepts it or provides the correct answer.
The format is tiny: one byte says what kind of information it is, another byte says how big it is, and four bytes are the address. When the computer asks for a name server address, the ISP sends back the real one in a special message.
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
TYPE | Type | 1 byte | 129 (Primary DNS), 130 (Primary NBNS), 131 (Secondary DNS), or 132 (Secondary NBNS). | |
LENGTH | Length | 1 byte | Always 6 (1 byte type + 1 byte length + 4 bytes address). | |
ADDRESS | Address | 4 bytes | IPv4 address of the DNS or NBNS server in network byte order. |
§4Negotiation Process
When a PPP link comes up, both peers run IPCP to negotiate IP parameters. As part of this negotiation, the client can include one or more of the four name server options in its Configuration-Request message. The client typically does not know the correct server addresses yet, so it sends zeros (0.0.0.0) to request that the server provide them.
The server receives the Configuration-Request, sees the zero addresses, and responds with a Configuration-Nak message containing the actual server addresses it wants the client to use. Alternatively, the server can Ack the request, meaning it approves of the values (usually zeros) in the request. The client then adopts the addresses from the server's Nak or Ack response.
Both primary and secondary addresses are negotiated independently, so a client might request the primary DNS server separately from the secondary, or request DNS servers but not NBNS servers. The negotiation follows the standard IPCP configure-request/configure-ack/configure-nak flow, making implementation straightforward for systems that already support IPCP.
The client asks for name servers by sending zeros. The ISP responds with the real addresses. The client uses whatever the ISP sends.
§5Practical Impact and Design Rationale
This RFC eliminates a major pain point in dial-up configuration. Before this standard, ISPs had to provide users with an installer script or documentation listing the DNS servers to manually enter into their system settings. This RFC enables automatic discovery.
The design is intentionally simple and reuses the format of existing IPCP options to minimize implementation burden on vendors already supporting IPCP. The four options (primary and secondary, DNS and NBNS) cover the main name resolution needs of 1990s networks. DNS servers handle Internet domain names; NBNS handles NetBIOS names used on Windows networks for computer discovery and sharing.
The RFC is Informational rather than Standards Track, reflecting that it is a practical extension to PPP that implementations were already experimenting with. The lack of a mandatory-to-implement requirement means vendors can omit these options if their target market does not need them, though most PPP implementations adopted them.
This lets ISPs configure computers automatically instead of making users type in addresses. It's designed to be easy to add to existing software. It handles two kinds of name servers: the Internet kind and the Windows network kind.