RFC 6745
ICMP Locator Update Message for the Identifier-Locator Network Protocol for IPv4 (ILNPv4)
RFC 6745: ICMP Locator Update Message for the Identifier-Locator Network Protocol for IPv4 (ILNPv4) ๐ฆ
- Stream: Internet Research Task Force (IRTF) ๐ธ
- Category: Experimental, so it's an Experimental Protocol ๐งช
- Date: November 2012
- Authors: RJ Atkinson (Consultant) and SN Bhatti (U. St Andrews) ๐
- ISSN: 2070-1721
- Obsoletes / Updates: the title block doesn't list anything it obsoletes or updates ๐คทโโ๏ธ
Abstract
okay so this note defines an experimental ICMP message type for IPv4 that gets used with the Identifier-Locator Network Protocol (ILNP) โจ ILNP is an experimental, evolutionary glow-up for IP. The ICMP message in here is used to dynamically update Identifier/Locator bindings for an existing ILNP session ๐ฅ And it's a product of the IRTF Routing Research Group.
Status of This Memo
bestie, this one is not an Internet Standards Track specification ๐ It's published for examination, experimental implementation, and evaluation.
This document defines an Experimental Protocol for the Internet community. It's a product of the Internet Research Task Force (IRTF), which publishes the results of Internet-related research and development activities. Those results might not be suitable for deployment ๐ This RFC represents the individual opinion(s) of one or more members of the Routing Research Group of the IRTF. Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741.
For info about the current status of this document, any errata, and how to give feedback on it, check out http://www.rfc-editor.org/info/rfc6745 ๐ฆ
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.
This document may not be modified, and derivative works of it may not be created, except to format it for publication as an RFC or to translate it into languages other than English. ๐ซถ
Table of Contents
1. Introduction ....................................................2
1.1. Document Roadmap ...........................................3
1.2. ICMPv4 Locator Update ......................................4
1.3. Terminology ................................................5
2. ICMP Locator Update Message for ILNPv4 ..........................5
3. Transport Protocol Effects ......................................8
4. Implementation Considerations ...................................8
5. Backwards Compatibility .........................................9
6. Security Considerations .........................................9
7. IANA Considerations ............................................10
8. References .....................................................10
8.1. Normative References ......................................10
8.2. Informative References ....................................11
9. Acknowledgements ...............................................11
1. Introduction โจ
okay so this document is part of the ILNP document set, and that set got a LOT of review inside the IRTF Routing RG ๐ง ILNP is one of the recommendations the RG Chairs made. On top of that, various refereed research papers on ILNP were published during this decade, so the ideas in here have been looked at way beyond the Routing RG ๐ The views in this document were considered controversial by the Routing RG, but the RG still reached a consensus that it should be published. Honestly the Routing RG has had remarkably little consensus on anything, so basically all Routing RG outputs are considered controversial ๐
Right now, the Internet research and development community is exploring different ways to evolve the Internet Architecture, to tackle a bunch of problems including (but not limited to) scalability of inter-domain routing [RFC4984] ๐ Other issues are also big concerns right now, like site multihoming, node multihoming, site/subnet mobility, and node mobility. There are several classes of evolution being considered. One is often called "Map and Encapsulate", where traffic would be mapped and then tunnelled through the inter-domain core of the Internet. Another class is sometimes known as "Identifier/Locator Split". This document is about a proposal in that second class of evolutionary approaches ๐ฆ
ILNP is a proposal for evolving the Internet Architecture. Its main difference from the current architecture is that it deprecates the concept of an IP Address and instead defines two new objects, each with crisp syntax and semantics ๐ The first new object is the Locator, a topology-dependent name for a subnetwork. The second is the Identifier, which is a topology-independent name for a node.
1.1. Document Roadmap ๐บ๏ธ
This document describes a new ICMPv4 Locator Update message that an ILNP node uses to tell its correspondent nodes about any changes to its set of valid Locators.
The ILNP architecture can have more than one engineering instantiation. For example, you could imagine a "clean-slate" engineering design based on the ILNP architecture ๐ง Separately, there are two specific engineering instances of ILNP described in other documents. The term "ILNPv6" refers precisely to an instance of ILNP that is based upon, and is backwards compatible with, IPv6. The term "ILNPv4" refers precisely to an instance of ILNP that is based upon, and backwards compatible with, IPv4.
Lots of engineering aspects are shared by both ILNPv4 and ILNPv6, and those are described in [RFC6741]. A full engineering specification for either ILNPv6 or ILNPv4 is beyond the scope of this document ๐
For details this document doesn't cover, go check out these related ILNP docs:
a) [RFC6740] is the main architectural description of ILNP, including the concept of operations. ๐
b) [RFC6741] describes engineering and implementation considerations that are common to both ILNPv4 and ILNPv6.
c) [RFC6742] defines additional DNS resource records that support ILNP.
d) [RFC6743] defines a new ICMPv6 Locator Update message used by an ILNP node to inform its correspondent nodes of any changes to its set of valid Locators.
e) [RFC6744] defines a new IPv6 Nonce Destination Option used by ILNPv6 nodes (1) to indicate to ILNP correspondent nodes (by inclusion within the initial packets of an ILNP session) that the node is operating in the ILNP mode and (2) to prevent off-path attacks against ILNP ICMP messages. This Nonce is used, for example, with all ILNP ICMPv6 Locator Update messages that are exchanged among ILNP correspondent nodes. ๐
f) [RFC6746] defines a new IPv4 Nonce Option used by ILNPv4 nodes to carry a security nonce to prevent off-path attacks against ILNP ICMP messages, and it also defines a new IPv4 Identifier Option used by ILNPv4 nodes. ๐ซฃ
g) [RFC6747] describes extensions to Address Resolution Protocol (ARP) for use with ILNPv4. ๐งต
h) [RFC6748] describes optional engineering and deployment functions for ILNP. These are not required for the operation or use of ILNP and are provided as additional options. ๐
1.2. ICMPv4 Locator Update ๐จ
As described in [RFC6740] and [RFC6741], an ILNP for IPv4 (ILNPv4) node might need to tell its correspondent ILNPv4 nodes about changes to the set of valid Locator values ๐ The new ICMPv4 Locator Update message described in this document lets an ILNP-capable node update its correspondents about the currently valid set of Locators they can use to reach the node sending this message [RFC2460] [RFC4443].
This new ICMPv4 message MUST ONLY be used for ILNPv4 sessions. Authentication is always required, as described in the Security Considerations section later in this document ๐
Some people might think any and all use of ICMP is undesirable ๐
If that's you, please note that while this specification uses ICMP (because it's a control message), there's no architectural difference between using ICMP and using some different framing, for example UDP โจ
1.3. Terminology ๐
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 [RFC2119]. ๐ซถ
(part 1 of 3, more coming bestie ๐)
2. ICMP Locator Update Message for ILNPv4 ๐ฆ
okay so this ICMP for IPv4 message uses ICMP Type 253 (the value set aside for experimental use in Section 8 of [RFC4727]) and it's used ONLY with a current ILNPv4 session ๐ . Its whole job is letting an ILNPv4 node tell its unicast ILNP correspondent nodes about changes to its active Locator set. The correspondents can then send back an acknowledgement saying they got it ๐ซถ.
This ICMP for IPv4 message MUST ONLY be used with ILNPv4 sessions. The Checksum field is calculated exactly the same way as for any other IPv4 ICMP message ๐.
ICMP Locator Update message
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 | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Num of Locs | Operation | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ Locator [1] /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preference [1] | Lifetime [1] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ Locator [2] /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preference [2] | Lifetime [2] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Here's the field-by-field breakdown ๐ง:
ICMP Fields:
Type 253
This type value is taken from Section 8
of [RFC4727] and is allocated for
experimental use.
Code 0
Checksum The 16-bit one's complement of the
one's complement sum of the ICMP
message, starting with the ICMP Type.
For computing the checksum, the
Checksum field is set to 0.
Num of Locs The number of 32-bit Locator values
that are advertised in this message.
Locator[i], The 32-bit Locator values currently
i = 1..Num of Locs valid for the sending ILNPv4 node.
Preference[i], The preferability of each Locator[i],
i = 1..Num of Locs relative to other valid Locator[i]
values. The Preference numbers here
are identical, both in syntax and
semantics, to the Preference values
for L32 records that are specified by
[RFC6742].
Lifetime[i] The maximum number of seconds that this
i = 1..Num of Locs particular Locator may be considered
valid. Normally, this is identical
to the DNS lifetime of the
corresponding L32 record, if one
exists.
Operation The value in this field indicates
whether this is a Locator Update
Advertisement (0x01) or a Locator
Update Acknowledgement (0x02).
RESERVED A field reserved for possible future
use. At present, the sender MUST
initialise this field to zero.
Receivers should ignore this field at
present. The field might be used for
some protocol function in future.
โ ๏ธ NOTE WELL, bestie: the ICMP Type value is allocated for shared experimental use in Section 8 of [RFC4727]. It is NOT uniquely assigned to ILNPv4. So implementations need to code particularly defensively, because other IPv4 experiments might be using this same ICMP Type value for a totally different purpose with a different ICMP packet format ๐.
The Operation field has value 1 (hexadecimal 0x01) for a Locator Update Advertisement ๐ฃ. It has value 2 (hexadecimal 0x02) for a Locator Update Acknowledgement ๐. All other values of the Operation field are reserved for future use by future revisions of this specification ๐.
A node whose set of valid Locators has changed MUST send Locator Update Advertisement messages to each correspondent node for each active unicast ILNP session ๐. For unicast ILNP sessions, the receiver of a valid Locator Update Advertisement MUST send a Locator Update Acknowledgement back to the sender. "Valid" here means the authentication checks all passed and the advertisement came from a current correspondent node, and the advertisement has to be addressed to the receiver ๐. The Acknowledgement message body is identical to the received Advertisement message body, except for the Operation value ๐ช.
All ILNPv4 ICMP Locator Update messages MUST contain a valid ILNPv4 Identifier Option and MUST contain an ILNPv4 Nonce Option โจ.
ILNPv4 ICMP Locator Update messages also MAY be protected using IP Security for ILNP [RFC6741] [RFC4301] ๐ก๏ธ. Deployments in high-threat environments SHOULD also protect ILNPv4 ICMP Locator Update messages using IPsec ๐จ. While IPsec Encapsulating Security Payload (ESP) can protect a payload, no form of IPsec ESP is able to protect an IPv4 Option that appears prior to the ESP header ๐. Note that even when IP Security for ILNP is in use, the ILNPv4 Nonce Option still MUST be present. This keeps protocol processing simple, and it also means a receiver can do the inexpensive check of the Nonce value before doing any (potentially expensive) cryptographic calculation ๐งฎ.
3. Transport Protocol Effects ๐
The ICMP Locator Update message has no impact on any transport protocol ๐.
The ICMP Locator Update message might affect where packets for a given transport-layer session are sent ๐. But an ILNP design objective is to decouple transport protocols (e.g., TCP, UDP, SCTP) and transport-layer sessions from network-layer changes ๐ฆ.
4. Implementation Considerations ๐ ๏ธ
Implementers may use any internal implementation they wish, provided that the external appearance is the same as this implementation approach ๐ .
To support ILNPv4, and to keep the incremental deployability and backwards compatibility that's needed, the network layer needs a mode bit in the Transport Control Block (or its equivalent) ๐. That mode bit tracks which IP sessions are using the classic IPv4 mode and which are using ILNPv4 mode ๐.
Further, when supporting ILNPv4, nodes will need to support an Identifier Locator Communication Cache (ILCC) in the network layer, as described in [RFC6741] ๐๏ธ.
A node sending an ICMP Locator Update message MUST include all currently valid Locator values in that message ๐ฆ. A node receiving a valid ICMP Locator Update message MUST replace the previously current set of Locator values for that correspondent node in its own ILCC with the newly received set ๐.
Every implementation needs to support a large number of Locator values being sent or received in a single ICMP Locator Update message ๐. That's because a multihomed node or multihomed site might have a large number of upstream links to different service providers, each with its own Locator value ๐คฏ.
It should be noted that as the ICMP Type uses an experimental value from [RFC4727], care should be taken when using it with other protocols that also use experimental values โ ๏ธ.
5. Backwards Compatibility ๐
This IPv4 ICMP message uses the same checksum calculations as any other IPv4 ICMP message โ .
When ILNPv4 is not in use, the receiving IPv4 mode MUST discard the ICMP Locator Update packet without processing it ๐๏ธ.
6. Security Considerations ๐
Security considerations for the overall ILNP Architecture are described in [RFC6740] ๐๏ธ. Additional common security considerations are described in [RFC6741]. This section describes security considerations specific to the ILNPv4 topics discussed in this document ๐.
The ICMPv4 Locator Update message MUST ONLY be used for ILNPv4 sessions ๐ซ.
The ILNPv4 Nonce Option [RFC6746] MUST be present in packets containing an ICMPv4 Locator Update message ๐๏ธ. Further, the received Nonce Destination Option must contain the correct nonce value for the packet to be accepted by the recipient and then passed to the ICMPv4 protocol for processing ๐. If either of these requirements are not met, the received packet MUST be discarded as a forgery, and a security event SHOULD be logged by the system receiving the non-authentic packet ๐จ๐ญ.
ILNP sessions operating in higher risk environments SHOULD use IP Security for ILNP [RFC6741] [RFC4301] in addition to the ILNPv4 Nonce Option ๐ก๏ธโจ. Use of IP Security for ILNP to protect a packet does NOT permit the packet to be sent without the Nonce Option ๐ โโ๏ธ.
Implementations need to support the case where a single ICMP Locator Update message contains a large number of Locator and Preference values. They ought not develop a security fault (e.g., stack overflow) due to a received message containing more Locator values than expected ๐.
If the ILNP Nonce value is predictable, then an off-path attacker might be able to forge data or control packets ๐ป. This risk is also mitigated by the existing common practice of IP Source Address filtering [RFC2827] [RFC3704] ๐งฑ.
7. IANA Considerations ๐
This document makes no request of IANA ๐ .
If in the future the IETF decided to standardise ILNPv4, then allocating a unique ICMP Type for the Locator Update as part of the IETF standardisation process would be sensible ๐ฎ.
8. References ๐
8.1. Normative References ๐
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998.
[RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet
Control Message Protocol (ICMPv6) for the Internet
Protocol Version 6 (IPv6) Specification", RFC 4443, March
2006.
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the
Internet Protocol", RFC 4301, December 2005.
[RFC4727] Murphy, S., "BGP Security Vulnerabilities Analysis", RFC
4272, January 2006.
[RFC6740] Atkinson, R. and S. Bhatti, "Identifier-Locator Network
Protocol (ILNP) Architectural Description", RFC 6740,
November 2012.
[RFC6747] Atkinson, R. and S. Bhatti, "Address Resolution Protocol
(ARP) Extension for the Identifier-Locator Network
Protocol for IPv4 (ILNPv4)", RFC 6747, November 2012.
[RFC6741] Atkinson, R. and S. Bhatti, "Identifier-Locator Network
Protocol (ILNP) Engineering and Implementation
Considerations", RFC 6741, November 2012.
[RFC6746] Atkinson, R. and S.Bhatti, "IPv4 Options for the
Identifier-Locator Network Protocol (ILNP)", RFC 6746,
November 2012.
8.2. Informative References
okay bestie, here are the informative refs ๐๐ฆ these ones are the background reading that backs up the whole ILNP vibe, so they're worth a peek ๐ค
- [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing", BCP 38, RFC 2827, May 2000.
- [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed Networks", BCP 84, RFC 3704, March 2004.
- [RFC4984] Meyer, D., Ed., Zhang, L., Ed., and K. Fall, Ed., "Report from the IAB Workshop on Routing and Addressing", RFC 4984, September 2007.
- [RFC6742] Atkinson, R., Bhatti, S. and S. Rose, "DNS Resource Records for the Identifier-Locator Network Protocol (ILNP)", RFC 6742, November 2012.
- [RFC6748] Atkinson, R. and S. Bhatti, "Optional Advanced Deployment Scenarios for the Identifier-Locator Network Protocol (ILNP)", RFC 6748, November 2012.
- [RFC6743] Atkinson, R. and S. Bhatti, "ICMPv6 Locator Update Message", RFC 6743, November 2012.
- [RFC6744] Atkinson, R. and S. Bhatti, "IPv6 Nonce Destination Option for the Identifier-Locator Network Protocol for IPv6 (ILNPv6)", RFC 6744, November 2012.
9. Acknowledgements ๐ซถ
huge thank you to everyone who gave review and feedback on earlier versions of this doc ๐ the list is in alphabetical order, so no drama ๐ : Steve Blake, Stephane Bortzmeyer, Mohamed Boucadair, Noel Chiappa, Wes George, Steve Hailes, Joel Halpern, Mark Handley, Volker Hilt, Paul Jakma, Dae-Young Kim, Tony Li, Yakov Rehkter, Bruce Simpson, Robin Whittle, and John Wroclawski ๐ธ
Steve Blake gave an especially thorough review of an early version of the entire ILNP document set, and it was extremely helpful ๐ The authors also want to thank the anonymous reviewers of the various ILNP papers for their feedback ๐
Roy Arends provided expert guidance on the technical and procedural sides of DNS issues โจ
Authors' Addresses
RJ Atkinson
Consultant
San Jose, CA 95125
USA
EMail: rja.lists@gmail.com
SN Bhatti
School of Computer Science
University of St Andrews
North Haugh, St Andrews
Fife KY16 9SX
Scotland, UK
EMail: saleem@cs.st-andrews.ac.uk
That's the whole thing, bestie! ๐๐ Thanks for reading all three parts with me ๐ฆ๐
๐ฆ where this page comes from
- ietf: rfc6745 2012-11
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms