RFC 1877 INFORMATIONAL PPP · DNS · CONFIGURATION

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.

On rfc-editor.org ↗
PUBLISHED
December 1995
AUTHORS
S. Cobb
STREAM
Legacy
CONFIGURATION OPTION TYPES
129-132
OPTION LENGTH
6 bytes
ADDRESS FIELD SIZE
32 bits (IPv4)
DOI
10.17487/RFC1877

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
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
PROBLEMWhen a computer dials up to an ISP using PPP, it needs to know which DNS servers to use for name resolution, but standard PPP provides no way to negotiate this automatically.
MECHANISMThis RFC extends PPP's IP Control Protocol (IPCP) with four new configuration options that allow the remote peer to provide the addresses of primary and secondary DNS servers and NetBIOS name servers during the PPP handshake.
AUTOMATIC CONFIGURATIONDial-up clients can now receive name server addresses automatically as part of link negotiation, eliminating the need for manual configuration.

§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.

PPP IPCP Name Server Option Format (RFC 1877)
Configuration Option
FieldNameSizeValueDescription
TYPEType1 byte129 (Primary DNS), 130 (Primary NBNS), 131 (Secondary DNS), or 132 (Secondary NBNS).
LENGTHLength1 byteAlways 6 (1 byte type + 1 byte length + 4 bytes address).
ADDRESSAddress4 bytesIPv4 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.

§6References