ietf-corpus

rfc-2472

IP Version 6 over PPP

D. Haskin, E. Allen
date1998-12 streamIETF areaint wgipngwg statusPROPOSED STANDARD pages14 canonicalhttps://www.rfc-editor.org/rfc/rfc2472 doi10.17487/RFC2472
This document defines the method for transmission of IP Version 6 packets over PPP links as well as the Network Control Protocol (NCP) for establishing and configuring the IPv6 over PPP. It also specifies the method of forming IPv6 link-local addresses on PPP links. [STANDARDS-TRACK]

obsoleted by

obsoletes

Extracted elements (25)

design-rationale §4.1

A consistently reproducible interface identifier is preferred over a completely random one to provide stability to global-scope addresses formed from the interface identifier; stability is valuable across reboots and IPV6CP state machine reinitializations.

ip, v6ops

design-rationale §5

Because the IPV6CP Interface-Identifier negotiation ensures each end has a unique identifier, duplicate address detection (DAD) as part of IPv6 Stateless Autoconfiguration is redundant and its transmit count should default to zero on PPP links.

ip, v6ops

interoperability-note §8

This document obsoletes RFC 2023, with key changes including renaming 'Interface Token' to 'Interface Identifier', expanding it from 32 to 64 bits, and changing the response to a zero Interface-Identifier in a Configure-Request from Configure-Ack to Configure-Nak.

ip, v6ops

normative-requirement §4.1 MUST

A Configure-Request MUST contain exactly one instance of the Interface-Identifier option, and the interface identifier MUST be unique within the PPP link so that different values are selected for each end upon completion of negotiation.

ip, v6ops

normative-requirement §4.1 MUST NOT

A new Configure-Request MUST NOT contain the Interface-Identifier option if a valid Interface-Identifier Configure-Reject has been received.

ip, v6ops

normative-requirement §2 MUST

Before any IPv6 packets may be communicated, PPP MUST reach the Network-Layer Protocol phase, and the IPv6 Control Protocol MUST reach the Opened state.

ip, v6ops

normative-requirement §4.1 SHOULD

By default, an implementation SHOULD attempt to negotiate the Interface-Identifier for its end of the PPP connection.

ip, v6ops

normative-requirement §5 SHOULD

For PPP links with the IPV6CP Interface-Identifier option enabled, the default value of the DupAddrDetectTransmits autoconfiguration variable SHOULD be set to zero, since uniqueness is already guaranteed by IPV6CP negotiation.

ip, v6ops

normative-requirement §4.1 MUST

If a Configure-Nak is received with a suggested Interface-Identifier different from the last Configure-Nak sent, a new Configure-Request MUST be sent with the identifier value suggested in the last Configure-Nak from the peer.

ip, v6ops

normative-requirement §4.1 MUST

If a non-IEEE-derived identifier is used (from link-layer address, serial number, random number, etc.), the 'u' bit of the interface identifier MUST be set to zero (0).

ip, v6ops

normative-requirement §4.1 MUST

If both Interface-Identifiers are equal to zero, negotiation MUST be terminated by transmitting a Configure-Reject with the Interface-Identifier value set to zero, as a unique identifier cannot be negotiated.

ip, v6ops

normative-requirement §4.1 MUST

If the two Interface-Identifiers are equal and non-zero, a Configure-Nak MUST be sent specifying a different non-zero Interface-Identifier value for use by the remote peer.

ip, v6ops

normative-requirement §3 SHOULD NOT

IPV6CP packets may not be exchanged until PPP has reached the Network-Layer Protocol phase; packets received before this phase should be silently discarded.

ip, v6ops

normative-requirement §2 MUST

PPP links supporting IPv6 MUST allow the Information field to be at least as large as the minimum link MTU size required for IPv6.

ip, v6ops

normative-requirement §5 SHOULD

The Interface Identifier of IPv6 unicast addresses on a PPP interface SHOULD be negotiated in the IPV6CP phase; if no valid identifier is successfully negotiated, recovery procedures are unspecified (one approach is manual configuration).

ip, v6ops

protocol-element §4.2

IPv6-Compression-Protocol negotiation is specific to IPv6 datagrams and is independent of compression negotiated via the Compression Control Protocol (CCP), which may affect all datagrams. Each end must separately request this option for bidirectional compression.

ip, v6ops

protocol-element §2

IPv6 packets are encapsulated in the Information field of PPP Data Link Layer frames where the Protocol field indicates type hex 0057 (Internet Protocol Version 6). Exactly one IPv6 packet is carried per frame.

ip, v6ops

protocol-element §3

IPV6CP uses only Codes 1 through 7 (Configure-Request, Configure-Ack, Configure-Nak, Configure-Reject, Terminate-Request, Terminate-Ack, Code-Reject). Other codes should be treated as unrecognized and result in Code-Rejects.

ip, v6ops

protocol-element §3

The IPv6 Control Protocol (IPV6CP) is encapsulated in PPP frames with Protocol field hex 8057. It uses the same packet exchange mechanism as LCP but with a distinct set of Configuration Options.

ip, v6ops

protocol-element §4.1

To derive an interface identifier from an EUI-64, the only transformation is to invert the 'u' (universal/local) bit (bit 6 in canonical order). For EUI-48, it is first expanded to EUI-64 by inserting 0xFF and 0xFE between the company_id and extension-identifier.

ip, v6ops

security-consideration §6

The IPv6 Control Protocol extension to PPP can be used with all defined PPP authentication and encryption mechanisms, providing no additional security constraints beyond those of PPP itself.

security, ip

state-machine §4.1

Interface-Identifier negotiation has four outcomes based on comparing received vs. sent identifiers: (1) different and non-zero received → Configure-Ack; (2) received is zero → Configure-Nak with non-zero suggestion; (3) equal and non-zero → Configure-Nak with different value; (4) both zero → Configure-Reject terminating negotiation.

ip, v6ops

wire-format §5

IPv6 link-local addresses on PPP interfaces are formed as: 10-bit prefix 1111111010 (FE80::), 54 zero padding bits, followed by the 64-bit Interface Identifier negotiated via IPV6CP.

ip, v6ops

wire-format §4.1

The Interface-Identifier Configuration Option has Type=1, Length=10, and carries a 64-bit Interface-Identifier field (8 octets). The total option is 10 octets including Type and Length bytes.

ip, v6ops

wire-format §4.2

The IPv6-Compression-Protocol Configuration Option has Type=2, Length>=4, a 2-octet IPv6-Compression-Protocol field (values match PPP Data Link Layer Protocol field values for that compression protocol), and a variable-length Data field.

ip, v6ops