ietf-corpus

rfc-4023

Encapsulating MPLS in IP or Generic Routing Encapsulation (GRE)

T. Worster, Y. Rekhter, E. Rosen (Editor)
date2005-03 streamIETF areartg wgmpls statusPROPOSED STANDARD pages14 canonicalhttps://www.rfc-editor.org/rfc/rfc4023 doi10.17487/RFC4023
Various applications of MPLS make use of label stacks with multiple entries. In some cases, it is possible to replace the top label of the stack with an IP-based encapsulation, thereby enabling the application to run over networks that do not have MPLS enabled in their core routers. This document specifies two IP-based encapsulations: MPLS-in-IP and MPLS-in-GRE (Generic Routing Encapsulation). Each of these is applicable in some circumstances. [STANDARDS-TRACK]

updated by

Extracted elements (22)

design-rationale §5.1

Fragmentation is disallowed by default because reassembly at the tunnel tail (a router) is likely undesirable due to performance constraints. MTUs should be engineered large enough to avoid fragmentation in practice, as silently dropping oversized packets can cause hard-to-diagnose operational problems.

mpls, ip

design-rationale §6

MPLS-in-IP is more efficient than MPLS-in-GRE and is generally preferred. MPLS-in-GRE is applicable when two routers are already adjacent over an existing GRE tunnel (making double-encapsulation inefficient) or when hardware implementation constraints require GRE in the fastpath.

mpls

design-rationale §4

The optional GRE key, sequence number, and checksum fields are not used by default because they are unnecessary for MPLS tunneling (MPLS labels handle demultiplexing), the GRE key is only a weak 32-bit cleartext password, and omitting them facilitates high-speed implementations and ensures interoperability.

mpls

normative-requirement §8.1 MUST

An IPsec-secured MPLS-in-IP or MPLS-in-GRE tunnel MUST provide authentication and integrity; implementations MUST support ESP with null encryption. ESP with encryption MAY be supported for confidentiality. The tunnel tail MUST verify the source IP address on a given SA.

mpls, security, ipsec, crypto

normative-requirement §4 MUST

An MPLS-in-GRE decapsulator MUST be able to process packets correctly without the optional GRE checksum, key, and sequence number fields. It MAY also process packets with these optional fields.

mpls

normative-requirement §4 MUST NOT

An MPLS-in-GRE encapsulator MUST be able to generate packets without the optional GRE fields, and the default state MUST be that packets are generated without these fields. The encapsulator MUST NOT include optional fields unless it is known the decapsulator can process them.

mpls

normative-requirement §8.1 MUST

If a control protocol is used to set up tunnels, it MUST have an authentication mechanism that MUST be used when the tunnel is set up. If BGP is used for automatic setup, BGP's MD5-based authentication is satisfactory.

mpls, security, ipsec

normative-requirement §5.1 MUST

If IPv4 is used and packets are not to be fragmented, the tunnel MUST set the DF (Don't Fragment) bit to prevent intermediate nodes from performing fragmentation.

mpls, ip

normative-requirement §5.1 MUST

If the tunnel head receives an MPLS packet whose size exceeds the Tunnel MTU, that packet MUST be discarded.

mpls, ip

normative-requirement §8.1 SHOULD

IPsec transport mode SHOULD be used for MPLS-in-IP or MPLS-in-GRE tunnels secured with IPsec, treating the tunnel head and tail as endpoints of a Security Association.

mpls, security, ipsec

normative-requirement §8.1 MUST

Manual keying MUST be supported for IPsec. If automatic keying is implemented, IKE in main mode with preshared keys MUST be supported.

mpls, security, ipsec, crypto

normative-requirement §5.1 MUST

The tunnel head SHOULD perform Path MTU Discovery (RFC 1191 for IPv4, RFC 1981 for IPv6) and MUST maintain a Tunnel MTU for each tunnel, defined as the minimum of an administratively configured value and the discovered Path MTU minus encapsulation overhead.

mpls, ip

normative-requirement §8.1 MUST NOT

The tunnel tail MUST know precisely which labels it has distributed to tunnel heads of IPsec-secured tunnels. Those labels MUST NOT be distributed to any other LSP adjacencies, and MPLS packets received without IPsec encapsulation bearing such labels MUST be discarded.

mpls, security, ipsec

normative-requirement §5.1 MUST

Whether fragmentation of tunneled packets is allowed MUST be configurable at the tunnel head, and the default value MUST be that packets are not fragmented.

mpls, ip

protocol-element §1

The encapsulating LSR (tunnel head) must know both the IP address of the decapsulating LSR (tunnel tail) and that the tunnel tail supports the particular encapsulation. This knowledge may be conveyed by manual configuration or a discovery/setup protocol; the means are outside the scope of this document.

mpls, ip

protocol-element §5.2

The tunnel head MAY copy the TTL from the MPLS label stack into the TTL/Hop Limit field of the encapsulating IP header. The tunnel tail MAY copy the TTL/Hop Limit from the encapsulating IP header into the MPLS header, but only if this does not increase the MPLS TTL value.

mpls, ip

protocol-element §5.3

When sending an MPLS packet into an MPLS-in-IP or MPLS-in-GRE tunnel, the DS field of the encapsulating IP header MAY be set based on the Behavior Aggregate of the MPLS packet, per RFC 3270. Similarly, at the tunnel tail the DS field MAY determine the Behavior Aggregate of the encapsulated MPLS packet.

mpls, diffserv

registry §7

IANA allocated IP Protocol Number 137 for MPLS-in-IP encapsulation. No future IANA actions are required for this document. The MPLS-in-GRE encapsulation requires no IANA action.

mpls, registry, ip

security-consideration §8

The core security problems for IP/GRE tunnels are: (1) a packet appearing to come from the tunnel but not placed there by the tunnel transmit endpoint (no encapsulator authentication); (2) packet alteration in transit (no integrity guarantee); (3) packet content exposure in transit (no privacy). IPsec support is defined as OPTIONAL due to varying security requirements.

mpls, security, ipsec

security-consideration §8.2

Without IPsec, address filtering at administrative domain boundaries can help prevent spoofed tunnel packets. Source address filtering alone is insufficient unless the decapsulator validates the IP source address; effective protection requires destination-based or combined source+destination filtering.

mpls, security

wire-format §4

MPLS-in-GRE packets consist of an IP header (IPv4 or IPv6), followed by a GRE header, followed by an MPLS label stack. The GRE protocol type field MUST be set to Ethertype 0x8847 (MPLS Unicast) or 0x8848 (MPLS Multicast).

mpls, ip

wire-format §3

MPLS-in-IP packets consist of an IPv4 or IPv6 header (source/destination set to encapsulating/decapsulating LSR addresses), followed by an MPLS Label Stack as defined in RFC 3032, followed by the message body. The IPv4 Protocol Number or IPv6 Next Header is set to 137.

mpls, ip