rfc-5845

Generic Routing Encapsulation (GRE) Key Option for Proxy Mobile IPv6

A. Muhanna, M. Khalil, S. Gundavelli, K. Leung
date2010-06 streamIETF areaint wgnetlmm statusPROPOSED STANDARD pages25 canonicalhttps://www.rfc-editor.org/rfc/rfc5845 doi10.17487/RFC5845
This specification defines a new mobility option for allowing the mobile access gateway and the local mobility anchor to negotiate Generic Routing Encapsulation (GRE) encapsulation mode and exchange the downlink and uplink GRE keys that are used for marking the downlink and uplink traffic that belong to a specific mobility session. In addition, the same mobility option can be used to negotiate the GRE encapsulation mode without exchanging the GRE keys. [STANDARDS-TRACK]

Extracted elements (26)

design-rationale §1

IPv6 and IPv4 encapsulation modes defined in RFC 2473 and RFC 2003 are insufficient to uniquely identify the destination of packets for a specific mobility session in scenarios such as overlapping IPv4 private address space. GRE with its Key extension provides the richer semantics needed to distinguish flows between different operators or mobile nodes sharing the same address space.

routing, ip, nat

design-rationale §3.1

The GRE keys defined in this specification apply to the individual mobility binding updated by a specific Proxy Binding Update, not to all bindings a mobile node may have registered under RFC 5648. This scoping is a deliberate design choice to allow per-session flow marking.

routing, ip

design-rationale §7.1

The TLV header Type field is always set to 0 to allow a receiver to distinguish a TLV-encapsulated packet from a raw IP packet arriving over the same UDP tunnel, since the Proxy Binding Update (an IP packet) and GRE data packets share the same UDP tunnel and the IP version field in an IP header is never 0.

routing, ip, udp

interoperability-note §7.2

Any Proxy Binding Update triggered by a handoff may renegotiate the tunneling format; the TLV-header UDP tunneling format SHOULD NOT change during a Binding Lifetime Extension PBU from the same MAG, but is open for renegotiation at handoff.

routing, ip

interoperability-note §7.3

When a MAG receives a PBA with status GRE_TUNNELING_BUT_TLV_HEADER_NOT_SUPPORTED in response to a PBU with GRE Key option and T flag set, the MAG MUST use GRE encapsulation without UDP encapsulation, or may alternatively resend the PBU to negotiate different tunneling options or de-register the session.

routing, ip, udp

normative-requirement §3.3.1 MUST

After successfully processing an initial Proxy Binding Update that includes a downlink GRE key, the LMA MUST include the GRE Key option with the uplink GRE key in the GRE Key Identifier field of the successful Proxy Binding Acknowledgement.

routing, ip

normative-requirement §3.3.2 MUST

During Binding Lifetime Extension re-registration, the MAG MUST include the GRE Key option with the downlink GRE key in the Proxy Binding Update, and the LMA MUST return the same uplink GRE key that was exchanged in the last successful Proxy Binding Update for the same mobility session.

routing, ip

normative-requirement §3.3.2 MUST

If the LMA receives a handoff-triggered Binding Lifetime Extension PBU without the GRE Key option for a BCE using GRE keys and GRE encapsulation, and policy requires GRE, the LMA MUST reject the PBU with status GRE_KEY_OPTION_REQUIRED; otherwise the LMA SHOULD accept and MUST respond without the GRE Key option.

routing, ip

normative-requirement §4.2 MUST

If the MAG includes the GRE Key option in a PBU but receives a successful PBA without the GRE Key option (and status is not GRE_KEY_OPTION_NOT_REQUIRED), the MAG MUST consider that the LMA does not support the GRE Key option and SHOULD NOT include it in subsequent PBUs to that LMA.

routing, ip

normative-requirement §4.2 MUST

If the MAG receives status GRE_KEY_OPTION_NOT_REQUIRED in a successful PBA, the MAG MUST consider GRE encapsulation and GRE keys not required for the session and MUST NOT include the GRE Key option in any subsequent PBU for that mobility session.

routing, ip

normative-requirement §5.2 MUST

On receiving a tunneled packet with a GRE header, the LMA MUST use the GRE key in the GRE extension header as an additional identifier to determine the mobility session; the GRE header is removed before further processing.

routing, ip

normative-requirement §3.3.2 MUST

The LMA MUST maintain the same negotiated uplink GRE key for the lifetime of the mobility session, though it MAY change the key for administrative reasons such as LMA reboot, accepting that some packet loss may result.

routing, ip

normative-requirement §7.2 MUST NOT

The LMA MUST NOT set the TLV-header format (T) flag in the Proxy Binding Acknowledgement unless that flag was set in the Proxy Binding Update received from the MAG, in order to avoid interoperability issues during handoff renegotiation.

routing, ip

normative-requirement §3.2 MUST

To request GRE encapsulation mode without key exchange, the MAG MUST include the GRE Key option but omit the GRE Key Identifier field in the Proxy Binding Update; the LMA responds with the GRE Key option also omitting the GRE Key Identifier.

routing, ip

normative-requirement §7.1 MUST

When processing a UDP packet with TLV-header format, if the payload packet length calculated from the UDP header length field differs from the length calculated from the TLV-header length field, the receiving node MUST discard the received IP packet.

routing, ip, udp

normative-requirement §3.3.1 MUST

When the MAG determines GRE encapsulation and GRE key exchange are required, the MAG MUST include the GRE Key option in the initial Proxy Binding Update, carrying the downlink GRE key in the GRE Key Identifier field.

routing, ip

normative-requirement §7.1 MUST

When UDP-based tunneling is used in conjunction with GRE encapsulation between the MAG and LMA, the TLV-header UDP tunneling format MUST be used, with header order: IPv4, UDP, TLV, GRE, payload.

routing, ip, udp

protocol-element §6.3

A new TLV-header format (T) flag is added to the Proxy Binding Acknowledgement message. When set by the LMA, it indicates the LMA supports tunneling IPv6-or-IPv4 in IPv4 using the TLV-header UDP format.

routing, ip

protocol-element §5.1

The LMA's Binding Cache Entry is extended with four new fields: a GRE-encapsulation-enabled flag, the downlink GRE key (assigned by MAG), the uplink GRE key (assigned by LMA), and a flag indicating whether UDP-based TLV-header format is enabled.

routing, ip

protocol-element §4.1

The MAG's conceptual Binding Update List entry is extended with four new fields: a GRE-encapsulation-enabled flag, the downlink GRE key (generated by MAG), the uplink GRE key (received from LMA), and a flag indicating whether UDP-based TLV-header format is enabled.

routing, ip

registry §8

A new mobility option, the GRE Key option (Type=33), is allocated from the Mobility Header mobility options numbering space established by RFC 3775 (Mobile IPv6).

registry, routing, ip

registry §6.4

Three new Binding Acknowledgement status codes are allocated from the Mobile IPv6 Parameters 'Status Codes' registry: GRE_KEY_OPTION_NOT_REQUIRED (2), GRE_TUNNELING_BUT_TLV_HEADER_NOT_SUPPORTED (3), and GRE_KEY_OPTION_REQUIRED (163).

registry, routing, ip

security-consideration §9

The GRE Key option in PBU/PBA messages reveals the group affiliation of a mobile node identified by its NAI or IP address, potentially enabling an attacker to target flows belonging to a specific group. Confidentiality protection on PBU/PBA messages or on all tunneled data packets is recommended to prevent this.

security, routing, ip

security-consideration §9

When GRE encapsulation is used, both IPsec tunnel mode and transport mode can protect the GRE header using the GRE protocol number as traffic selector; however, there is currently no mechanism to use the GRE key itself as an IPsec traffic selector.

security, ipsec, routing, ip

wire-format §6.1

The GRE Key option (Type=33) has an 8-bit Type field, an 8-bit Length field, a 16-bit Reserved field (must be zero), and an optional 32-bit GRE Key Identifier field. Length=2 indicates no GRE Key Identifier is present (mode-only); Length=6 indicates a downlink or uplink GRE key is carried.

routing, ip

wire-format §7.2

The TLV header used for UDP-based tunneling with GRE consists of a 4-bit Type field (always 0), a 4-bit Reserved field, an 8-bit Next Header field (IANA protocol number of following header), and a 16-bit Length field indicating the payload length excluding the TLV header itself.

routing, ip