Internet-Draft RFC8805bis April 2025
Kumari & Pauly Expires 19 October 2025 [Page]
Workgroup:
WG Working Group
Internet-Draft:
draft-wkumari-opsawg-rfc8805bis-latest
Published:
Intended Status:
Informational
Expires:
Authors:
W. Kumari
Google
T. Pauly
Apple, Inc

Self-Published IP Geolocation Feeds - Version 2

Abstract

RFC8805 defines a format whereby a network operator can publish a mapping of IP address prefixes to simplified geolocation information, colloquially termed a "geolocation feed". Interested parties consume these feeds to update or merge with other geolocation data sources and procedures.

This document updates RFC8805 to specify a JSON encoding for the goelocation feed (JSON) to allow for the inclusion of additional information, and to be more extensible.

About This Document

This note is to be removed before publishing as an RFC.

The latest revision of this draft can be found at https://example.com/LATEST. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-wkumari-opsawg-rfc8805bis/.

Discussion of this document takes place on the WG Working Group mailing list (mailto:WG@example.com), which is archived at https://example.com/WG.

Source for this draft and an issue tracker can be found at https://github.com/wkumari/rfc8805bis.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 19 October 2025.

Table of Contents

1. Introduction

This document updates [RFC8805], which defined a format whereby a network operator can publish a mapping of IP address prefixes to simplified geolocation information, colloquially termed a "geolocation feed". Interested parties can poll and parse these feeds to update or merge with other geolocation data sources and procedures.

RFC8805 specified a CSV format, which while simple, has limitations in terms of extensibility and the amount of information that can be included. This document specifies a JSON format for the geolocation feed to allow for the inclusion of additional information, be more extensible, and also more easily parsed by modern libraries.

The original CSV format in [RFC8805] was created in 2013, and while it has served its purpose, many operators would like the ability to provide (and consume) additional information associated with the geolocated prefix.

The primary additional information that is included relates to the capabilities of the network connection associated with a prefix. For example example, cable networks generally have high throughput and higher latency/jitter, while cellular devices generally have smaller screens. By exposing this information to network providers, we can help them to make better decisions about how to optimize the content for the end user.

This is especially important for video streaming and gaming applications, where the quality of the experience is heavily dependent on the network conditions.

The JSON format is designed to be extensible, so that new fields can be added in the future without breaking existing implementations. This is done by using a "key-value" pair structure, where each key is a string and the value can be any valid JSON value (string, number, object, array, etc.). This allows for the inclusion of additional information in the future without breaking existing implementations. For example, if a new field is added to the JSON format, existing implementations will simply ignore it, while new implementations can take advantage of it.

The JSON format is also designed to be human-readable, so that operators can easily understand the information that is being published. This is done by using a simple and consistent naming convention for the keys, and by using a clear and concise structure for the values.

In addition to being more extensible, experiance with RFC8805 has shown that many prefixes share common characteristics. For example, many prefixes are associated with a single location. In order to reduce the amount of data that needs to be published, this document allows for the use of "prefix groups". A prefix group is a set of prefixes that share common characteristics, and can be represented as a single entry in the JSON format. This allows for the publication of a single entry for a group of prefixes, rather than a separate entry for each prefix.

[RFC8805] specified the location as being: alpha2code,region,city,postal_code (with postal_code as being deprecated)

This is both simultaneously too specific and not specific enough. For example, Tokyo covers around 2000 square kilometers, and the city of Tokyo has a population of around 14 million people, while Thurmond, West Virginia, USA covers less than 0.5 square kilometers and, as of 2024, had a population of 2.

To help address this, the new JSON format uses [RFC7946] GeoJSON format to specify the location (with constraints to ensure that the targeting is not too specific). This allows for the use of polygons, and other geometric shapes to represent the location of the prefix. ((TODO (WK): I put this in for now, but "with constraints" is, um, handwavey. I think that this is likely already "solved" by work in the Geoprive WG -- talk to Ray B to figure out what we should reference, etc.!))

2. Conventions and Definitions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

3. Format

The new JSON format is informed both by [SVTA5010] and from numerous discussions with operators, goeolocation providers, and real-time streaming providers.

The JSON encoding of the geolocation feed is a JSON object, with the following fields (NOTE: This is very much a first draft, and this will change):

4. Security Considerations

TODO Security.

Include:

5. IANA Considerations

This document has no IANA actions.

6. Notes to self:

Also get input from:

ToDo:

7. References

7.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC7946]
Butler, H., Daly, M., Doyle, A., Gillies, S., Hagen, S., and T. Schaub, "The GeoJSON Format", RFC 7946, DOI 10.17487/RFC7946, , <https://www.rfc-editor.org/rfc/rfc7946>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC8805]
Kline, E., Duleba, K., Szamonek, Z., Moser, S., and W. Kumari, "A Format for Self-Published IP Geolocation Feeds", RFC 8805, DOI 10.17487/RFC8805, , <https://www.rfc-editor.org/rfc/rfc8805>.

7.2. Informative References

[SVTA5010]
"SVTA5010: Geo-Data for IPv6", n.d., <https://www.svta.org/product/svta5010/>.

Acknowledgments

This document was inspired by discussions with numerous operators, geolocation providers, and real-time streaming providers. In addition, the work of the Streaming Video Technology Alliance (SVTA) in defining the SVTA5010 is appreciated.

There have been many discussions over the years about updating this format; unfortunately I have managed to forget who all these discussions were with. If you are one of these people, please let me know and I will add you to the acknowledgments!

The authors would like to thank the following people for their input and feedback on this document: <<TODO: Add names>>.

Authors' Addresses

Warren Kumari
Google
Tommy Pauly
Apple, Inc