idnits 2.17.1 draft-templin-6man-rio-redirect-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == The 'Updates: ' line in the draft header should list only the _numbers_ of the RFCs which will be updated by this document (if approved); it should not include the word 'RFC' in the list. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 30, 2017) is 2370 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC0791' is defined on line 694, but no explicit reference was found in the text == Unused Reference: 'RFC2460' is defined on line 703, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2460 (Obsoleted by RFC 8200) == Outdated reference: A later version (-27) exists of draft-templin-v6ops-pdhost-15 -- Obsolete informational reference (is this intentional?): RFC 3633 (Obsoleted by RFC 8415) Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group F. Templin, Ed. 3 Internet-Draft Boeing Research & Technology 4 Updates: rfc4191 (if approved) J. Woodyatt 5 Intended status: Standards Track Google 6 Expires: May 3, 2018 October 30, 2017 8 Route Information Options in IPv6 Neighbor Discovery 9 draft-templin-6man-rio-redirect-05.txt 11 Abstract 13 The IPv6 Neighbor Discovery (ND) protocol allows nodes to discover 14 neighbors on the same link. Router Advertisement (RA) messages can 15 also convey routing information by including a non-zero (default) 16 Router Lifetime, and/or Route Information Options (RIOs). This 17 document specifies backward-compatible extensions that permit nodes 18 to include RIOs in other IPv6 ND messages to support the discovery of 19 more-specific routes. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on May 3, 2018. 38 Copyright Notice 40 Copyright (c) 2017 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (https://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 57 3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 3 58 4. Route Information Options (RIOs) in IPv6 Neighbor Discovery 59 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . 5 60 4.1. RIO Update . . . . . . . . . . . . . . . . . . . . . . . 5 61 4.2. RIO Requirements . . . . . . . . . . . . . . . . . . . . 7 62 4.3. Classic Redirection Scenario . . . . . . . . . . . . . . 7 63 4.4. RIO Redirection Scenario . . . . . . . . . . . . . . . . 9 64 4.4.1. Router Specification . . . . . . . . . . . . . . . . 9 65 4.4.2. Source Specification . . . . . . . . . . . . . . . . 10 66 4.4.3. Target Specification . . . . . . . . . . . . . . . . 11 67 4.5. Operation Without Redirects . . . . . . . . . . . . . . . 11 68 4.6. Multiple RIOs . . . . . . . . . . . . . . . . . . . . . . 12 69 4.7. Multicast . . . . . . . . . . . . . . . . . . . . . . . . 12 70 4.8. Why NS/NA? . . . . . . . . . . . . . . . . . . . . . . . 12 71 5. Implementation Status . . . . . . . . . . . . . . . . . . . . 13 72 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 73 7. Security Considerations . . . . . . . . . . . . . . . . . . . 14 74 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 75 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 76 9.1. Normative References . . . . . . . . . . . . . . . . . . 15 77 9.2. Informative References . . . . . . . . . . . . . . . . . 16 78 Appendix A. Link-layer Address Changes . . . . . . . . . . . . . 17 79 Appendix B. Interfaces with Multiple Link-Layer Addresses . . . 17 80 Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 17 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 83 1. Introduction 85 "Neighbor Discovery for IP version 6 (IPv6)" [RFC4861] (IPv6 ND) 86 provides a Router Solicitation (RS) function allowing nodes to 87 solicit a Router Advertisement (RA) response from an on-link router, 88 a Neighbor Solicitation (NS) function allowing nodes to solicit a 89 Neighbor Advertisement (NA) response from an on-link neighbor, and a 90 Redirect function allowing routers to inform nodes of a better next 91 hop neighbor on the link toward the destination. Further guidance 92 for processing Redirect messages is given in "First-Hop Router 93 Selection by Hosts in a Multi-Prefix Network" [RFC8028]. 95 "Default Router Preferences and More-Specific Routes" [RFC4191] 96 specifies a Route Information Option (RIO) that routers can include 97 in RA messages to inform recipients of more-specific routes (section 98 1 of that document provides rationale for the use of RA messages 99 instead of an adjunct routing protocol). This document specifies a 100 backward-compatible and incrementally-deployable extension to allow 101 nodes to include RIOs in other IPv6 ND messages to support the 102 dynamic discovery of more-specific routes. This allows nodes to 103 discover a better neighbor for more-specific routes to both increase 104 performance and reduce the workload on default routers. 106 This approach applies to any link type on which there may be many 107 nodes that provision delegated prefixes on their downstream 108 interfaces and do not provide transit services between upstream 109 networks. These nodes can either be routers that forward packets on 110 behalf of their downstream networks, or hosts that use a delegated 111 prefix for their own multi-addressing purposes 112 [I-D.templin-v6ops-pdhost][RFC7934]. 114 This work benefits from the experience of [RFC6706] - an experimental 115 protocol that uses UDP-based "pseudo-ND" messages instead of actual 116 ICMPv6 message codes. That experience has shown that using 117 synthesized UDP messages in addition to the IPv6 ND messaging already 118 present on the link is inefficient. Furthermore, the UDP approach is 119 neither backward-compatible nor incrementally-deployable, since 120 sending UDP messages blindly to a node that does not have the port 121 open could be mis-interpreted as a port scan attack. This 122 specification avoids these issues by using the already-present and 123 natural IPv6 ND messaging available on the link, as specified in this 124 document. 126 2. Terminology 128 The terminology in the normative references applies. 130 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 131 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 132 document are to be interpreted as described in [RFC2119]. Lower case 133 uses of these words are not to be interpreted as carrying RFC2119 134 significance. 136 3. Motivation 138 An example of a good application for RIO is the local-area subnets 139 served by the routers described in "Basic Requirements for IPv6 140 Customer Edge Routers" [RFC7084]. While many customer edge routers 141 are capable of operating in a mode with a dynamic routing protocol 142 operating in the local-area network, the default mode of operation is 143 typically designed for unmanaged operation without any dynamic 144 routing protocol. On these networks, the only means for any node to 145 learn about routers on the link is by using the Router Discovery 146 protocol described in [RFC4861]. 148 Nevertheless, hosts on unmanaged home subnets may use "IPv6 Prefix 149 Options for DHCPv6" [RFC3633] (DHCPv6 PD) to receive IPv6 routing 150 prefixes for additional subnets allocated from the space provided by 151 the service provider, and operate as routers for other links where 152 hosts in delegated subnets are attached. Hosts may even learn about 153 more specific routes than the default route by processing RIOs in RA 154 messages as described in [RFC4191]. 156 However, due to perceptions of the security considerations for hosts 157 in processing RIOs on unmanaged networks, the default configuration 158 for common host IPv6 implementations is to ignore RIOs. Accordingly, 159 on typical home networks the forwarding path from hosts on one subnet 160 to destinations on every off-link local subnet always passes through 161 the customer edge router, even when a shorter path would otherwise be 162 available through an on-link router. This adds costs for 163 retransmission on shared LAN media, often adding latency and jitter 164 with queuing delay and delay variability. This is not materially 165 different under the scenarios described in "IPv6 Home Networking 166 Architecture Principles" [RFC7368] except that routers may use an 167 interior dynamic routing protocol to coordinate sending of RIOs in RA 168 messages, which as explained above, are not processed by typical 169 hosts. 171 In increasingly common practice, a node that receives a prefix 172 delegation can use the prefix for its own multi-addressing purposes 173 or can connect an entourage of "Internet of Things (IoT)" back end 174 devices (an approach sometimes known as "tethering" [RFC7934]). On 175 many link types, the number of such nodes may be quite large which 176 would make running a dynamic routing protocol between the nodes 177 impractical. Example use cases include: 179 o IETF conference, airport, and hotel WiFi networks, where large 180 numbers of nodes on the link could receive IPv6 prefix 181 delegations. Using the extensions described in this document, the 182 nodes could dynamically discover more-specific routes to enable 183 direct neighbor-to-neighbor communications. 185 o Mobile enterprise devices that connect into a corporate network 186 via VPN links. Using the extensions described in this document, 187 mobile devices could dynamically establish pair-wise VPN links 188 between themselves without having to use the enterprise network as 189 transit. 191 o Civil aviation networks where an aircraft holds an IPv6 prefix 192 derived from the identification value assigned to it by the 193 International Civil Aviation Organization (ICAO). Using the 194 extensions described in this document, direct paths between the 195 aircraft and Air Traffic Control (ATC) can be established to 196 provide a more direct route for communications. 198 o Unmanned Air System (UAS) networks where each UAS receives an IPv6 199 prefix delegation for operation with in the Unmanned Air Traffic 200 Management (UTM) service under development within NASA and the 201 FAA. Using the extensions described in this document, very large 202 numbers of UAS can be accommodated by the UTM service for both 203 vehicle-to-infrastructure and vehicle-to-vehicle communications. 205 By using RIOs in IPv6 ND messages, the forwarding path between 206 subnets can be shortened while accepting a much narrower opening of 207 attack surfaces on general purpose hosts related to the Router 208 Discovery protocol. The basic idea is simple: hosts normally send 209 packets for off-link destinations to their default router unless they 210 receive ND Redirect messages designating another on-link node as the 211 target. This document allows ND Redirects additionally to suggest 212 another on-link node as the target for one or more routing prefixes, 213 including one with the destination. Hosts that receive RIOs in ND 214 Redirect messages then send NS messages to the target containing 215 those RIOs, and process the NA messages the target sends in reply. 216 If hosts only process RIOs in NA messages when they have previously 217 sent them in NS messages to the targets of received ND Redirect 218 messages, then hosts only process RIO at the initiative of routers 219 they already accept as authoritative. 221 4. Route Information Options (RIOs) in IPv6 Neighbor Discovery Messages 223 The RIO is specified for inclusion in RA messages in Section 2.3 of 224 [RFC4191], while the neighbor discovery functions are specified in 225 [RFC4861]. This specification permits routers to include RIOs in 226 other IPv6 ND messages so that recipients can discover a better next 227 hop for a destination *prefix* instead of just a specific destination 228 address. This specification therefore updates [RFC4191] as discussed 229 in the following sections. 231 4.1. RIO Update 233 The RIO format given in Section 2.3 of [RFC4191] is updated by this 234 specification as shown in Figure 1: 236 0 1 2 3 237 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 238 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 239 | Type | Length | Prefix Length |S|Res|Prf|Resvd| 240 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 241 | Route Lifetime | 242 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 243 | Prefix (Variable Length) | 244 . . 245 . . 246 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 247 | Attributes ... 248 +-+-+-+-+-+-+-+-+-+-+-+- 250 Figure 1: Updated RIO Format 252 This format introduces a new S flag and variable-length Attributes. 253 The fields of the main body of the RIO are set as follows: 255 o Type, Prefix Length, Prf, Route Lifetime and Prefix are set 256 exactly as specified in Section 2.3 of [RFC4191]. 258 o For RA messages, Length is set exactly as specified in Section 2.3 259 of [RFC4191] and no Attributes are included. For all other IPv6 260 ND messages, Length MUST be initialized to exactly 1 when Prefix 261 Length is 0, to exactly 2 when Prefix Length is between 1 and 64, 262 and to exactly 3 when Prefix Length is greater than 64. Length is 263 then incremented by the length of all included Attributes in units 264 of 8-octets (see below). 266 o S is set to '1' to "Solicit" route information or to '0' (i.e., 267 the default value) to "Assert" route information. 269 o Res and Resvd are reserved and MUST be set to '0'. 271 Attributes MAY be included as ancillary route information. Each 272 Attribute is formatted in the same manner as specified for IPv6 ND 273 options in Section 4.6 of [RFC4861] and as shown in Figure 2: 275 0 1 2 3 276 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 277 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 278 | Type | Length | ... | 279 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 280 ~ ... ~ 281 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 283 Figure 2: RIO Attribute Format 285 This document defines the NULL Attribute with Type '0'. Other 286 Attribute Types are assigned through IANA action. 288 When Type is '0', Length MUST be set to the total number of 8-octet 289 blocks in the Attribute, and the Attribute body MUST include a 290 corresponding number of '0' octets. For example, for Lengths of 1, 291 2, 3, etc., the Attribute body includes 6, 14, 22, etc. '0' octets, 292 respectively. 294 Receivers ignore any NULL, unknown or malformed Attributes and 295 continue to process any other Attributes in the RIO that follow. 297 4.2. RIO Requirements 299 This specification updates [RFC4191] by allowing RIOs to appear in 300 any IPv6 ND messages with the following requirements: 302 o Redirect, NA and RA messages MUST NOT include RIOs with the S flag 303 set to '1'; any RIOs received in Redirect, NA and RA messages with 304 S set to '1' MUST be silently ignored. 306 o NS and RS messages MAY include some RIOs with S set to '1' and 307 others with S set to '0'. 309 o NA/RA responses to RIOs in NS/RS messages with S set to '1' MUST 310 include RIOs with the solicited route information and with S set 311 to '0'. (If the route information solicited by the NS/RS message 312 is incorrect or unrecognized, however, the RIO MUST be silently 313 ignored.) 315 o Asserted route information in any RIOs received with S set to '0' 316 SHOULD be considered as "unconfirmed" until the assertion can be 317 verified. Assertion verification can be through a trust anchor 318 such as a trusted on-link router, through a static routing table, 319 or through some other means outside the scope of this document. 320 Any route information that cannot be verified SHOULD be ignored. 322 The following sections present the classic redirection scenario 323 illustrating an exchange where a trusted on-link router is used to 324 verify RIO assertions. Other IPv6 ND messaging scenarios that can 325 employ some other means of verifying RIO assertions are also 326 acceptable. 328 4.3. Classic Redirection Scenario 330 In the classical redirection scenario there are three actors, namely 331 the Source, Router and Target as shown in Figure 3: 333 +-------------------+ 334 | | 335 | Router | 336 | | 337 +---------+---------+ 338 | 339 | 340 X---------+----------------+---------------+---------X 341 | Link | 342 | | 343 +---------+---------+ +----------+--------+ 344 | | | | 345 | Source | | Target | 346 | | | | 347 +-------------------+ +---------+---------+ 348 | 349 2001:db8::/N 350 | 351 X-+----+--+-------+-X 352 | | | 353 +--+ +--+ +--+ 354 |H1| |H2| .... |Hn| 355 +--+ +--+ +--+ 357 Figure 3: Classical Redirection Scenario 359 In addition, the Target may be a router that connects an arbitrarily- 360 complex set of IPv6 networks (e.g., as depicted by 2001:db8::/N in 361 the figure) with hosts H(i). 363 In this scenario, the Source initially has no route for 2001:db8::/N 364 and must send initial packets destined to correspondents H(i) via a 365 first-hop Router. Upon receiving the packets, the Router forwards 366 the packets to the Target and may also send a Redirect message back 367 to the Source with the Destination Address field set to the 368 destination of the packet that triggered the Redirect, the Target 369 Address field set to the target link-local address and with a Target 370 Link Layer Address Option (TLLAO) that includes the target link-layer 371 address. After receiving the message, the Source may begin sending 372 packets destined to H(i) directly to the Target, which will then 373 forward them to its connected networks. 375 This specification augments the classical Redirection scenario by 376 allowing the Router to include entire prefixes (e.g., 2001:db8::/N) 377 in RIOs in the Redirect message, and thereafter allowing the Source 378 to include RIOs in an NS message and the Target to include RIOs in 379 its NA response. The following sections present this "augmented" RIO 380 redirection scenario. 382 4.4. RIO Redirection Scenario 384 In the RIO redirection scenario, the Source sends initial packets via 385 the Router the same as in the classical scenario. When the Router 386 receives the packets, it searches its routing tables for a route that 387 is assigned to the Target and that covers the destination address of 388 the packet. The Router then includes the route in an RIO in a 389 Redirect message to send back to the Source. The Router sets the S 390 flag in the RIO to '0' to indicate that a prefix is being asserted. 392 When the Source receives the Redirect message, it prepares an NS 393 message that includes the route information received in the RIO from 394 the Redirect message and with S set to '1 to indicate that route 395 information is being solicited. At the same time, if the Source 396 needs to assert any route information to the Target, it includes the 397 information in RIOs with S set to '0'. The Source then sends the NS 398 message to the Target. 400 When the Target receives the NS message, it records any route 401 information in RIOs with S set to '0' as unconfirmed route 402 information for the Source pending verification. At the same time, 403 it determines whether the route information included in any RIOs with 404 S set to '1' matches one of its own routes. If so, the Target 405 includes the route information in an RIO with S set to '0' to return 406 in an NA message reply to the Source. 408 When the Source receives the NA message it can install any RIO 409 information that matches the Redirect RIOs in its routing table. The 410 following sections present more detailed specifications for the 411 Router, Source and Target. 413 4.4.1. Router Specification 415 When the Router receives a packet from the Source it searches its 416 routing table for a prefix that covers the destination address (e.g., 417 2001:db8::/N as depicted in Figure 1), where prefix could be 418 populated in the routing table during DHCPv6 Prefix Delegation 419 [RFC3633], via manual configuration, etc. If the next hop for the 420 prefix is on-link (i.e., a "Target" in the terms of [RFC4861]), the 421 Router then prepares a Redirect message with the Destination Address 422 field set to the packet's IPv6 destination address, with the Target 423 Address field set to the link-local address of the Target, with a 424 TLLAO set to the link-layer address of the Target, and with an RIO 425 that includes route information for the prefix with Route Lifetime, 426 Prf, and S set to 0. The Router then sends the Redirect message to 427 the Source (subject to rate limiting). 429 4.4.2. Source Specification 431 According to [RFC4861], a Source that receives a valid Redirect 432 message updates its destination cache per the Destination Address and 433 its neighbor cache per the Target Address. According to [RFC4191], 434 Sources can be classified as Type "A", "B" or "C" based on how they 435 process RIOs, where a Type "C" Source updates its routing table per 436 any RIO elements included in an RA message. Finally, according to 437 [RFC8028], a Type "C" Source operating on a Multi-Prefix Network with 438 multiple default routes can make source address selection decisions 439 based on information in its routing table decorated with information 440 derived from the source of the RIO element. 442 In light of these considerations, this document introduces a new Type 443 "D" behavior for Sources with the same behavior as a Type "C" Source, 444 but which also process RIO elements in other IPv6 ND messages. Type 445 "D" Sources process Redirect messages with RIO elements by first 446 verifying that the Prefix in the first RIO matches the Destination 447 Address. If the Destination Address does not match the Prefix, the 448 Source discards the Redirect message. Otherwise, the Source updates 449 its neighbor cache per the Target Address and its destination cache 450 per the Destination Address the same as for classical redirection. 451 Next, the Source MAY send an NS message to the Target containing an 452 RIO with the Prefix and Prefix Length and with S set to '1' to elicit 453 an NA response (at the same time, the Source MAY include RIOs with S 454 set to '0' if it needs to assert any route information to the 455 Target). 457 When the Type 'D' Source receives the solicited NA message from the 458 Target, if the NA includes an RIO with S set to '0' and with a Prefix 459 corresponding to the one received in the Redirect message, the Source 460 installs the route information in its routing table with the Target's 461 address as the next hop. (Note that the Prefix Length received in 462 the NA message MAY be different than the Prefix Length received in 463 the Redirect message. If the Prefix Length in the NA is the same or 464 longer, the Source accepts the Prefix as verified by the Router; if 465 the Prefix Length is shorter, the Source considers the Prefix as 466 unconfirmed.) 468 After the Source installs the route information in its routing table, 469 it MAY begin sending packets with destination addresses that match 470 the Prefix directly to the Target Instead of sending them to the 471 Router. The Source SHOULD decrement the Route Lifetime and MAY send 472 new NS messages to receive a fresh Route Lifetime (if the Route 473 Lifetime decrements to 0, the Source instead deletes the route 474 information from its routing table). The Source MAY furthermore 475 delete the route information at any time and again allow packets to 476 flow through the Router which may send a fresh Redirect. The Source 477 SHOULD then again test the route by performing an NS/NA exchange with 478 the Target the same as described above. 480 After updating its routing table, the Source may receive an 481 unsolicited NA message from the Target with an RIO with new route 482 information. If the RIO Prefix is in its routing table, and if the 483 RIO Route Lifetime value is 0, the Source deletes the corresponding 484 route. 486 After updating its routing table, the Source may subsequently receive 487 a Destination Unreachable message from the Target with Code '0' ("No 488 route to destination"). If so, the Source again deletes the 489 corresponding route information from its routing table. 491 4.4.3. Target Specification 493 When the Target receives an NS message from the Source containing an 494 RIO with S set to '1', it examines the Prefix and Prefix Length to 495 see if it matches one of the prefixes in its routing table. If so, 496 the Target prepares an NA message with an RIO including a Prefix and 497 Prefix Length, any necessary route information, and with S set to 498 '0'. The Target then sends the NA message back to the Source. 500 If the NS included any RIO options with S set to '0', the Target 501 SHOULD employ a suitable means to verify the asserted route 502 information, and SHOULD reject any route information that cannot be 503 verified. 505 At some later time, the Target may either alter or deprecate one of 506 its routes. If the Target has asserted route information in RIOs to 507 one or more Sources, the Target SHOULD send unsolicited NA messages 508 with RIOs that assert new route information to alter the route, where 509 a new Route Lifetime value of '0' deprecates the route. If the 510 Target receives a packet with a destination addresses for which there 511 is no matching route for one of its downstream networks, the Target 512 sends a Destination Unreachable message to the Source with Code '0' 513 ("No route to destination"), subject to rate limiting. 515 4.5. Operation Without Redirects 517 If the Source has some way to determine the Target's link-local 518 address without receiving a Redirect message from the Router, the 519 Source MAY send an NS message with an RIO directly to the Target with 520 S set to 1, Prefix set to the destination address of an IPv6 packet, 521 Prefix Length set to 128 and all other route information is set to 0. 523 When the Target receives the NS message, it prepares an NA response 524 with an RIO that includes route information for one of its prefixes 525 that covers the destination address. The Target then sends the NA 526 message to the Source. 528 When the Source receives the NA message, it SHOULD consider the route 529 information asserted in the RIO as unconfirmed until it can verify 530 the Target's claim (i.e., as described in Section 4.2). 532 Any node may also assert route information at any time by sending 533 IPv6 ND messages with RIOs with S set to 0. Recipients of such 534 messages SHOULD consider the route information as unconfirmed until 535 the information can be verified. 537 4.6. Multiple RIOs 539 If a Redirect includes multiple RIOs, the Source only checks the 540 destination address for a match against the Prefix in the first RIO. 542 If an NS/RS message includes multiple RIOs with S set to '1', the 543 neighbor responds to those RIOs which match entries in its routing 544 table. 546 If an NS/NA/RS/RA message includes multiple RIOs with S set to '0', 547 the neighbor considers all of the route information as unconfirmed 548 until the information can be verified. 550 4.7. Multicast 552 Nodes MAY send IPv6 ND messages with RIOs to link-scoped multicast 553 destination addresses including All Nodes, All Routers, and 554 Solicited-Node multicast (see: [RFC4291]. As an example, a node 555 could send unsolicited NA messages to the All Nodes multicast address 556 to alter or deprecate a route it had previously asserted to one or 557 more neighbors. 559 Nodes MUST be conservative in their use of multicast IPv6 ND 560 messaging to avoid unnecessarily disturbing other nodes on the link. 562 4.8. Why NS/NA? 564 Since [RFC4191] already specifies the inclusion of RIOs in RA 565 messages, a natural question is why use NS/NA instead of RS/RA? 567 First, RA messages are only sent over advertising interfaces 568 [RFC4861]. Source and Target nodes typically connect only downstream 569 networks; hence, they configure their upstream interfaces as non- 570 advertising interfaces. 572 Second, NS/NA exchanges used by the IPv6 Neighbor Unreachability 573 Detection (NUD) procedure are unicast-based whereas RA responses to 574 RS messages are typically sent as multicast. Since this mechanism 575 must support unicast operation, the use of unicast NS/NA exchanges is 576 required. 578 Third, the IPv6 ND specification places restrictions on minimum 579 delays between RA messages. Since this mechanism expects an 580 immediate advertisement from the Target in response to the Source's 581 solicitation, only the NS/NA exchange can satisfy this property. 583 Fourth, the RA message is the "swiss army knife" of the IPv6 ND 584 protocol. RA messages carry numerous configuration parameters for 585 the link, including Cur Hop Limit, M/O flags, Router Lifetime, 586 Reachable Time, Retrans Time, Prefix Information Options, MTU 587 options, etc. The Target must not advertise any of this information 588 to the soliciting Source. 590 Fifth, RIOs in legacy RA messages cannot encode attributes and 591 therefore may be limited in the route information they can carry. 593 Finally, operators are deeply concerned about the security of RA 594 messages - so much so that they deploy link-layer security mechanisms 595 that drop RA messages originating from nodes claiming to be an 596 authoritative router for the link [RFC6105]. 598 5. Implementation Status 600 The IPv6 ND functions and RIOs are widely deployed in IPv6 601 implementations, however these implementations do not currently 602 include RIOs in IPv6 ND messages other than RAs. 604 An experimental implementation of [RFC6706] exists, and demonstrates 605 how the Redirect function can be used to carry route information. 607 6. IANA Considerations 609 IANA is instructed to create a registry for "RIO Attributes" as 610 discussed in Section 4.1. The registry includes the following 611 initial entry: 613 0 - the NULL Attribute [draft-templin-6man-rio-redirect] 615 Other Attribute types are defined through standards action or expert 616 review. 618 7. Security Considerations 620 The Redirect message validation rules in Section 8.1 of [RFC4861] 621 require recipients to verify that the IP source address of the 622 Redirect is the same as the current first-hop router for the 623 specified ICMP Destination Address. Recipients therefore naturally 624 reject any Redirect message with an incorrect source address. 626 Other security considerations for IPv6 ND messages that include RIOs 627 are the same as specified in Section 11 of [RFC4861]. Namely, the 628 protocol must take measures to secure IPv6 ND messages on links where 629 spoofing attacks are possible. 631 A spoofed Redirect message containing no RIOs could cause corruption 632 in the recipient's destination cache, while a spoofed Redirect 633 message containing RIOs could corrupt the host's routing tables. 634 While the latter would seem to be a more onerous result, the 635 possibility for corruption is unacceptable in either case. 637 "IPv6 ND Trust Models and Threats" [RFC3756] discusses spoofing 638 attacks, and states that: "This attack is not a concern if access to 639 the link is restricted to trusted nodes". "SEcure Neighbor Discovery 640 (SEND)" [RFC3971] provides one possible mitigation for other cases. 641 In some scenarios, it may be sufficient to include only the Timestamp 642 and Nonce options defined for SEND without implementing other aspects 643 of the protocol. 645 "IPv6 Router Advertisement Guard" [RFC6105] ("RA Guard") describes a 646 layer-2 filtering technique intended for network operators to use in 647 protecting hosts from receiving RA messages sent by nodes that are 648 not among the set of routers regarded as legitimate by the network 649 operator. 651 Nodes must have some form of trust basis for knowing that the sender 652 of an ND message is authoritative for the prefixes it asserts in 653 RIOs. For example, when an NS/NA exchange is triggered by the 654 receipt of a Redirect, the soliciting node can verify that the RIOs 655 in the NA message match the ones it received in the Redirect message 656 (which originally came from a trusted router). 658 Nodes that do not wish to provide transit services for upstream 659 networks may also receive IPv6 packets via an upstream interface that 660 do not match any of the their delegated prefixes. In that case, the 661 node drops the packets and observes the "Destination Unreachable - No 662 route to destination" procedures discussed in [RFC4443]. Dropping 663 the packets is necessary to avoid a reflection attack that would 664 cause the node to forward packets received from an upstream interface 665 via the same or a different upstream interface. 667 8. Acknowledgements 669 Joe Touch suggested a standalone draft to document this approach in 670 discussions on the intarea list. The work was subsequently 671 transferred to the 6man list, where the following individuals 672 provided valuable feedback: Mikael Abrahamsson, Zied Bouziri, Brian 673 Carpenter, Steinar Haug, Christian Huitema, Tatuya Jinmei, Tomoyuki 674 Sahara. 676 Discussion with colleagues during the "bits-and-bites" session at 677 IETF98 helped shape this document. Those colleagues are gratefully 678 acknowledged for their contributions. 680 This work is aligned with the NASA Safe Autonomous Systems Operation 681 (SASO) program under NASA contract number NNA16BD84C. 683 This work is aligned with the FAA as per the SE2025 contract number 684 DTFAWA-15-D-00030. 686 This work is aligned with the Boeing Information Technology (BIT) 687 MobileNet program and the Boeing Research & Technology (BR&T) 688 enterprise autonomy program. 690 9. References 692 9.1. Normative References 694 [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, 695 DOI 10.17487/RFC0791, September 1981, 696 . 698 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 699 Requirement Levels", BCP 14, RFC 2119, 700 DOI 10.17487/RFC2119, March 1997, 701 . 703 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 704 (IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460, 705 December 1998, . 707 [RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and 708 More-Specific Routes", RFC 4191, DOI 10.17487/RFC4191, 709 November 2005, . 711 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 712 Control Message Protocol (ICMPv6) for the Internet 713 Protocol Version 6 (IPv6) Specification", STD 89, 714 RFC 4443, DOI 10.17487/RFC4443, March 2006, 715 . 717 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 718 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 719 DOI 10.17487/RFC4861, September 2007, 720 . 722 9.2. Informative References 724 [I-D.templin-v6ops-pdhost] 725 Templin, F., "IPv6 Prefix Delegation for Hosts", draft- 726 templin-v6ops-pdhost-15 (work in progress), October 2017. 728 [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic 729 Host Configuration Protocol (DHCP) version 6", RFC 3633, 730 DOI 10.17487/RFC3633, December 2003, 731 . 733 [RFC3756] Nikander, P., Ed., Kempf, J., and E. Nordmark, "IPv6 734 Neighbor Discovery (ND) Trust Models and Threats", 735 RFC 3756, DOI 10.17487/RFC3756, May 2004, 736 . 738 [RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander, 739 "SEcure Neighbor Discovery (SEND)", RFC 3971, 740 DOI 10.17487/RFC3971, March 2005, 741 . 743 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 744 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 745 2006, . 747 [RFC6105] Levy-Abegnoli, E., Van de Velde, G., Popoviciu, C., and J. 748 Mohacsi, "IPv6 Router Advertisement Guard", RFC 6105, 749 DOI 10.17487/RFC6105, February 2011, 750 . 752 [RFC6706] Templin, F., Ed., "Asymmetric Extended Route Optimization 753 (AERO)", RFC 6706, DOI 10.17487/RFC6706, August 2012, 754 . 756 [RFC7084] Singh, H., Beebee, W., Donley, C., and B. Stark, "Basic 757 Requirements for IPv6 Customer Edge Routers", RFC 7084, 758 DOI 10.17487/RFC7084, November 2013, 759 . 761 [RFC7368] Chown, T., Ed., Arkko, J., Brandt, A., Troan, O., and J. 762 Weil, "IPv6 Home Networking Architecture Principles", 763 RFC 7368, DOI 10.17487/RFC7368, October 2014, 764 . 766 [RFC7934] Colitti, L., Cerf, V., Cheshire, S., and D. Schinazi, 767 "Host Address Availability Recommendations", BCP 204, 768 RFC 7934, DOI 10.17487/RFC7934, July 2016, 769 . 771 [RFC8028] Baker, F. and B. Carpenter, "First-Hop Router Selection by 772 Hosts in a Multi-Prefix Network", RFC 8028, 773 DOI 10.17487/RFC8028, November 2016, 774 . 776 Appendix A. Link-layer Address Changes 778 Type "D" hosts send unsolicited NAs to announce link-layer address 779 changes per standard neighbor discovery [RFC4861]. Link-layer 780 address changes may be due to localized factors such as hot-swap of 781 an interface card, but could also occur during movement to a new 782 point of attachment on the same link. 784 Appendix B. Interfaces with Multiple Link-Layer Addresses 786 Type "D" host interfaces may have multiple connections to the link; 787 each with its own link-layer address. Type "D" nodes can therefore 788 include multiple link-layer address options in IPv6 ND messages. 789 Neighbors that receive these messages can cache and select link-layer 790 addresses in a manner outside the scope of this specification. 792 Appendix C. Change Log 794 -04 to -05: 796 o Removed "Ver" field and version numbers. 798 o Included reference to 'draft-templin-v6ops-pdhost' 800 o Changed "MAY" to "may" in two places 802 o Added text on advertising interfaces 803 o Added UAS use case 805 Authors' Addresses 807 Fred L. Templin (editor) 808 Boeing Research & Technology 809 P.O. Box 3707 810 Seattle, WA 98124 811 USA 813 Email: fltemplin@acm.org 815 James Woodyatt 816 Google 817 3400 Hillview Ave 818 Palo Alto, CA 94304 819 USA 821 Email: jhw@google.com