idnits 2.17.1 draft-ietf-opsawg-ipfix-bgp-community-07.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 abstract seems to contain references ([RFC8092], [RFC4360], [RFC7011], [RFC1997]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. == There are 6 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (May 12, 2018) is 2148 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-36) exists of draft-ietf-idr-bgp-extended-messages-24 Summary: 1 error (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 opsawg Z. Li 3 Internet-Draft R. Gu 4 Intended status: Standards Track China Mobile 5 Expires: November 13, 2018 J. Dong 6 Huawei Technologies 7 May 12, 2018 9 Export BGP community information in IP Flow Information Export (IPFIX) 10 draft-ietf-opsawg-ipfix-bgp-community-07 12 Abstract 14 By introducing new Information Elements (IEs), this draft extends the 15 existing BGP related IEs to enable IPFIX [RFC7011] to export the BGP 16 community information, including the information of BGP standard 17 community [RFC1997], BGP extended community [RFC4360], and BGP large 18 community [RFC8092]. Network traffic information can then be 19 accumulated and analysed at the BGP community granularity, which 20 represents the traffic of different kinds of customers, services, or 21 geographical regions according to the network operator's BGP 22 community planning. Network traffic information at the BGP community 23 granularity is useful for network traffic analysis and engineering. 25 To clarify, no new BGP community attribute is defined in this 26 document and this document has no purpose to replace BGP Monitoring 27 Protocol (BMP) defined in RFC7854. The IEs introduced in this 28 document are used by IPFIX together with other IEs to facilitate the 29 IPFIX collector analyzing the network traffic at the BGP community 30 granularity without running the heavy BGP protocol. When needed, the 31 mediator or collector can use the IEs introduced in this document to 32 report the BGP community related traffic flow information it gets 33 either from exporters or through local correlation to other IPFIX 34 devices. 36 Status of This Memo 38 This Internet-Draft is submitted in full conformance with the 39 provisions of BCP 78 and BCP 79. 41 Internet-Drafts are working documents of the Internet Engineering 42 Task Force (IETF). Note that other groups may also distribute 43 working documents as Internet-Drafts. The list of current Internet- 44 Drafts is at https://datatracker.ietf.org/drafts/current/. 46 Internet-Drafts are draft documents valid for a maximum of six months 47 and may be updated, replaced, or obsoleted by other documents at any 48 time. It is inappropriate to use Internet-Drafts as reference 49 material or to cite them other than as "work in progress." 51 This Internet-Draft will expire on November 13, 2018. 53 Copyright Notice 55 Copyright (c) 2018 IETF Trust and the persons identified as the 56 document authors. All rights reserved. 58 This document is subject to BCP 78 and the IETF Trust's Legal 59 Provisions Relating to IETF Documents 60 (https://trustee.ietf.org/license-info) in effect on the date of 61 publication of this document. Please review these documents 62 carefully, as they describe your rights and restrictions with respect 63 to this document. Code Components extracted from this document must 64 include Simplified BSD License text as described in Section 4.e of 65 the Trust Legal Provisions and are provided without warranty as 66 described in the Simplified BSD License. 68 Table of Contents 70 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 71 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 72 3. BGP Community based Traffic Collection . . . . . . . . . . . 5 73 4. IEs for BGP Standard Community . . . . . . . . . . . . . . . 7 74 4.1. bgpCommunity . . . . . . . . . . . . . . . . . . . . . . 7 75 4.2. bgpSourceCommunityList . . . . . . . . . . . . . . . . . 7 76 4.3. bgpDestinationCommunityList . . . . . . . . . . . . . . . 8 77 5. IEs for BGP Extended Community . . . . . . . . . . . . . . . 8 78 5.1. bgpExtendedCommunity . . . . . . . . . . . . . . . . . . 9 79 5.2. bgpSourceExtendedCommunityList . . . . . . . . . . . . . 9 80 5.3. bgpDestinationExtendedCommunityList . . . . . . . . . . . 10 81 6. IEs for BGP Large Community . . . . . . . . . . . . . . . . . 10 82 6.1. bgpLargeCommunity . . . . . . . . . . . . . . . . . . . . 11 83 6.2. bgpSourceLargeCommunityList . . . . . . . . . . . . . . . 11 84 6.3. bgpDestinationLargeCommunityList . . . . . . . . . . . . 12 85 7. Operational Considerations . . . . . . . . . . . . . . . . . 12 86 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 87 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 88 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 89 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 90 11.1. Normative References . . . . . . . . . . . . . . . . . . 16 91 11.2. Informative References . . . . . . . . . . . . . . . . . 16 92 Appendix A. Encoding Example . . . . . . . . . . . . . . . . . . 18 93 A.1. Template Record . . . . . . . . . . . . . . . . . . . . . 18 94 A.2. Data Set . . . . . . . . . . . . . . . . . . . . . . . . 19 95 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 97 1. Introduction 99 IP Flow Information Export (IPFIX) [RFC7011] provides network 100 administrators with traffic flow information using the Information 101 Elements (IEs) defined in [IANA-IPFIX] registries. Based on the 102 traffic flow information, network administrators know the amount and 103 direction of the traffic in their network, then they can optimize 104 their network when needed. For example, they can shift some flows 105 from the congested links to the low utilized links through a SDN 106 controller or PCE [RFC4655]. 108 [IANA-IPFIX] has already defined the following IEs for traffic flow 109 information exporting in different granularities: sourceIPv4Address, 110 sourceIPv4Prefix, destinationIPv4Address, destinationIPv4Prefix, 111 bgpSourceAsNumber, bgpDestinationAsNumber, bgpNextHopIPv4Address, 112 etc. In some circumstances, however, especially when traffic 113 engineering and optimization are executed in the Tier 1 or Tier 2 114 operators' backbone networks, traffic flow information based on these 115 IEs may not be suitable. Flow information based on IP address or IP 116 prefix may provide much too fine granularity for a large network. On 117 the contrary, flow information based on AS number may be too coarse. 119 BGP community is a BGP path attribute defined in IDR (Inter Domain 120 Routing) working group. The already defined BGP community attribute 121 includes the standard community defined in [RFC1997], the extended 122 community defined in [RFC4360], and the large community defined in 123 [RFC8092]. BGP community attribute has a variety of use cases, one 124 practice of which is to use BGP community with planned specific 125 values to represent the groups of customers, services, geographical 126 and topological regions, which is used by a lot of operators in their 127 field networks. Please refer to [RFC4384], [RFC8195] and Section 3 128 of this document for the detailed examples. To know the traffic 129 generated by differnt kinds of customers, from differnt geographical 130 or topological regions, by differnt kinds of customers in differnt 131 regions, we need the corresponding community information related to 132 the traffic flow exported by IPFIX. Netwok traffic statistic at the 133 BGP community granularity is useful not only for the traffic 134 analyzing, but also can then be used by other applications, such as 135 the traffic optimization applications located in IPFIX collector, SDN 136 controller or PCE. [Community-TE] also states analyzing network 137 traffic information at the BGP community granularity is prefered for 138 inbound traffic engineering. However, there is no IE defined for BGP 139 community attribute in [IANA-IPFIX] yet. 141 Flow information based on BGP community may be collected by a 142 mediator defined in [RFC6183]. Mediator is responsible for the 143 correlation between flow information and BGP community. However no 144 IEs are defined in [RFC6183] for exporting BGP community information 145 in IPFIX. Furthermore, to correlate the BGP community with the flow 146 information, mediator needs to learn BGP routes and perform lookup in 147 the BGP routing table to get the matching entry for a specific flow. 148 Neither BGP route learning nor routing table lookup is trivial for a 149 mediator. Mediator is mainly introduced to release the performance 150 requirement for the exporter [RFC5982]. In fact, to obtain the 151 information for the already defined BGP related IEs, such as 152 bgpSourceAsNumber, bgpDestinationAsNumber, and bgpNextHopIPv4Address, 153 etc, the exporter has to hold the up-to-date BGP routing table and 154 perform lookup in the BGP routing table. The exporter can obtain the 155 BGP community information in the same procedure, thus the additional 156 load added by exporting BGP community information is minimal if the 157 exporter is already exporting the existing BGP related IEs. It is 158 RECOMMENDED that the BGP community information be exported by the 159 exporter directly using IPFIX. 161 Through running BGP [RFC4271] or BMP [RFC7854] and performing lookup 162 in the BGP routing table to get the matching entry for a specific 163 flow (we call it correlation), IPFIX collectors and other 164 applications, such as SDN controller or PCE, can figure up the 165 network traffic at the BGP community granularity. However, neither 166 running BGP or BMP protocol nor routing table lookup is trivial for 167 the IPFIX collectors and other applications. Moreover correlation 168 between IPFIX flow information and the BGP RIB on the exporter (such 169 as router) is more accurate, compared to the correlation on a 170 collector, since the BGP routing table may be updated when the IPFIX 171 collectors and other applications reveive the IPFIX flow information. 172 And as stated above, the exporter can obtain the BGP community 173 information in the same procedure when it obtains other BGP related 174 informaiton. So exporting the BGP community information directly by 175 the exporter to the collector is the efficient and accurate way. If 176 the IPFIX collectors and other applications only want to figure up 177 the network traffic at the BGP community granularity, they do not 178 need to run the heavy BGP or BMP protocol when the BGP community 179 information can be obtained by IPFIX. However, we have to clarify, 180 the BMP protocol has its own application scenario, the mechanisum 181 introduced in this document has no purpose to replace it. 183 By introducing new IEs, this draft extends the existing BGP related 184 IEs to enable IPFIX [RFC7011] to export the BGP community 185 information, including BGP standard community defined in [RFC1997], 186 BGP extended community defined in [RFC4360], and BGP large community 187 defined in [RFC8092]. Flow information, including packetDeltaCount, 188 octetDeltaCount [RFC7012] etc, can then be accumulated and analysed 189 by the collector or other applications, such as SDN controller or PCE 190 [RFC4655], at the BGP community granularity, which is useful for 191 knowing the traffic generted by different kinds of customers, from 192 differnt geographical or topological regions according to the 193 operator's BGP community plan, and can then be used by the traffic 194 engineering or traffic optimization applications, especially in the 195 backbone network. 197 The IEs introduced in this document are applicable for both IPv4 and 198 IPv6 traffic. Both the exporter and the mediator can use these IEs 199 to export BGP community information in IPFIX. When needed, the 200 mediator or collector can use these IEs to report the BGP community 201 related traffic flow information it gets either from exporters or 202 through local correlation to other IPFIX devices. 204 To clarify, no new BGP community attribute is defined in this 205 document, IDR (Inter Domain Routing) working group is the right place 206 to define new community attributes for the BGP protocol. 208 Note that this document does not update the IPFIX specification 209 [RFC7011] and the Information Model [RFC7012] because IANA's IPFIX 210 registry [IANA-IPFIX] is the ultimate Information Element reference, 211 per Section 1 of [RFC7012]. 213 Please refer [IANA-IPFIX] for the whole list of the already defined 214 BGP related IEs. 216 Please refer Appendix A for the encoding example and Section 3 for a 217 detailed use case. 219 2. Terminology 221 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 222 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 223 document are to be interpreted as described in [RFC2119]. 225 3. BGP Community based Traffic Collection 227 [RFC4384] introduces the mechanism of using BGP standard communities 228 and extended communities to collect the geographical and topological 229 related information in BGP routing system. [RFC8195] gives some 230 examples about the application of BGP large communities to represent 231 the geographical regions. Since the network traffic at the BGP 232 community granularity represents the traffic generted by different 233 kinds of customers, from differnt geographical regions according to 234 the network operator's BGP community plan, it is useful for the 235 network operators to analyze and optimize the network traffic among 236 different customers and regions. This section gives a use case in 237 which the network operator uses the BGP community based traffic 238 information to adjust the network paths for different traffic flows. 240 Considering the following scenario, AS C provides transit connection 241 between AS A and B. By tagging with different BGP communities, the 242 routes of AS A and B are categorized into several groups respectively 243 with the operator's plan. For example community A:X and A:Y are used 244 for the routes originated from different geographical regions in AS 245 A, and community B:M and B:N are used for the routes representing the 246 different kinds of customers in AS B, such as B:M is for the mobile 247 customers and B:N is for the fixed line customers. By default, all 248 traffic originated from AS A and destinated to AS B (we call it 249 traffic A-B) goes through path C1-C2-C3 (call it Path-1) in AS C. 250 When the link between C1 and C2 is congested, we cannot simply steer 251 all the traffic A-B from Path-1 to Path C1-C4-C3 (call it Path-2), 252 becuse it will cause the congestion in Path-2. 254 +----------+ 255 | PCE/SDN | 256 +-------|Controller|-------+ 257 | +----------+ | 258 | | 259 | AS C | 260 | | +----------+ | | 261 | | +---|Router C2 |---+ | | 262 | | | +----------+ | | | 263 AS A | | |100 50| | | AS B 264 +--------+ | +---------+ +---------+ | +--------+ 265 |Router A|--|--|Router C1| |Router C3|--|--|Router B| 266 +--------+ | +---------+ +---------+ | +--------+ 267 Community: | |100 100| | Community: 268 A:X | | +----------+ | | B:M 269 A:Y | +---|Router C4 |---+ | B:N 270 +----------+ 272 Figure 1: BGP Community based Traffic Collection 274 If the PCE/SDN controller in AS C can obtain the network traffic 275 information at the BGP community granularity, it can steer some 276 traffic related to some BGP communities (when we consider only the 277 source or destination of the traffic), or some BGP community pairs 278 (when we consider both the source and the destination of the traffic) 279 from Path-1 to Path-2 according to the utilization of different 280 paths. For instance, steer the traffic generated by community A:X 281 from Path-1 to Path-2 by deploying route policy at Router C1, or 282 steer the traffic from community A:Y to community B:M from Path-1 to 283 Path-2. Using the IEs defined in this document, IPFIX can export the 284 BGP community information related to a specific traffic flow togecher 285 with other flow information. The traffic information can then be 286 accumulated at the BGP community granularity and used by the PCE/SDN 287 controller to steer the appropriate traffic from Path-1 to Path-2. 289 4. IEs for BGP Standard Community 291 [RFC1997] defines the BGP Communities attribute, called BGP Standard 292 Community in this document, which describes a group of routes sharing 293 some common properties. BGP Standard Communities are treated as 32 294 bit values as stated in[RFC1997]. 296 In order to export BGP standard community information along with 297 other flow information defined by IPFIX, three new IEs are 298 introduced. One is bgpCommunity, which is used to identify that the 299 value in this IE is a BGP standard community. The other two are 300 bgpSourceCommunityList and bgpDestinationCommunityList, which are 301 both basicList [RFC6313] of bgpCommunity, and are used to export BGP 302 standard community information corresponding to a specific flow's 303 source IP and destination IP respectively. 305 The detailed information of the three new IEs are shown in the 306 following sections. 308 4.1. bgpCommunity 310 ---------------------------------------------------------------------- 311 | ElementID | to be assigned by IANA | 312 |--------------------------------------------------------------------| 313 | Name | bgpCommunity | 314 |--------------------------------------------------------------------| 315 | Data Type | unsigned32 | 316 |--------------------------------------------------------------------| 317 | Data Type Semantics | identifier | 318 |--------------------------------------------------------------------| 319 | Description | BGP community as defined in [RFC1997] | 320 |--------------------------------------------------------------------| 321 | Units | none | 322 |--------------------------------------------------------------------| 324 Figure 2: bgpCommunity 326 4.2. bgpSourceCommunityList 327 ---------------------------------------------------------------------- 328 | ElementID | to be assigned by IANA | 329 |--------------------------------------------------------------------| 330 | Name | bgpSourceCommunityList | 331 |--------------------------------------------------------------------| 332 | Data Type | basicList, as specified in [RFC6313] | 333 |--------------------------------------------------------------------| 334 | Data Type Semantics | list | 335 |--------------------------------------------------------------------| 336 | Description | zero or more BGP communities corresponding | 337 | | with source IP address of a specific flow | 338 |--------------------------------------------------------------------| 339 | Units | none | 340 |--------------------------------------------------------------------| 342 Figure 3: bgpSourceCommunityList 344 4.3. bgpDestinationCommunityList 346 --------------------------------------------------------------------- 347 | ElementID | to be assigned by IANA | 348 |--------------------------------------------------------------------| 349 | Name | bgpDestinationCommunityList | 350 |--------------------------------------------------------------------| 351 | Data Type | basicList, as specified in [RFC6313] | 352 |--------------------------------------------------------------------| 353 | Data Type Semantics | list | 354 |--------------------------------------------------------------------| 355 | Description | zero or more BGP communities corresponding | 356 | |with destination IP address of a specific flow| 357 |--------------------------------------------------------------------| 358 | Units | none | 359 |--------------------------------------------------------------------| 361 Figure 4: bgpDestinationCommunityList 363 5. IEs for BGP Extended Community 365 [RFC4360] defines the BGP Extended Communities attribute, which 366 provides a mechanism for labeling the information carried in BGP. 367 Each Extended Community is encoded as an 8-octet quantity with the 368 format defined in [RFC4360]. 370 In order to export BGP Extended Community information together with 371 other flow information by IPFIX, three new IEs are introduced. The 372 first one is bgpExtendedCommunity, which is used to identify that the 373 value in this IE is a BGP Extended Community. The other two are 374 bgpSourceExtendedCommunityList and 375 bgpDestinationExtendedCommunityList, which are both basicList 376 [RFC6313] of bgpExtendedCommunity, and are used to export the BGP 377 Extended Community information corresponding to a specific flow's 378 source IP and destination IP respectively. 380 The detailed information of the three new IEs are shown in the 381 following sections. 383 5.1. bgpExtendedCommunity 385 ---------------------------------------------------------------------- 386 | ElementID | to be assigned by IANA | 387 |--------------------------------------------------------------------| 388 | Name | bgpExtendedCommunity | 389 |--------------------------------------------------------------------| 390 | Data Type | octetArray | 391 |--------------------------------------------------------------------| 392 | Data Type Semantics | default | 393 |--------------------------------------------------------------------| 394 | |BGP Extended Community as defined in [RFC4360]| 395 | Description |The size of this Information Element MUST be 8| 396 | |octets. | 397 |--------------------------------------------------------------------| 398 | Units | none | 399 |--------------------------------------------------------------------| 401 Figure 5: bgpExtendedCommunity 403 5.2. bgpSourceExtendedCommunityList 404 ---------------------------------------------------------------------- 405 | ElementID | to be assigned by IANA | 406 |--------------------------------------------------------------------| 407 | Name | bgpSourceExtendedCommunityList | 408 |--------------------------------------------------------------------| 409 | Data Type | basicList, as specified in [RFC6313] | 410 |--------------------------------------------------------------------| 411 | Data Type Semantics | list | 412 |--------------------------------------------------------------------| 413 | | zero or more BGP Extended Communities | 414 | Description | corresponding with source IP address | 415 | | of a specific flow | 416 |--------------------------------------------------------------------| 417 | Units | none | 418 |--------------------------------------------------------------------| 420 Figure 6: bgpSourceExtendedCommunityList 422 5.3. bgpDestinationExtendedCommunityList 424 ---------------------------------------------------------------------- 425 | ElementID | to be assigned by IANA | 426 |--------------------------------------------------------------------| 427 | Name | bgpDestinationExtendedCommunityList | 428 |--------------------------------------------------------------------| 429 | Data Type | basicList, as specified in [RFC6313] | 430 |--------------------------------------------------------------------| 431 | Data Type Semantics | list | 432 |--------------------------------------------------------------------| 433 | | zero or more BGP Extended communities | 434 | Description | corresponding with destination IP address | 435 | | of a specific flow | 436 |--------------------------------------------------------------------| 437 | Units | none | 438 |--------------------------------------------------------------------| 440 Figure 7: bgpDestinationExtendedCommunityList 442 6. IEs for BGP Large Community 444 [RFC8092] defines the BGP Large Communities attribute, which is 445 suitable for use with all Autonomous System Numbers (ASNs) including 446 four-octet ASNs. Each BGP Large Community is encoded as a 12-octet 447 quantity with the format defined in [RFC8092]. 449 In order to export BGP Large Community information together with 450 other flow information by IPFIX, three new IEs are introduced. The 451 first one is bgpLargeCommunity, which is used to identify that the 452 value in this IE is a BGP Large Community. The other two are 453 bgpSourceLargeCommunityList and bgpDestinationLargeCommunityList, 454 which are both basicList [RFC6313] of bgpLargeCommunity, and are used 455 to export the BGP Large Community information corresponding to a 456 specific flow's source IP and destination IP respectively. 458 The detailed information of the three new IEs are shown in the 459 following sections. 461 6.1. bgpLargeCommunity 463 ---------------------------------------------------------------------- 464 | ElementID | to be assigned by IANA | 465 |--------------------------------------------------------------------| 466 | Name | bgpLargeCommunity | 467 |--------------------------------------------------------------------| 468 | Data Type | octetArray | 469 |--------------------------------------------------------------------| 470 | Data Type Semantics | default | 471 |--------------------------------------------------------------------| 472 | | BGP Large Community as defined in [RFC8092] | 473 | Description | The size of this Information Element MUST be | 474 | | 12 octets. | 475 |--------------------------------------------------------------------| 476 | Units | none | 477 |--------------------------------------------------------------------- 479 Figure 8: bgpLargeCommunity 481 6.2. bgpSourceLargeCommunityList 482 ---------------------------------------------------------------------- 483 | ElementID | to be assigned by IANA | 484 |--------------------------------------------------------------------| 485 | Name | bgpSourceLargeCommunityList | 486 |--------------------------------------------------------------------| 487 | Data Type | basicList, as specified in [RFC6313] | 488 |--------------------------------------------------------------------| 489 | Data Type Semantics | list | 490 |--------------------------------------------------------------------| 491 | | zero or more BGP Large Communities | 492 | Description | corresponding with source IP address | 493 | | of a specific flow | 494 |--------------------------------------------------------------------| 495 | Units | none | 496 |--------------------------------------------------------------------| 498 Figure 9: bgpSourceLargeCommunityList 500 6.3. bgpDestinationLargeCommunityList 502 ---------------------------------------------------------------------- 503 | ElementID | to be assigned by IANA | 504 |--------------------------------------------------------------------| 505 | Name | bgpDestinationLargeCommunityList | 506 |--------------------------------------------------------------------| 507 | Data Type | basicList, as specified in [RFC6313] | 508 |--------------------------------------------------------------------| 509 | Data Type Semantics | list | 510 |--------------------------------------------------------------------| 511 | Description | zero or more BGP Large communities | 512 | | corresponding with destination IP address | 513 | | of a specific flow | 514 |--------------------------------------------------------------------| 515 | Units | none | 516 |--------------------------------------------------------------------| 518 Figure 10: bgpDestinationLargeCommunityList 520 7. Operational Considerations 522 The maximum length of an IPFIX message is 65535 bytes as per 523 [RFC7011] , and the maximum length of a normal BGP message is 4096 524 bytes as per [RFC4271]. Since BGP communities, including standard, 525 extended, and large communities , are BGP path attributes carried in 526 BGP Update messages, the total length of these attributes can not 527 exceed the length of a BGP message, i.e. 4096 bytes. So one IPFIX 528 message with maximum length of 65535 bytes has enough space to fit 529 all the communities related to a specific flow, both the source IP 530 and the destination IP related. 532 [I-D.ietf-idr-bgp-extended-messages] extends the maximum size of a 533 BGP Update message to 65535 bytes. Then theoretically the BGP 534 community information related to a specific flow may exceed the 535 length one IPFIX message. However, according to the information 536 about the networks in the field, the number of BGP communities in one 537 BGP route is usually no more than 10. Nevertheless, BGP speakers 538 that support the extended message SHOULD be careful to export the BGP 539 communities in the IPFIX message properly, such as only convey as 540 many communities as possible in the IPFIX message. The collector 541 which receives an IPFIX message with maximum length and BGP 542 communities contained in its data set SHOULD be aware that the BGP 543 communities may be truncated due to limited message space. In this 544 case, it is RECOMMENDED to configure export policy of BGP communities 545 on the exporter to limit the BGP communities to be exported, so as to 546 only export some specific communities,or not to export some specific 547 communities. 549 If needed, we may consider to extend the message length of IPFIX 550 [RFC7011] from 16 bits to 32 bits to solve this problem completely. 551 The detailed mechanism is out of the scope of this document. 553 To align with the size of BGP extended community and large community, 554 the size of IE bgpExtendedCommunity and bgpLargeCommunity is 8 octets 555 and 12 octets respectively. In the event that the 556 bgpExtendedCommunity or bgpLargeCommunity IE is not of its expected 557 size, the IPFIX collector SHOULD ignore it. This is intended to 558 protect implementations using BGP logic from calling their parsing 559 routines with invalid lengths. 561 For the proper processing of the exporter, when it receives the 562 template requesting to report the BGP community information (refer 563 Appendix A for an example), the exporter SHOULD obtain the 564 corresponding BGP community information through BGP lookup using the 565 corresponding source or destination IP of the specific traffic flow. 566 When exporting the IPFIX information to the collector, the exporter 567 SHOULD include the corresponding BGP communities in the IPFIX 568 message. 570 8. Security Considerations 572 This document only defines new IEs for IPFIX. This document itself 573 does not directly introduce security issues. The same security 574 considerations as for the IPFIX Protocol Specification [RFC7011] and 575 Information Model [RFC7012] apply. 577 As the BGP community information is deducible by other means, there 578 are no increased privacy concerns, neither. 580 9. IANA Considerations 582 This draft specifies the following IPFIX IEs to export BGP community 583 information along with other flow information. 585 The Element IDs for these IEs are solicited to be assigned by IANA. 586 The following table is for IANA's reference to put in each field in 587 the registry. 589 ---------------------------------------------------------------------- 590 |ElementID| Name | Data Type|Data Type Semantics| 591 |--------------------------------------------------------------------| 592 | TBA1 | bgpCommunity |unsigned32| identifier | 593 |--------------------------------------------------------------------| 594 | TBA2 | bgpSourceCommunityList | basicList| list | 595 |--------------------------------------------------------------------| 596 | TBA3 |bgpDestinationCommunityList| basicList| list | 597 |--------------------------------------------------------------------| 598 | TBA4 | bgpExtendedCommunity |octetArray| default | 599 |--------------------------------------------------------------------| 600 | TBA5 | bgpSourceExtended | | | 601 | | CommunityList | basicList| list | 602 |--------------------------------------------------------------------| 603 | TBA6 | bgpDestinationExtended | | | 604 | | CommunityList | basicList| list | 605 |--------------------------------------------------------------------| 606 | TBA7 | bgpLargeCommunity |octetArray| default | 607 |--------------------------------------------------------------------| 608 | TBA8 |bgpSourceLargeCommunityList| basicList| list | 609 |--------------------------------------------------------------------| 610 | TBA9 | bgpDestinationLarge | | | 611 | | CommunityList | basicList| list | 612 |--------------------------------------------------------------------| 614 ---------------------------------------------------------------------- 615 |ElementID| Description | Units | 616 |--------------------------------------------------------------------| 617 | TBA1 | BGP community as defined in [RFC1997] | | 618 |--------------------------------------------------------------------| 619 | TBA2 | zero or more BGP communities corresponding | | 620 | | with source IP address of a specific flow | | 621 |--------------------------------------------------------------------| 622 | TBA3 | zero or more BGP communities corresponding | | 623 | |with destination IP address of a specific flow| | 624 |--------------------------------------------------------------------| 625 | TBA4 |BGP Extended Community as defined in [RFC4360]| | 626 | |The size of this IE MUST be 8 octets | | 627 |--------------------------------------------------------------------| 628 | | zero or more BGP Extended Communities | | 629 | TBA5 | corresponding with source IP address of | | 630 | | a specific flow | | 631 |--------------------------------------------------------------------| 632 | | zero or more BGP Extended communities | | 633 | TBA6 | corresponding with destination IP address | | 634 | | of a specific flow | | 635 |--------------------------------------------------------------------| 636 | TBA7 | BGP Large Community as defined in [RFC8092] | | 637 | | The size of this IE MUST be 12 octets. | | 638 |--------------------------------------------------------------------| 639 | | zero or more BGP Large Communities | | 640 | TBA8 | corresponding with source IP address | | 641 | | of a specific flow | | 642 |--------------------------------------------------------------------| 643 | | zero or more BGP Large communities | | 644 | TBA9 | corresponding with destination IP address | | 645 | | of a specific flow | | 646 |--------------------------------------------------------------------| 648 ---------------------------------------------------------------------- 649 |ElementID| Range | References | Requester | Revision | date | 650 |--------------------------------------------------------------------| 651 | TBA1 | | RFC1997 |this draft | 0 | | 652 |--------------------------------------------------------------------| 653 | TBA2 | |RFC6313,RFC1997|this draft | 0 | | 654 |--------------------------------------------------------------------| 655 | TBA3 | |RFC6313,RFC1997|this draft | 0 | | 656 |--------------------------------------------------------------------| 657 | TBA4 | | RFC4360 |this draft | 0 | | 658 |--------------------------------------------------------------------| 659 | TBA5 | |RFC6313,RFC4360|this draft | 0 | | 660 |--------------------------------------------------------------------| 661 | TBA6 | |RFC6313,RFC4360|this draft | 0 | | 662 |--------------------------------------------------------------------| 663 | TBA7 | | RFC8092 |this draft | 0 | | 664 |--------------------------------------------------------------------| 665 | TBA8 | |RFC6313,RFC8092|this draft | 0 | | 666 |--------------------------------------------------------------------| 667 | TBA9 | |RFC6313,RFC8092|this draft | 0 | | 668 |--------------------------------------------------------------------| 670 Figure 11: IANA Considerations 672 10. Acknowledgements 674 The authors would like to thank Benoit Claise and Paul Aitken for 675 their comments and suggestions to promote this document. 676 Appreciations are given to Tianran Zhou, Warren Kumari, Jeffrey Haas, 677 Ignas Bagdonas, Stewart Bryant, Paolo Lucente, Job Snijders, Jared 678 Mauch, Rudiger Volk, etc, for their discussion, comments and 679 suggestions in the face to face meetings and in the mail list. 681 11. References 683 11.1. Normative References 685 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 686 Requirement Levels", BCP 14, RFC 2119, 687 DOI 10.17487/RFC2119, March 1997, 688 . 690 [RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates, 691 "Export of Structured Data in IP Flow Information Export 692 (IPFIX)", RFC 6313, DOI 10.17487/RFC6313, July 2011, 693 . 695 [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, 696 "Specification of the IP Flow Information Export (IPFIX) 697 Protocol for the Exchange of Flow Information", STD 77, 698 RFC 7011, DOI 10.17487/RFC7011, September 2013, 699 . 701 11.2. Informative References 703 [Community-TE] 704 Shao, W., Devienne, F., Iannone, L., and JL. Rougier, "On 705 the use of BGP communities for fine-grained inbound 706 traffic engineering", Computer Science 27392(1):476-487, 707 November 2015. 709 [I-D.ietf-idr-bgp-extended-messages] 710 Bush, R., Patel, K., and D. Ward, "Extended Message 711 support for BGP", draft-ietf-idr-bgp-extended-messages-24 712 (work in progress), November 2017. 714 [IANA-IPFIX] 715 "IP Flow Information Export (IPFIX) Entities", 716 . 718 [RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities 719 Attribute", RFC 1997, DOI 10.17487/RFC1997, August 1996, 720 . 722 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 723 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 724 DOI 10.17487/RFC4271, January 2006, 725 . 727 [RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended 728 Communities Attribute", RFC 4360, DOI 10.17487/RFC4360, 729 February 2006, . 731 [RFC4384] Meyer, D., "BGP Communities for Data Collection", BCP 114, 732 RFC 4384, DOI 10.17487/RFC4384, February 2006, 733 . 735 [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation 736 Element (PCE)-Based Architecture", RFC 4655, 737 DOI 10.17487/RFC4655, August 2006, 738 . 740 [RFC5982] Kobayashi, A., Ed. and B. Claise, Ed., "IP Flow 741 Information Export (IPFIX) Mediation: Problem Statement", 742 RFC 5982, DOI 10.17487/RFC5982, August 2010, 743 . 745 [RFC6183] Kobayashi, A., Claise, B., Muenz, G., and K. Ishibashi, 746 "IP Flow Information Export (IPFIX) Mediation: Framework", 747 RFC 6183, DOI 10.17487/RFC6183, April 2011, 748 . 750 [RFC7012] Claise, B., Ed. and B. Trammell, Ed., "Information Model 751 for IP Flow Information Export (IPFIX)", RFC 7012, 752 DOI 10.17487/RFC7012, September 2013, 753 . 755 [RFC7854] Scudder, J., Ed., Fernando, R., and S. Stuart, "BGP 756 Monitoring Protocol (BMP)", RFC 7854, 757 DOI 10.17487/RFC7854, June 2016, 758 . 760 [RFC8092] Heitz, J., Ed., Snijders, J., Ed., Patel, K., Bagdonas, 761 I., and N. Hilliard, "BGP Large Communities Attribute", 762 RFC 8092, DOI 10.17487/RFC8092, February 2017, 763 . 765 [RFC8195] Snijders, J., Heasley, J., and M. Schmidt, "Use of BGP 766 Large Communities", RFC 8195, DOI 10.17487/RFC8195, June 767 2017, . 769 Appendix A. Encoding Example 771 In this section, we give an example to show the encoding format for 772 the new introduced IEs. 774 Flow information including BGP communities is shown in the below 775 table. Suppose we want all the fields to be reported by IPFIX. 777 ---------------------------------------------------------------------- 778 | Source |Destination| BGP community | BGP community | 779 | IP | IP | corresponding with | corresponding with | 780 | | | Source IP | Destination IP | 781 ---------------------------------------------------------------------- 782 | 1.1.1.1 | 2.2.2.2 | 1:1001,1:1002,8:1001 | 2:1002,8:1001 | 783 ---------------------------------------------------------------------- 784 | 3.3.3.3 | 4.4.4.4 | 3:1001,3:1002,8:1001 | 4:1001,8:1001 | 785 ---------------------------------------------------------------------- 787 Figure 12: Flow information including BGP communities 789 A.1. Template Record 791 0 1 2 3 792 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 793 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 794 | SET ID = 2 | Length = 24 | 795 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 796 | Template ID = 256 | Field Count = 4 | 797 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 798 |0| SourceIPv4Address = 8 | Field length = 4 | 799 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 800 |0| DestinationIPv4Address = 12 | Field length = 4 | 801 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 802 |0| bgpSourceCommunityList= TBA2| Field length = 0xFFFF | 803 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 804 |0| bgpDestinationCommunityList | Field length = 0xFFFF | 805 | | = TBA3 | | 806 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 808 Figure 13: Template Record Encoding Format 810 In this example, the Template ID is 256, which will be used in the 811 Data Record. The field length for bgpSourceCommunityList and 812 bgpDestinationCommunityList is 0xFFFF, which means the length of this 813 IE is variable, the actual length of this IE is indicated by the list 814 length field in the basic list format as per [RFC6313]. 816 A.2. Data Set 818 The data set is represented as follows: 820 0 1 2 3 821 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 822 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 823 | SET ID = 256 | Length = 92 | 824 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 825 | SourceIPv4Address = 1.1.1.1 | 826 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 827 | DestinationIPv4Address = 2.2.2.2 | 828 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 829 | 255 | List length = 17 |semantic=allof | 830 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 831 | bgpCommunity = TBA1 | Field Len = 4 | 832 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 833 | BGP Source Community Value 1 = 1:1001 | 834 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 835 | BGP Source Community Value 2 = 1:1002 | 836 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 837 | BGP Source Community Value 3 = 8:1001 | 838 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 839 | 255 | List length = 13 |semantic =allof| 840 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 841 | bgpCommunity = TBA1 | Field Len = 4 | 842 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 843 | BGP Destination Community Value 1 = 2:1002 | 844 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 845 | BGP Destination Community Value 2 = 8:1001 | 846 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 847 | SourceIPv4Address = 3.3.3.3 | 848 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 849 | DestinationIPv4Address = 4.4.4.4 | 850 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 851 | 255 | List length = 17 |semantic =allof| 852 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 853 | bgpCommunity = TBA1 | Field Len = 4 | 854 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 855 | BGP Source Community Value 1 = 3:1001 | 856 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 857 | BGP Source Community Value 2 = 3:1002 | 858 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 859 | BGP Source Community Value 3 = 8:1001 | 860 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 861 | 255 | List length = 13 |semantic =allof| 862 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 863 | bgpCommunity = TBA1 | Field Len = 4 | 864 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 865 | BGP Destination Community Value 1 = 4:1001 | 866 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 867 | BGP Destination Community Value 2 = 8:1001 | 868 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 870 Figure 14: Data Set Encoding Format 872 Authors' Addresses 874 Zhenqiang Li 875 China Mobile 876 32 Xuanwumen West Ave, Xicheng District 877 Beijing 100053 878 China 880 Email: li_zhenqiang@hotmail.com 882 Rong Gu 883 China Mobile 884 32 Xuanwumen West Ave, Xicheng District 885 Beijing 100053 886 China 888 Email: gurong_cmcc@outlook.com 890 Jie Dong 891 Huawei Technologies 892 Huawei Campus, No. 156 Beiqing Rd. 893 Beijing 100095 894 China 896 Email: jie.dong@huawei.com