idnits 2.17.1 draft-ietf-v6ops-design-choices-10.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 document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 272: '... A router MUST be able to determi...' Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 14, 2016) is 2744 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'I-D.ietf-v6ops-host-addr-availability' is defined on line 828, but no explicit reference was found in the text == Unused Reference: 'RFC1918' is defined on line 846, but no explicit reference was found in the text == Unused Reference: 'RFC4193' is defined on line 868, but no explicit reference was found in the text == Unused Reference: 'RFC4291' is defined on line 872, but no explicit reference was found in the text == Unused Reference: 'RFC5220' is defined on line 915, but no explicit reference was found in the text == Unused Reference: 'RFC5838' is defined on line 938, but no explicit reference was found in the text == Unused Reference: 'RFC6296' is defined on line 956, but no explicit reference was found in the text == Unused Reference: 'RFC6752' is defined on line 964, but no explicit reference was found in the text == Unused Reference: 'RFC6879' is defined on line 972, but no explicit reference was found in the text == Unused Reference: 'RFC7010' is defined on line 982, but no explicit reference was found in the text == Outdated reference: A later version (-16) exists of draft-ietf-idr-dynamic-cap-14 -- Obsolete informational reference (is this intentional?): RFC 3107 (Obsoleted by RFC 8277) Summary: 1 error (**), 0 flaws (~~), 12 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 V6OPS Working Group P. Matthews 3 Internet-Draft Nokia 4 Intended status: Informational V. Kuarsingh 5 Expires: April 17, 2017 Cisco 6 October 14, 2016 8 Some Design Choices for IPv6 Networks 9 draft-ietf-v6ops-design-choices-10 11 Abstract 13 This document presents advice on certain routing-related design 14 choices that arise when designing IPv6 networks (both dual-stack and 15 IPv6-only). The intended audience is someone designing an IPv6 16 network who is knowledgeable about best current practices around IPv4 17 network design, and wishes to learn the corresponding practices for 18 IPv6. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at http://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on April 17, 2017. 37 Copyright Notice 39 Copyright (c) 2016 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 2. Design Choices . . . . . . . . . . . . . . . . . . . . . . . 3 56 2.1. Addresses . . . . . . . . . . . . . . . . . . . . . . . . 3 57 2.2. Interfaces . . . . . . . . . . . . . . . . . . . . . . . 3 58 2.2.1. Mix IPv4 and IPv6 on the Same Layer-3 Interface? . . 3 59 2.2.2. Interfaces with Only Link-Local Addresses? . . . . . 4 60 2.3. Static Routes . . . . . . . . . . . . . . . . . . . . . . 6 61 2.3.1. Link-Local Next-Hop in a Static Route? . . . . . . . 6 62 2.4. IGPs . . . . . . . . . . . . . . . . . . . . . . . . . . 7 63 2.4.1. IGP Choice . . . . . . . . . . . . . . . . . . . . . 7 64 2.4.2. IS-IS Topology Mode . . . . . . . . . . . . . . . . . 10 65 2.4.3. RIP / RIPng . . . . . . . . . . . . . . . . . . . . . 11 66 2.5. BGP . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 67 2.5.1. Which Transport for Which Routes? . . . . . . . . . . 12 68 2.5.1.1. BGP Sessions for Unlabeled Routes . . . . . . . . 13 69 2.5.1.2. BGP sessions for Labeled or VPN Routes . . . . . 14 70 2.5.2. eBGP Endpoints: Global or Link-Local Addresses? . . . 14 71 3. General Observations . . . . . . . . . . . . . . . . . . . . 16 72 3.1. Use of Link-Local Addresses . . . . . . . . . . . . . . . 16 73 3.2. Separation of IPv4 and IPv6 . . . . . . . . . . . . . . . 16 74 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 75 5. Security Considerations . . . . . . . . . . . . . . . . . . . 17 76 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 77 7. Informative References . . . . . . . . . . . . . . . . . . . 18 78 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 80 1. Introduction 82 This document discusses routing-related design choices that arise 83 when designing a Pv6-only or dual-stack network. The focus is on 84 choices that do not come up when designing an IPv4-only network. The 85 document presents each choice and the alternatives, and then 86 discusses the pros and cons of the alternatives in detail. Where 87 consensus currently exists around the best practice, this is 88 documented; otherwise the document simply summarizes the current 89 state of the discussion. Thus this document serves to both document 90 the reasoning behind best current practices for IPv6, and to allow a 91 designer to make an informed choice where no such consensus exists. 93 The design choices presented apply to both Service Provider and 94 Enterprise network environments. Where choices have selection 95 criteria which differ between the Service Provider and the Enterprise 96 environment, this is noted. The designer is encouraged to ensure 97 that they familiarize themselves with any of the discussed 98 technologies to ensure the best selection is made for their 99 environment. 101 This document does not present advice on strategies for adding IPv6 102 to a network, nor does it discuss transition in these areas, see 103 [RFC6180] for general advice,[RFC6782] for wireline service 104 providers, [RFC6342]for mobile network providers, [RFC5963] for 105 exchange point operators, [RFC6883] for content providers, and both 106 [RFC4852] and [RFC7381] for enterprises. Nor does this document 107 discuss the particulars of creating an IPv6 addressing plan; for 108 advice in this area, see [RFC5375] or [v6-addressing-plan]. The 109 details of ULA usage is also not discussed; for this the reader is 110 referred to [I-D.ietf-v6ops-ula-usage-recommendations]. 112 Finally, this document focuses on unicast routing design only and 113 does not cover multicast or the issues involved in running MPLS over 114 IPv6 transport. 116 2. Design Choices 118 Each subsection below presents a design choice and discusses the pros 119 and cons of the various options. If there is consensus in the 120 industry for a particular option, then the consensus position is 121 noted. 123 2.1. Addresses 125 TBD 127 2.2. Interfaces 129 2.2.1. Mix IPv4 and IPv6 on the Same Layer-3 Interface? 131 If a network is going to carry both IPv4 and IPv6 traffic, as many 132 networks do today, then a question arises: Should an operator mix 133 IPv4 and IPv6 traffic or keep them separated? More specifically, 134 should the design: 136 a. Mix IPv4 and IPv6 traffic on the same layer-3 interface, OR 138 b. Separate IPv4 and IPv6 by using separate interfaces (e.g., two 139 physical links or two VLANs on the same link)? 141 Option (a) implies a single layer-3 interface at each end of the 142 connection with both IPv4 and IPv6 addresses; while option (b) 143 implies two layer-3 interfaces at each end, one for IPv4 addresses 144 and one with IPv6 addresses. 146 The advantages of option (a) include: 148 o Requires only half as many layer 3 interfaces as option (b), thus 149 providing better scaling; 151 o May require fewer physical ports, thus saving money and 152 simplifying operations; 154 o Can make the QoS implementation much easier (for example, rate- 155 limiting the combined IPv4 and IPv6 traffic to or from a 156 customer); 158 o Works well in practice, as any increase in IPv6 traffic is usually 159 counter-balanced by a corresponding decrease in IPv4 traffic to or 160 from the same host (ignoring the common pattern of an overall 161 increase in Internet usage); 163 o And is generally conceptually simpler. 165 For these reasons, there is a relatively strong consensus in the 166 operator community that option (a) is the preferred way to go. Most 167 networks today use option (a) wherever possible. 169 However, there can be times when option (b) is the pragmatic choice. 170 Most commonly, option (b) is used to work around limitations in 171 network equipment. One big example is the generally poor level of 172 support today for individual statistics on IPv4 traffic vs IPv6 173 traffic when option (a) is used. Other, device-specific, limitations 174 exist as well. It is expected that these limitations will go away as 175 support for IPv6 matures, making option (b) less and less attractive 176 until the day that IPv4 is finally turned off. 178 2.2.2. Interfaces with Only Link-Local Addresses? 180 As noted in the introduction, this document does not cover the ins 181 and outs around creating an IPv6 addressing plan. However, there is 182 one question in this area that often arises: Should an interface: 184 a. Use only a link-local address ("link-local-only"), OR 186 b. Have global and/or unique-local addresses assigned in addition to 187 the link-local? 189 There are two advantages in interfaces with only link-local addresses 190 ("link-local-only interfaces"). The first advantage is ease of 191 configuration. In a network with a large number of link-local-only 192 interfaces, the operator can just enable an IGP on each router, 193 without going through the tedious process of assigning and tracking 194 the addresses for each interface. The second advantage is security. 195 Since packets with Link-Local destination addresses should not be 196 routed, it is very difficult to attack the associated nodes from an 197 off-link device. This implies less effort around maintaining 198 security ACLs. 200 Countering this advantage are various disadvantages to link-local- 201 only interfaces: 203 o It is not possible to ping a link-local-only interface from a 204 device that is not directly attached to the link. Thus, to 205 troubleshoot, one must typically log into a device that is 206 directly attached to the device in question, and execute the ping 207 from there. 209 o A traceroute passing over the link-local-only interface will 210 return the loopback or system address of the router, rather than 211 the address of the interface itself. 213 o In cases of parallel point to point links it is difficult to 214 determine which of the parallel links was taken when attempting to 215 troubleshoot unless one sends packets directly between the two 216 attached link-locals on the specific interfaces. Since many 217 network problems behave differently for traffic to/from a router 218 than for traffic through the router(s) in question, this can pose 219 a significant hurdle to some troubleshooting scenarios. 221 o On some routers, by default the link-layer address of the 222 interface is derived from the MAC address assigned to interface. 223 When this is done, swapping out the interface hardware (e.g. 224 interface card) will cause the link-layer address to change. In 225 some cases (peering config, ACLs, etc) this may require additional 226 changes. However, many devices allow the link-layer address of an 227 interface to be explicitly configured, which avoids this issue. 228 This problem should fade away over time as more and more routers 229 select interface identifiers according to the rules in [RFC7217]. 231 o The practice of naming router interfaces using DNS names is 232 difficult and not recommended when using link-locals only. More 233 generally, it is not recommended to put link-local addresses into 234 DNS; see [RFC4472]. 236 o It is often not possible to identify the interface or link (in a 237 database, email, etc) by giving just its address without also 238 specifying the link in some manner. 240 It should be noted that it is quite possible for the same link-local 241 address to be assigned to multiple interfaces. This can happen 242 because the MAC address is duplicated (due to manufacturing process 243 defaults or the use of virtualization), because a device deliberately 244 re-uses automatically-assigned link-local addresses on different 245 links, or because an operator manually assigns the same easy-to-type 246 link-local address to multiple interfaces. All these are allowed in 247 IPv6 as long as the addresses are used on different links. 249 For more discussion on the pros and cons, see [RFC7404]. See also 250 [RFC5375] for IPv6 unicast address assignment considerations. 252 Today, most operators use interfaces with global or unique-local 253 addresses (option b). 255 2.3. Static Routes 257 2.3.1. Link-Local Next-Hop in a Static Route? 259 For the most part, the use of static routes in IPv6 parallels their 260 use in IPv4. There is, however, one exception, which revolves around 261 the choice of next-hop address in the static route. Specifically, 262 should an operator: 264 a. Use the far-end's link-local address as the next-hop address, OR 266 b. Use the far-end's GUA/ULA address as the next-hop address? 268 Recall that the IPv6 specs for OSPF [RFC5340] and ISIS [RFC5308] 269 dictate that they always use link-locals for next-hop addresses. For 270 static routes, [RFC4861] section 8 says: 272 A router MUST be able to determine the link-local address for each 273 of its neighboring routers in order to ensure that the target 274 address in a Redirect message identifies the neighbor router by 275 its link-local address. For static routing, this requirement 276 implies that the next-hop router's address should be specified 277 using the link-local address of the router. 279 This implies that using a GUA or ULA as the next hop will prevent a 280 router from sending Redirect messages for packets that "hit" this 281 static route. All this argues for using a link-local as the next-hop 282 address in a static route. 284 However, there are two cases where using a link-local address as the 285 next-hop clearly does not work. One is when the static route is an 286 indirect (or multi-hop) static route. The second is when the static 287 route is redistributed into another routing protocol. In these 288 cases, the above text from RFC 4861 notwithstanding, either a GUA or 289 ULA must be used. 291 Furthermore, many network operators are concerned about the 292 dependency of the default link-local address on an underlying MAC 293 address, as described in the previous section. 295 Today most operators use GUAs as next-hop addresses. 297 2.4. IGPs 299 2.4.1. IGP Choice 301 One of the main decisions for a network operator looking to deploy 302 IPv6 is the choice of IGP (Interior Gateway Protocol) within the 303 network. The main options are OSPF, IS-IS and EIGRP. RIPng is 304 another option, but very few networks run RIP in the core these days, 305 so it is covered in a separate section below. 307 OSPF [RFC2328] [RFC5340] and IS-IS [RFC5120][RFC5120] are both 308 standardized link-state protocols. Both protocols are widely 309 supported by vendors, and both are widely deployed. By contrast, 310 EIGRP [ref] is a Cisco proprietary distance-vector protocol. EIGRP 311 is rarely deployed in service-provider networks, but is quite common 312 in enterprise networks, which is why it is discussed here. 314 It is out of scope for this document to describe all the differences 315 between the three protocols; the interested reader can find books and 316 websites that go into the differences in quite a bit of detail. 317 Rather, this document simply highlights a few differences that can be 318 important to consider when designing IPv6 or dual-stack networks. 320 Versions: There are two versions of OSPF: OSPFv2 and OSPFv3. The two 321 versions share many concepts, are configured in a similar manner and 322 seem very similar to most casual users, but have very different 323 packet formats and other "under the hood" differences. The most 324 important difference is that OSPFv2 will only route IPv4, while 325 OSPFv3 will route both IPv4 and IPv6. OSPFv2 was by far the most 326 widely deployed version of OSPF when this document was published. By 327 contrast, both IS-IS and EIGRP have just a single version, which can 328 route both IPv4 and IPv6. 330 Transport. IS-IS runs over layer 2 (e.g. Ethernet). This means 331 that the functioning of IS-IS has no dependencies on the IP layer: if 332 there is a problem at the IP layer (e.g. bad addresses), two routers 333 can still exchange IS-IS packets. By contrast, OSPF and EIGRP both 334 run over the IP layer. This means that the IP layer must be 335 configured and working OSPF or EIGRP packets to be exchanged between 336 routers. For EIGRP, the dependency on the IP layer is simple: EIGRP 337 for IPv4 runs over IPv4, while EIGRP for IPv6 runs over IPv6. For 338 OSPF, the story is more complex: OSPFv2 runs over IPv4, but OSPFv3 339 can run over either IPv4 or IPv6. Thus it is possible to route both 340 IPv4 and IPv6 with OSPFv3 running over IPv6 or with OSPFv3 running 341 over IPv4. This means that there are number of choices for how to 342 run OSPF in a dual-stack network: 344 o Use OSPFv2 for routing IPv4 , and OSPFv3 running over IPv6 for 345 routing IPv6, OR 347 o Use OSPFv3 running over IPv6 for routing both IPv4 and IPv6, OR 349 o Use OSPFv3 running over IPv4 for routing both IPv4 and IPv6. 351 Summarization and MPLS: For most casual users, the three protocols 352 are fairly similar in what they can do, with two glaring exceptions: 353 summarization and MPLS. For summarization, both OSPF and IS-IS have 354 the concept of summarization between areas, but the two area concepts 355 are quite different, and an area design that works for one protocol 356 will usually not work for the other. EIGRP has no area concept, but 357 has the ability to summarize at any router. Thus a large network 358 will typically have a very different OSPF, IS-IS and EIGRP designs, 359 which is important to keep in mind if you are planning on using one 360 protocol to route IPv4 and a different protocol for IPv6. The other 361 difference is that OSPF and IS-IS both support RSVP-TE, a widely-used 362 MPLS signaling protocol, while EIGRP does not: this is due to OSPF 363 and IS-IS both being link-state protocols while EIGRP is a distance- 364 vector protocol. 366 The table below sets out possible combinations of protocols to route 367 both IPv4 and IPv6, and makes some observations on each combination. 368 Here "EIGRP-v4" means "EIGRP for IPv4" and similarly for "EIGRP-v6". 369 For OSPFv3, it is possible to run it over either IPv4 or IPv6; this 370 is not indicated in the table. 372 +----------+----------+-------------+----------------+--------------+ 373 | IGP for | IGP for | Protocol | Similar | Multiple | 374 | IPv4 | IPv6 | separation | configuration | Known | 375 | | | | possible | Deployments | 376 +----------+----------+-------------+----------------+--------------+ 377 | | | | | | 378 +----------+----------+-------------+----------------+--------------+ 379 | OSPFv2 | OSPFv3 | YES | YES | YES (8) | 380 +----------+----------+-------------+----------------+--------------+ 381 | OSPFv2 | IS-IS | YES | - | YES (3) | 382 +----------+----------+-------------+----------------+--------------+ 383 | OSPFv2 | EIGRP-v6 | YES | - | - | 384 +----------+----------+-------------+----------------+--------------+ 385 | OSPFv3 | IS-IS | YES | - | - | 386 +----------+----------+-------------+----------------+--------------+ 387 | OSPFv3 | EIGRP-v6 | YES | - | - | 388 +----------+----------+-------------+----------------+--------------+ 389 | IS-IS | OSPFv3 | YES | - | YES (2) | 390 +----------+----------+-------------+----------------+--------------+ 391 | IS-IS | IS-IS | - | YES | YES (12) | 392 +----------+----------+-------------+----------------+--------------+ 393 | IS-IS | EIGRP-v6 | YES | - | - | 394 +----------+----------+-------------+----------------+--------------+ 395 | EIGRP-v4 | OSPFv3 | YES | - | ? (1) | 396 +----------+----------+-------------+----------------+--------------+ 397 | EIGRP-v4 | IS-IS | YES | - | - | 398 +----------+----------+-------------+----------------+--------------+ 399 | EIGRP-v4 | EIGRP-v6 | - | YES | ? (2) | 400 +----------+----------+-------------+----------------+--------------+ 402 In the column "Multiple Known Deployments", a YES indicates that a 403 significant number of production networks run this combination, with 404 the number of such networks indicated in parentheses following, while 405 a "?" indicates that the authors are only aware of one or two small 406 networks that run this combination. Data for this column was 407 gathered from an informal poll of operators on a number of mailing 408 lists. This poll was not intended to be a thorough scientific study 409 of IGP choices, but to provide a snapshot of known operator choices 410 at the time of writing (Mid-2015) for successful production dual 411 stack network deployments. There were twenty six (26) network 412 implementations represented by 17 respondents. Some respondents 413 provided information on more then one network or network deployment. 414 Due to privacy considerations, the networks' represented and 415 respondents are not listed in this document. 417 A number of combinations are marked as offering "Protocol 418 separation". These options use a different IGP protocol for IPv4 vs 419 IPv6. With these options, a problem with routing IPv6 is unlikely to 420 affect IPv4 or visa-versa. Some operator may consider this as a 421 benefit when first introducing dual stack capabilities or for ongoing 422 technical reasons. 424 Three combinations are marked "Similar configuration possible". This 425 means it is possible (but not required) to use very similar IGP 426 configuration for IPv4 and IPv6: for example, the same area 427 boundaries, area numbering, link costing, etc. If you are happy with 428 your IPv4 IGP design, then this will likely be a consideration. By 429 contrast, the options that use, for example, IS-IS for one IP version 430 and OSPF for the other version will require considerably different 431 configuration, and will also require the operations staff to become 432 familiar with the difference between the two protocols. 434 It should be noted that a number of ISPs have run OSPF as their IPv4 435 IGP for quite a few years, but have selected IS-IS as their IPv6 IGP. 436 However, there are very few (none?) that have made the reverse 437 choice. This is, in part, because routers generally support more 438 nodes in an IS-IS area than in the corresponding OSPF area, and 439 because IS-IS is seen as more secure because it runs at layer 2. 441 2.4.2. IS-IS Topology Mode 443 When IS-IS is used to route both IPv4 and IPv6, then there is an 444 additional choice of whether to run IS-IS in single-topology or 445 multi-topology mode. 447 With single-topology mode (also known as Native mode) [RFC5308]: 449 o IS-IS keeps a single link-state database for both IPv4 and IPv6. 451 o There is a single set of link costs which apply to both IPv4 and 452 IPv6. 454 o All links in the network must support both IPv4 and IPv6, as the 455 calculation of routes does not take this into account. If some 456 links do not support IPv6 (or IPv4), then packets may get routed 457 across links where support is lacking and get dropped. This can 458 cause problems if some network devices do not support IPv6 (or 459 IPv4). 461 o It is also important to keep the previous point in mind when 462 adding or removing support for either IPv4 or IPv6. 464 With multi-topology mode [ref]: 466 o IS-IS keeps two link-state databases, one for IPv4 and one for 467 IPv6. 469 o IPv4 and IPv6 can have separate link metrics. Note that most 470 implementations today require separate link metrics: a number of 471 operators have rudely discovered that they have forgotten to 472 configure the IPv6 metric until sometime after deploying IPv6 in 473 multi-topology mode! 475 o Some links can be IPv4-only, some IPv6-only, and some dual-stack. 476 Routes to IPv4 and IPv6 addresses are computed separately and may 477 take different paths even if the addresses are located on the same 478 remote device. 480 o The previous point may help when adding or removing support for 481 either IPv4 or IPv6. 483 In the informal poll of operators, out of 12 production networks that 484 ran IS-IS for both IPv4 and IPv6, 6 used single topology mode, 4 used 485 multi-topology mode, and 2 did not specify. One motivation often 486 cited by then operators for using Single Topology mode was because 487 some device did not support multi-topology mode. 489 When asked, many people feel multi-topology mode is superior to 490 single-topology mode because it provides greater flexibility at 491 minimal extra cost. Never-the-less, as shown by the poll results, a 492 number of operators have used single-topology mode successfully. 494 Note that this issue does not come up with OSPF, since there is 495 nothing that corresponds to IS-IS single-topology mode with OSPF. 497 2.4.3. RIP / RIPng 499 A protocol option not described in the table above is RIP for IPv4 500 and RIPng for IPv6 [RFC2080]. These are distance vector protocols 501 that are almost universally considered to be inferior to OSPF, IS-IS, 502 or EIGRP for general use. 504 However, there is one specialized use where RIP/RIPng is still 505 considered to be appropriate: in star topology networks where a 506 single core device has lots and lots of links to edge devices and 507 each edge device has only a single path back to the core. In such 508 networks, the single path means that the limitations of RIP/RIPng are 509 mostly not relevant and the very light-weight nature of RIP/RIPng 510 gives it an advantage over the other protocols mentioned above. One 511 concrete example of this scenario is the use of RIP/RIPng between 512 cable modems and the CMTS. 514 2.5. BGP 516 2.5.1. Which Transport for Which Routes? 518 BGP these days is multi-protocol. It can carry routes from many 519 different families, and it can do this when the BGP session, or more 520 accurately the underlying TCP connection, runs over either IPv4 or 521 IPv6 (here referred to as either "IPv4 transport" or "IPv6 522 transport"). Given this flexibility, one of the biggest questions 523 when deploying BGP in a dual-stack network is the question of which 524 routes should be carried over sessions using IPv4 transport and which 525 should be carried over sessions using IPv6 transport. 527 To answer this question, consider the following table: 529 +----------------+-----------+----------------------+ 530 | Route Family | Transport | Comments | 531 +----------------+-----------+----------------------+ 532 | | | | 533 +----------------+-----------+----------------------+ 534 | Unlabeled IPv4 | IPv4 | Works well | 535 +----------------+-----------+----------------------+ 536 | Unlabeled IPv4 | IPv6 | Next-hop issues | 537 +----------------+-----------+----------------------+ 538 | Unlabeled IPv6 | IPv4 | Next-hop issues | 539 +----------------+-----------+----------------------+ 540 | Unlabeled IPv6 | IPv6 | Works well | 541 +----------------+-----------+----------------------+ 542 | | | | 543 +----------------+-----------+----------------------+ 544 | Labeled IPv4 | IPv4 | Works well | 545 +----------------+-----------+----------------------+ 546 | Labeled IPv4 | IPv6 | Next-hop issues | 547 +----------------+-----------+----------------------+ 548 | Labeled IPv6 | IPv4 | (6PE) Works well | 549 +----------------+-----------+----------------------+ 550 | Labeled IPv6 | IPv6 | Needs MPLS over IPv6 | 551 +----------------+-----------+----------------------+ 552 | | | | 553 +----------------+-----------+----------------------+ 554 | VPN IPv4 | IPv4 | Works well | 555 +----------------+-----------+----------------------+ 556 | VPN IPv4 | IPv6 | Next-hop issues | 557 +----------------+-----------+----------------------+ 558 | VPN IPv6 | IPv4 | (6VPE) Works well | 559 +----------------+-----------+----------------------+ 560 | VPN IPv6 | IPv6 | Needs MPLS over IPv6 | 561 +----------------+-----------+----------------------+ 563 The first column in this table lists various route families, where 564 "unlabeled" means SAFI 1, "labeled" means the routes carry an MPLS 565 label (SAFI 4, see [RFC3107]), and "VPN" means the routes are 566 normally associated with a layer-3 VPN (SAFI 128, see [RFC4364] ). 567 The second column lists the protocol used to transport the BGP 568 session, frequently specified by giving either an IPv4 or IPv6 569 address in the "neighbor" statement. 571 The third column comments on the combination in the first two 572 columns: 574 o For combinations marked "Works well", these combinations are 575 widely supported and are generally recommended. 577 o For combinations marked "Next-hop issues", these combinations are 578 less-widely supported and when supported, often have next-hop 579 issues. That is, the next-hop address is typically a v4-mapped 580 IPv6 address, which is based on some IPv4 address on the sending 581 router. This v4-mapped IPv6 address is often not reachable by 582 default using IPv6 routing. One common solution to this problem 583 is to use routing policy to change the next-hop to a different 584 IPv6 address. 586 o For combinations marked as "Needs MPLS over IPv6", these require 587 MPLS over IPv6 for full support, though special policy 588 configuration may allow them to be used with MPLS over IPv4. 590 Also, it is important to note that changing the set of address 591 families being carried over a BGP session requires the BGP session to 592 be reset (unless something like [I-D.ietf-idr-dynamic-cap] or 593 [I-D.ietf-idr-bgp-multisession] is in use). This is generally more 594 of an issue with eBGP sessions than iBGP sessions: for iBGP sessions 595 it is common practice for a router to have two iBGP sessions, one to 596 each member of a route reflector pair, so one can change the set of 597 address families on first one of the sessions and then the other. 599 The following subsections discuss specific scenarios in more detail. 601 2.5.1.1. BGP Sessions for Unlabeled Routes 603 Unlabeled routes are commonly carried on eBGP sessions, as well as on 604 iBGP sessions in networks where Internet traffic is carried unlabeled 605 across the network. In these scenarios, operators today most 606 commonly use two BGP sessions: one session is transported over IPv4 607 and carries the unlabeled IPv4 routes, while the second session is 608 transported over IPv6 and carries the unlabeled IPv6 routes. 610 There are several reasons for this choice: 612 o It gives a clean separation between IPv4 and IPv6. This can be 613 especially useful when first deploying IPv6 and troubleshooting 614 resulting problems. 616 o This avoids the next-hop problem described in note 1 above. 618 o The status of the routes follows the status of the underlying 619 transport. If, for example, the IPv6 data path between the two 620 BGP speakers fails, then the IPv6 session between the two speakers 621 will fail and the IPv6 routes will be withdrawn, which will allow 622 the traffic to be re-routed elsewhere. By contrast, if the IPv6 623 routes were transported over IPv4, then the failure of the IPv6 624 data path might leave a working IPv4 data path, so the BGP session 625 would remain up and the IPv6 routes would not be withdrawn, and 626 thus the IPv6 traffic would be sent into a black hole. 628 o It avoids resetting the BGP session when adding IPv6 to an 629 existing session, or when removing IPv4 from an existing session. 631 2.5.1.2. BGP sessions for Labeled or VPN Routes 633 In these scenarios, it is most common today to carry both the IPv4 634 and IPv6 routes over sessions transported over IPv4. This can be 635 done with either: (a) one session carrying both route families, or 636 (b) two sessions, one for each family. 638 Using a single session is usually appropriate for an iBGP session 639 going to a route reflector handling both route families. Using a 640 single session here usually means that the BGP session will reset 641 when changing the set of address families, but as noted above, this 642 is usually not a problem when redundant route reflectors are 643 involved. 645 In eBGP situations, two sessions are usually more appropriate. 647 2.5.2. eBGP Endpoints: Global or Link-Local Addresses? 649 When running eBGP over IPv6, there are two options for the addresses 650 to use at each end of the eBGP session (or more properly, the 651 underlying TCP session): 653 a. Use link-local addresses for the eBGP session, OR 655 b. Use global addresses for the eBGP session. 657 Note that the choice here is the addresses to use for the eBGP 658 sessions, and not whether the link itself has global (or unique- 659 local) addresses. In particular, it is quite possible for the eBGP 660 session to use link-local addresses even when the link has global 661 addresses. 663 The big attraction for option (a) is security: an eBGP session using 664 link-local addresses is extremely difficult to attack from a device 665 that is off-link. This provides very strong protection against TCP 666 RST and similar attacks. Though there are other ways to get an 667 equivalent level of security (e.g. GTSM [RFC5082], MD5 [RFC5925], or 668 ACLs), these other ways require additional configuration which can be 669 forgotten or potentially mis-configured. 671 However, there are a number of small disadvantages to using link- 672 local addresses: 674 o Using link-local addresses only works for single-hop eBGP 675 sessions; it does not work for multi-hop sessions. 677 o One must use "next-hop self" at both endpoints, otherwise re- 678 advertising routes learned via eBGP into iBGP will not work. 679 (Some products enable "next-hop self" in this situation 680 automatically). 682 o Operators and their tools are used to referring to eBGP sessions 683 by address only, something that is not possible with link-local 684 addresses. 686 o If one is configuring parallel eBGP sessions for IPv4 and IPv6 687 routes, then using link-local addresses for the IPv6 session 688 introduces extra operational differences between the two sessions 689 which could otherwise be avoided. 691 o On some products, an eBGP session using a link-local address is 692 more complex to configure than a session that uses a global 693 address. 695 o If hardware or other issues cause one to move the cable to a 696 different local interface, then reconfiguration is required at 697 both ends: at the local end because the interface has changed (and 698 with link-local addresses, the interface must always be specified 699 along with the address), and at the remote end because the link- 700 local address has likely changed. (Contrast this with using 701 global addresses, where less re-configuration is required at the 702 local end, and no reconfiguration is required at the remote end). 704 o Finally, a strict application of [RFC2545] forbids running eBGP 705 between link-local addresses, as [RFC2545] requires the BGP next- 706 hop field to contain at least a global address. 708 For these reasons, most operators today choose to have their eBGP 709 sessions use global addresses. 711 3. General Observations 713 There are two themes that run though many of the design choices in 714 this document. This section presents some general discussion on 715 these two themes. 717 3.1. Use of Link-Local Addresses 719 The proper use of link-local addresses is a common theme in the IPv6 720 network design choices. Link-layer addresses are, of course, always 721 present in an IPv6 network, but current network design practice 722 mostly ignores them, despite efforts such as [RFC7404]. 724 There are three main reasons for this current practice: 726 o Network operators are concerned about the volatility of link-local 727 addresses based on MAC addresses, despite the fact that this 728 concern can be overcome by manually-configuring link-local 729 addresses; 731 o It is very difficult to impossible to ping a link-local address 732 from a device that is not on the same subnet. This is a 733 troubleshooting disadvantage, though it can also be viewed as a 734 security advantage. 736 o Most operators are currently running networks that carry both IPv4 737 and IPv6 traffic, and wish to harmonize their IPv4 and IPv6 design 738 and operational practices where possible. 740 3.2. Separation of IPv4 and IPv6 742 Currently, most operators are running or planning to run networks 743 that carry both IPv4 and IPv6 traffic. Hence the question: To what 744 degree should IPv4 and IPv6 be kept separate? As can be seen above, 745 this breaks into two sub-questions: To what degree should IPv4 and 746 IPv6 traffic be kept separate, and to what degree should IPv4 and 747 IPv6 routing information be kept separate? 749 The general consensus around the first question is that IPv4 and IPv6 750 traffic should generally be mixed together. This recommendation is 751 driven by the operational simplicity of mixing the traffic, plus the 752 general observation that the service being offered to the end user is 753 Internet connectivity and most users do not know or care about the 754 differences between IPv4 and IPv6. Thus it is very desirable to mix 755 IPv4 and IPv6 on the same link to the end user. On other links, 756 separation is possible but more operationally complex, though it does 757 occasionally allow the operator to work around limitations on network 758 devices. The situation here is roughly comparable to IP and MPLS 759 traffic: many networks mix the two traffic types on the same links 760 without issues. 762 By contrast, there is more of an argument for carrying IPv6 routing 763 information over IPv6 transport, while leaving IPv4 routing 764 information on IPv4 transport. By doing this, one gets fate-sharing 765 between the control and data plane for each IP protocol version: if 766 the data plane fails for some reason, then often the control plane 767 will too. 769 4. IANA Considerations 771 This document makes no requests of IANA. 773 5. Security Considerations 775 This document introduces no new security considerations that are not 776 already documented elsewhere. 778 The following is a brief list of pointers to documents related to the 779 topics covered above that the reader may wish to review for security 780 considerations. 782 For general IPv6 security, [RFC4942] provides guidance on security 783 considerations around IPv6 transition and coexistence. 785 For OSPFv3, the base protocol specification [RFC5340] has a short 786 security considerations section which notes that the fundamental 787 mechanism for protecting OSPFv3 from attacks is the mechanism 788 described in [RFC4552]. 790 For IS-IS, [RFC5308] notes that ISIS for IPv6 raises no new security 791 considerations over ISIS for IPv4 over those documented in [ISO10589] 792 and [RFC5304]. 794 For BGP, [RFC2545] notes that BGP for IPv6 raises no new security 795 considerations over those present in BGP for IPv4. However, there 796 has been much discussion of BGP security recently, and the interested 797 reader is referred to the documents of the IETF's SIDR working group. 799 6. Acknowledgements 801 Many, many people in the V6OPS working group provided comments and 802 suggestions that made their way into this document. A partial list 803 includes: Rajiv Asati, Fred Baker, Michael Behringer, Marc Blanchet, 804 Ron Bonica, Randy Bush, Cameron Byrne, Brian Carpenter, KK 805 Chittimaneni, Tim Chown, Lorenzo Colitti, Gert Doering, Francis 806 Dupont, Bill Fenner, Kedar K Gaonkar, Chris Grundemann, Steinar Haug, 807 Ray Hunter, Joel Jaeggli, Victor Kuarsingh, Jen Linkova, Ivan 808 Pepelnjak, Alexandru Petrescu, Rob Shakir, Mark Smith, Jean-Francois 809 Tremblay, Dave Thaler, Tina Tsou, Eric Vyncke, Dan York, and 810 Xuxiaohu. 812 The authors would also like to thank Pradeep Jain and Alastair 813 Johnson for helpful comments on a very preliminary version of this 814 document. 816 7. Informative References 818 [I-D.ietf-idr-bgp-multisession] 819 Scudder, J., Appanna, C., and I. Varlashkin, "Multisession 820 BGP", draft-ietf-idr-bgp-multisession-07 (work in 821 progress), September 2012. 823 [I-D.ietf-idr-dynamic-cap] 824 Ramachandra, S. and E. Chen, "Dynamic Capability for BGP- 825 4", draft-ietf-idr-dynamic-cap-14 (work in progress), 826 December 2011. 828 [I-D.ietf-v6ops-host-addr-availability] 829 Colitti, L., Cerf, D., Cheshire, S., and d. 830 dschinazi@apple.com, "Host address availability 831 recommendations", draft-ietf-v6ops-host-addr- 832 availability-07 (work in progress), May 2016. 834 [I-D.ietf-v6ops-ula-usage-recommendations] 835 Liu, B. and S. Jiang, "Considerations For Using Unique 836 Local Addresses", draft-ietf-v6ops-ula-usage- 837 recommendations-05 (work in progress), May 2015. 839 [ISO10589] 840 International Standards Organization, "Intermediate system 841 to Intermediate system intra-domain routeing information 842 exchange protocol for use in conjunction with the protocol 843 for providing the connectionless-mode Network Service (ISO 844 8473)", International Standard 10589:2002, Nov 2002. 846 [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G., 847 and E. Lear, "Address Allocation for Private Internets", 848 BCP 5, RFC 1918, DOI 10.17487/RFC1918, February 1996, 849 . 851 [RFC2080] Malkin, G. and R. Minnear, "RIPng for IPv6", RFC 2080, 852 DOI 10.17487/RFC2080, January 1997, 853 . 855 [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, 856 DOI 10.17487/RFC2328, April 1998, 857 . 859 [RFC2545] Marques, P. and F. Dupont, "Use of BGP-4 Multiprotocol 860 Extensions for IPv6 Inter-Domain Routing", RFC 2545, 861 DOI 10.17487/RFC2545, March 1999, 862 . 864 [RFC3107] Rekhter, Y. and E. Rosen, "Carrying Label Information in 865 BGP-4", RFC 3107, DOI 10.17487/RFC3107, May 2001, 866 . 868 [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast 869 Addresses", RFC 4193, DOI 10.17487/RFC4193, October 2005, 870 . 872 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 873 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 874 2006, . 876 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private 877 Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 878 2006, . 880 [RFC4472] Durand, A., Ihren, J., and P. Savola, "Operational 881 Considerations and Issues with IPv6 DNS", RFC 4472, 882 DOI 10.17487/RFC4472, April 2006, 883 . 885 [RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality 886 for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006, 887 . 889 [RFC4852] Bound, J., Pouffary, Y., Klynsma, S., Chown, T., and D. 890 Green, "IPv6 Enterprise Network Analysis - IP Layer 3 891 Focus", RFC 4852, DOI 10.17487/RFC4852, April 2007, 892 . 894 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 895 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 896 DOI 10.17487/RFC4861, September 2007, 897 . 899 [RFC4942] Davies, E., Krishnan, S., and P. Savola, "IPv6 Transition/ 900 Co-existence Security Considerations", RFC 4942, 901 DOI 10.17487/RFC4942, September 2007, 902 . 904 [RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., Ed., and C. 905 Pignataro, "The Generalized TTL Security Mechanism 906 (GTSM)", RFC 5082, DOI 10.17487/RFC5082, October 2007, 907 . 909 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi 910 Topology (MT) Routing in Intermediate System to 911 Intermediate Systems (IS-ISs)", RFC 5120, 912 DOI 10.17487/RFC5120, February 2008, 913 . 915 [RFC5220] Matsumoto, A., Fujisaki, T., Hiromi, R., and K. Kanayama, 916 "Problem Statement for Default Address Selection in Multi- 917 Prefix Environments: Operational Issues of RFC 3484 918 Default Rules", RFC 5220, DOI 10.17487/RFC5220, July 2008, 919 . 921 [RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic 922 Authentication", RFC 5304, DOI 10.17487/RFC5304, October 923 2008, . 925 [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, 926 DOI 10.17487/RFC5308, October 2008, 927 . 929 [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF 930 for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, 931 . 933 [RFC5375] Van de Velde, G., Popoviciu, C., Chown, T., Bonness, O., 934 and C. Hahn, "IPv6 Unicast Address Assignment 935 Considerations", RFC 5375, DOI 10.17487/RFC5375, December 936 2008, . 938 [RFC5838] Lindem, A., Ed., Mirtorabi, S., Roy, A., Barnes, M., and 939 R. Aggarwal, "Support of Address Families in OSPFv3", 940 RFC 5838, DOI 10.17487/RFC5838, April 2010, 941 . 943 [RFC5925] Touch, J., Mankin, A., and R. Bonica, "The TCP 944 Authentication Option", RFC 5925, DOI 10.17487/RFC5925, 945 June 2010, . 947 [RFC5963] Gagliano, R., "IPv6 Deployment in Internet Exchange Points 948 (IXPs)", RFC 5963, DOI 10.17487/RFC5963, August 2010, 949 . 951 [RFC6180] Arkko, J. and F. Baker, "Guidelines for Using IPv6 952 Transition Mechanisms during IPv6 Deployment", RFC 6180, 953 DOI 10.17487/RFC6180, May 2011, 954 . 956 [RFC6296] Wasserman, M. and F. Baker, "IPv6-to-IPv6 Network Prefix 957 Translation", RFC 6296, DOI 10.17487/RFC6296, June 2011, 958 . 960 [RFC6342] Koodli, R., "Mobile Networks Considerations for IPv6 961 Deployment", RFC 6342, DOI 10.17487/RFC6342, August 2011, 962 . 964 [RFC6752] Kirkham, A., "Issues with Private IP Addressing in the 965 Internet", RFC 6752, DOI 10.17487/RFC6752, September 2012, 966 . 968 [RFC6782] Kuarsingh, V., Ed. and L. Howard, "Wireline Incremental 969 IPv6", RFC 6782, DOI 10.17487/RFC6782, November 2012, 970 . 972 [RFC6879] Jiang, S., Liu, B., and B. Carpenter, "IPv6 Enterprise 973 Network Renumbering Scenarios, Considerations, and 974 Methods", RFC 6879, DOI 10.17487/RFC6879, February 2013, 975 . 977 [RFC6883] Carpenter, B. and S. Jiang, "IPv6 Guidance for Internet 978 Content Providers and Application Service Providers", 979 RFC 6883, DOI 10.17487/RFC6883, March 2013, 980 . 982 [RFC7010] Liu, B., Jiang, S., Carpenter, B., Venaas, S., and W. 983 George, "IPv6 Site Renumbering Gap Analysis", RFC 7010, 984 DOI 10.17487/RFC7010, September 2013, 985 . 987 [RFC7217] Gont, F., "A Method for Generating Semantically Opaque 988 Interface Identifiers with IPv6 Stateless Address 989 Autoconfiguration (SLAAC)", RFC 7217, 990 DOI 10.17487/RFC7217, April 2014, 991 . 993 [RFC7381] Chittimaneni, K., Chown, T., Howard, L., Kuarsingh, V., 994 Pouffary, Y., and E. Vyncke, "Enterprise IPv6 Deployment 995 Guidelines", RFC 7381, DOI 10.17487/RFC7381, October 2014, 996 . 998 [RFC7404] Behringer, M. and E. Vyncke, "Using Only Link-Local 999 Addressing inside an IPv6 Network", RFC 7404, 1000 DOI 10.17487/RFC7404, November 2014, 1001 . 1003 [v6-addressing-plan] 1004 SurfNet, "Preparing an IPv6 Address Plan", 2013, 1005 . 1009 Authors' Addresses 1011 Philip Matthews 1012 Nokia 1013 600 March Road 1014 Ottawa, Ontario K2K 2E6 1015 Canada 1017 Phone: +1 613-784-3139 1018 Email: philip_matthews@magma.ca 1020 Victor Kuarsingh 1021 Cisco 1022 88 Queens Quay 1023 Toronto, ON M5J0B8 1024 Canada 1026 Email: victor@jvknet.com