RFC 8195

Use of BGP Large Communities

πŸ“… published June 2017, from ietf

RFC 8195: Use of BGP Large Communities πŸ’–

okay bestie, title block tea β˜• This one is RFC 8195, called "Use of BGP Large Communities." It was written by J. Snijders, J. Heasley (both at NTT) and M. Schmidt (at i3D.net) 🫢. It's an Informational doc, so it's examples and vibes, not a Standards Track spec πŸ¦‹. It was published in June 2017 with ISSN 2070-1721. It doesn't obsolete or update any other RFC, since there's no Obsoletes or Updates line up top 🌸.

Abstract πŸŽ€

okay so this doc gives you examples and inspo for how operators can actually use BGP Large Communities πŸ”₯ Based on real operator experience with BGP Communities, it suggests logical categories for Large Communities and shows a tidy way to organize the community values inside each one so you can hit typical routing policy goals πŸ’… Any operator can take these concepts and build their own BGP Large Communities repertoire ✨

Status of This Memo πŸ“œ

This doc is not an Internet Standards Track spec. It's published just for informational purposes 🌸

This doc is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community, got public review, and was approved for publication by the Internet Engineering Steering Group (IESG). Not every doc the IESG approves is a candidate for any level of Internet Standard, so check Section 2 of RFC 7841 πŸ’–

Info about the current status, any errata, and how to send feedback lives at http://www.rfc-editor.org/info/rfc8195 πŸ”—

Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.

This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the date of publication. Please read these carefully, because they spell out your rights and restrictions for this doc 🧾 Code Components pulled out of this doc must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License πŸ’œ

Table of Contents πŸ—‚οΈ

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  The Design Overview . . . . . . . . . . . . . . . . . . . . .   3
     2.1.  Informational Communities . . . . . . . . . . . . . . . .   4
     2.2.  Action Communities  . . . . . . . . . . . . . . . . . . .   5
   3.  Examples of Informational Communities . . . . . . . . . . . .   5
     3.1.  Location  . . . . . . . . . . . . . . . . . . . . . . . .   5
       3.1.1.  An ISO 3166-1 Numeric Function  . . . . . . . . . . .   6
       3.1.2.  A UN M.49 Region Function . . . . . . . . . . . . . .   6
     3.2.  Relation Function . . . . . . . . . . . . . . . . . . . .   7
     3.3.  Combining Informational Communities . . . . . . . . . . .   7
   4.  Examples of Action Communities  . . . . . . . . . . . . . . .   7
     4.1.  Selective NO_EXPORT . . . . . . . . . . . . . . . . . . .   7
       4.1.1.  ASN-Based Selective NO_EXPORT . . . . . . . . . . . .   8
       4.1.2.  Location-Based Selective NO_EXPORT  . . . . . . . . .   8
     4.2.  Selective AS_PATH Prepending  . . . . . . . . . . . . . .   9
       4.2.1.  ASN-Based Selective AS_PATH Prepending  . . . . . . .   9
       4.2.2.  Location-Based Selective AS_PATH Prepending . . . . .  10
     4.3.  Manipulation of the LOCAL_PREF Attribute  . . . . . . . .  10
       4.3.1.  Global Manipulation of LOCAL_PREF . . . . . . . . . .  11
       4.3.2.  Region-Based Manipulation of LOCAL_PREF . . . . . . .  11
       4.3.3.  Note of Caution for LOCAL_PREF Functions  . . . . . .  12
     4.4.  Route Server Prefix Distribution Control  . . . . . . . .  12
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .  13
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  14
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  14
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .  14
     7.2.  Informative References  . . . . . . . . . . . . . . . . .  14
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  15
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  15

1. Introduction 🌈

okay so BGP Large Communities [RFC8092] let you signal opaque info between and within Autonomous Systems (ASes) πŸ“‘ Same energy as how [RFC1998] gives a real-world use case for BGP Communities [RFC1997], this doc shows examples of how operators might use BGP Large Communities to hit different goals 🎯 It draws on experience from operator communities like the North American Network Operators' Group (NANOG) <https://www.nanog.org/> and the Netherlands Network Operator Group (NLNOG) <https://nlnog.net/> 🫢

2. The Design Overview 🧩

BGP Large Communities are made of three 4-octet fields 🧱 The first is the Global Administrator (GA) field, and its value is the Autonomous System Number (ASN) of the AS that defined what the other two 4-octet fields mean. Those two are called "Local Data Part 1" and "Local Data Part 2" πŸ’… This doc describes an approach where "Local Data Part 1" holds a function identifier and "Local Data Part 2" holds a parameter value. In canonical notation it's summed up as ASN:Function:Parameter ✨

                 +----------------------+---------------+
                 |       RFC 8092       | this document |
                 +----------------------+---------------+
                 | Global Administrator |      ASN      |
                 |  Local Data Part 1   |    Function   |
                 |  Local Data Part 2   |   Parameter   |
                 +----------------------+---------------+

                          Table 1: Field Mapping

The table above is the mapping between the fields in BGP Large Communities [RFC8092] and this doc πŸ—ΊοΈ

In modern deployments of both BGP Communities [RFC1997] and BGP Large Communities [RFC8092], a community's function can be split into two categories πŸͺ„

  • Informational Communities
  • Action Communities

Throughout the doc, we use a topology of four ASes to show how communities work in this setup 🌸

           AS 65551
               |
               ^
               |
           AS 64497
             /  \
            ^    \
           /      ^
      AS 64498     \
          |        |
          `<->- AS 64499

AS 64497 gets transit services from (is a customer of) AS 65551, which is a 4-octet ASN 🌐 AS 64497 provides transit to both AS 64498 and AS 64499. AS 64498 and AS 64499 have a peering relationship where they only swap their customer routes 🀝

The opaque nature of BGP Large Communities means you can roll out new features, or change routing policy in ways that trigger an action, really fast πŸš€ Operators are encouraged to publicly publish and maintain docs on what each BGP Large Community is for, both Informational and Action ones, as long as they support them or they show up in BGP RIBs πŸ“š

2.1. Informational Communities πŸ”

Informational Communities are labels for things like where a route announcement came from, what kind of relationship exists with an External BGP (EBGP) neighbor, or who the route is meant to be propagated to πŸ‘€ They can also be super useful for day-to-day network ops, like debugging or capacity planning πŸ“Š

The Global Administrator field is set to the ASN of the network that tags routes with Informational Communities. For example, AS 64497 might add a community with GA 64497 to a route it accepted from an Internal BGP (IBGP) or EBGP neighbor, so it can signal that the route was imported in a certain geographical region πŸ—Ύ

Generally, the intended audiences for Informational Communities are downstream networks and the GA itself, but any AS could get value from receiving them πŸ’–

2.2. Action Communities 🎬

Action Communities are labels that ask for a route to be treated a certain way inside an AS 🎯 The AS operator defines a routing policy that adjusts path attributes based on the community. For example, the route's propagation behavior, the LOCAL_PREF (local preference), the next hop, or how many AS_PATH prepends get added when it's received or propagated can all be changed πŸ”§

The Global Administrator field is set to the ASN that defined the functionality of that BGP Large Community, and it's the ASN that's expected to carry out the action. For example, AS 64499 might label a route with a BGP Large Community containing GA 64497 to ask AS 64497 to perform a predefined action on that route πŸ™

Generally, the intended audience for Action Communities is transit providers taking action on behalf of a customer, or the GA itself. But any AS can take action if it wants to, and any AS can add an Action Community with the GA of a non-adjacent ASN 🌍 Heads up though: an Action Community can also be Informational. Its presence is a sign that the GA may have performed the action and that an AS in the AS_PATH asked for it πŸ‘€

Operators are recommended to publish the relative order in which Action Communities (both BGP Communities and BGP Large Communities) are processed in their routing policy πŸ“‹

3. Examples of Informational Communities πŸ“

3.1. Location πŸ—ΊοΈ

An AS, AS 64497 in these examples, can tell other networks which geographical region it imported a route in by labeling the route with BGP Large Communities, using one of the schemes below or a mix of them 🌏

3.1.1. An ISO 3166-1 Numeric Function πŸ‡³πŸ‡±

AS 64497 could set the Function field to 1 to mark the Parameter field as an ISO 3166-1 numeric country identifier <https://www.iso.org/iso-3166-country-codes.html> πŸ”’

+---------------------+---------------------------------------------+
| BGP Large Community | Description                                 |
+---------------------+---------------------------------------------+
|     64497:1:528     | Route learned in the Netherlands            |
|     64497:1:392     | Route learned in Japan                      |
|     64497:1:840     | Route learned in the United States of       |
|                     | America                                     |
+---------------------+---------------------------------------------+

                    Table 2: Informational: ISO 3166-1

The table above is example docs for Informational Communities that AS 64497 uses to describe where it imported a route, using ISO 3166-1 numeric identifiers 🧁 The next part picks up with the rest of the Location section πŸ¦‹

3.1.2. A UN M.49 Region Function 🌍✨

okay so bestie, AS 64497 could assign a value of 2 to the Function field πŸ’… to say that the Parameter field holds the M.49 numeric code published by the United Nations Statistics Division (UNSD) <https://unstats.un.org/unsd/methodology/m49/> πŸ—ΊοΈ for macro-geographical (continental) regions, geographical sub-regions, or selected economic and other groupings. it's giving world map energy, no cap πŸŒπŸ’–

      +---------------------+-------------------------------+
      | BGP Large Community | Description                   |
      +---------------------+-------------------------------+
      |      64497:2:2      | Route learned in Africa       |
      |      64497:2:9      | Route learned in Oceania      |
      |     64497:2:145     | Route learned in Western Asia |
      |     64497:2:150     | Route learned in Europe       |
      +---------------------+-------------------------------+

               Table 3: Informational: UNSD Regions

the table above is example documentation πŸ“ for Informational Communities that AS 64497 deploys to describe where a route was imported, using M.49 numeric codes from the UNSD 🌸

3.2. Relation Function πŸ¦‹

okay so AS 64497 could assign a value of 3 to the Function field πŸŽ€ to say that the Parameter field is a number showing whether the route started inside its own network or was learned from outside. if it was learned from outside, it might also describe the kind of relationship with that specific EBGP neighbor. literally so main character πŸ‘‘

  +---------------------+---------------------------------------+
  | BGP Large Community | Description                           |
  +---------------------+---------------------------------------+
  |      64497:3:1      | Route originated internally           |
  |      64497:3:2      | Route learned from a customer         |
  |      64497:3:3      | Route learned from a peering partner  |
  |      64497:3:4      | Route learned from a transit provider |
  +---------------------+---------------------------------------+

                 Table 4: Informational: Relation

the table above is example documentation πŸ“ for Informational Communities that AS 64497 deploys to describe its relation to the ASN the route was learned from 🧚

3.3. Combining Informational Communities πŸ“

ngl this part is so good ✨ a route can get labeled with multiple Informational Communities at once. for example, a route learned in the Netherlands from a customer might get tagged with communities 64497:1:528, 64497:2:150, and 64497:3:2 all at the same time 🫢


4. Examples of Action Communities πŸ’œ

4.1. Selective NO_EXPORT πŸ™ˆ

okay so as part of an agreement, often a commercial transit agreement, between AS 64497 and AS 64498, AS 64497 might expose BGP traffic-engineering functions to AS 64498 🀝 one such function could be selective NO_EXPORT, which is selectively filtering a route learned from one AS, AS 64498, to certain EBGP neighbors of the GA, AS 64497. it's giving control panel vibes πŸŽ›οΈβœ¨

4.1.1. ASN-Based Selective NO_EXPORT 🌈

AS 64497 could assign a value of 4 to the Function field πŸ’… to say that the Parameter field is a neighboring ASN that a route should not be propagated to.

      +---------------------+---------------------------------+
      | BGP Large Community | Description                     |
      +---------------------+---------------------------------+
      |    64497:4:64498    | Do not export route to AS 64498 |
      |    64497:4:64499    | Do not export route to AS 64499 |
      |    64497:4:65551    | Do not export route to AS 65551 |
      +---------------------+---------------------------------+

                   Table 5: Action: ASN NO_EXPORT

the table above is example documentation πŸ“ for Action Communities that AS 64497 deploys to expose a BGP traffic-engineering function that selectively stops routes from being propagated to the neighboring ASN in the Parameter field πŸ‘

4.1.2. Location-Based Selective NO_EXPORT 🌍

AS 64497 could assign a value of 5 to the Function field πŸŽ€ to say that the Parameter field is an ISO 3166-1 numeric country identifier where a labeled route is not propagated to EBGP neighbors. bestie, this might not stop one of those EBGP neighbors from learning that route in another country and making it available in the country named in the BGP Large Community 😭 tea spill β˜•

+-----------------+-------------------------------------------------+
|    BGP Large    | Description                                     |
|    Community    |                                                 |
+-----------------+-------------------------------------------------+
|   64497:5:528   | Do not export to EBGP neighbors in the          |
|                 | Netherlands                                     |
|   64497:5:392   | Do not export to EBGP neighbors in Japan        |
|   64497:5:840   | Do not export to EBGP neighbors in the United   |
|                 | States of America                               |
+-----------------+-------------------------------------------------+

                 Table 6: Action: NO_EXPORT in Region

the table above is example documentation πŸ“ for Action Communities that AS 64497 deploys to expose a BGP traffic-engineering function that selectively stops routes from being propagated to all EBGP neighbors in the geographical region named in the Parameter field 🩡

4.2. Selective AS_PATH Prepending πŸŽ€

okay so as part of an agreement between AS 64497 and AS 64498, AS 64497 might expose BGP traffic-engineering functions to AS 64498 🀍 one such function could be selectively prepending the AS_PATH with AS 64497 for certain EBGP neighbors of AS 64497.

4.2.1. ASN-Based Selective AS_PATH Prepending πŸ’–

AS 64497 could assign a value of 6 to the Function field πŸ’… to say that the Parameter field is a neighboring ASN where prepending the AS_PATH with AS 64497 is requested when the route is propagated. additional AS_PATH prepending functions might also be defined to support multiples of prepending, like two, three, or more prepends of AS 64497 🧁

    +---------------------+------------------------------------------+
    | BGP Large Community | Description                              |
    +---------------------+------------------------------------------+
    |    64497:6:64498    | Prepend 64497 once on export to AS 64498 |
    |    64497:6:64499    | Prepend 64497 once on export to AS 64499 |
    |    64497:6:65551    | Prepend 64497 once on export to AS 65551 |
    +---------------------+------------------------------------------+

                      Table 7: Action: Prepend to ASN

the table above is example documentation πŸ“ for Action Communities that AS 64497 deploys to expose a BGP traffic-engineering function that selectively prepends the AS_PATH with AS 64497 when propagating the route to the specified EBGP neighbor 🌷

4.2.2. Location-Based Selective AS_PATH Prepending 🌸

AS 64497 could assign a value of 7 to the Function field πŸŽ€ to say that the Parameter field is an ISO 3166-1 numeric country identifier where prepending the AS_PATH with AS 64497 is requested when the route is propagated to all EBGP neighbors in that region. it's giving "one stop shop" πŸ›οΈ

+-----------------+-------------------------------------------------+
|    BGP Large    | Description                                     |
|    Community    |                                                 |
+-----------------+-------------------------------------------------+
|   64497:7:528   | Prepend once to EBGP neighbors in the           |
|                 | Netherlands                                     |
|   64497:7:392   | Prepend once to EBGP neighbors in Japan         |
|   64497:7:840   | Prepend once to EBGP neighbors in the United    |
|                 | States of America                               |
+-----------------+-------------------------------------------------+

                  Table 8: Action: Prepend in Region

the table above is example documentation πŸ“ for Action Communities that AS 64497 deploys to expose a BGP traffic-engineering function that selectively prepends the AS_PATH with AS 64497 when propagating the route to all EBGP neighbors in the geographical region named in the Parameter field ⭐

4.3. Manipulation of the LOCAL_PREF Attribute πŸ‘‘

okay so as part of an agreement between AS 64497 and AS 64498, AS 64497 might expose BGP traffic-engineering functions to AS 64498 🫢 one such function might let AS 64498 manipulate the value of the LOCAL_PREF attribute of routes learned from AS 64498 within AS 64497, even though LOCAL_PREF is non-transitive and is not propagated to EBGP neighbors. it's a whole plot twist πŸ¦‹

The LOCAL_PREF values of routes are locally significant within each AS and are impossible to list in this document 😭 so instead, the typical LOCAL_PREF values could be classified as a hierarchy, and a BGP Large Community function could be exposed, letting an EBGP neighbor affect the LOCAL_PREF value within the specified GA. the example list below defines the classes of routes in descending order of LOCAL_PREF value and assigns a function identifier that could be used in the Function field of a BGP Large Community 🧚

+----------+--------------------------------------------------------+
| Function | Preference Class                                       |
+----------+--------------------------------------------------------+
|    8     | Normal customer route                                  |
|    9     | Backup customer route                                  |
|   10     | Peering route                                          |
|   11     | Upstream transit route                                 |
|   12     | Fallback route, to be installed if no other path is    |
|          | available                                              |
+----------+--------------------------------------------------------+

             Table 9: Action: Preference Function Identifiers

4.3.1. Global Manipulation of LOCAL_PREF πŸ“

AS 64497 could place one of the previously defined Preference Function Identifiers in the Function field and set the value 0 in the Parameter field πŸ’– to say that the LOCAL_PREF associated with that function identifier should be applied for that route throughout the whole AS. main character energy, literally ✨

+---------------------+---------------------------------------------+
| BGP Large Community | Description                                 |
+---------------------+---------------------------------------------+
|      64497:9:0      | Assign LOCAL_PREF for a customer backup     |
|                     | route                                       |
|      64497:10:0     | Assign LOCAL_PREF for a peering route       |
|      64497:12:0     | Assign LOCAL_PREF for a fallback route      |
+---------------------+---------------------------------------------+

             Table 10: Action: Global LOCAL_PREF Manipulation

the table above is example documentation πŸ“ for Action Communities that AS 64497 deploys to expose a BGP traffic-engineering function that lets a BGP neighbor globally manipulate the LOCAL_PREF attribute for the route within AS 64497 πŸŽ€πŸ’…

4.3.2. Region-Based Manipulation of LOCAL_PREF 🌍

okay so AS 64497 can grab one of the Preference Function Identifiers we already talked about and put a UN M.49 numeric region identifier in the Parameter field. That tells everyone which geographic region the non-default LOCAL_PREF for that function should apply to. πŸ—ΊοΈ The big rule here is that the LOCAL_PREF value should not deviate from the default for that route class in any region that isn't named by one or more of these Action Communities. No sneaky global changes, bestie! πŸ™…β€β™€οΈ

+--------------+----------------------------------------------------+
|  BGP Large   | Description                                        |
|  Community   |                                                    |
+--------------+----------------------------------------------------+
|  64497:9:3   | Assign the LOCAL_PREF value equivalent to a        |
|              | customer backup class route on BGP routers in the  |
|              | North America region                               |
|  64497:10:5  | Assign the LOCAL_PREF value equivalent to a        |
|              | peering class route on BGP routers in the South    |
|              | America region                                     |
| 64497:12:142 | Assign the LOCAL_PREF value equivalent to a        |
|              | fallback class route on BGP routers in the Asia    |
|              | region                                             |
+--------------+----------------------------------------------------+

            Table 11: Action: Regional LOCAL_PREF Manipulation

So the table is the example docs AS 64497 put out πŸ“‹βœ¨. It's a traffic-engineering function that lets a BGP neighbor selectively tweak LOCAL_PREF inside AS 64497, but only in the region written in the Parameter field. Main character energy, scoped to exactly one region πŸ’…

4.3.3. Note of Caution for LOCAL_PREF Functions ⚠️

okay this one is important, so read it twice 🫢. LOCAL_PREF is a huge deal in the BGP Decision Process, and that decision process decides how far routes spread. So operators should take special care when they use Action Communities that drop the LOCAL_PREF value, and how strongly it's preferred, below another route class. Those choices can cause unintended BGP states, and the ones that show up are described as "BGP Wedgies" in [RFC4264]. Yikes 😭 Traffic engineering is powerful, but it can get messy fast, so please be careful with it πŸ™ˆ

4.4. Route Server Prefix Distribution Control πŸ›°οΈ

okay so route servers [RFC7947] use BGP to share reachability info between their clients 🀝. Not every client wants to connect with every other client, so the route server operator usually sets up a way for each client to control the route server's export routing policy, as described in Section 4.6 of [RFC7948]. One widely used approach is a route-server-specific spin on "ASN-Based Selective NO_EXPORT" (Section 4.1.1) πŸ’–.

Here's an example BGP Large Communities policy where a route server running as AS 64511 lets clients control who gets their prefixes πŸŽ€:

+-------------------+-----------------------------------------------+
| BGP Large         | Description                                   |
| Community         |                                               |
+-------------------+-----------------------------------------------+
| 64511:0:peer-as   | Explicitly prevent announcement of route to   |
|                   | peer-as                                       |
| 64511:1:peer-as   | Explicitly announce route to peer-as          |
| 64511:0:0         | Do not announce route to any peers by default |
| 64511:1:0         | Announce route to all peers by default        |
+-------------------+-----------------------------------------------+

        Table 12: Action: Route Server Prefix Distribution Control

You can stack multiple BGP Large Community values together for really fine-grained distribution control 🧁. Say route server client AS 64500 wants to use the route server to talk to everyone except AS 64509. They'd tag all their outbound routes to the route server with 64511:1:0 (announce to all clients by default) and 64511:0:64509 (don't announce to AS 64509). Iconic πŸ‘‘

Or maybe route server client AS 64501 has a pickier policy and only wants to peer with AS 64505 and AS 64506 πŸ¦‹. They'd announce routes tagged with 64511:0:0 (block everything by default) plus 64511:1:64505 and 64511:1:64506, which tells the route server to force announcement to those two ASNs. Guest list only, bestie πŸ’…

5. Security Considerations πŸ”

okay this section is SERIOUS, so pay attention 😀. Operators should check out the recommendations in Section 11 of "BGP Operations and Security" [RFC7454] and treat BGP Large Communities that carry their ASN in the Global Administrator field the same way.

Also, just like BGP Communities [RFC1997], operators need to remember that any Large Community can show up in a BGP UPDATE 🚨. Operators should also recognize that BGP neighbors, especially customers and customers of customers, may use communities defined by other BGP neighbors of the operator. Those neighbors might want to send routes with Action Communities and receive routes with Informational Communities to or from these other neighbors, and letting them do that is beneficial to everyone 🫢.

6. IANA Considerations 🌸

Good news: this document doesn't require any IANA actions ✨.

7. References πŸ“š

7.1. Normative References

[RFC1997]  Chandra, R., Traina, P., and T. Li, "BGP Communities
           Attribute", RFC 1997, DOI 10.17487/RFC1997, August 1996,
           <http://www.rfc-editor.org/info/rfc1997>.

[RFC7454]  Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations
           and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454,
           February 2015, <http://www.rfc-editor.org/info/rfc7454>.

[RFC8092]  Heitz, J., Ed., Snijders, J., Ed., Patel, K., Bagdonas,
           I., and N. Hilliard, "BGP Large Communities Attribute",
           RFC 8092, DOI 10.17487/RFC8092, February 2017,
           <http://www.rfc-editor.org/info/rfc8092>.

7.2. Informative References

[RFC1998]  Chen, E. and T. Bates, "An Application of the BGP
           Community Attribute in Multi-home Routing", RFC 1998,
           DOI 10.17487/RFC1998, August 1996,
           <http://www.rfc-editor.org/info/rfc1998>.

[RFC4264]  Griffin, T. and G. Huston, "BGP Wedgies", RFC 4264,
           DOI 10.17487/RFC4264, November 2005,
           <http://www.rfc-editor.org/info/rfc4264>.

[RFC7947]  Jasinska, E., Hilliard, N., Raszuk, R., and N. Bakker,
           "Internet Exchange BGP Route Server", RFC 7947,
           DOI 10.17487/RFC7947, September 2016,
           <http://www.rfc-editor.org/info/rfc7947>.

[RFC7948]  Hilliard, N., Jasinska, E., Raszuk, R., and N. Bakker,
           "Internet Exchange BGP Route Server Operations", RFC 7948,
           DOI 10.17487/RFC7948, September 2016,
           <http://www.rfc-editor.org/info/rfc7948>.

Acknowledgments πŸ™

big thank-yous to the people who gave insightful comments, contributions, critique, and support πŸ₯°: Adam Chappell, Jonathan Stewart, Greg Hankins, Nick Hilliard, Will Hargrave, Randy Bush, Shawn Morris, Jay Borkenhagen, and Stewart Bryant. You're all iconic 🌈✨

Authors' Addresses πŸ’Œ

Job Snijders
NTT Communications
Theodorus Majofskistraat 100
Amsterdam  1065 SZ
The Netherlands

Email: job@ntt.net


John Heasley
NTT Communications
1111 NW 53rd Drive
Portland, OR  97210
United States of America

Email: heas@shrubbery.net


Martijn Schmidt
i3D.net
Rivium 1e Straat 1
Capelle aan den IJssel  2909 LE
The Netherlands

Email: martijnschmidt@i3d.net
πŸ“¦ where this page comes from