RFC 5172 PROPOSED STANDARD PPP · IPV6 · COMPRESSION

IPV6CP compression: Negotiation for IPv6 Datagram Compression Using IPv6 Control Protocol

How the two ends of a PPP link agree to compress IPv6 packets, using one option in the IPv6 Control Protocol.

On rfc-editor.org ↗
PUBLISHED
March 2008
AUTHORS
S. Varada
STREAM
IETF
BUILDS ON
RFC 2472 — IPv6 over PPP
IPV6CP OPTION TYPE
2
MINIMUM OPTION LENGTH
4
PROTOCOL FIELD SIZE
2 octets
IP HEADER COMPRESSION VALUE
0061
ROHC VALUE
0003
DEFAULT
No compression
DOI
10.17487/RFC5172

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                     S. Varada, Ed.
Request for Comments: 5172                                    Transwitch
Obsoletes: 2472                                               March 2008
Category: Standards Track


 Negotiation for IPv6 Datagram Compression Using IPv6 Control Protocol

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   The Point-to-Point Protocol (PPP) provides a standard method of
   encapsulating network-layer protocol information over point-to-point
   links.  PPP also defines an extensible Link Control Protocol, and
   proposes a family of Network Control Protocols (NCPs) for
   establishing and configuring different network-layer protocols.

   The IPv6 Control Protocol (IPV6CP), which is an NCP for a PPP link,
   allows for the negotiation of desirable parameters for an IPv6
   interface over PPP.

   This document defines the IPv6 datagram compression option that can
   be negotiated by a node on the link through the IPV6CP.

Table of Contents

   1. Introduction ....................................................2
      1.1. Specification of Requirements ..............................2
   2. IPV6CP Configuration Options ....................................3
      2.1. IPv6-Compression-Protocol ..................................3
   3. Security Considerations .........................................4
   4. IANA Considerations .............................................5
   5. Management Considerations .......................................5
   6. Acknowledgments .................................................5
   7. References ......................................................5
      7.1. Normative References .......................................5
      7.2. Informative References .....................................6

1.  Introduction

   PPP [1] has three main components:

      1) A method for encapsulating datagrams over serial links.

      2) A Link Control Protocol (LCP) for establishing, configuring,
         and testing the data-link connection.

      3) A family of Network Control Protocols (NCPs) for establishing
         and configuring different network-layer protocols.

   In order to establish communications over a point-to-point link, each
   end of the PPP link must first send LCP packets to configure and test
   the data link.  After the link has been established and optional
   facilities have been negotiated as needed by the LCP, PPP must send
   NCP packets to choose and configure one or more network-layer
   protocols.  Once each of the chosen network-layer protocols has been
   configured, datagrams from each network-layer protocol can be sent
   over the link.  The link will remain configured for communications
   until explicit LCP or NCP packets close the link down, or until some
   external event occurs (power failure at the other end, carrier drop,
   etc.).

   In the IPv6 over PPP specification [2], the NCP, or IPV6CP, for
   establishing and configuring IPv6 over PPP is defined.  The same
   specification defines the Interface Identifier parameter, which can
   be used to generate link-local and globally unique IPv6 addresses,
   for negotiation.

   In this specification, the compression parameter for use in IPv6
   datagram compression is defined.  Together with RFC 5072 [2], this
   document obsoletes RFC 2472 [13].  However, no protocol changes have
   been introduced over RFC 2472.

1.1.  Specification of Requirements

   In this document, several words are used to signify the requirements
   of the specification.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [3].

2.  IPV6CP Configuration Options

   IPV6CP Configuration Options allow negotiation of desirable IPv6
   parameters.  IPV6CP uses the same Configuration Option format as
   defined for LCP [1] but with a separate set of Options.  If a
   Configuration Option is not included in a Configure-Request packet,
   the default value for that Configuration Option is assumed.

   The only IPV6CP option defined in this document is the IPv6-
   Compression-Protocol.  The Type field for this IPV6CP Option is as
   follows:

            2 IPv6-Compression-Protocol

   Note that the up-to-date values of the IPV6CP Option Type field are
   specified in the on-line database of "Assigned Numbers" maintained by
   IANA [7].

2.1.  IPv6-Compression-Protocol

   This Configuration Option provides a way to negotiate the use of a
   specific IPv6 packet compression protocol.  The IPv6-Compression-
   Protocol Configuration Option is used to indicate the ability to
   receive compressed packets.  Each end of the link MUST separately
   request this option if bidirectional compression is desired.  By
   default, compression is not enabled.

   IPv6 compression negotiated with this option is specific to IPv6
   datagrams and is not to be confused with compression resulting from a
   compression method negotiated via the PPP Compression Control
   Protocol (CCP) [12], which potentially affects all datagrams.

   A summary of the IPv6-Compression-Protocol 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     |   IPv6-Compression-Protocol   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Data ...
   +-+-+-+-+

        Type

          2
        Length

          >= 4

        IPv6-Compression-Protocol

          The IPv6-Compression-Protocol field is two octets and
          indicates the compression protocol desired.  Values for this
          field are always the same as the PPP Data Link Layer Protocol
          field values for that same compression protocol.

          IPv6-Compression-Protocol field values have been assigned in
          [4, 5] for IP Header Compression (0061), and in [6] for Robust
          Header Compression (ROHC) (0003).  Other assignments can be
          made in documents that define specific compression algorithms.

        Data

          The Data field is zero or more octets and contains additional
          data as determined by the particular compression protocol.

   The default (in the absence of negotiation of this option) is to have
   no IPv6 compression protocol enabled.

3.  Security Considerations

   Lack of proper link security, such as authentication, prior to data
   transfers may enable man-in-the middle attacks resulting in the loss
   of data integrity and confidentiality.  The mechanisms that are
   appropriate for ensuring PPP link security are addressed below
   together with the reference to a generic threat model.

   The mechanisms that are appropriate for ensuring PPP link security
   are: 1) Access Control Lists that apply filters on traffic received
   over the link for enforcing admission policy, 2) an authentication
   protocol that facilitates negotiations between peers [8] to select an
   authentication method (e.g., MD5 [9]) for validation of the peer, and
   3) an encryption control protocol that facilitates negotiations
   between peers to select encryption algorithms (or crypto-suites) to
   ensure data confidentiality [10]).

   There are certain threats associated with peer interactions on a PPP
   link even with one or more of the above security measures in place.
   For instance, using the MD5 authentication method [9] exposes one to
   replay attacks, in which an attacker could intercept and replay a
   station's identity and password hash to get access to a network.  The
   user of this specification is advised to refer to [8], which presents
   a generic threat model, for an understanding of the threats posed to
   the security of a link.  The reference [8] also gives a framework to
   specify requirements for the selection of an authentication method
   for a given application.

4.  IANA Considerations

   No specific action is needed for the assignment of a value for the
   Type field of IPv6 datagram compression option specified in this
   specification.  The current assignment is up-to-date in the registry
   "PPP IPV6CP CONFIGURATION OPTIONS" for item IPv6-Compression-Protocol
   (2) at [7].  However, the RFC reference for that item has been
   changed to 5172.

   No action is needed either for the assignment of the IPV6-
   Compression-Protocol values, as such values have already been defined
   by other documents listed in Section 2.1.  Values for this field are
   always the same as the PPP Data Link Layer Protocol field values for
   that same compression protocol.  As a result, future allocation of
   these values is governed by RFC 3818 [11] that requires IETF
   Consensus.  Current values are in the registry "IPv6-Compression-
   Protocol Types".  However, the RFC reference for that registry has
   been changed to 5172.

5.  Management Considerations

   From an operational point of view, the status of the negotiation and
   the compression algorithm on the link should be observable by an
   operator managing a network.  There is no standard management
   interface that covers this at the time of the writing of this
   specification.

6.  Acknowledgments

   The editor is grateful to Jari Arkko for the direction provided on
   this document and James Carlson for helpful suggestions.
   Acknowledgments are also due to D. Haskin and E. Allen for the
   specification work done in RFC 2023 and RFC 2472.

7.  References

7.1.  Normative References

   [1]  Simpson, W., Ed., "The Point-to-Point Protocol (PPP)", STD 51,
        RFC 1661, July 1994.

   [2]  Varada, S., Ed., Haskin, D., and E. Allen, "IP Version 6 over
        PPP", RFC 5072, September 2007.

   [3]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [4]  Degermark, M., Nordgren, B., and S. Pink, "IP Header
        Compression", RFC 2507, February 1999.

   [5]  Koren, T., Casner, S., and C. Bormann, "IP Header Compression
        over PPP", RFC 3544, July 2003.

   [6]  Bormann, C., "Robust Header Compression (ROHC) over PPP", RFC
        3241, April 2002.

7.2.  Informative References

   [7]  IANA, http://www.iana.org.

   [8]  Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
        Levkowetz, Ed., "Extensible Authentication Protocol (EAP)", RFC
        3748, June 2004.

   [9]  Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April
        1992.

   [10] Meyer, G., "The PPP Encryption Control Protocol (ECP)", RFC
        1968, June 1996.

   [11] Schryver, V., "IANA Considerations for the Point-to-Point
        Protocol (PPP)", BCP 88, RFC 3818, June 2004.

   [12] Rand, D., "The PPP Compression Control Protocol(CCP)", RFC 1962,
        June 1996.

   [13] Haskin, D. and E. Allen, "IP Version 6 over PPP", RFC 2472,
        December 1998.

Editor's Address

   Srihari Varada
   TranSwitch Corporation
   3 Enterprise Dr.
   Shelton, CT 06484
   US

   Phone: +1 203 929 8810
   EMail: varada@ieee.org

Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

AI ELI5

On this page
PROBLEMTwo ends of a point-to-point link may want to shrink IPv6 packets with a header compression method, but they need a standard way to agree on which one.
MECHANISMThe IPv6-Compression-Protocol option (type 2) in IPV6CP carries a two-octet value naming the compression protocol, plus optional data for that protocol. Each end requests it for the direction it wants to receive.
STATUS TODAYRFC 5172 obsoletes RFC 2472 together with RFC 5072 and, according to the text, introduces no protocol changes over RFC 2472.

§1Introduction

The Point-to-Point Protocol (PPP) has three main parts: a method for encapsulating datagrams over serial links, a Link Control Protocol (LCP) for establishing, configuring and testing the link, and a family of Network Control Protocols (NCPs) for configuring network-layer protocols.

RFC 5172 defines one parameter for the NCP used by IPv6, the IPv6 Control Protocol (IPV6CP): the compression parameter for IPv6 datagram compression. The Interface Identifier parameter lives in the companion document, RFC 5072.

Before two computers on a cable can talk, they first agree on the rules, a bit like two friends agreeing on a game before they play. This paper adds one rule: whether to use shorthand.

§1.1Where IPV6CP Fits in a PPP Link

To set up a link, each end first sends LCP packets to configure and test the data link. After that, PPP sends NCP packets to choose and configure one or more network-layer protocols. Once a network-layer protocol is configured, its datagrams can flow over the link.

The link stays configured until explicit LCP or NCP packets close it, or until some external event occurs, such as a power failure at the other end or a carrier drop. IPV6CP is the NCP that does this configuration for IPv6.

First the two ends shake hands to make the link work. Then they talk about the details of each kind of traffic. IPV6CP is the talk about IPv6 traffic.

§2The IPv6-Compression-Protocol Option

IPV6CP uses the same Configuration Option format as LCP, but with its own set of options. If an option is left out of a Configure-Request, its default value is assumed. The only option defined here is IPv6-Compression-Protocol, Type 2.

The option signals the ability to receive compressed packets. Each end MUST request it separately if compression is wanted in both directions. By default, compression is not enabled.

The option is specific to IPv6 datagrams. It is not to be confused with compression negotiated through the PPP Compression Control Protocol (CCP), which can affect all datagrams.

Each side says which shorthand it can understand when listening. If you want shorthand both ways, both sides have to ask for it. If nobody asks, everyone speaks normally.

§2.1Option Format and Field Values

The option has a Type of 2, a Length of at least 4, a two-octet IPv6-Compression-Protocol field, and a Data field of zero or more octets whose content depends on the chosen compression protocol.

The two-octet value is always the same as the PPP Data Link Layer Protocol field value for that compression protocol. Values have been assigned for IP Header Compression (0061) and for Robust Header Compression (ROHC) (0003). Other assignments can be made in documents that define specific compression algorithms.

The option is a small label with a number on it that says which shorthand you mean, plus room for extra notes that only that shorthand understands.

IPV6-COMPRESSION-PROTOCOL OPTION (RFC 5172)
IPv6-Compression-Protocol option
FieldNameSizeValueDescription
TYPEType1 byte2Option type.
LENGTHLength1 byteAt least 4.
PROTOCOLIPv6-Compression-Protocol2 bytesThe compression protocol wanted; same as its PPP protocol field value.

§3Security Considerations

Without proper link security such as authentication before data transfer, man-in-the-middle attacks could cost data integrity and confidentiality. The RFC lists three appropriate mechanisms: access control lists that filter traffic received over the link, an authentication protocol that lets peers pick an authentication method such as MD5, and an encryption control protocol for choosing encryption algorithms.

Even with these in place, threats remain. For example, MD5 authentication exposes a link to replay attacks. Readers are pointed to RFC 3748 for a generic threat model.

Make sure you know who is on the other end of the line before you start talking, and use a secret code if the conversation is private.

§4IANA and Management Considerations

No new assignment is needed. Option type 2 is already in the "PPP IPV6CP CONFIGURATION OPTIONS" registry, and only its RFC reference changed to 5172. The compression protocol values are the same as PPP protocol field values, so future allocation follows RFC 3818, which requires IETF Consensus. The "IPv6-Compression-Protocol Types" registry reference likewise changed to 5172.

For management, the status of the negotiation and the compression algorithm on the link should be observable by an operator, but the RFC says no standard management interface covers this at the time of writing.

The official list of numbers already had this option in it, so only the name of the paper that describes it was updated. Nobody has yet made a standard way to check which shorthand a link is using.

§7References