idnits 2.17.1 draft-ietf-v6ops-design-choices-08.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 361: '... 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 (July 6, 2015) is 3216 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == 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 (~~), 2 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 Alcatel-Lucent 4 Intended status: Informational V. Kuarsingh 5 Expires: January 7, 2016 Dyn 6 July 6, 2015 8 Some Design Choices for IPv6 Networks 9 draft-ietf-v6ops-design-choices-08 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 January 7, 2016. 37 Copyright Notice 39 Copyright (c) 2015 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.1.1. Choice of Addresses in the Core . . . . . . . . . . . 3 58 2.2. Interfaces . . . . . . . . . . . . . . . . . . . . . . . 5 59 2.2.1. Mix IPv4 and IPv6 on the Same Layer-3 Interface? . . 5 60 2.2.2. Interfaces with Only Link-Local Addresses? . . . . . 6 61 2.3. Static Routes . . . . . . . . . . . . . . . . . . . . . . 8 62 2.3.1. Link-Local Next-Hop in a Static Route? . . . . . . . 8 63 2.4. IGPs . . . . . . . . . . . . . . . . . . . . . . . . . . 9 64 2.4.1. IGP Choice . . . . . . . . . . . . . . . . . . . . . 9 65 2.4.2. IS-IS Topology Mode . . . . . . . . . . . . . . . . . 11 66 2.4.3. RIP . . . . . . . . . . . . . . . . . . . . . . . . . 11 67 2.5. BGP . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 68 2.5.1. Which Transport for Which Routes? . . . . . . . . . . 12 69 2.5.1.1. BGP Sessions for Unlabeled Routes . . . . . . . . 13 70 2.5.1.2. BGP sessions for Labeled or VPN Routes . . . . . 14 71 2.5.2. eBGP Endpoints: Global or Link-Local Addresses? . . . 14 72 3. General Observations . . . . . . . . . . . . . . . . . . . . 16 73 3.1. Use of Link-Local Addresses . . . . . . . . . . . . . . . 16 74 3.2. Separation of IPv4 and IPv6 . . . . . . . . . . . . . . . 16 75 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 76 5. Security Considerations . . . . . . . . . . . . . . . . . . . 17 77 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 78 7. Informative References . . . . . . . . . . . . . . . . . . . 18 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 81 1. Introduction 83 This document discusses certain choices that arise when designing a 84 IPv6-only or dual-stack network. The focus is on routing-related 85 design choices that do not usually come up when designing an 86 IPv4-only network. The document presents each choice and the 87 alternatives, and then discusses the pros and cons of the 88 alternatives in detail. Where consensus currently exists around the 89 best practice, this is documented; otherwise the document simply 90 summarizes the current state of the discussion. Thus this document 91 serves to both document the reasoning behind best current practices 92 for IPv6, and to allow a designer to make an informed choice where no 93 such consensus exists. 95 This document does not present advice on strategies for adding IPv6 96 to a network, nor does it discuss transition mechanisms. For advice 97 in these areas, see [RFC6180] for general advice, [RFC6782] for 98 wireline service providers, [RFC6342] for mobile network providers, 99 [RFC5963] for exchange point operators, [RFC6883] for content 100 providers, and both [RFC4852] and [RFC7381] for enterprises. Nor 101 does this document discuss the particulars of creating an IPv6 102 addressing plan; for advice in this area, see [RFC5375] or 103 [v6-addressing-plan]. The details of ULA usage is also not 104 discussed; for this the reader is referred to 105 [I-D.ietf-v6ops-ula-usage-recommendations]. 107 Finally, this document focuses on unicast routing design only and 108 does not cover multicast or the issues involved in running MPLS over 109 IPv6 transport. 111 2. Design Choices 113 Each subsection below presents a design choice and discusses the pros 114 and cons of the various options. If there is consensus in the 115 industry for a particular option, then the consensus position is 116 noted. 118 2.1. Addresses 120 2.1.1. Choice of Addresses in the Core 122 One of the first choices a network designer needs to make is the type 123 of addresses to be used in the network core. Should the network use 124 provider-independent global addresses, "private" addresses (either 125 RFC 1918 addresses or unique-local addresses) or something else? 127 A related choice is whether to use only link-local addresses on 128 certain links. That choice is discussed later in the document; this 129 section is about those addresses that must be visible throughout the 130 network. 132 The following table lists the main options available. 134 +---------+------------+-------------------+------------------------+ 135 | GRT | End-User | ISP | Enterprise | 136 | Address | Traffic | | | 137 | Type | | | | 138 +---------+------------+-------------------+------------------------+ 139 | | | | | 140 +---------+------------+-------------------+------------------------+ 141 | PI | Hop-by-hop | Works | Works | 142 +---------+------------+-------------------+------------------------+ 143 | PI | Tunneled | Works. Using | Works. Using private | 144 | | | private space | space likely a better | 145 | | | likely a better | option. | 146 | | | option. | | 147 +---------+------------+-------------------+------------------------+ 148 | PA | Hop-by-hop | Works | Works | 149 +---------+------------+-------------------+------------------------+ 150 | PA | Tunneled | Works. Using | Works. Using private | 151 | | | private addresses | addresses likely | 152 | | | likely better | better option. | 153 | | | option. | | 154 +---------+------------+-------------------+------------------------+ 155 | Private | Hop-by-hop | Will likely cause | Works. Will probably | 156 | | | problems. See | require some sort of | 157 | | | discussion below. | NAT on links to the | 158 | | | | Internet. | 159 +---------+------------+-------------------+------------------------+ 160 | Private | Tunneled | Works | Works | 161 +---------+------------+-------------------+------------------------+ 163 As the table indicates, there are three options for the type of 164 addresses a network designer can use in the network core: 166 o PI - Globally-unique IPv4 or IPv6 addresses obtained directly from 167 an address registry. An organization which has such addresses is 168 considered to have "its own" address space. 170 o PA - Globally-unique IPv4 or IPv6 addresses obtained from an 171 upstream provider. Such addresses must be returned if the 172 relationship with the upstream provider ceases. 174 o Private - Either RFC 1918 IPv4 addresses or unique-local IPv6 175 addresses [RFC4193]. 177 In all cases, we are talking about the type of addresses used in the 178 GRT context (Global Routing Table aka base router). If end-user 179 traffic is routed hop-by-hop through the network based on the 180 destination address in the IP header, then this context is visible to 181 the end-user. However, if all end-user traffic is tunneled through 182 the core (for example, using MPLS) then this context is not visible 183 to the end-user. 185 First, consider the case where at least some end-user traffic is 186 routed hop-by-hop. In this case, the use of PI space is the best 187 option, as it gives the most flexibility in the future. However, 188 some organizations may be unable or unwilling to obtain PI space - in 189 this case PA space is the next-best choice. For an ISP, the use of 190 private address space is problematic - see [RFC6752] for a 191 discussion. For an enterprise, the use of private address space is 192 reasonable, but the enterprise will need to use NAT44 and/or 193 NPT[RFC6296] on links to the Internet. If the network has no 194 connection to the Internet, then obviously this is not a problem. 196 Now consider the case where all end-user traffic is tunneled through 197 the core and thus the core is not visible to other networks. In this 198 case, the use of private addresses is the most reasonable and re- 199 enforces the desire that these addresses have limited visibility. 200 The use of PI space is the next-best option - two reasons for 201 selecting this option is to provide flexibility in case some traffic 202 needs to be carried hop-by-hop in the future and to be absolutely 203 ensure that there are no address conflicts. Getting IPv4 PI space at 204 this time will be difficult, but IPv6 PI space is fairly easy. The 205 use of PA space is likely a poor option, since there is no short-term 206 advantage and a high likelihood of having to give back the address 207 space sometime in the future. 209 Not shown in the table above are combinations of the basic options. 210 An example of a combination is using both PA and ULA address space in 211 the hop-by-hop enterprise case. Combinations can reduce the 212 magnitude of the deficiency with a basic option, but does not 213 eliminate it completely. For example, using PA + ULA for the hop-by- 214 hop enterprise case reduces the amount of renumbering required when 215 changing providers compared with the pure PA case, but does not 216 eliminate it completely. 218 2.2. Interfaces 220 2.2.1. Mix IPv4 and IPv6 on the Same Layer-3 Interface? 222 If a network is going to carry both IPv4 and IPv6 traffic, as many 223 networks do today, then a fundamental question arises: Should an 224 operator mix IPv4 and IPv6 traffic or keep them separated? More 225 specifically, should the design: 227 a. Mix IPv4 and IPv6 traffic on the same layer-3 interface, OR 228 b. Separate IPv4 and IPv6 by using separate interfaces (e.g., two 229 physical links or two VLANs on the same link)? 231 Option (a) implies a single layer-3 interface at each end of the 232 connection with both IPv4 and IPv6 addresses; while option (b) 233 implies two layer-3 interfaces at each end, one for IPv4 addresses 234 and one with IPv6 addresses. 236 The advantages of option (a) include: 238 o Requires only half as many layer 3 interfaces as option (b), thus 239 providing better scaling; 241 o May require fewer physical ports, thus saving money; 243 o Can make the QoS implementation much easier (for example, rate- 244 limiting the combined IPv4 and IPv6 traffic to or from a 245 customer); 247 o Works well in practice, as any increase in IPv6 traffic is usually 248 counter-balanced by a corresponding decrease in IPv4 traffic to or 249 from the same host (ignoring the common pattern of an overall 250 increase in Internet usage); 252 o And is generally conceptually simpler. 254 For these reasons, there is a relatively strong consensus in the 255 operator community that option (a) is the preferred way to go. Most 256 networks today use option (a) wherever possible. 258 However, there can be times when option (b) is the pragmatic choice. 259 Most commonly, option (b) is used to work around limitations in 260 network equipment. One big example is the generally poor level of 261 support today for individual statistics on IPv4 traffic vs IPv6 262 traffic when option (a) is used. Other, device-specific, limitations 263 exist as well. It is expected that these limitations will go away as 264 support for IPv6 matures, making option (b) less and less attractive 265 until the day that IPv4 is finally turned off. 267 2.2.2. Interfaces with Only Link-Local Addresses? 269 As noted in the introduction, this document does not cover the ins 270 and outs around creating an IPv6 addressing plan. However, there is 271 one fundamental question in this area that often arises: Should an 272 interface: 274 a. Use only a link-local address ("link-local-only"), OR 275 b. Have global and/or unique-local addresses assigned in addition to 276 the link-local? 278 There are two advantages in interfaces with only link-local addresses 279 ("link-local-only interfaces"). The first advantage is ease of 280 configuration. In a network with a large number of link-local-only 281 interfaces, the operator can just enable an IGP on each router, 282 without going through the tedious process of assigning and tracking 283 the addresses for each interface. The second advantage is security. 284 Since packets with Link-Local destination addresses should not be 285 routed, it is very difficult to attack the associated nodes from an 286 off-link device. This implies less effort around maintaining 287 security ACLs. 289 Countering this advantage are various disadvantages to link-local- 290 only interfaces: 292 o It is not possible to ping a link-local-only interface from a 293 device that is not directly attached to the link. Thus, to 294 troubleshoot, one must typically log into a device that is 295 directly attached to the device in question, and execute the ping 296 from there. 298 o A traceroute passing over the link-local-only interface will 299 return the loopback or system address of the router, rather than 300 the address of the interface itself. 302 o In cases of parallel point to point links it is difficult to 303 determine which of the parallel links was taken when attempting to 304 troubleshoot unless one sends packets directly between the two 305 attached link-locals on the specific interfaces. Since many 306 network problems behave differently for traffic to/from a router 307 than for traffic through the router(s) in question, this can pose 308 a significant hurdle to some troubleshooting scenarios. 310 o On some routers, by default the link-layer address of the 311 interface is derived from the MAC address assigned to interface. 312 When this is done, swapping out the interface hardware (e.g. 313 interface card) will cause the link-layer address to change. In 314 some cases (peering config, ACLs, etc) this may require additional 315 changes. However, many devices allow the link-layer address of an 316 interface to be explicitly configured, which avoids this issue. 317 This problem should fade away over time as more and more routers 318 select interface identifiers according to the rules in [RFC7217]. 320 o The practice of naming router interfaces using DNS names is 321 difficult and not recommended when using link-locals only. More 322 generally, it is not recommended to put link-local addresses into 323 DNS; see [RFC4472]. 325 o It is often not possible to identify the interface or link (in a 326 database, email, etc) by giving just its address without also 327 specifying the link in some manner. 329 It should be noted that it is quite possible for the same link-local 330 address to be assigned to multiple interfaces. This can happen 331 because the MAC address is duplicated (due to manufacturing process 332 defaults or the use of virtualization), because a device deliberately 333 re-uses automatically-assigned link-local addresses on different 334 links, or because an operator manually assigns the same easy-to-type 335 link-local address to multiple interfaces. All these are allowed in 336 IPv6 as long as the addresses are used on different links. 338 For more discussion on the pros and cons, see [RFC7404]. See also 339 [RFC5375] for IPv6 unicast address assignment considerations. 341 Today, most operators use interfaces with global or unique-local 342 addresses (option b). 344 2.3. Static Routes 346 2.3.1. Link-Local Next-Hop in a Static Route? 348 For the most part, the use of static routes in IPv6 parallels their 349 use in IPv4. There is, however, one exception, which revolves around 350 the choice of next-hop address in the static route. Specifically, 351 should an operator: 353 a. Use the far-end's link-local address as the next-hop address, OR 355 b. Use the far-end's GUA/ULA address as the next-hop address? 357 Recall that the IPv6 specs for OSPF [RFC5340] and ISIS [RFC5308] 358 dictate that they always use link-locals for next-hop addresses. For 359 static routes, [RFC4861] section 8 says: 361 A router MUST be able to determine the link-local address for each 362 of its neighboring routers in order to ensure that the target 363 address in a Redirect message identifies the neighbor router by 364 its link-local address. For static routing, this requirement 365 implies that the next-hop router's address should be specified 366 using the link-local address of the router. 368 This implies that using a GUA or ULA as the next hop will prevent a 369 router from sending Redirect messages for packets that "hit" this 370 static route. All this argues for using a link-local as the next-hop 371 address in a static route. 373 However, there are two cases where using a link-local address as the 374 next-hop clearly does not work. One is when the static route is an 375 indirect (or multi-hop) static route. The second is when the static 376 route is redistributed into another routing protocol. In these 377 cases, the above text from RFC 4861 notwithstanding, either a GUA or 378 ULA must be used. 380 Furthermore, many network operators are concerned about the 381 dependency of the default link-local address on an underlying MAC 382 address, as described in the previous section. 384 Today most operators use GUAs as next-hop addresses. 386 2.4. IGPs 388 2.4.1. IGP Choice 390 One of the main decisions for a network operator looking to deploy 391 IPv6 is the choice of IGP (Interior Gateway Protocol) within the 392 network. The main options are OSPF, IS-IS and EIGRP. RIP is another 393 option, but very few networks run RIP in the core these days, so it 394 is covered in a separate section below. 396 OSPF [RFC2328] [RFC5340] and IS-IS [RFC5120][RFC5120] are both 397 standardized and link-state protocols. Standardized means they are 398 widely supported by vendors, while link-state means amongst other 399 things that they can support RSVP-TE, which is widely used for MPLS 400 signaling. Both of these protocols are widely deployed. By 401 contrast, EIGRP [ref] is a proprietary distance-vector protocol. 402 EIGRP is rarely deployed in service-provider networks, but is quite 403 common in enterprise networks. 405 +---------+---------+---------------+-------------+-----------------+ 406 | IGP for | IGP for | Multiple | Protocol | Similar | 407 | IPv4 | IPv6 | Known | separation | configuration | 408 | | | Deployments | | possible | 409 +---------+---------+---------------+-------------+-----------------+ 410 | | | | | | 411 +---------+---------+---------------+-------------+-----------------+ 412 | OSPFv2 | OSPFv3 | YES | YES | YES | 413 +---------+---------+---------------+-------------+-----------------+ 414 | OSPFv2 | IS-IS | YES | YES | - | 415 +---------+---------+---------------+-------------+-----------------+ 416 | OSPFv2 | EIGRP | - | YES | - | 417 +---------+---------+---------------+-------------+-----------------+ 418 | OSPFv3 | IS-IS | - | YES | - | 419 +---------+---------+---------------+-------------+-----------------+ 420 | OSPFv3 | EIGRP | - | YES | - | 421 +---------+---------+---------------+-------------+-----------------+ 422 | IS-IS | OSPFv3 | YES | YES | - | 423 +---------+---------+---------------+-------------+-----------------+ 424 | IS-IS | IS-IS | YES | - | YES | 425 +---------+---------+---------------+-------------+-----------------+ 426 | IS-IS | EIGRP | - | YES | - | 427 +---------+---------+---------------+-------------+-----------------+ 428 | EIGRP | OSPFv3 | ? | YES | - | 429 +---------+---------+---------------+-------------+-----------------+ 430 | EIGRP | IS-IS | - | YES | - | 431 +---------+---------+---------------+-------------+-----------------+ 432 | EIGRP | EIGRP | ? | - | YES | 433 +---------+---------+---------------+-------------+-----------------+ 435 Three of the options above are marked as "Mutiple Known 436 Deploymentsl". These options have seen significant deployments and 437 are generally considered to be good choices. The other options 438 represent valid choices, but have not seen widespread use at time of 439 writing. In particular, two if the options use OSPFv3 to route IPv4 440 [RFC5838], which is still rather new and untested. 442 A number of options are marked "Protocol separation". These options 443 use a different IGP protocol for IPv4 vs IPv6. With these options, a 444 problem with routing IPv6 is unlikely to affect IPv4 or visa-versa. 445 Some operator may consider this as a benefit when first introducing 446 dual stack capabilities or for ongoing technical reasons. 448 Three options are marked "Similar configuration possible". This 449 means it is possible (but not required) to use very similar IGP 450 configuration for IPv4 and IPv6: for example, the same area 451 boundaries, area numbering, link costing, etc. If you are happy with 452 your IPv4 IGP design, then this will likely be a consideration. By 453 contrast, the options that use, for example, IS-IS for one IP version 454 and OSPF for the other version will require considerably different 455 configuration, and will also require the operations staff to become 456 familiar with the difference between the two protocols. 458 With option (a), there is an additional choice of whether to run IS- 459 IS in single-topology mode (where IPv4 and IPv6 share a single 460 topology and a single set of link costs[RFC5308]) or multi-topology 461 mode (where IPv4 and IPv6 have separate topologies and potentially 462 different link costs[RFC5120]). A big problem with single-topology 463 mode is that it cannot easily accommodate devices that support 464 IPv4-only or IPv6-only. Thus, today there is general agreement that 465 multi-topology is the right choice as this gives the greatest 466 flexibility in network design. 468 It should be noted that a number of ISPs have run OSPF as their IPv4 469 IGP for quite a few years, but have selected IS-IS as their IPv6 IGP. 470 However, there are very few (none?) that have made the reverse 471 choice. This is, in part, because routers generally support more 472 nodes in an IS-IS area than in the corresponding OSPF area, and 473 because IS-IS is seen as more secure because it runs at layer 2. 475 2.4.2. IS-IS Topology Mode 477 When IS-IS is used to route both IPv4 and IPv6, then there is an 478 additional choice of whether to run IS-IS in single-topology or 479 multi-topology mode. Single-topology mode allows IPv4 and IPv6 to 480 share a single topology and a single set of link costs[RFC5308]. 481 Multi-topology mode allows separate IPv4 and IPv6 topologies with 482 potentially different link costs. 484 Traditional thinking has been that multi-topology mode offers the 485 most flexibility. Never-the-less, a number of operators have used 486 single-topology mode successfully, usually because some device does 487 not support multi-topology mode. 489 2.4.3. RIP 491 A protocol option described in the table in this section is RIP 492 [RFC2080]. RIP is a distance vector protocol with limitations in 493 larger networks. However there is prevalent use case in large 494 operator networks where RIP is used for edge facing core interfaces 495 to manage high count aggregation of dynamic routing endpoints. 496 Although not a mainline option for the network core as a whole, it is 497 commonly used in IPv4, and potentially in IPv6 for a common set of 498 links/functions. 500 2.5. BGP 502 2.5.1. Which Transport for Which Routes? 504 BGP these days is multi-protocol. It can carry routes from many 505 different families, and it can do this when the BGP session, or more 506 accurately the underlying TCP connection, runs over either IPv4 or 507 IPv6 (here referred to as either "IPv4 transport" or "IPv6 508 transport"). Given this flexibility, one of the biggest questions 509 when deploying BGP in a dual-stack network is the question of which 510 routes should be carried over sessions using IPv4 transport and which 511 should be carried over sessions using IPv6 transport. 513 To answer this question, consider the following table: 515 +----------------+-----------+----------------------+ 516 | Route Family | Transport | Comments | 517 +----------------+-----------+----------------------+ 518 | | | | 519 +----------------+-----------+----------------------+ 520 | Unlabeled IPv4 | IPv4 | Works well | 521 +----------------+-----------+----------------------+ 522 | Unlabeled IPv4 | IPv6 | Next-hop issues | 523 +----------------+-----------+----------------------+ 524 | Unlabeled IPv6 | IPv4 | Next-hop issues | 525 +----------------+-----------+----------------------+ 526 | Unlabeled IPv6 | IPv6 | Works well | 527 +----------------+-----------+----------------------+ 528 | | | | 529 +----------------+-----------+----------------------+ 530 | Labeled IPv4 | IPv4 | Works well | 531 +----------------+-----------+----------------------+ 532 | Labeled IPv4 | IPv6 | Next-hop issues | 533 +----------------+-----------+----------------------+ 534 | Labeled IPv6 | IPv4 | (6PE) Works well | 535 +----------------+-----------+----------------------+ 536 | Labeled IPv6 | IPv6 | Needs MPLS over IPv6 | 537 +----------------+-----------+----------------------+ 538 | | | | 539 +----------------+-----------+----------------------+ 540 | VPN IPv4 | IPv4 | Works well | 541 +----------------+-----------+----------------------+ 542 | VPN IPv4 | IPv6 | Next-hop issues | 543 +----------------+-----------+----------------------+ 544 | VPN IPv6 | IPv4 | (6VPE) Works well | 545 +----------------+-----------+----------------------+ 546 | VPN IPv6 | IPv6 | Needs MPLS over IPv6 | 547 +----------------+-----------+----------------------+ 549 The first column in this table lists various route families, where 550 "unlabeled" means SAFI 1, "labeled" means the routes carry an MPLS 551 label (SAFI 4, see [RFC3107]), and "VPN" means the routes are 552 normally associated with a layer-3 VPN (SAFI 128, see [RFC4364] ). 553 The second column lists the protocol used to transport the BGP 554 session, frequently specified by giving either an IPv4 or IPv6 555 address in the "neighbor" statement. 557 The third column comments on the combination in the first two 558 columns: 560 o For combinations marked "Works well", these combinations are 561 widely supported and are generally recommended. 563 o For combinations marked "Next-hop issues", these combinations are 564 less-widely supported and when supported, often have next-hop 565 issues. That is, the next-hop address is typically a v4-mapped 566 IPv6 address, which is based on some IPv4 address on the sending 567 router. This v4-mapped IPv6 address is often not reachable by 568 default using IPv6 routing. One common solution to this problem 569 is to use routing policy to change the next-hop to a different 570 IPv6 address. 572 o For combinations marked as "Needs MPLS over IPv6", these require 573 MPLS over IPv6 for full support, though special policy 574 configuration may allow them to be used with MPLS over IPv4. 576 Also, it is important to note that changing the set of address 577 families being carried over a BGP session requires the BGP session to 578 be reset (unless something like [I-D.ietf-idr-dynamic-cap] or 579 [I-D.ietf-idr-bgp-multisession] is in use). This is generally more 580 of an issue with eBGP sessions than iBGP sessions: for iBGP sessions 581 it is common practice for a router to have two iBGP sessions, one to 582 each member of a route reflector pair, so one can change the set of 583 address families on first one of the sessions and then the other. 585 The following subsections discuss specific scenarios in more detail. 587 2.5.1.1. BGP Sessions for Unlabeled Routes 589 Unlabeled routes are commonly carried on eBGP sessions, as well as on 590 iBGP sessions in networks where Internet traffic is carried unlabeled 591 across the network. In these scenarios, operators today most 592 commonly use two BGP sessions: one session is transported over IPv4 593 and carries the unlabeled IPv4 routes, while the second session is 594 transported over IPv6 and carries the unlabeled IPv6 routes. 596 There are several reasons for this choice: 598 o It gives a clean separation between IPv4 and IPv6. This can be 599 especially useful when first deploying IPv6 and troubleshooting 600 resulting problems. 602 o This avoids the next-hop problem described in note 1 above. 604 o The status of the routes follows the status of the underlying 605 transport. If, for example, the IPv6 data path between the two 606 BGP speakers fails, then the IPv6 session between the two speakers 607 will fail and the IPv6 routes will be withdrawn, which will allow 608 the traffic to be re-routed elsewhere. By contrast, if the IPv6 609 routes were transported over IPv4, then the failure of the IPv6 610 data path might leave a working IPv4 data path, so the BGP session 611 would remain up and the IPv6 routes would not be withdrawn, and 612 thus the IPv6 traffic would be sent into a black hole. 614 o It avoids resetting the BGP session when adding IPv6 to an 615 existing session, or when removing IPv4 from an existing session. 617 2.5.1.2. BGP sessions for Labeled or VPN Routes 619 In these scenarios, it is most common today to carry both the IPv4 620 and IPv6 routes over sessions transported over IPv4. This can be 621 done with either: (a) one session carrying both route families, or 622 (b) two sessions, one for each family. 624 Using a single session is usually appropriate for an iBGP session 625 going to a route reflector handling both route families. Using a 626 single session here usually means that the BGP session will reset 627 when changing the set of address families, but as noted above, this 628 is usually not a problem when redundant route reflectors are 629 involved. 631 In eBGP situations, two sessions are usually more appropriate. 633 2.5.2. eBGP Endpoints: Global or Link-Local Addresses? 635 When running eBGP over IPv6, there are two options for the addresses 636 to use at each end of the eBGP session (or more properly, the 637 underlying TCP session): 639 a. Use link-local addresses for the eBGP session, OR 641 b. Use global addresses for the eBGP session. 643 Note that the choice here is the addresses to use for the eBGP 644 sessions, and not whether the link itself has global (or unique- 645 local) addresses. In particular, it is quite possible for the eBGP 646 session to use link-local addresses even when the link has global 647 addresses. 649 The big attraction for option (a) is security: an eBGP session using 650 link-local addresses is extremely difficult to attack from a device 651 that is off-link. This provides very strong protection against TCP 652 RST and similar attacks. Though there are other ways to get an 653 equivalent level of security (e.g. GTSM [RFC5082], MD5 [RFC5925], or 654 ACLs), these other ways require additional configuration which can be 655 forgotten or potentially mis-configured. 657 However, there are a number of small disadvantages to using link- 658 local addresses: 660 o Using link-local addresses only works for single-hop eBGP 661 sessions; it does not work for multi-hop sessions. 663 o One must use "next-hop self" at both endpoints, otherwise re- 664 advertising routes learned via eBGP into iBGP will not work. 665 (Some products enable "next-hop self" in this situation 666 automatically). 668 o Operators and their tools are used to referring to eBGP sessions 669 by address only, something that is not possible with link-local 670 addresses. 672 o If one is configuring parallel eBGP sessions for IPv4 and IPv6 673 routes, then using link-local addresses for the IPv6 session 674 introduces extra operational differences between the two sessions 675 which could otherwise be avoided. 677 o On some products, an eBGP session using a link-local address is 678 more complex to configure than a session that uses a global 679 address. 681 o If hardware or other issues cause one to move the cable to a 682 different local interface, then reconfiguration is required at 683 both ends: at the local end because the interface has changed (and 684 with link-local addresses, the interface must always be specified 685 along with the address), and at the remote end because the link- 686 local address has likely changed. (Contrast this with using 687 global addresses, where less re-configuration is required at the 688 local end, and no reconfiguration is required at the remote end). 690 o Finally, a strict application of [RFC2545] forbids running eBGP 691 between link-local addresses, as [RFC2545] requires the BGP next- 692 hop field to contain at least a global address. 694 For these reasons, most operators today choose to have their eBGP 695 sessions use global addresses. 697 3. General Observations 699 There are two themes that run though many of the design choices in 700 this document. This section presents some general discussion on 701 these two themes. 703 3.1. Use of Link-Local Addresses 705 The proper use of link-local addresses is a common theme in the IPv6 706 network design choices. Link-layer addresses are, of course, always 707 present in an IPv6 network, but current network design practice 708 mostly ignores them, despite efforts such as [RFC7404]. 710 There are three main reasons for this current practice: 712 o Network operators are concerned about the volatility of link-local 713 addresses based on MAC addresses, despite the fact that this 714 concern can be overcome by manually-configuring link-local 715 addresses; 717 o It is very difficult to impossible to ping a link-local address 718 from a device that is not on the same subnet. This is a 719 troubleshooting disadvantage, though it can also be viewed as a 720 security advantage. 722 o Most operators are currently running networks that carry both IPv4 723 and IPv6 traffic, and wish to harmonize their IPv4 and IPv6 design 724 and operational practices where possible. 726 3.2. Separation of IPv4 and IPv6 728 Currently, most operators are running or planning to run networks 729 that carry both IPv4 and IPv6 traffic. Hence the question: To what 730 degree should IPv4 and IPv6 be kept separate? As can be seen above, 731 this breaks into two sub-questions: To what degree should IPv4 and 732 IPv6 traffic be kept separate, and to what degree should IPv4 and 733 IPv6 routing information be kept separate? 735 The general consensus around the first question is that IPv4 and IPv6 736 traffic should generally be mixed together. This recommendation is 737 driven by the operational simplicity of mixing the traffic, plus the 738 general observation that the service being offered to the end user is 739 Internet connectivity and most users do not know or care about the 740 differences between IPv4 and IPv6. Thus it is very desirable to mix 741 IPv4 and IPv6 on the same link to the end user. On other links, 742 separation is possible but more operationally complex, though it does 743 occasionally allow the operator to work around limitations on network 744 devices. The situation here is roughly comparable to IP and MPLS 745 traffic: many networks mix the two traffic types on the same links 746 without issues. 748 By contrast, there is more of an argument for carrying IPv6 routing 749 information over IPv6 transport, while leaving IPv4 routing 750 information on IPv4 transport. By doing this, one gets fate-sharing 751 between the control and data plane for each IP protocol version: if 752 the data plane fails for some reason, then often the control plane 753 will too. 755 4. IANA Considerations 757 This document makes no requests of IANA. 759 5. Security Considerations 761 This document introduces no new security considerations that are not 762 already documented elsewhere. 764 The following is a brief list of pointers to documents related to the 765 topics covered above that the reader may wish to review for security 766 considerations. 768 For general IPv6 security, [RFC4942] provides guidance on security 769 considerations around IPv6 transition and coexistence. 771 For OSPFv3, the base protocol specification [RFC5340] has a short 772 security considerations section which notes that the fundamental 773 mechanism for protecting OSPFv3 from attacks is the mechanism 774 described in [RFC4552]. 776 For IS-IS, [RFC5308] notes that ISIS for IPv6 raises no new security 777 considerations over ISIS for IPv4 over those documented in [ISO10589] 778 and [RFC5304]. 780 For BGP, [RFC2545] notes that BGP for IPv6 raises no new security 781 considerations over those present in BGP for IPv4. However, there 782 has been much discussion of BGP security recently, and the interested 783 reader is referred to the documents of the IETF's SIDR working group. 785 6. Acknowledgements 787 Many, many people in the V6OPS working group provided comments and 788 suggestions that made their way into this document. A partial list 789 includes: Rajiv Asati, Fred Baker, Michael Behringer, Marc Blanchet, 790 Ron Bonica, Randy Bush, Cameron Byrne, Brian Carpenter, KK 791 Chittimaneni, Tim Chown, Lorenzo Colitti, Gert Doering, Francis 792 Dupont, Bill Fenner, Kedar K Gaonkar, Chris Grundemann, Steinar Haug, 793 Ray Hunter, Joel Jaeggli, Victor Kuarsingh, Jen Linkova, Ivan 794 Pepelnjak, Alexandru Petrescu, Rob Shakir, Mark Smith, Jean-Francois 795 Tremblay, Dave Thaler, Tina Tsou, Eric Vyncke, Dan York, and 796 Xuxiaohu. 798 The authors would also like to thank Pradeep Jain and Alastair 799 Johnson for helpful comments on a very preliminary version of this 800 document. 802 7. Informative References 804 [I-D.ietf-idr-bgp-multisession] 805 Scudder, J., Appanna, C., and I. Varlashkin, "Multisession 806 BGP", draft-ietf-idr-bgp-multisession-07 (work in 807 progress), September 2012. 809 [I-D.ietf-idr-dynamic-cap] 810 Ramachandra, S. and E. Chen, "Dynamic Capability for BGP- 811 4", draft-ietf-idr-dynamic-cap-14 (work in progress), 812 December 2011. 814 [I-D.ietf-v6ops-ula-usage-recommendations] 815 Liu, B. and S. Jiang, "Considerations For Using Unique 816 Local Addresses", draft-ietf-v6ops-ula-usage- 817 recommendations-05 (work in progress), May 2015. 819 [ISO10589] 820 International Standards Organization, "Intermediate system 821 to Intermediate system intra-domain routeing information 822 exchange protocol for use in conjunction with the protocol 823 for providing the connectionless-mode Network Service (ISO 824 8473)", International Standard 10589:2002, Nov 2002. 826 [RFC2080] Malkin, G. and R. Minnear, "RIPng for IPv6", RFC 2080, 827 January 1997. 829 [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. 831 [RFC2545] Marques, P. and F. Dupont, "Use of BGP-4 Multiprotocol 832 Extensions for IPv6 Inter-Domain Routing", RFC 2545, March 833 1999. 835 [RFC3107] Rekhter, Y. and E. Rosen, "Carrying Label Information in 836 BGP-4", RFC 3107, May 2001. 838 [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast 839 Addresses", RFC 4193, October 2005. 841 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private 842 Networks (VPNs)", RFC 4364, February 2006. 844 [RFC4472] Durand, A., Ihren, J., and P. Savola, "Operational 845 Considerations and Issues with IPv6 DNS", RFC 4472, April 846 2006. 848 [RFC4552] Gupta, M. and N. Melam, "Authentication/Confidentiality 849 for OSPFv3", RFC 4552, June 2006. 851 [RFC4852] Bound, J., Pouffary, Y., Klynsma, S., Chown, T., and D. 852 Green, "IPv6 Enterprise Network Analysis - IP Layer 3 853 Focus", RFC 4852, April 2007. 855 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 856 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 857 September 2007. 859 [RFC4942] Davies, E., Krishnan, S., and P. Savola, "IPv6 Transition/ 860 Co-existence Security Considerations", RFC 4942, September 861 2007. 863 [RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., and C. 864 Pignataro, "The Generalized TTL Security Mechanism 865 (GTSM)", RFC 5082, October 2007. 867 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi 868 Topology (MT) Routing in Intermediate System to 869 Intermediate Systems (IS-ISs)", RFC 5120, February 2008. 871 [RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic 872 Authentication", RFC 5304, October 2008. 874 [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, October 875 2008. 877 [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF 878 for IPv6", RFC 5340, July 2008. 880 [RFC5375] Van de Velde, G., Popoviciu, C., Chown, T., Bonness, O., 881 and C. Hahn, "IPv6 Unicast Address Assignment 882 Considerations", RFC 5375, December 2008. 884 [RFC5838] Lindem, A., Mirtorabi, S., Roy, A., Barnes, M., and R. 885 Aggarwal, "Support of Address Families in OSPFv3", RFC 886 5838, April 2010. 888 [RFC5925] Touch, J., Mankin, A., and R. Bonica, "The TCP 889 Authentication Option", RFC 5925, June 2010. 891 [RFC5963] Gagliano, R., "IPv6 Deployment in Internet Exchange Points 892 (IXPs)", RFC 5963, August 2010. 894 [RFC6180] Arkko, J. and F. Baker, "Guidelines for Using IPv6 895 Transition Mechanisms during IPv6 Deployment", RFC 6180, 896 May 2011. 898 [RFC6296] Wasserman, M. and F. Baker, "IPv6-to-IPv6 Network Prefix 899 Translation", RFC 6296, June 2011. 901 [RFC6342] Koodli, R., "Mobile Networks Considerations for IPv6 902 Deployment", RFC 6342, August 2011. 904 [RFC6752] Kirkham, A., "Issues with Private IP Addressing in the 905 Internet", RFC 6752, September 2012. 907 [RFC6782] Kuarsingh, V. and L. Howard, "Wireline Incremental IPv6", 908 RFC 6782, November 2012. 910 [RFC6883] Carpenter, B. and S. Jiang, "IPv6 Guidance for Internet 911 Content Providers and Application Service Providers", RFC 912 6883, March 2013. 914 [RFC7217] Gont, F., "A Method for Generating Semantically Opaque 915 Interface Identifiers with IPv6 Stateless Address 916 Autoconfiguration (SLAAC)", RFC 7217, April 2014. 918 [RFC7381] Chittimaneni, K., Chown, T., Howard, L., Kuarsingh, V., 919 Pouffary, Y., and E. Vyncke, "Enterprise IPv6 Deployment 920 Guidelines", RFC 7381, October 2014. 922 [RFC7404] Behringer, M. and E. Vyncke, "Using Only Link-Local 923 Addressing inside an IPv6 Network", RFC 7404, November 924 2014. 926 [v6-addressing-plan] 927 SurfNet, "Preparing an IPv6 Address Plan", 2013, 928 . 932 Authors' Addresses 934 Philip Matthews 935 Alcatel-Lucent 936 600 March Road 937 Ottawa, Ontario K2K 2E6 938 Canada 940 Phone: +1 613-784-3139 941 Email: philip_matthews@magma.ca 943 Victor Kuarsingh 944 Dyn 945 150 Dow Street 946 Manchester, NH 03101 947 USA 949 Email: victor@jvknet.com