draft-ietf-opsawg-ipfix-bgp-community-10.txt   draft-ietf-opsawg-ipfix-bgp-community-11.txt 
opsawg Z. Li opsawg Z. Li
Internet-Draft R. Gu Internet-Draft R. Gu
Intended status: Standards Track China Mobile Intended status: Standards Track China Mobile
Expires: April 22, 2019 J. Dong Expires: May 29, 2019 J. Dong
Huawei Technologies Huawei Technologies
October 19, 2018 November 25, 2018
Export BGP community information in IP Flow Information Export (IPFIX) Export BGP community information in IP Flow Information Export (IPFIX)
draft-ietf-opsawg-ipfix-bgp-community-10 draft-ietf-opsawg-ipfix-bgp-community-11
Abstract Abstract
By introducing new Information Elements (IEs), this draft extends the By introducing new Information Elements (IEs), this draft extends the
existing BGP related IEs to enable IPFIX [RFC7011] to export the BGP existing BGP-related IEs to enable IPFIX [RFC7011] to export BGP
community information, including the information of BGP standard community information, including BGP standard communities [RFC1997],
community [RFC1997], BGP extended community [RFC4360], and BGP large BGP extended communities [RFC4360], and BGP large communities
community [RFC8092]. Network traffic information can then be [RFC8092]. Network traffic information can then be accumulated and
accumulated and analysed at the BGP community granularity, which analyzed at the BGP community granularity, which represents the
represents the traffic of different kinds of customers, services, or traffic of different kinds of customers, services, or geographical
geographical regions according to the network operator's BGP regions according to the network operator's BGP community planning.
community planning. Network traffic information at the BGP community Network traffic information at the BGP community granularity is
granularity is useful for network traffic analysis and engineering. useful for network traffic analysis and engineering.
To clarify, no new BGP community attribute is defined in this To clarify, no new BGP community attribute is defined in this
document and this document has no purpose to replace BGP Monitoring document and this document does not replace BGP Monitoring Protocol
Protocol (BMP) defined in RFC7854. The IEs introduced in this (BMP) defined in RFC7854. The IEs introduced in this document are
document are used by IPFIX together with other IEs to facilitate the used by IPFIX, together with other IEs, to facilitate the IPFIX
IPFIX Collector analyzing the network traffic at the BGP community Collector analyzing network traffic at the BGP community granularity
granularity without running the heavy BGP protocol. When needed, the without needing to run the heavy BGP itself. When needed, the IPFIX
IPFIX Mediator or Collector can use the IEs introduced in this Mediator or Collector can use the IEs introduced in this document to
document to report the BGP community related traffic flow information report the BGP community-related traffic flow information it gets
it gets either from Exporters or through local correlation to other either from Exporters or through local correlation to other IPFIX
IPFIX devices. devices.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 22, 2019. This Internet-Draft will expire on May 29, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. BGP Community based Traffic Collection . . . . . . . . . . . 5 3. BGP Community-based Traffic Collection . . . . . . . . . . . 5
4. IEs for BGP Standard Community . . . . . . . . . . . . . . . 7 4. IEs for BGP Standard Community . . . . . . . . . . . . . . . 7
5. IEs for BGP Extended Community . . . . . . . . . . . . . . . 7 5. IEs for BGP Extended Community . . . . . . . . . . . . . . . 7
6. IEs for BGP Large Community . . . . . . . . . . . . . . . . . 7 6. IEs for BGP Large Community . . . . . . . . . . . . . . . . . 7
7. Operational Considerations . . . . . . . . . . . . . . . . . 8 7. Operational Considerations . . . . . . . . . . . . . . . . . 8
8. Security Considerations . . . . . . . . . . . . . . . . . . . 9 8. Security Considerations . . . . . . . . . . . . . . . . . . . 9
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
11.1. Normative References . . . . . . . . . . . . . . . . . . 11 11.1. Normative References . . . . . . . . . . . . . . . . . . 11
11.2. Informative References . . . . . . . . . . . . . . . . . 12 11.2. Informative References . . . . . . . . . . . . . . . . . 12
Appendix A. Encoding Example . . . . . . . . . . . . . . . . . . 13 Appendix A. Encoding Example . . . . . . . . . . . . . . . . . . 13
A.1. Template Record . . . . . . . . . . . . . . . . . . . . . 14 A.1. Template Record . . . . . . . . . . . . . . . . . . . . . 14
A.2. Data Set . . . . . . . . . . . . . . . . . . . . . . . . 14 A.2. Data Set . . . . . . . . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction 1. Introduction
IP Flow Information Export (IPFIX) [RFC7011] provides network IP Flow Information Export (IPFIX) [RFC7011] provides network
administrators with traffic flow information using the Information administrators with traffic flow information using the Information
Elements (IEs) defined in [IANA-IPFIX] registries. Based on the Elements (IEs) defined in [IANA-IPFIX] registries. Based on the
traffic flow information, network administrators know the amount and traffic flow information, network administrators know the amount and
direction of the traffic in their network, then they can optimize direction of the traffic in their network, and can then optimize
their network when needed. For example, they can shift some flows their network when needed. For example, they can shift some flows
from the congested links to the low utilized links through a SDN from congested links to low utilized links through an SDN controller
controller or PCE [RFC4655]. or PCE [RFC4655].
[IANA-IPFIX] has already defined the following IEs for traffic flow [IANA-IPFIX] has already defined the following IEs for traffic flow
information exporting in different granularities: sourceIPv4Address, information exporting in different granularities: sourceIPv4Address,
sourceIPv4Prefix, destinationIPv4Address, destinationIPv4Prefix, sourceIPv4Prefix, destinationIPv4Address, destinationIPv4Prefix,
bgpSourceAsNumber, bgpDestinationAsNumber, bgpNextHopIPv4Address, bgpSourceAsNumber, bgpDestinationAsNumber, bgpNextHopIPv4Address,
etc. In some circumstances, however, especially when traffic etc. In some circumstances, however, especially when traffic
engineering and optimization are executed in the Tier 1 or Tier 2 engineering and optimization are executed in Tier 1 or Tier 2
operators' backbone networks, traffic flow information based on these operators' backbone networks, traffic flow information based on these
IEs may not be suitable. Flow information based on IP address or IP IEs may not be completely suitable or sufficient. For example, flow
prefix may provide much too fine granularity for a large network. On information based on IP address or IP prefix may provide much too
the contrary, flow information based on AS number may be too coarse. fine granularity for a large network. On the contrary, flow
information based on AS number may be too coarse.
BGP community is a BGP path attribute defined in IDR (Inter Domain BGP community is a BGP path attribute that includes standard
Routing) working group. The already defined BGP community attribute communities [RFC1997], extended communities [RFC4360], and large
includes the standard community defined in [RFC1997], the extended communities [RFC8092]. The BGP community attribute has a variety of
community defined in [RFC4360], and the large community defined in use cases, one of which is to use BGP community with planned specific
[RFC8092]. BGP community attribute has a variety of use cases, one values to represent groups of customers, services, and geographical
practice of which is to use BGP community with planned specific or topological regions, as used by operators in their networks.
values to represent the groups of customers, services, geographical Detailed examples can be found in [RFC4384], [RFC8195] and Section 3
and topological regions, which is used by a lot of operators in their of this document. To understand the traffic generated by different
field networks. Please refer to [RFC4384], [RFC8195] and Section 3 kinds of customers, from different geographical or topological
of this document for the detailed examples. To know the traffic regions, by different kinds of customers in different regions, we
generated by different kinds of customers, from different need the corresponding community information related to the traffic
geographical or topological regions, by different kinds of customers flow information exported by IPFIX. Network traffic statistics at
in different regions, we need the corresponding community information the BGP community granularity are useful not only for the traffic
related to the traffic flow exported by IPFIX. Network traffic analyzing, but also can then be used by other applications, such as
statistics at the BGP community granularity is useful not only for traffic optimization applications located in an IPFIX Collector, SDN
the traffic analyzing, but also can then be used by other controller or PCE. [Community-TE] also states that analyzing network
applications, such as the traffic optimization applications located traffic information at the BGP community granularity is preferred for
in IPFIX Collector, SDN controller or PCE. [Community-TE] also inbound traffic engineering. However, [IANA-IPFIX] lacks IEs defined
states analyzing network traffic information at the BGP community for the BGP community attribute.
granularity is prefered for inbound traffic engineering. However,
there is no IE defined for BGP community attribute in [IANA-IPFIX]
yet.
Flow information based on BGP community may be collected by an IPFIX Flow information based on BGP community may be collected by an IPFIX
Mediator defined in [RFC6183]. IPFIX Mediator is responsible for the Mediator defined in [RFC6183]. IPFIX Mediator is responsible for the
correlation between flow information and BGP community. However no correlation between flow information and BGP community. However, no
IEs are defined in [RFC6183] for exporting BGP community information IEs are defined in [RFC6183] for exporting BGP community information
in IPFIX. Furthermore, to correlate the BGP community with the flow in IPFIX. Furthermore, to correlate the BGP community with the flow
information, the IPFIX Mediator needs to learn BGP routes and perform information, the IPFIX Mediator needs to learn BGP routes and perform
lookup in the BGP routing table to get the matching entry for a lookups in the BGP routing table to get the matching entry for a
specific flow. Neither BGP route learning nor routing table lookup specific flow. Neither BGP route learning nor routing table lookup
is trivial for an IPFIX Mediator. The IPFIX Mediator is mainly are trivial for an IPFIX Mediator. The IPFIX Mediator is mainly
introduced to release the performance requirement for the Exporter introduced to reduce the performance requirement for the Exporter
[RFC5982]. In fact, to obtain the information for the already [RFC5982]. In fact, to obtain the information for the already
defined BGP related IEs, such as bgpSourceAsNumber, defined BGP related IEs, such as bgpSourceAsNumber,
bgpDestinationAsNumber, and bgpNextHopIPv4Address, etc, the Exporter bgpDestinationAsNumber, and bgpNextHopIPv4Address, etc, the Exporter
has to hold the up-to-date BGP routing table and perform lookup in has to hold the up-to-date BGP routing table and perform lookups in
the BGP routing table. The Exporter can obtain the BGP community the table. The Exporter can obtain the BGP community information in
information in the same procedure, thus the additional load added by the same procedure, thus the additional load added by exporting BGP
exporting BGP community information is minimal if the Exporter is community information is minimal if the Exporter is already exporting
already exporting the existing BGP related IEs. It is RECOMMENDED the existing BGP-related IEs. It is RECOMMENDED that the BGP
that the BGP community information be exported by the Exporter community information be exported by the Exporter directly using
directly using IPFIX. IPFIX.
Through running BGP [RFC4271] or BMP [RFC7854] and performing lookup Through running BGP [RFC4271] or BMP [RFC7854] and performing lookups
in the BGP routing table to get the matching entry for a specific in the BGP routing table to correlate the matching entry for a
flow (we call it correlation), IPFIX Collectors and other specific flow, IPFIX Collectors and other applications, such as SDN
applications, such as SDN controller or PCE, can determine the controller or PCE, can determine the network traffic at the BGP
network traffic at the BGP community granularity. However, neither community granularity. However, neither running BGP or BMP protocol
running BGP or BMP protocol nor routing table lookup is trivial for nor routing table lookup are trivial for the IPFIX Collectors and
the IPFIX Collectors and other applications. Moreover correlation other applications. Moreover, correlation between IPFIX flow
between IPFIX flow information and the BGP RIB on the Exporter (such information and the BGP RIB on the Exporter (such as a router) is
as router) is more accurate, compared to the correlation on a more accurate, compared to the correlation on a Collector, since the
Collector, since the BGP routing table may be updated when the IPFIX BGP routing table may be updated when the IPFIX Collectors and other
Collectors and other applications reveive the IPFIX flow information. applications receive the IPFIX flow information. And as stated
And as stated above, the Exporter can obtain the BGP community above, the Exporter can obtain the BGP community information during
information in the same procedure when it obtains other BGP related the same procedure when it obtains other BGP related information. So
informaiton. So exporting the BGP community information directly by exporting the BGP community information directly by the Exporter to
the Exporter to the Collector is the efficient and accurate way. If the Collector is both efficient and accurate. If the IPFIX
the IPFIX Collectors and other applications only want to determine Collectors and other applications only want to determine the network
the network traffic at the BGP community granularity, they do not traffic at the BGP community granularity, they do not need to run the
need to run the heavy BGP or BMP protocol when the BGP community full BGP or BMP protocols when the BGP community information can be
information can be obtained by IPFIX. However, we have to clarify, obtained by IPFIX. However, the BMP protocol has its own application
the BMP protocol has its own application scenario, the mechanism scenario, and the mechanism introduced in this document is not meant
introduced in this document has no purpose to replace it. to replace it.
By introducing new IEs, this draft extends the existing BGP related By introducing new IEs, this draft extends the existing BGP-related
IEs to enable IPFIX [RFC7011] to export the BGP community IEs to enable IPFIX [RFC7011] to export BGP community information,
information, including BGP standard community defined in [RFC1997], including the BGP standard communities [RFC1997], BGP extended
BGP extended community defined in [RFC4360], and BGP large community communities [RFC4360], and BGP large communities [RFC8092]. Flow
defined in [RFC8092]. Flow information, including packetDeltaCount, information, including packetDeltaCount, octetDeltaCount [RFC7012],
octetDeltaCount [RFC7012] etc, can then be accumulated and analysed etc., can then be accumulated and analyzed by the Collector or other
by the Collector or other applications, such as SDN controller or PCE applications, such as an SDN controller or PCE [RFC4655], at the BGP
[RFC4655], at the BGP community granularity, which is useful for community granularity, which is useful for measuring the traffic
knowing the traffic generated by different kinds of customers, from generated by different kinds of customers, from different
different geographical or topological regions according to the geographical or topological regions according to the operator's BGP
operator's BGP community plan, and can then be used by the traffic community plan, and can then be used by the traffic engineering or
engineering or traffic optimization applications, especially in the traffic optimization applications, especially in the backbone
backbone network. network.
The IEs introduced in this document are applicable for both IPv4 and The IEs introduced in this document are applicable for both IPv4 and
IPv6 traffic. Both the Exporter and the IPFIX Mediator can use these IPv6 traffic. Both the Exporter and the IPFIX Mediator can use these
IEs to export BGP community information in IPFIX. When needed, the IEs to export BGP community information in IPFIX. When needed, the
IPFIX Mediator or Collector can use these IEs to report the BGP IPFIX Mediator or Collector can use these IEs to report BGP community
community related traffic flow information it gets either from related traffic flow information it gets either from Exporters or
Exporters or through local correlation to other IPFIX devices. through local correlation to other IPFIX devices.
To clarify, no new BGP community attribute is defined in this As stated above, the method introduced in this document is not the
document, IDR (Inter Domain Routing) working group is the right place definitive and the only one to obtain BGP community information
to define new community attributes for the BGP protocol. related to a specific traffic flow, but a possible, efficient and
accurate one.
No new BGP community attributes are defined in this document.
Note that this document does not update the IPFIX specification Note that this document does not update the IPFIX specification
[RFC7011] and the Information Model [RFC7012] because IANA's IPFIX [RFC7011] and the Information Model [RFC7012]. Rather, IANA's IPFIX
registry [IANA-IPFIX] is the ultimate Information Element reference, registry [IANA-IPFIX] contains the current complete Information
per Section 1 of [RFC7012]. Element reference, per Section 1 of [RFC7012].
Please refer to [IANA-IPFIX] for the whole list of the already Please refer to [IANA-IPFIX] for the complete list of BGP-related
defined BGP related IEs. IEs.
Please refer to Appendix A for the encoding example and Section 3 for Please refer to Appendix A of this document for the encoding example
a detailed use case. and Section 3 for a detailed use case.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
IPFIX-specific terminology used in this document is defined in IPFIX-specific terminology used in this document is defined in
Section 2 of the IPFIX protocol specification [RFC7011] and Section 2 Section 2 of [RFC7011] and Section 2 of [RFC6183].
of [RFC6183]
3. BGP Community based Traffic Collection BGP standard community: The BGP Communities attribute defined in
[RFC1997]. In order to distinguish it from BGP extended communities
[RFC4360], and large communities [RFC8092], BGP Communities attribute
is called BGP standard community in this document.
[RFC4384] introduces the mechanism of using BGP standard communities 3. BGP Community-based Traffic Collection
and extended communities to collect the geographical and topological
related information in BGP routing system. [RFC8195] gives some
examples about the application of BGP large communities to represent
the geographical regions. Since the network traffic at the BGP
community granularity represents the traffic generted by different
kinds of customers, from different geographical regions according to
the network operator's BGP community plan, it is useful for the
network operators to analyze and optimize the network traffic among
different customers and regions. This section gives a use case in
which the network operator uses the BGP community based traffic
information to adjust the network paths for different traffic flows.
Considering the following scenario, AS C provides transit connection [RFC4384] introduces the mechanism of using BGP standard community
between AS A and B. By tagging with different BGP communities, the and extended community to collect the geographical and topological
related information in the BGP routing system. [RFC8195] gives some
examples of the application of BGP large communities to represent the
geographical regions. Since the network traffic at the BGP community
granularity represents the traffic generated by different kinds of
customers, from different geographical regions according to the
network operator's BGP community plan, it is useful for network
operators to analyze and optimize the network traffic among different
customers and regions. This section gives a use case in which the
network operator uses the BGP community-based traffic information to
adjust the network paths for different traffic flows.
Consider the following scenario, AS C provides a transit connection
between ASes A and B. By tagging with different BGP communities, the
routes of AS A and B are categorized into several groups respectively routes of AS A and B are categorized into several groups respectively
with the operator's plan. For example community A:X and A:Y are used in the operator's plan. For example, communities A:X and A:Y are
for the routes originated from different geographical regions in AS used for the routes originated from different geographical regions in
A, and community B:M and B:N are used for the routes representing the AS A, and communities B:M and B:N are used for the routes
different kinds of customers in AS B, such as B:M is for the mobile representing the different kinds of customers in AS B, such as B:M is
customers and B:N is for the fixed line customers. By default, all for the mobile customers and B:N is for the fixed line customers. By
traffic originating from AS A and destined to AS B (we call it default, all traffic originating from AS A and destined to AS B (we
traffic A-B) goes through path C1-C2-C3 (call it Path-1) in AS C. call it traffic A-B) goes through path C1-C2-C3 (call it Path-1) in
When the link between C1 and C2 is congested, we cannot simply steer AS C. When the link between C1 and C2 is congested, we cannot simply
all the traffic A-B from Path-1 to Path C1-C4-C3 (call it Path-2), steer all the traffic A-B from Path-1 to Path C1-C4-C3 (call it Path-
becuse it will cause congestion in Path-2. 2), because it will cause congestion in Path-2.
+----------+ +----------+
| PCE/SDN | | PCE/SDN |
+-------|Controller|-------+ +-------|Controller|-------+
| +----------+ | | +----------+ |
| | | |
| AS C | | AS C |
| | +----------+ | | | | +----------+ | |
| | +---|Router C2 |---+ | | | | +---|Router C2 |---+ | |
| | | +----------+ | | | | | | +----------+ | | |
skipping to change at page 6, line 42 skipping to change at page 6, line 48
Figure 1: BGP Community based Traffic Collection Figure 1: BGP Community based Traffic Collection
If the PCE/SDN controller in AS C can obtain the network traffic If the PCE/SDN controller in AS C can obtain the network traffic
information at the BGP community granularity, it can steer some information at the BGP community granularity, it can steer some
traffic related to some BGP communities (when we consider only the traffic related to some BGP communities (when we consider only the
source or destination of the traffic), or some BGP community pairs source or destination of the traffic), or some BGP community pairs
(when we consider both the source and the destination of the traffic) (when we consider both the source and the destination of the traffic)
from Path-1 to Path-2 according to the utilization of different from Path-1 to Path-2 according to the utilization of different
paths. For instance, steer the traffic generated by community A:X paths. For instance, steer the traffic generated by community A:X
from Path-1 to Path-2 by deploying route policy at Router C1, or from Path-1 to Path-2 by deploying a route policy at Router C1, or
steer the traffic from community A:Y to community B:M from Path-1 to steer the traffic from community A:Y to community B:M from Path-1 to
Path-2. Using the IEs defined in this document, IPFIX can export the Path-2. Using the IEs defined in this document, IPFIX can export the
BGP community information related to a specific traffic flow together BGP community information related to a specific traffic flow together
with other flow information. The traffic information can then be with other flow information. The traffic information can then be
accumulated at the BGP community granularity and used by the PCE/SDN accumulated at the BGP community granularity and used by the PCE/SDN
controller to steer the appropriate traffic from Path-1 to Path-2. controller to steer the appropriate traffic from Path-1 to Path-2.
4. IEs for BGP Standard Community 4. IEs for BGP Standard Community
[RFC1997] defines the BGP Communities attribute, called BGP Standard [RFC1997] defines the BGP Communities attribute, called BGP Standard
Community in this document, which describes a group of routes sharing Community in this document, which describes a group of routes sharing
some common properties. BGP Standard Communities are treated as 32 some common properties. BGP Standard Community is treated as 32 bit
bit values as stated in[RFC1997]. value as stated in [RFC1997].
In order to export BGP standard community information along with In order to export BGP standard community information along with
other flow information defined by IPFIX, three new IEs are other flow information defined by IPFIX, three new IEs are
introduced. One is bgpCommunity, which is used to identify that the introduced. One is bgpCommunity, which is used to identify that the
value in this IE is a BGP standard community. The other two are value in this IE is a BGP standard community. The other two are
bgpSourceCommunityList and bgpDestinationCommunityList, which are bgpSourceCommunityList and bgpDestinationCommunityList, which are
both basicList [RFC6313] of bgpCommunity, and are used to export BGP both basicList [RFC6313] of bgpCommunity, and are used to export BGP
standard community information corresponding to a specific flow's standard community information corresponding to a specific flow's
source and destination IP address respectively. source and destination IP address respectively.
The detailed information of the three new IEs are shown in Section 9 The detailed information of the three new IEs are shown in Section 9,
IANA Considerations. IANA Considerations.
5. IEs for BGP Extended Community 5. IEs for BGP Extended Community
[RFC4360] defines the BGP Extended Communities attribute, which [RFC4360] defines the BGP Extended Communities attribute, which
provides a mechanism for labeling the information carried in BGP. provides a mechanism for labeling the information carried in BGP.
Each Extended Community is encoded as an 8-octet quantity with the Each Extended Community is encoded as an 8-octet quantity with the
format defined in [RFC4360]. format defined in [RFC4360].
In order to export BGP Extended Community information together with In order to export BGP Extended Community information together with
other flow information by IPFIX, three new IEs are introduced. The other flow information by IPFIX, three new IEs are introduced. The
first one is bgpExtendedCommunity, which is used to identify that the first one is bgpExtendedCommunity, which is used to identify that the
value in this IE is a BGP Extended Community. The other two are value in this IE is a BGP Extended Community. The other two are
bgpSourceExtendedCommunityList and bgpSourceExtendedCommunityList and
bgpDestinationExtendedCommunityList, which are both basicList bgpDestinationExtendedCommunityList, which are both basicList
[RFC6313] of bgpExtendedCommunity, and are used to export the BGP [RFC6313] of bgpExtendedCommunity, and are used to export the BGP
Extended Community information corresponding to a specific flow's Extended Community information corresponding to a specific flow's
source and destination IP address respectively. source and destination IP address respectively.
The detailed information of the three new IEs are shown in Section 9 The detailed information of the three new IEs are shown in Section 9,
IANA Considerations. IANA Considerations.
6. IEs for BGP Large Community 6. IEs for BGP Large Community
[RFC8092] defines the BGP Large Communities attribute, which is [RFC8092] defines the BGP Large Communities attribute, which is
suitable for use with all Autonomous System Numbers (ASNs) including suitable for use with all Autonomous System Numbers (ASNs) including
four-octet ASNs. Each BGP Large Community is encoded as a 12-octet four-octet ASNs. Each BGP Large Community is encoded as a 12-octet
quantity with the format defined in [RFC8092]. quantity with the format defined in [RFC8092].
In order to export BGP Large Community information together with In order to export BGP Large Community information together with
other flow information by IPFIX, three new IEs are introduced. The other flow information by IPFIX, three new IEs are introduced. The
first one is bgpLargeCommunity, which is used to identify that the first one is bgpLargeCommunity, which is used to identify that the
value in this IE is a BGP Large Community. The other two are value in this IE is a BGP Large Community. The other two are
bgpSourceLargeCommunityList and bgpDestinationLargeCommunityList, bgpSourceLargeCommunityList and bgpDestinationLargeCommunityList,
which are both basicList [RFC6313] of bgpLargeCommunity, and are used which are both basicList [RFC6313] of bgpLargeCommunity, and are used
to export the BGP Large Community information corresponding to a to export the BGP Large Community information corresponding to a
specific flow's source and destination IP address respectively. specific flow's source and destination IP address respectively.
The detailed information of the three new IEs are shown in Section 9 The detailed information of the three new IEs are shown in Section 9,
IANA Considerations. IANA Considerations.
7. Operational Considerations 7. Operational Considerations
The maximum length of an IPFIX message is 65535 bytes as per The maximum length of an IPFIX message is 65535 bytes as per
[RFC7011] , and the maximum length of a normal BGP message is 4096 [RFC7011] , and the maximum length of a normal BGP message is 4096
bytes as per [RFC4271]. Since BGP communities, including standard, bytes as per [RFC4271]. Since BGP communities, including standard,
extended, and large communities , are BGP path attributes carried in extended, and large communities , are BGP path attributes carried in
BGP Update messages, the total length of these attributes can not BGP Update messages, the total length of these attributes can not
exceed the length of a BGP message, i.e. 4096 bytes. So one IPFIX exceed the length of a BGP message, i.e. 4096 bytes. So one IPFIX
message with maximum length of 65535 bytes has enough space to fit message with a maximum length of 65535 bytes has enough space to fit
all the communities related to a specific flow, relating to both the all the communities related to a specific flow, relating to both the
source and destination IP addresses. source and destination IP addresses.
[I-D.ietf-idr-bgp-extended-messages] extends the maximum size of a [I-D.ietf-idr-bgp-extended-messages] extends the maximum size of a
BGP Update message to 65535 bytes. Then theoretically the BGP BGP Update message to 65535 bytes. In that case, the BGP community
community information related to a specific flow may exceed the information related to a specific flow could theoretically exceed the
length of one IPFIX message. However, according to information about length of one IPFIX message. However, according to information
networks in the field, the number of BGP communities in one BGP route regarding actual networks in the field, the number of BGP communities
is usually no more than 10. Nevertheless, BGP speakers that support in one BGP route is usually no more than ten. Nevertheless, BGP
the extended message SHOULD be careful to export the BGP communities speakers that support the extended message SHOULD be careful to
in the IPFIX message properly, such as only convey as many export the BGP communities in the IPFIX message properly, so that
communities as possible in the IPFIX message. The Collector which they only convey as many communities as possible in the IPFIX
receives an IPFIX message with maximum length and BGP communities message. The Collector which receives an IPFIX message with maximum
contained in its data set SHOULD be aware that the BGP communities length and BGP communities contained in its data set SHOULD be aware
may be truncated due to limited message space. In this case, it is that the BGP communities may be truncated due to limited message
RECOMMENDED to configure the export policy of BGP communities to space. In this case, it is RECOMMENDED to configure the export
limit the BGP communities by including or excluding specific policy of BGP communities to limit the BGP communities by including
communities. or excluding specific communities.
If needed, we may consider to extend the message length of IPFIX If needed, the IPFIX message length could be extended from 16 bits to
[RFC7011] from 16 bits to 32 bits to solve this problem completely. 32 bits to solve this problem completely. The details of increasing
The details of increasing IPFIX message length is out of scope of the IPFIX message length is out of scope of this document.
this document.
To align with the size of BGP extended community and large community, To align with the size of the BGP extended community and large
the size of IE bgpExtendedCommunity and bgpLargeCommunity is 8 octets community attributes, the size of IE bgpExtendedCommunity and
and 12 octets respectively. In the event that the bgpLargeCommunity is 8 octets and 12 octets respectively. In the
bgpExtendedCommunity or bgpLargeCommunity IE is not of its expected event that the bgpExtendedCommunity or bgpLargeCommunity IE is not of
size, the IPFIX Collector SHOULD ignore it. This is intended to its expected size, the IPFIX Collector SHOULD ignore it. This is
protect implementations using BGP logic from calling their parsing intended to protect implementations using BGP logic from calling
routines with invalid lengths. their parsing routines with invalid lengths.
For the proper processing of the Exporter, when it receives the For the proper processing of the Exporter when it receives the
template requesting to report the BGP community information (refer to template requesting to report the BGP community information (refer to
Appendix A for an example), the Exporter SHOULD obtain the Appendix A for an example), the Exporter SHOULD obtain the
corresponding BGP community information through BGP lookup using the corresponding BGP community information through BGP lookup using the
corresponding source or destination IP address of the specific corresponding source or destination IP address of the specific
traffic flow. When exporting the IPFIX information to the Collector, traffic flow. When exporting the IPFIX information to the Collector,
the Exporter SHOULD include the corresponding BGP communities in the the Exporter SHOULD include the corresponding BGP communities in the
IPFIX message. IPFIX message.
8. Security Considerations 8. Security Considerations
This document only defines new IEs for IPFIX. This document itself This document only defines new IEs for IPFIX. This document itself
does not directly introduce security issues. The same security does not directly introduce any new security issues. The same
considerations as for the IPFIX Protocol Specification [RFC7011] and security considerations as for the IPFIX Protocol Specification
Information Model [RFC7012] apply. [RFC7011] and Information Model [RFC7012] apply.
As the BGP community information is deducible by other means, there As the BGP community information is deducible by other means, there
are no increased privacy concerns, neither. are no increased privacy concerns as well.
9. IANA Considerations 9. IANA Considerations
This draft specifies the following IPFIX IEs to export BGP community This draft specifies the following IPFIX IEs to export BGP community
information along with other flow information. information along with other flow information.
The Element IDs for these IEs are solicited to be assigned by IANA. The Element IDs for these IEs are requested to be assigned by IANA.
The following table is for IANA's reference to put in each field in The following table is for IANA's use to place in each field in the
the registry. registry.
---------------------------------------------------------------------- ----------------------------------------------------------------------
|ElementID| Name | Data Type|Data Type Semantics| |ElementID| Name | Data Type|Data Type Semantics|
|--------------------------------------------------------------------| |--------------------------------------------------------------------|
| TBA1 | bgpCommunity |unsigned32| identifier | | TBA1 | bgpCommunity |unsigned32| identifier |
|--------------------------------------------------------------------| |--------------------------------------------------------------------|
| TBA2 | bgpSourceCommunityList | basicList| list | | TBA2 | bgpSourceCommunityList | basicList| list |
|--------------------------------------------------------------------| |--------------------------------------------------------------------|
| TBA3 |bgpDestinationCommunityList| basicList| list | | TBA3 |bgpDestinationCommunityList| basicList| list |
|--------------------------------------------------------------------| |--------------------------------------------------------------------|
skipping to change at page 11, line 31 skipping to change at page 11, line 36
| TBA8 | |RFC6313,RFC8092|this draft | 0 | | | TBA8 | |RFC6313,RFC8092|this draft | 0 | |
|--------------------------------------------------------------------| |--------------------------------------------------------------------|
| TBA9 | |RFC6313,RFC8092|this draft | 0 | | | TBA9 | |RFC6313,RFC8092|this draft | 0 | |
|--------------------------------------------------------------------| |--------------------------------------------------------------------|
Figure 2: IANA Considerations Figure 2: IANA Considerations
10. Acknowledgements 10. Acknowledgements
The authors would like to thank Benoit Claise and Paul Aitken for The authors would like to thank Benoit Claise and Paul Aitken for
their comments and suggestions to promote this document. their comments and suggestions to promote this document. We also
Appreciations are given to Tianran Zhou, Warren Kumari, Jeffrey Haas, thank Tianran Zhou, Warren Kumari, Jeffrey Haas, Ignas Bagdonas,
Ignas Bagdonas, Stewart Bryant, Paolo Lucente, Job Snijders, Jared Stewart Bryant, Paolo Lucente, Job Snijders, Jared Mauch, Rudiger
Mauch, Rudiger Volk, etc, for their discussion, comments and Volk, and Andrew Malis for their discussion, comments, and
suggestions in the face to face meetings and in the mail list. suggestions to improve this document..
11. References 11. References
11.1. Normative References 11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
skipping to change at page 13, line 36 skipping to change at page 13, line 41
I., and N. Hilliard, "BGP Large Communities Attribute", I., and N. Hilliard, "BGP Large Communities Attribute",
RFC 8092, DOI 10.17487/RFC8092, February 2017, RFC 8092, DOI 10.17487/RFC8092, February 2017,
<https://www.rfc-editor.org/info/rfc8092>. <https://www.rfc-editor.org/info/rfc8092>.
[RFC8195] Snijders, J., Heasley, J., and M. Schmidt, "Use of BGP [RFC8195] Snijders, J., Heasley, J., and M. Schmidt, "Use of BGP
Large Communities", RFC 8195, DOI 10.17487/RFC8195, June Large Communities", RFC 8195, DOI 10.17487/RFC8195, June
2017, <https://www.rfc-editor.org/info/rfc8195>. 2017, <https://www.rfc-editor.org/info/rfc8195>.
Appendix A. Encoding Example Appendix A. Encoding Example
In this section, we give an example to show the encoding format for In this section, we provide an example to show the encoding format
the new introduced IEs. for the new introduced IEs.
Flow information including BGP communities is shown in the below Flow information, including BGP communities, is shown in the
table. Suppose we want all the fields to be reported by IPFIX. following table. In this example, all the fields are reported by
IPFIX.
---------------------------------------------------------------------- ----------------------------------------------------------------------
| Source |Destination| BGP community | BGP community | | Source |Destination| BGP community | BGP community |
| IP | IP | corresponding with | corresponding with | | IP | IP | corresponding with | corresponding with |
| | | Source IP | Destination IP | | | | Source IP | Destination IP |
---------------------------------------------------------------------- ----------------------------------------------------------------------
| 1.1.1.1 | 2.2.2.2 | 1:1001,1:1002,8:1001 | 2:1002,8:1001 | | 1.1.1.1 | 2.2.2.2 | 1:1001,1:1002,8:1001 | 2:1002,8:1001 |
---------------------------------------------------------------------- ----------------------------------------------------------------------
| 3.3.3.3 | 4.4.4.4 | 3:1001,3:1002,8:1001 | 4:1001,8:1001 | | 3.3.3.3 | 4.4.4.4 | 3:1001,3:1002,8:1001 | 4:1001,8:1001 |
---------------------------------------------------------------------- ----------------------------------------------------------------------
skipping to change at page 14, line 29 skipping to change at page 14, line 41
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| bgpDestinationCommunityList | Field length = 0xFFFF | |0| bgpDestinationCommunityList | Field length = 0xFFFF |
| | = TBA3 | | | | = TBA3 | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Template Record Encoding Format Figure 4: Template Record Encoding Format
In this example, the Template ID is 256, which will be used in the In this example, the Template ID is 256, which will be used in the
Data Record. The field length for bgpSourceCommunityList and Data Record. The field length for bgpSourceCommunityList and
bgpDestinationCommunityList is 0xFFFF, which means the length of this bgpDestinationCommunityList is 0xFFFF, which means the length of this
IE is variable, the actual length of this IE is indicated by the list IE is variable, and the actual length of this IE is indicated by the
length field in the basic list format as per [RFC6313]. list length field in the basic list format as per [RFC6313].
A.2. Data Set A.2. Data Set
The data set is represented as follows: The data set is represented as follows:
0 1 2 3 0 1 2 3
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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SET ID = 256 | Length = 92 | | SET ID = 256 | Length = 92 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 End of changes. 46 change blocks. 
189 lines changed or deleted 194 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/