idnits 2.17.1 draft-ietf-6man-dad-proxy-04.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (June 15, 2012) is 4331 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) == Outdated reference: A later version (-21) exists of draft-ietf-6lowpan-nd-18 == Outdated reference: A later version (-15) exists of draft-ietf-savi-mix-02 == Outdated reference: A later version (-11) exists of draft-ietf-savi-send-07 Summary: 0 errors (**), 0 flaws (~~), 4 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6man Working Group F. Costa 3 Internet-Draft J-M. Combes 4 Intended status: Standards Track X. Pougnard 5 Expires: December 17, 2012 France Telecom Orange 6 H. Li 7 Huawei Technologies 8 June 15, 2012 10 Duplicate Address Detection Proxy 11 draft-ietf-6man-dad-proxy-04 13 Abstract 15 The document describes a mechanism allowing the use of Duplicate 16 Address Detection (DAD) by IPv6 nodes in a point-to-multipoint 17 architecture with "split-horizon" forwarding scheme. Based on the 18 DAD signalling, the first hop router stores in a Binding Table all 19 known IPv6 addresses used on a point-to-multipoint domain (e.g. 20 VLAN). When a node performs DAD for an address already used by 21 another node, the first hop router replies instead of this last one. 23 Status of this Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on December 17, 2012. 40 Copyright Notice 42 Copyright (c) 2012 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 58 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 59 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 3. Why existing IETF solutions are not sufficient? . . . . . . . 4 61 3.1. Duplicate Address Detection . . . . . . . . . . . . . . . 5 62 3.2. Neighbor Discovery Proxy . . . . . . . . . . . . . . . . . 5 63 3.3. 6LoWPAN Neighbor Discovery . . . . . . . . . . . . . . . . 5 64 3.4. IPv6 Mobility Manager . . . . . . . . . . . . . . . . . . 6 65 4. Duplicate Address Detection Proxy (DAD-Proxy) 66 specifications . . . . . . . . . . . . . . . . . . . . . . . . 6 67 4.1. DAD-Proxy Data structure . . . . . . . . . . . . . . . . . 6 68 4.2. DAD-Proxy mechanism . . . . . . . . . . . . . . . . . . . 7 69 4.2.1. No entry exists for the tentative address . . . . . . 7 70 4.2.2. An entry already exists for the tentative address . . 7 71 4.2.3. Confirmation of reachability to check the validity 72 of the conflict . . . . . . . . . . . . . . . . . . . 8 73 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 74 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 75 6.1. Interoperability with SEND . . . . . . . . . . . . . . . . 10 76 6.2. IP source address spoofing protection . . . . . . . . . . 11 77 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11 78 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 79 8.1. Normative References . . . . . . . . . . . . . . . . . . . 11 80 8.2. Informative References . . . . . . . . . . . . . . . . . . 11 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12 83 1. Introduction 85 This document explains why Duplicate Address Detection (DAD) 86 mechanism [RFC4862] cannot be used in a point-to-multipoint 87 architecture with "split-horizon" forwarding scheme (IPv6 over PPP 88 [RFC5072] is not affected). One of the main reasons is that, because 89 of this forwarding scheme, IPv6 nodes on the same point-to-multipoint 90 domain cannot have direct communication: any communication between 91 them must go through the first hop router of the same domain. 93 This document also specifies a function called DAD proxy allowing the 94 use of DAD by the nodes on the same point-to-multipoint domain with 95 "split-horizon" forwarding scheme. It only impacts the first hop 96 router and it doesn't need modifications on the other IPv6 nodes. 97 This mechanism is fully effective if all the nodes of a point-to- 98 multipoint domain (except the DAD proxy itself) perform DAD. 99 However, if it is necessary to cover the scenarios where this 100 assumption is not met, additional solutions could be defined in the 101 future that work in conjunction with the mechanism described here. 103 It is assumed in this document that Link-layer addresses on a point- 104 to-multipoint domain are unique from the first hop router's point of 105 view (e.g. in an untrusted Ethernet architecture this assumption can 106 be guaranteed thanks to mechanisms such as "MAC Address Translation" 107 performed by an aggregation device between IPv6 nodes and the first 108 hop router). 110 1.1. Requirements Language 112 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 113 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 114 document are to be interpreted as described in RFC 2119 [RFC2119]. 116 2. Background 118 Terminology in this document follows that in Neighbor Discovery for 119 IP version 6 (IPv6) document [RFC4861] and IPv6 Stateless Address 120 Autoconfiguration document [RFC4862]. In addition, this section 121 defines additional terms related to DSL and Fiber access 122 architectures, which are an important case where the solution 123 described in this document can be used: 125 Customer Premises Equipment (CPE) 126 The first IPv6 node in a customer's network. 128 Access Node (AN) 129 The first aggregation point in the public access network. It 130 is considered as a L2 bridge in this document. 132 Broadband Network Gateway (BNG) 133 The first hop router from the CPE's point of view. 135 VLAN N:1 architecture 136 A point-to-multipoint architecture where many CPEs are 137 connected to the same VLAN. The CPEs may be connected on the 138 same or different Access Nodes. 140 split-horizon model 141 A forwarding scheme where CPEs cannot have direct layer 2 142 communications between them (i.e. IP flows must be forwarded 143 through the BNG via routing). 145 The following figure shows where are the different entities defined 146 above. 148 +------+ +----+ 149 | CPE3 |---------| AN | 150 +------+ +----+ 151 | 152 | 153 +------+ +----+ 154 | CPE2 |---------| AN |---+ 155 +------+ +----+ | 156 +------+ | | 157 | CPE1 |------------+ | 158 +------+ +-----+ 159 | BNG |--- Internet 160 +-----+ 162 Figure 1: DSL and Fiber access Architecture 164 3. Why existing IETF solutions are not sufficient? 166 In a DSL or Fiber access architecture depicted in Figure 1, CPE1,2,3 167 and the BNG are IPv6 nodes, while AN is a L2 bridge providing 168 connectivity between the BNG and each CPE. The AN enforces a split- 169 horizon model so that CPEs can only send and receive frames (e.g. 170 Ethernet frames) to and from the BNG but not to each other. That 171 said, the BNG is on a same link with all CPE, but one CPE is not on a 172 same link with any other CPE. 174 3.1. Duplicate Address Detection 176 Duplicate Address Dectection (DAD) [RFC4862] is performed when an 177 IPv6 node verifies the uniqueness of a tentative IPv6 address. This 178 node sends a Neighbor Solicitation (NS) message with the IP 179 destination set to solicited-node multicast address of the tentative 180 address. This NS message is multicasted to other nodes on a same 181 link. When the tentative address is already used on the link by 182 another node, this last one replies with a Neighbor Advertisement 183 (NA) message to inform the first node. So when performing DAD, a 184 node expects the NS messages are received by other nodes. 186 However, in a point-to-multipoint network with split-horizon 187 forwarding scheme implemented in the AN, the CPEs are prevented from 188 talking to each other directly. All packets sent out from a CPE 189 would be forwarded by AN only to the BNG but not to any other CPE. 190 That said, NS messages sent by a certain CPE will be received only by 191 the BNG and will not reach other CPEs. So, other CPEs have no idea 192 that a certain IPv6 address is used by another CPE. That means, in a 193 network with split-horizon, DAD per [RFC4862] can't work properly 194 without an additional helper. 196 3.2. Neighbor Discovery Proxy 198 Neighbor Discovery (ND) Proxy [RFC4389] is designed for forwarding ND 199 messages between different IP links where the subnet prefix is the 200 same. A ND Proxy function on a bridge ensures that packets between 201 nodes on different segments can be received by this function and have 202 the correct link-layer address type on each segment. When the ND 203 proxy receives a multicast ND message, it forwards it to all other 204 interfaces on a same link. 206 In DSL or Fiber networks, when AN, acting as a ND Proxy, receives a 207 ND message from a CPE, it will forward it to the BNG but none of 208 other CPEs, as only the BNG is on the same link with the CPE. Hence, 209 implementing ND Proxy on AN would not help a CPE acknowledge link- 210 local addresses used by other CPEs. 212 As the BNG must not forward link-local scoped messages sent from a 213 CPE to other CPEs, ND Proxy cannot be implemented in the BNG. 215 3.3. 6LoWPAN Neighbor Discovery 217 [I-D.ietf-6lowpan-nd] defines an optional modification of DAD for a 218 6LowPAN. When a 6LoWPAN node wants to configure an IPv6 address, it 219 registers that address with one or more of its default router using 220 the Address Registration option (ARO). If this address is already 221 owned by another node, the router informs the 6LoWPAN node this 222 address cannot be configured. 224 A problem for this mechanism is that it requires modifications in 225 hosts in order to support the Address Registration option. 227 3.4. IPv6 Mobility Manager 229 According to [RFC6275], a home agent acts as a proxy for mobile nodes 230 when these last ones are away from the home network: the home agent 231 defends an mobile node's home address by replying to NS messages with 232 NA messages. 234 There is a problem for this mechanism if it is applied in a DSL or 235 Fiber public access network. Operators of such networks require a NA 236 message is only received by the sender of the corresponding NS 237 message, for security and scalability reasons. However, the home 238 agent per [RFC6275] multicasts NA messages on the home link and all 239 nodes on this link will receive these NA messages. This shortcoming 240 prevents this mechanism being deployed in DSL or Fiber access 241 networks directly. 243 4. Duplicate Address Detection Proxy (DAD-Proxy) specifications 245 4.1. DAD-Proxy Data structure 247 A BNG needs to store in a Binding Table information related to the 248 IPv6 addresses generated by any CPE. This Binding Table MAY be 249 distinct from the Neighbor Cache. This must be done per point to 250 multipoint domain (e.g. per Ethernet VLAN). Each entry in this 251 Binding Table MUST contain the following fields: 253 o IPv6 Address 255 o Link-layer Address 257 For security or performances reasons, it must be possible to limit 258 the number of IPv6 Addresses per Link-layer Address (possibly, but 259 not necessarily, to 1). 261 On the reception of an unsolicited NA (e.g., when a CPE wishes to 262 inform its neighbors of a new link-layer address) for an IPv6 address 263 already recorded in the Binding Table, each entry associated to this 264 IPv6 address MUST be updated consequently: the current Link-layer 265 Address is replaced by the one included in the unsolicited NA 266 message. 268 4.2. DAD-Proxy mechanism 270 When a CPE performs DAD, as specified in [RFC4862], it sends a 271 Neighbor Solicitation (NS) message, with the unspecified address as 272 source address, in order to check if a tentative address is already 273 in use on the link. The BNG receives this message and MUST perform 274 actions depending on the information in the Binding Table. 276 4.2.1. No entry exists for the tentative address 278 When there is no entry for the tentative address, the BNG MUST create 279 one with following information: 281 o IPv6 Address Field set to the tentative address in the NS message. 283 o Link-layer Address Field set to the Link-layer source address in 284 the Link-layer Header of the NS message. 286 The BNG MUST NOT reply to the CPE or forward the NS message. 288 4.2.2. An entry already exists for the tentative address 290 When there is an entry for the tentative address, the BNG MUST check 291 the following conditions: 293 o The address in the Target Address Field in the NS message is equal 294 to the address in the IPv6 Address Field in the entry. 296 o The source address of the IPv6 Header in the NS message is equal 297 to the unspecified address. 299 When these conditions are met and the source address of the Link- 300 Layer Header in the NS message is equal to the address in the Link- 301 Layer Address Field in the entry, that means the CPE is still 302 performing DAD for this address. The BNG MUST NOT reply to the CPE 303 or forward the NS message. 305 When these conditions are met and the source address of the Link- 306 Layer Header in the NS message is not equal to the address in the 307 Link-Layer Address Field in the entry, that means possibly another 308 CPE performs DAD for an already owned address. The BNG then has to 309 verify whether there is a real conflict by checking if the CPE whose 310 IPv6 address is in the entry is still connected. In the following, 311 we will call IPv6-CPE1 the IPv6 address of the existing entry in the 312 Binding Table, Link-layer-CPE1 the Link-layer address of that entry 313 and Link-layer-CPE2 the Link-layer address of the CPE which is 314 performing DAD, which is different from Link-layer-CPE1. 316 The BNG MUST check if the potential address conflict is real. In 317 particular: 319 o If IPv6-CPE1 is in the Neighbor Cache and it is associated with 320 Link-layer-CPE1, the reachability of IPv6-CPE1 MUST be confirmed 321 as explained in Section 4.2.3. 323 o If IPv6-CPE1 is in the Neighbor Cache, but in this cache it is 324 associated with another Link-layer address than Link-layer-CPE1, 325 that means that there is possibly a conflict with another CPE, but 326 that CPE did not perform DAD. This situation is out of the scope 327 of this document, since one assumption made above is that all the 328 nodes of a point-to-multipoint domain (except the DAD proxy 329 itself) perform DAD. This case could be covered in the future by 330 additional solutions that work in conjunction with the DAD proxy. 332 o If IPv6-CPE1 is not in the Neighbor Cache, then the BNG MUST 333 create a new entry based on the information of the entry in the 334 Binding Table. This step is necessary in order to trigger the 335 reachibility check as explained in Section 4.2.3. The entry in 336 the Neighbor Cache MUST be created based on the algorithm defined 337 in section 7.3.3 of [RFC4861], in particular by considering the 338 case as if a packet other than a solicited Neighbor Advertisement 339 was received from IPv6-CPE1. That means that the new entry of the 340 Neighbor Cache MUST contain the following information: 342 * IPv6 address: IPv6-CPE1 344 * Link-layer address: Link-layer-CPE1 346 * State: STALE 348 Then the reachability of IPv6-CPE1 MUST be confirmed as soon as 349 possible following the procedure explained in section 4.2.3. 351 4.2.3. Confirmation of reachability to check the validity of the 352 conflict 354 Given that the IPv6-CPE1 is in an entry of the Neighbor Cache, the 355 reachability of IPv6-CPE1 is checked by using the NUD (Neighbor 356 Unreachibility Detection) mechanism described in section 7.3.1 of 357 [RFC4861]. This mechanism MUST be triggered as if a packet has to be 358 sent to IPv6-CPE1. Note that in some cases this mechanism does not 359 do anything, for instance if the state of the entry is REACHABLE and 360 a positive confirmation was received recently that the forward path 361 to the IPv6-CPE1 was functioning properly (see RFC 4861 for more 362 details). 364 Next, the behavior of the BNG depends on the result of the NUD 365 process, as explained in the following sections. 367 4.2.3.1. The result of the NUD process is negative 369 If the result of the NUD process is negative (i.e. if this process 370 removes IPv6-CPE1 from the Neighbor Cache), that means that the 371 potential conflict is not real. 373 The conflicting entry in the Binding Table (Link-layer-CPE1) is 374 deleted and it is replaced by a new entry with the same IPv6 address, 375 but the Link-layer address of the CPE which is performing DAD (Link- 376 layer-CPE2), as explained in Section 4.2.1. 378 4.2.3.2. The result of the NUD process is positive 380 If the result of the NUD process is positive (i.e. if after this 381 process the state of IPv6-CPE1 is REACHABLE), that means that the 382 potential conflict is real. 384 As shown in Figure 2, the BNG MUST reply to CPE that is performing 385 DAD (CPE2 in Figure 1) with a NA message which has the following 386 format: 388 Layer 2 Header Fields: 390 Source Address 391 The Link-layer address of the interface on which the BNG 392 received the NS message. 394 Destination Address 395 The source address in the Layer 2 Header of the NS 396 message received by the BNG (i.e. Link-layer-CPE2) 398 IPv6 Header Fields: 400 Source Address 401 An address assigned to the interface from which the 402 advertisement is sent. 404 Destination Address 405 The all-nodes multicast address. 407 ICMPv6 Fields: 409 Target Address 410 The tentative address already used (i.e. IPv6-CPE1). 412 Target Link-layer address 413 The Link-layer address of the interface on which the BNG 414 received the NS message. 416 CPE1 CPE2 BNG 417 | | | 418 (a)| | | 419 | | | 420 (b)|===================>| 421 | | |(c) 422 | | | 423 | (d)| | 424 | | | 425 | (e)|=========>| 426 | | | 427 | |<=========|(f) 428 | | | 430 (a) CPE1 generated a tentative address 431 (b) CPE1 performs DAD for this one 432 (c) BNG updates its Binding Table 433 (d) CPE2 generates a same tentative address 434 (e) CPE2 performs DAD for this one 435 (f) BNG informs CPE2 that DAD fails 437 Figure 2 439 The BNG and the CPE MUST support the Unicast Transmission on Link- 440 layer of IPv6 Multicast Messages [RFC6085], to be able, respectively, 441 to generate and to process such a packet format. 443 5. IANA Considerations 445 No new options or messages are defined in this document. 447 6. Security Considerations 449 6.1. Interoperability with SEND 451 If SEcure Neighbor Discovery (SEND) [RFC3971] is used, the mechanism 452 specified in this document may break the security. Indeed, if an 453 entry already exists and the BNG has to send a reply (cf. 455 Section 4.2.2), the BNG doesn't own the private key(s) associated 456 with to the Cryptographically Generated Addresses (CGA) [RFC3972] to 457 correctly sign the proxied ND messages [RFC5909]. 459 To keep the same level of security, Secure Proxy ND Support for SEND 460 [RFC6496] SHOULD be used and implemented on the BNG and the CPEs. 462 6.2. IP source address spoofing protection 464 To ensure a protection against IP source address spoofing in data 465 packets, this proposal MAY be used in combinaison with Source Address 466 Validation Improvement (SAVI) mechanisms [RFC6620] 467 [I-D.ietf-savi-send] [I-D.ietf-savi-mix]. 469 7. Acknowledgments 471 The authors would like to thank Alan Kavanagh, Wojciech Dec, Suresh 472 Krishnan and Tassos Chatzithomaoglou for their comments. The authors 473 would like also to thank the IETF 6man WG members and the BBF 474 community for their support. 476 8. References 478 8.1. Normative References 480 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 481 Requirement Levels", BCP 14, RFC 2119, March 1997. 483 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 484 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 485 September 2007. 487 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 488 Address Autoconfiguration", RFC 4862, September 2007. 490 [RFC6085] Gundavelli, S., Townsley, M., Troan, O., and W. Dec, 491 "Address Mapping of IPv6 Multicast Packets on Ethernet", 492 RFC 6085, January 2011. 494 8.2. Informative References 496 [I-D.ietf-6lowpan-nd] 497 Shelby, Z., Chakrabarti, S., and E. Nordmark, "Neighbor 498 Discovery Optimization for Low Power and Lossy Networks 499 (6LoWPAN)", draft-ietf-6lowpan-nd-18 (work in progress), 500 October 2011. 502 [I-D.ietf-savi-mix] 503 Bi, J., Yao, G., Halpern, J., and E. Levy-Abegnoli, "SAVI 504 for Mixed Address Assignment Methods Scenario", 505 draft-ietf-savi-mix-02 (work in progress), April 2012. 507 [I-D.ietf-savi-send] 508 Bagnulo, M. and A. Garcia-Martinez, "SEND-based Source- 509 Address Validation Implementation", 510 draft-ietf-savi-send-07 (work in progress), March 2012. 512 [RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure 513 Neighbor Discovery (SEND)", RFC 3971, March 2005. 515 [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", 516 RFC 3972, March 2005. 518 [RFC4389] Thaler, D., Talwar, M., and C. Patel, "Neighbor Discovery 519 Proxies (ND Proxy)", RFC 4389, April 2006. 521 [RFC5072] S.Varada, Haskins, D., and E. Allen, "IP Version 6 over 522 PPP", RFC 5072, September 2007. 524 [RFC5909] Combes, J-M., Krishnan, S., and G. Daley, "Securing 525 Neighbor Discovery Proxy: Problem Statement", RFC 5909, 526 July 2010. 528 [RFC6275] Perkins, C., Johnson, D., and J. Arkko, "Mobility Support 529 in IPv6", RFC 6275, July 2011. 531 [RFC6496] Krishnan, S., Laganier, J., Bonola, M., and A. Garcia- 532 Martinez, "Secure Proxy ND Support for SEcure Neighbor 533 Discovery (SEND)", RFC 6496, February 2012. 535 [RFC6620] Nordmark, E., Bagnulo, M., and E. Levy-Abegnoli, "FCFS 536 SAVI: First-Come, First-Served Source Address Validation 537 Improvement for Locally Assigned IPv6 Addresses", 538 RFC 6620, May 2012. 540 Authors' Addresses 542 Fabio Costa 543 France Telecom Orange 544 61 rue des Archives 545 75141 Paris Cedex 03 546 France 548 Email: fabio.costa@orange.com 550 Jean-Michel Combes 551 France Telecom Orange 552 38 rue du General Leclerc 553 92794 Issy-les-Moulineaux Cedex 9 554 France 556 Email: jeanmichel.combes@orange.com 558 Xavier Pougnard 559 France Telecom Orange 560 2 avenue Pierre Marzin 561 22300 Lannion 562 France 564 Email: xavier.pougnard@orange.com 566 Hongyu Li 567 Huawei Technologies 568 Huawei Industrial Base 569 Shenzhen 570 China 572 Email: lihy@huawei.com