RFC 6397

Multi-Threaded Routing Toolkit (MRT) Border Gateway Protocol (BGP) Routing Information Export Format with Geo-Location Extensions

πŸ“… published October 2011, from ietf

RFC 6397 πŸŽ€ Title Block Tea β˜•

bestie, the header tea is ✨ RFC 6397, written by T. Manderson from ICANN πŸ’…. It's a Standards Track doc, which means the IETF community agreed on it and it's the real deal 🫢. It's dated October 2011, with ISSN 2070-1721. The header doesn't list anything it obsoletes or updates, but the abstract says it updates the MRT export format πŸ¦‹.

Multi-Threaded Routing Toolkit (MRT) Border Gateway Protocol (BGP) Routing Information Export Format with Geo-Location Extensions 🌈

Abstract ✨

okay so this doc updates the Multi-threaded Routing Toolkit (MRT) export format for Border Gateway Protocol (BGP) routing information 🌸. The big glow-up is that it adds optional terrestrial coordinates for a BGP collector and its BGP peers πŸ—ΊοΈπŸ’–.


Status of This Memo 🫢

this is an Internet Standards Track document πŸ”₯.

it's a product of the Internet Engineering Task Force (IETF) πŸ‘‘. it represents the consensus of the IETF community, received public review, and got approved for publication by the Internet Engineering Steering Group (IESG) πŸ’…. if you want more info on Internet Standards, check Section 2 of RFC 5741 πŸŽ€.

info about the current status of this doc, any errata, and how to give feedback lives at http://www.rfc-editor.org/info/rfc6397 🧚.

Copyright (c) 2011 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 stand on the date of publication πŸ“œ. read these carefully, bestie, because they describe 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  . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.  Requirements Notation . . . . . . . . . . . . . . . . . . . . . 2
3.  Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.  Geo-Location-Aware MRT Routing Information Subtype  . . . . . . 3
  4.1.  GEO_PEER_TABLE  . . . . . . . . . . . . . . . . . . . . . . 3
  4.2.  GEO_PEER_TABLE and Peer Entry Values  . . . . . . . . . . . 5
5.  BGP Collector Construction  . . . . . . . . . . . . . . . . . . 5
6.  Privacy Considerations  . . . . . . . . . . . . . . . . . . . . 6
7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 6
8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
9.  Security Considerations . . . . . . . . . . . . . . . . . . . . 7
10. References  . . . . . . . . . . . . . . . . . . . . . . . . . . 7
  10.1. Normative References  . . . . . . . . . . . . . . . . . . . 7
  10.2. Informative References  . . . . . . . . . . . . . . . . . . 8

1. Introduction πŸ¦‹

okay so researchers and engineers love to analyze network behavior by studying routing protocol transactions and routing information base snapshots against geographical topologies πŸ—ΊοΈβœ¨. Usually the thing being studied is the Border Gateway Protocol [RFC4271], and the analysis gets a huge boost from the "Multi-Threaded Routing Toolkit (MRT) Routing Information Export Format" [RFC6396] and its extensions πŸ’…. The MRT format was originally defined in the MRT Programmer's Guide [MRT-GUIDE] πŸ“š.

adding geo-location coordinates (longitude and latitude) for both the BGP collector and its BGP peers to BGP export data lets a researcher or curious individual get a terrestrial view of the routes a BGP speaker sees πŸ‘€πŸ’–. this could help researchers figure out any mismatch between where networks are located and how they're connected topologically, plus how geographic position relates to routing anomalies πŸ”. that kind of insight could feed into network design and network security later on πŸ›‘οΈπŸ«Ά.

this memo documents an optional extension to the MRT format [RFC6396] and introduces a new definition of an MRT Subtype field that carries the terrestrial coordinates of a BGP collector and its BGP peers 🌸🧚.

2. Requirements Notation πŸ“œ

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] πŸ”₯.

3. Definitions πŸ’œ

Coordinates: the geographic latitude and longitude that specify a location on the earth 🌍.

BGP Speaker: a network device that exchanges network routing information using BGP πŸ›°οΈ.

Geo-location: assigning a set of coordinates to a specific artifact, which in this case is a BGP speaker πŸ“.

BGP Collector: a BGP speaker (usually passive) that stores and archives BGP routing data from active BGP peers for analysis πŸ—ƒοΈ.

BGP Peer: either an internal or external BGP peer [RFC4271] 🀝.

Not A Number (NAN): a numeric data type representing an undefined or unrepresentable value, as defined in the IEEE Standard for Floating-Point Arithmetic [IEEE754] πŸ«₯.

4. Geo-Location-Aware MRT Routing Information Subtype 🧚

an extra subtype (GEO_PEER_TABLE) is defined for the TABLE_DUMP_V2 format, which extends the TABLE_DUMP_V2 Type πŸ’–.

4.1. GEO_PEER_TABLE 🌈

the GEO_PEER_TABLE Subtype updates the TABLE_DUMP_V2 Types so they include geo-location info in the form of World Geodetic System 1984 (WGS84) [WGS-84] formatted coordinates πŸ—ΊοΈβœ¨.

this doc adds the 7th subtype number and name below πŸ”’. the first 6 subtypes are defined by the MRT format [RFC6396] πŸ“–.

Subtype Number       Subtype Name
----------------------------------
    7               GEO_PEER_TABLE

the GEO_PEER_TABLE MRT record gives you the BGP ID of the collector, its latitude and longitude in WGS84 [WGS-84] format, and a list of indexed peers with their own latitudes and longitudes in WGS84 [WGS-84] format πŸ’….

the format and function of the Collector BGP ID and Peer Count are the same as defined by the TABLE_DUMP_V2, PEER_INDEX_TABLE format [RFC6396] πŸŽ€.

the Collector Latitude and Collector Longitude are the collector's geographical coordinates in WGS84 [WGS-84] datum decimal degrees, stored as a single precision float in the 32 bits allocated to each one 🫢. the latitude and longitude MAY be a Not A Number (NAN) [IEEE754] when the collector's geo-location is considered private πŸ™ˆ. the Collector Latitude and Collector Longitude MUST NOT be a mix of WGS84 [WGS-84] datum coordinates and NAN values 🚫.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Collector BGP ID                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Collector Latitude                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Collector Longitude                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Peer Count           |  Peer Entries (variable)
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Format of the GEO_PEER_TABLE

the format of the Peer Entries is shown below πŸ‘‡. the Peer Type and the Peer BGP ID are defined in the TABLE_DUMP_V2 MRT, PEER_INDEX_TABLE format [RFC6396] πŸ’œ. the order of the Peer Entries in the GEO_PEER_TABLE MUST match the order and number that already exist in the PEER_INDEX_TABLE πŸ”₯.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Peer Type   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Peer BGP ID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Peer Latitude                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Peer Longitude                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Format of Peer Entries

the Peer Latitude and Peer Longitude are the peer's geographical coordinates in WGS84 [WGS-84] datum decimal degrees, stored as a single precision float in the 32 bits allocated to each one 🌸. the latitude and longitude MAY be a Not A Number (NAN) [IEEE754] when the peer's geo-location is considered private πŸ™ˆ. for a single peer, the Peer Latitude and Peer Longitude MUST NOT be a mix of WGS84 [WGS-84] datum coordinates and NAN values 🚫✨.

4.2. GEO_PEER_TABLE and Peer Entry Values πŸ’…

Collector BGP ID: defined in the MRT format [RFC6396] πŸŽ€.

Collector Latitude: geographic latitude of the BGP collector in WGS84 [WGS-84] datum decimal degrees format, stored as a single precision float 🌍.

Collector Longitude: geographic longitude of the BGP collector in WGS84 [WGS-84] datum decimal degrees format, stored as a single precision float 🌍.

Peer Count: defined in the MRT format [RFC6396] πŸ”’.

Peer Entries: defined in the MRT format [RFC6396] πŸ“š.

Peer Type: defined in the MRT format [RFC6396] 🫢.

Peer BGP ID: defined in the MRT format [RFC6396] πŸ†”.

Peer Latitude: geographic latitude of the BGP peer in WGS84 [WGS-84] datum decimal degrees format, stored as a single precision float 🌏.

Peer Longitude: geographic longitude of the BGP peer in WGS84 [WGS-84] datum decimal degrees format, stored as a single precision float 🌏.

5. BGP Collector Construction πŸ§šβ€β™€οΈ

this section helps you understand what a BGP collector does πŸ’–.

a BGP collector is a hardware- or software-based device that speaks the Border Gateway Protocol πŸ›°οΈ. its whole job is to store (and archive) the BGP routing data it gets from the other BGP speakers it has peering relationships with, so that data is ready for later analysis πŸ—ƒοΈ. the general vibe of a BGP collector is that it's passive: it listens to route updates and doesn't announce or propagate anything it knows or receives πŸ™‰. it should be noted that this isn't always the case, because network operators sometimes turn on BGP routing data collection on active BGP speakers to get a snapshot of the routing system as they see it at a particular moment πŸ“Έβœ¨.

as a fully fledged BGP speaker, the BGP collector can fit into any BGP topology, including Internal BGP (iBGP), External BGP (eBGP), and so on πŸŒπŸ¦‹. so where a collector can go in a network topology is limited by how that network uses BGP πŸ’….

6. Privacy Considerations πŸ”’

okay so privacy is a whole vibe here, bestie 🫢. The GEOPRIV [RFC6280] architecture says that privacy rules attached to a location object have to travel with the location info in that object. 🧚 So if a BGP collector adds location coordinates to an MRT record based on GEOPRIV location objects, it MUST NOT leave those privacy rules behind. It has to carry them along too πŸ’….

The problem is that the MRT geo-location format doesn't support privacy rules at all 😭. So every location entry in an MRT object just gets these default privacy rules [RFC4119]:

-- retransmission-allowed: True
-- retention-expires: 100 years from timestamp of the MRT object
-- ruleset-reference: Empty
-- note-well: Empty

Now the rule that really matters πŸ‘‘: location info derived from a location object with more restrictive privacy rules MUST NOT be put into an MRT geo-location record. The only exception is when there are non-technical measures in place that enforce and communicate the limits on how that location info can be used in the MRT geo-location format (for example, contractual agreements between peers). Basically, a technical format can't hold the rules, so the paperwork has to. Not the vibe, but it's the rule πŸ™ˆ.


7. Acknowledgements πŸŽ€

Huge thank-yous to Andrew Clark, Ernest Foo, Dave Meyer, Larry Blunk, Richard Barnes, and Jeffrey Haas for reviewing this document πŸ₯Ήβœ¨. You all are literally the best.

This document covers a small piece of the research the author did for their Ph.D. πŸŽ“πŸŒΈ Academic main character energy, no cap.


8. IANA Considerations πŸ¦‹

So here's the deal with IANA. The Internet Assigned Numbers Authority (IANA) has registered one new Subtype code value πŸ“:

7    GEO_PEER_TABLE

That goes in the MRT format [RFC6396], and it sits alongside the Subtype code values related to the TABLE_DUMP_V2 Type in the MRT namespace πŸ“. Registered and official, iykyk πŸ’….


9. Security Considerations πŸ’€

Okay, this section is serious, so let's go 🧐. This extension to the MRT format [RFC6396] defines fields that are descriptive in nature and give information that's useful for analyzing routing systems πŸ“Š. The author believes they don't add any extra network-based security risk 🀞.

Still, it is recommended that the operators of the BGP collector and BGP peers think about their own privacy and security concerns before handing over geographical coordinates to BGP data collection systems πŸ”. Physical security matters a LOT here, especially if the resulting BGP data with geo-location extensions ends up public. Please be careful, bestie 😭🚨.

Here's another big one 🫣. Anyone who runs BGP collectors, and anyone who uses the data they provide, should know that the geo-location data a peer supplies can only be taken at face value. A BGP peer might give coordinates that are purposely misleading or just inaccurate πŸ‘€. So it's up to the BGP collector whether to include this info, or whether to use its own methods to trust or validate what the peer gave it 🧠. It is not recommended that a BGP collector use geographical coordinates that a BGP peer didn't supply πŸ™…β€β™€οΈ.


10. References πŸ“š

10.1. Normative References πŸ’œ

[RFC2119]    Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC4119]    Peterson, J., "A Presence-based GEOPRIV Location Object
             Format", RFC 4119, December 2005.

[RFC4271]    Rekhter, Y., Li, T., and S. Hares, "A Border Gateway
             Protocol 4 (BGP-4)", RFC 4271, January 2006.

[RFC6280]    Barnes, R., Lepinski, M., Cooper, A., Morris, J.,
             Tschofenig, H., and H. Schulzrinne, "An Architecture for
             Location and Location Privacy in Internet Applications",
             BCP 160, RFC 6280, July 2011.

[RFC6396]    Blunk, L., Karir, M., and C. Labovitz, "Multi-Threaded
             Routing Toolkit (MRT) Routing Information Export
             Format", RFC 6396, October 2011.

10.2. Informative References 🌈

These are the extra reads, not required, but they're giving very useful background πŸ€“βœ¨.

[IEEE754]    IEEE 754, "IEEE Standard for Floating-Point Arithmetic",
             August 2008, <http://ieeexplore.ieee.org/servlet/
             opac?punumber=4610933>.

[MRT-GUIDE]  Labovitz, C., "MRT Programmer's Guide", November 1999,
             <http://www.merit.edu/networkresearch/
             mrtprogrammer.pdf>.

[WGS-84]     Geodesy and Geophysics Department, DoD., "World Geodetic
             System 1984", January 2000, <http://earth-info.nga.mil/
             GandG/publications/tr8350.2/wgs84fin.pdf>.

Author's Address 🧚

Terry Manderson
ICANN

EMail: terry.manderson@icann.org
πŸ“¦ where this page comes from