1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
|
Internet Engineering Task Force (IETF) A. Keranen
Request for Comments: 7086 G. Camarillo
Category: Experimental J. Maenpaa
ISSN: 2070-1721 Ericsson
January 2014
Host Identity Protocol-Based Overlay Networking Environment (HIP BONE)
Instance Specification for REsource LOcation And Discovery (RELOAD)
Abstract
This document is the HIP-Based Overlay Networking Environment (HIP
BONE) instance specification for the REsource LOcation And Discovery
(RELOAD) protocol. The document provides the details needed to build
a RELOAD-based overlay that uses HIP.
Status of This Memo
This document is not an Internet Standards Track specification; it is
published for examination, experimental implementation, and
evaluation.
This document defines an Experimental Protocol for the Internet
community. This document is a product of the Internet Engineering
Task Force (IETF). It represents the consensus of the IETF
community. It has received public review and has been approved for
publication by the Internet Engineering Steering Group (IESG). Not
all documents approved by the IESG are a candidate for any level of
Internet Standard; see Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc7086.
Keranen, et al. Experimental [Page 1]
^L
RFC 7086 HIP BONE Instance Spec for RELOAD January 2014
Copyright Notice
Copyright (c) 2014 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. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Peer Protocol . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Node ID Generation . . . . . . . . . . . . . . . . . . . . . 3
5. Mapping between Protocol Primitives and HIP Messages . . . . 3
5.1. Forwarding Header . . . . . . . . . . . . . . . . . . . . 4
5.2. Security Block . . . . . . . . . . . . . . . . . . . . . 4
5.3. Replaced RELOAD Messages . . . . . . . . . . . . . . . . 5
6. Securing Communication . . . . . . . . . . . . . . . . . . . 5
7. Routing HIP Messages via the Overlay . . . . . . . . . . . . 5
8. Enrollment and Bootstrapping . . . . . . . . . . . . . . . . 6
9. NAT Traversal . . . . . . . . . . . . . . . . . . . . . . . . 7
10. RELOAD Overlay Configuration Document Extension . . . . . . . 7
11. Security Considerations . . . . . . . . . . . . . . . . . . . 8
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
14.1. Normative References . . . . . . . . . . . . . . . . . . 8
14.2. Informative References . . . . . . . . . . . . . . . . . 9
1. Introduction
The HIP-Based Overlay Networking Environment (HIP BONE) specification
[RFC6079] provides a high-level framework for building HIP-based
[RFC5201] overlays. The HIP BONE framework does not address the
specification of the details on how to combine a particular peer
protocol with HIP to build an overlay. It leaves this up to
documents referred to as HIP BONE instance specifications. As
discussed in [RFC6079], a HIP BONE instance specification needs to
define, minimally:
Keranen, et al. Experimental [Page 2]
^L
RFC 7086 HIP BONE Instance Spec for RELOAD January 2014
o the peer protocol to be used.
o what kind of Node IDs are used and how they are derived.
o which peer protocol primitives trigger HIP messages.
o how the overlay identifier is generated.
This document addresses all the previous items and provides
additional details needed to build RELOAD-based HIP BONEs, referred
to here as RELOAD HIP BONEs. The details on how different RELOAD
modules would be integrated to a HIP implementation and what kind of
APIs are used between them are left as implementation details or to
be defined by other documents.
2. 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]. In
addition, this document uses the terms defined in [RFC5201],
[RFC6079], [RFC6028], and [RFC6940].
3. Peer Protocol
The peer protocol to be used is REsource LOcation And Discovery
(RELOAD) [RFC6940]. When used with RELOAD, HIP replaces the RELOAD's
Forwarding and Link Management Layer (described in Section 6.5 of
[RFC6940]).
4. Node ID Generation
This document specifies two modes for generating Node and Resource
IDs. Which mode is used in an actual overlay is defined by the
overlay configuration. Both of the modes are based on 16-byte ID
mode of RELOAD; hence, only 16-byte RELOAD Node and Resource IDs MUST
be used in a RELOAD HIP BONE.
HIP uses 128-bit Overlay Routable Cryptographic Hash Identifiers
(ORCHIDs) [RFC4843] as identifiers. In a RELOAD HIP BONE, a peer's
ORCHID can be used as a RELOAD Node ID (the "ORCHID" mode). In this
mode, all the RELOAD IDs, including Resource IDs, are prefixed with
the ORCHID prefix, and the lower 100 bits of the IDs defined by
RELOAD usage documents are used after the prefix.
Keranen, et al. Experimental [Page 3]
^L
RFC 7086 HIP BONE Instance Spec for RELOAD January 2014
In the other Node ID mode, namely "RELOAD", all 128 bits are
generated as defined in [RFC6940]. This results in a larger usable
address space than using the ORCHID mode, but the resulting Node IDs
cannot be used with legacy applications and APIs, as discussed in
Section 5.1 of [RFC6079].
5. Mapping between Protocol Primitives and HIP Messages
RELOAD HIP BONE replaces the RELOAD protocol primitives taking care
of connection establishment with the HIP base exchange, whereas the
rest of the RELOAD messages are conveyed within HIP messages. The
Forwarding and Link Management Layer functionality of RELOAD,
including all the NAT traversal functionality, is replaced by HIP,
existing extensions of HIP, and the extensions defined in this
document.
The standard RELOAD messages consist of three parts: the forwarding
header, the message contents, and the security block. When RELOAD
messages are sent in a RELOAD HIP BONE overlay, the RELOAD message
contents are used as such within HIP DATA [RFC6078] messages, but the
functionality of the forwarding header and security block are
replaced with the HIP header, HIP Destination and Via lists
[RFC6028], CERT [RFC6253], TRANSACTION_ID [RFC6078], and the
OVERLAY_ID and OVERLAY_TTL [RFC6079] parameters, as defined in the
following sections.
5.1. Forwarding Header
The RELOAD forwarding header is used for forwarding messages between
peers and to their final destination. The forwarding header's
overlay field value MUST be used as such in an OVERLAY_ID parameter
and the transaction_id field in a TRANSACTION_ID parameter. That is,
all RELOAD HIP BONE messages MUST contain these parameters; and, the
length of the OVERLAY_ID parameter's identifier field is 4, and the
length of the TRANSACTION_ID parameter is 8 octets. HIP Destination
and Via lists are used for the same purpose as the destination_list
and via_list in the forwarding header, with the exception that all
Resource IDs MUST be of the same length as Node IDs, and compressed
IDs MUST NOT be used. The Time to Live (TTL) value in the
OVERLAY_TTL parameter is used like the ttl field in the forwarding
header.
The functionality of the fragment and length fields are provided by
the HIP headers. The relo_token, version, and max_response_length
are not needed with HIP. The forwarding header's options field, if
needed eventually for some extensions, can be substituted with
additional HIP parameters.
Keranen, et al. Experimental [Page 4]
^L
RFC 7086 HIP BONE Instance Spec for RELOAD January 2014
5.2. Security Block
The RELOAD security block contains certificates and digital
signatures of the message. All the HIP DATA messages are digitally
signed by the originator of the message and contain the HOST_ID
parameter with the identifier that can be used for verifying the
signature. Certificates are delivered in a HIP CERT parameter as
defined in [RFC6253] or stored to the overlay using the RELOAD
Certificate Storage Usage.
Note that when the RELOAD mode for Node ID generation is used, the
certificate certifying that a host is allowed to use a certain Node
ID MUST contain the host's Node ID instead of the Host Identity Tag
(HIT) in the "subjectAltName" field of the certificate as described
in Section 11.3 of [RFC6940], while the "Subject" field contains the
HIT calculated from the Host Identity.
5.3. Replaced RELOAD Messages
The Attach procedure in RELOAD establishes a connection between two
peers. This procedure is performed using the AttachReq and AttachAns
messages. When HIP is used, the Attach procedure is performed by
using a HIP base exchange. That is, peers send HIP first Initiator
(I1) messages instead of RELOAD AttachReq messages. This behavior
replaces the one described in Section 6.5 of [RFC6940].
The AppAttach procedure in RELOAD is used for creating a connection
for other applications than RELOAD. Also, the AppAttach procedure is
replaced with the HIP base exchange, and after the base exchange,
peers can exchange any application layer data using the normal
transport layer ports over the NAT traversing IPsec connection.
This specification does not support flooding of configuration files,
so ConfigUpdate requests and responses (Section 6.5.4 of [RFC6940])
MUST NOT be sent in the overlay. RELOAD Ping messages (Section 6.5.3
of [RFC6940]) MAY be used.
For all other RELOAD messages, the message contents are used as such
within HIP DATA messages.
6. Securing Communication
RELOAD uses Transport Layer Security (TLS) [RFC5246] connections for
securing the hop-by-hop messaging and certificates and signatures for
providing integrity protection for the overlay messages and for the
data stored in the overlay.
Keranen, et al. Experimental [Page 5]
^L
RFC 7086 HIP BONE Instance Spec for RELOAD January 2014
With a RELOAD HIP BONE, instead of using TLS connections as defined
in [RFC6940], all HIP overlay messages MUST be sent using encrypted
connections [RFC6261].
The data objects stored in the RELOAD HIP BONE overlay are signed,
and the signatures are stored as defined in [RFC6940] with the
exception that SignerIdentity is carried in the HIP DATA message's
HOST_ID parameter instead of using the RELOAD security block. Where
certificates are needed, they are sent using the HIP CERT parameter.
7. Routing HIP Messages via the Overlay
If a host has no valid locator for the receiver of a new HIP packet,
and the receiver is part of a RELOAD HIP BONE overlay the host is
participating in, the host can send the HIP packet to the receiver
using the overlay routing.
When sending a HIP packet via the overlay, the host MUST add an empty
ROUTE_VIA parameter [RFC6028] to the packet with the SYMMETRIC and
MUST_FOLLOW flags set and an OVERLAY_ID parameter containing the
identifier of the right overlay network. The host consults the
RELOAD Topology Plugin for the next hop and sends the HIP packet to
that host.
An intermediate host receiving a HIP packet with the OVERLAY_ID
parameter checks if it is participating in that overlay and SHOULD
drop packets sent to unknown overlays. If the host is not the final
destination of the packet (i.e., the Receiver HIT in the HIP header
does not match to any of its HITs), it checks if the packet contains
a ROUTE_DST parameter. Such packets are forwarded to the next hop as
specified in [RFC6028]. If the packet does not contain a ROUTE_DST
parameter, the host finds the next hop from the RELOAD Topology
Plugin and forwards the packet there. As specified in [RFC6028], the
host adds the HIT it uses on the HIP association with the next-hop
host to the end of the ROUTE_VIA parameter, if present.
When the final destination host receives the HIP packet, the host
processes it as specified in [RFC5201]; and, if the packet is a HIP
DATA packet, the contents are processed as specified in [RFC6940].
If the HIP packet generates a response, the response is routed back
on the same path using the ROUTE_DST parameter as specified in
[RFC6028].
Keranen, et al. Experimental [Page 6]
^L
RFC 7086 HIP BONE Instance Spec for RELOAD January 2014
8. Enrollment and Bootstrapping
The RELOAD HIP BONE instance uses the enrollment and bootstrap
procedure defined by RELOAD [RFC6940] with the exceptions listed
below.
o In RELOAD, a node wishing to enroll in an overlay starts with
obtaining a configuration document as explained in [RFC6940].
This specification extends the RELOAD overlay configuration
document as defined in Section 10.
o The X.509 certificates used by the RELOAD HIP BONE instance are
similar to those of RELOAD except that they contain HITs instead
of RELOAD URIs. The HITs are included in the SubjectAltName field
of the certificate as described in [RFC6253].
o When contacting a bootstrap node, instead of forming a Datagram
Transport Layer Security (DTLS) or TLS connection, the host MUST
perform a HIP base exchange with the bootstrap node. The base
exchange MAY be performed using a HIP rendezvous or relay server.
9. NAT Traversal
RELOAD relies on the Forwarding and Link Management Layer providing
NAT traversal capabilities. Thus, the RELOAD HIP BONE instance
implementations MUST implement some reliable NAT traversal mechanism.
To maximize interoperability, all implementations SHOULD implement at
least [RFC5770].
HIP relay servers are not necessarily needed with this HIP BONE
instance since the overlay network can be used for relaying the base
exchange, and further HIP signaling can be done directly between the
peers. However, if it is possible that a bootstrap peer is behind a
NAT, it MUST register with a HIP relay so that there is a reliable
way to connect to it.
10. RELOAD Overlay Configuration Document Extension
This document modifies the bootstrap-node element of the RELOAD
overlay configuration document. The modified bootstrap-node element
contains the following attributes:
address: The locator of the bootstrap node.
port: The HIP port of the bootstrap node.
hit: The HIT of the bootstrap node.
Keranen, et al. Experimental [Page 7]
^L
RFC 7086 HIP BONE Instance Spec for RELOAD January 2014
If the bootstrap-node element does not contain a HIT, the
opportunistic mode (as specified in [RFC5201]) SHOULD be used for
contacting the bootstrap node. If the element does not contain a
port number, the bootstrap node SHOULD be contacted by starting the
base exchange as defined in [RFC5201]. Otherwise, the base exchange
MUST be started with UDP encapsulation, as defined in [RFC5770],
using the given port as the destination port number.
A RELOAD HIP BONE overlay MUST use the Overlay Link Protocol type
"HIP" in the configuration document's overlay-link-protocol element.
The enrolling node MUST check the overlay-link-protocol element and
proceed with procedures defined in this document only if the "HIP"
link type is found.
This document also adds a new element inside the configuration
element that defines which mode (see Section 4) is used for
generating the Node and Resource IDs. The name of the element is
"hipbone-id-mode" and the content is the identifier of the mode:
"ORCHID" for the ORCHID prefixed IDs and "RELOAD" for the IDs that
use the whole 128 bits as defined by the RELOAD specification. The
NodeIdLength MUST be set to 16 in the configuration document, and the
16 bytes are used, depending on the generation mode, as defined in
Section 4.
11. Security Considerations
The security considerations of RELOAD (Section 13 of [RFC6940]), with
the exception of TLS-specific features, also apply to RELOAD HIP BONE
instances.
Limiting the Node ID and Resource ID space into 128 bits (or 100 bits
with ORCHID prefixes) results in a higher probability for ID
collisions, both unintentional and intentional, than using larger
address spaces.
12. IANA Considerations
This section is to be interpreted according to [RFC5226].
IANA has updated the "RELOAD Overlay Link Protocol Registry"
[RFC6940] by assigning the new Overlay Link Protocol type "HIP" (see
Section 10).
13. Acknowledgements
Tom Henderson, Spencer Dawkins, and Christer Holmberg have provided
valuable reviews and comments on the document.
Keranen, et al. Experimental [Page 8]
^L
RFC 7086 HIP BONE Instance Spec for RELOAD January 2014
14. References
14.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4843] Nikander, P., Laganier, J., and F. Dupont, "An IPv6 Prefix
for Overlay Routable Cryptographic Hash Identifiers
(ORCHID)", RFC 4843, April 2007.
[RFC5201] Moskowitz, R., Nikander, P., Jokela, P., and T. Henderson,
"Host Identity Protocol", RFC 5201, April 2008.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008.
[RFC5770] Komu, M., Henderson, T., Tschofenig, H., Melen, J., and A.
Keranen, "Basic Host Identity Protocol (HIP) Extensions
for Traversal of Network Address Translators", RFC 5770,
April 2010.
[RFC6028] Camarillo, G. and A. Keranen, "Host Identity Protocol
(HIP) Multi-Hop Routing Extension", RFC 6028, October
2010.
[RFC6078] Camarillo, G. and J. Melen, "Host Identity Protocol (HIP)
Immediate Carriage and Conveyance of Upper-Layer Protocol
Signaling (HICCUPS)", RFC 6078, January 2011.
[RFC6079] Camarillo, G., Nikander, P., Hautakorpi, J., Keranen, A.,
and A. Johnston, "HIP BONE: Host Identity Protocol (HIP)
Based Overlay Networking Environment (BONE)", RFC 6079,
January 2011.
[RFC6253] Heer, T. and S. Varjonen, "Host Identity Protocol
Certificates", RFC 6253, May 2011.
[RFC6261] Keranen, A., "Encrypted Signaling Transport Modes for the
Host Identity Protocol", RFC 6261, May 2011.
[RFC6940] Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and
H. Schulzrinne, "REsource LOcation And Discovery (RELOAD)
Base Protocol", January 2014.
Keranen, et al. Experimental [Page 9]
^L
RFC 7086 HIP BONE Instance Spec for RELOAD January 2014
14.2. Informative References
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, August 2008.
Authors' Addresses
Ari Keranen
Ericsson
Hirsalantie 11
02420 Jorvas
Finland
EMail: Ari.Keranen@ericsson.com
Gonzalo Camarillo
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
EMail: Gonzalo.Camarillo@ericsson.com
Jouni Maenpaa
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
EMail: Jouni.Maenpaa@ericsson.com
Keranen, et al. Experimental [Page 10]
^L
|