d1bf7c8bc7ed2b176691ceda9f2f9570b62fcd8e
howto/GeoFeed.md
| ... | ... | @@ -0,0 +1,75 @@ |
| 1 | +A *GeoFeed* is a standardized mechanism for publishing geographic location information about IP address prefixes. It helps network operators associate IP address blocks with real-world locations, enabling better visualization, monitoring, and geolocation accuracy. |
|
| 2 | + |
|
| 3 | +A GeoFeed is especially useful in distributed networks like DN42, where many nodes exist in different physical locations. It can assist in mapping latency, debugging routing, and documenting physical network topology. |
|
| 4 | + |
|
| 5 | +## Standards & Protocol References |
|
| 6 | + |
|
| 7 | +**[RFC 8805](https://www.rfc-editor.org/rfc/rfc8805) - _Format for Self-Published IP Geolocation Feeds_** |
|
| 8 | +- Defines the **format** for GeoFeed files (CSV); |
|
| 9 | +- Geographic mappings associate prefixes with location attributes. |
|
| 10 | +- A GeoFeed file consists of comma-separated values in UTF-8 format. |
|
| 11 | + |
|
| 12 | +**[RFC 9632](https://www.rfc-editor.org/rfc/rfc9632) - _Finding and Using GeoFeed Data_** |
|
| 13 | +- Specifies how to reference GeoFeed files from routing databases such as RPSL objects (`inetnum`, `inet6num`); |
|
| 14 | +- Defines how to augment existing routing registry objects with attributes pointing to GeoFeed URLs (e.g., using a `geofeed:` attribute); |
|
| 15 | +- Replaces earlier RFC 9092, improving schema and specification details. |
|
| 16 | + |
|
| 17 | +**[RFC 9877](https://www.rfc-editor.org/rfc/rfc9877) - _RDAP GeoFeed Extension_** |
|
| 18 | +- Defines an extension to RDAP (Registration Data Access Protocol) that allows RDAP servers to disclose GeoFeed URLs for IP address resources; |
|
| 19 | +- Useful for automated discovery of GeoFeed data through registry queries. |
|
| 20 | + |
|
| 21 | +### Operational Example (RIPE 82) |
|
| 22 | +A concrete operational example of GeoFeed publication and integration within the RIPE Database was presented at RIPE 82 (see presentation below): |
|
| 23 | +https://ripe82.ripe.net/presentations/84-RIPE82_geofeed.pdf |
|
| 24 | + |
|
| 25 | +## GeoFeed file formats |
|
| 26 | + |
|
| 27 | +**CSV Example**: |
|
| 28 | +```csv |
|
| 29 | +# prefix,country_code,region_code,city,postal |
|
| 30 | +172.20.0.0/24,FR,FR-ARA,LYON,69123 |
|
| 31 | +fd42:1234::/48,FR,,,, |
|
| 32 | +... |
|
| 33 | +``` |
|
| 34 | + |
|
| 35 | +**JSON Example**: |
|
| 36 | +```json |
|
| 37 | +[ |
|
| 38 | + { |
|
| 39 | + "prefix": "172.20.0.0/24", |
|
| 40 | + "country_code": "FR", |
|
| 41 | + "region_code": "FR-ARA", |
|
| 42 | + "city": "LYON", |
|
| 43 | + "postal": 69123 |
|
| 44 | + }, |
|
| 45 | + { |
|
| 46 | + "prefix": "fd42:1234::/48", |
|
| 47 | + "country_code": "", |
|
| 48 | + "region_code": "", |
|
| 49 | + "city": "", |
|
| 50 | + "postal": 0 |
|
| 51 | + }, |
|
| 52 | + ... |
|
| 53 | +] |
|
| 54 | +``` |
|
| 55 | + |
|
| 56 | +> GeoFeed files can also be TXT or other simple text formats, but CSV/JSON is recommended for ease of parsing in scripts and automation tools. |
|
| 57 | + |
|
| 58 | +## How to publish a GeoFeed on DN42 ? |
|
| 59 | + |
|
| 60 | +1. **Host your GeoFeed file** |
|
| 61 | + The file must be accessible via HTTP or HTTPS (IPv4 and/or IPv6), either on DN42 or on clearnet. |
|
| 62 | +2. **Reference in the Registry** |
|
| 63 | + Add a `remarks: GeoFeed <url>` attribute in your `inet(6)num` object to point to your hosted GeoFeed. |
|
| 64 | + Example DN42 WHOIS snippet: |
|
| 65 | + ```rpsl |
|
| 66 | + inetnum: 0.0.0.0/0 |
|
| 67 | + remarks: GeoFeed http://example.dn42/geofeed.csv |
|
| 68 | + ``` |
|
| 69 | + |
|
| 70 | +## Best Practices |
|
| 71 | +- **Version control**: Store your GeoFeed in Git to track changes and manage updates. |
|
| 72 | +- **Accuracy**: Keep node locations precise enough for mapping, but avoid exposing sensitive private addresses or exact locations. |
|
| 73 | +- **Accessibility**: Ensure your GeoFeed URL is always reachable; update registry references if the file moves. |
|
| 74 | +- **Integration**: Combine GeoFeed with monitoring dashboards, RIPE Atlas probes (clearnet), or Looking Glass tools to visualize node availability over time. |
|
| 75 | +- **Naming Conventions**: Maintain consistent node names and clear comments for easier automation and identification. |
|
| ... | ... | \ No newline at end of file |