RFC 8805 · RFC 9092
Publica un geofeed RFC 8805 en una URL que no se mueve. Y entérate de quién lo lee.
Importa los prefijos que anuncia tu ASN, indica dónde están y pega una línea en tu objeto del registro. Cada descarga se atribuye, así que sabrás si MaxMind, Google o cualquier otro ha recogido el archivo.
# network,country,region,city,postal_code
192.0.2.0/24,ES,ES-M,Madrid,28001
198.51.100.0/24,US,US-NY,New York,10001
203.0.113.0/24,DE,,,
2001:db8::/32,ES,ES-B,Barcelona,08001
2001:db8:1::/48,JP,JP-13,Tokyo,100-0001Las tres son reales. El feed lo genera el mismo código que sirve todos los feeds en producción y la petición devuelve ese 304 hoy mismo; los prefijos son espacio reservado para documentación (RFC 5737, RFC 3849), así que aquí nada afirma una ubicación de las direcciones de nadie.
Cuatro pasos, y el cuarto es el único que no depende de nosotros.
Añadir un ASN, importar sus prefijos y asignar ubicaciones lleva unos minutos. Después pones una línea en tu objeto del registro y la cadena de descubrimiento funciona sola.
1.0 Guía rápida
Añade tu ASN
Escribe el número. No se comprueba nada contra tu identidad: la verificación de titularidad ocurre sobre los prefijos, en el paso dos.
Importa lo que anuncias
Los prefijos salen de la vista de prefijos anunciados de RIPEstat para tu ASN, IPv4 e IPv6 a la vez. El feed más grande de aquí tiene 219; ninguno se escribió a mano.
Indica dónde están
El país es la única columna obligatoria. La región usa un código ISO 3166-2, y al elegir una subdivisión el código se rellena solo en lugar de recortar el nombre.
Apunta tu objeto del registro al feed
Un atributo en el inetnum o inet6num que cubre el prefijo. El RFC 9092 dice que los consumidores miran ahí, no en el aut-num, que es donde se pone por error.
inetnum: 192.0.2.0 - 192.0.2.255
netname: EXAMPLE-NET
country: ES
geofeed: https://geofeed.network/geofeeds/example.csvLa URL de tu feed está ligada a tu cuenta, no a los ASN que contiene, así que añadir o quitar un ASN nunca invalida lo que pegaste.
Cuánto tarda el paso cuatro depende de tu RIR, no de nosotros: en RIPE el objeto se actualiza en segundos, otros registros lo encolan. Todo lo anterior queda hecho en el momento en que lo guardas.
Un código de país por sí solo ya es un geofeed válido.
Y además es lo que son la mayoría de los feeds publicados. Estos son todos los prefijos que se sirven hoy desde aquí, contados según cuál de las cinco columnas del RFC 8805 está rellena. Empieza por el país; lo demás es afinar.
2.0 Cobertura de campos
| COLUMNA | n | RELLENA |
|---|---|---|
| network | 290 | 100% |
| country | 287 | 99% |
| region | 27 | 9% |
| city | 22 | 8% |
| postal_code | 24 | 8% |
290 prefijos de 14 ASN, todos feeds en producción servidos por este servicio, medido el 2026-09-09. El ancho de cada barra es recuento ÷ 290.
region, city y postal_code son opcionales en el RFC 8805 y un consumidor que no puede usarlos los ignora. Una columna vacía nunca es un error; una equivocada sí.
Las partes que es fácil equivocar.
Un geofeed es un CSV de cinco columnas. Escribir uno no tiene ninguna dificultad. Lo que le cuesta precisión real a un operador son los detalles de abajo, y cada uno de ellos ha roto feeds en silencio ahí fuera — incluidos los que generaba este mismo servicio.
3.0 Qué hace
- 3.1Códigos ISO 3166-2 resueltos, no adivinados
El RFC 8805 pide un código de subdivisión en la tercera columna. La versión anterior de esta aplicación lo fabricaba cortando el nombre de la región a dos letras, lo que convertía Madrid en ES-MA — una subdivisión que no existe. Ahora las regiones salen de una búsqueda, en los dos sentidos: un código te da su nombre canónico y un nombre te da su código.
192.0.2.0/24,ES,ES-M,Madrid,28001- 3.2IPv6 en igualdad de condiciones
Se analiza, se normaliza a la forma del RFC 5952 y se sirve en el mismo archivo que tus prefijos IPv4. El importador ya no se salta todo lo que lleva dos puntos.
2001:db8::/32,ES,ES-B,Barcelona,08001- 3.3Si tu objeto del registro apunta de verdad al feed
El panel consulta RDAP a través del registro de arranque de IANA y lee el inetnum que cubre cada prefijo. Tres respuestas que importan, y se distinguen: apunta a tu feed, apunta a otra URL, o no apunta a nada. La del medio suele ser un renombrado que nadie propagó.
geofeed: https://geofeed.network/geofeeds/example.csv- 3.4Quién lo ha leído, y cuándo
Cada descarga se atribuye por su User-Agent y se muestra por consumidor. Un geofeed que nadie consulta falla en silencio por diseño, y esta es la única señal de que funciona. Un 304 cuenta como lectura: un proveedor que ha revalidado tiene tus datos.
user-agent: MaxMind GeoIP Update/1.0- 3.5Peticiones condicionales que sirven para algo
Un ETag fuerte sobre los bytes exactos y un Last-Modified tomado de tu última edición. El generador antiguo enviaba la hora actual en cada respuesta, con lo que ningún consumidor podía hacer nada.
$ curl -sI -H 'If-None-Match: "rHr9KePUYPER2zMEmMd8p9oYriI"' https://geofeed.network/geofeeds/example.csv HTTP/2 304- 3.6Empuja desde tu IPAM en vez de teclear
Un endpoint de lectura y otro de reemplazo, con autenticación por token bearer y 120 peticiones por minuto. El permiso de escritura se activa por token y revocarlo surte efecto en la siguiente petición.
$ curl -sH 'Authorization: Bearer gfn_...' https://geofeed.network/api/v1/prefixes- 3.7Trae el feed que ya publicas
Pégalo y mira el diff antes de que se escriba nada: qué se añadiría, qué cambiaría, qué se queda igual y —si pediste reemplazo— qué se borraría. Los nombres de región se aceptan a la entrada y se resuelven a códigos, porque es lo que contienen los feeds que ya existen.
preview: 12 add, 3 update, 1 delete, 4 unchanged- 3.8Un validador que no está detrás del login
Pega un feed o indica una URL y te da los números de línea. Es público porque un comprobador de formato que exige cuenta no le sirve de nada a quien está depurando el feed de otro.
line 14: region "Madrid" is not an ISO 3166-2 code
No necesitas este servicio para publicar un geofeed.
Un CSV estático en un servidor que ya administras es un geofeed completo, correcto y conforme a la especificación, y no pone a nadie entre tú y tus consumidores. Esa es una ventaja real y es la primera fila de la tabla. Aquí está el resto, con honestidad.
4.0 Comparado con alojar el archivo tú mismo
| Archivo estático propio | Aquí | |
|---|---|---|
| Nadie de por medio | Sí | No — es la contrapartida |
| Cualquier consumidor RFC 8805 lo lee | Sí | Sí |
| Columna de región validada contra ISO 3166-2 | Lo que hayas escrito | Comprobada antes de servirse |
| Prefijos al día con lo que anuncias | Manual | Importados de RIPEstat |
| Referencia en el registro comprobada (RFC 9092) | No | RDAP, prefijo a prefijo |
| Descargas atribuidas a un proveedor | Log de acceso, sin atribuir | Por consumidor, con la última lectura |
| ETag y revalidación con 304 | Según tu servidor | ETag fuerte sobre los bytes servidos |
| Coste | Tu alojamiento | Gratis |
Y si cambias de opinión: descarga los bytes exactos que se están sirviendo y ponlos en tu servidor. Lo único que hay que cambiar es la URL de tu objeto del registro. Aquí no hay nada de lo que migrar.
Nada, y estos son los límites reales.
No hay plan de pago, ni prueba, ni tarjeta. El servicio existe porque en Hostealo gestionamos redes y nos hacía falta. Los límites de abajo son los que están en el código, no un resumen comercial de ellos.
5.0 Cuánto cuesta
- Peticiones al feed
- Sin límite. Cache-Control: public, max-age=3600.
- ASN y prefijos por cuenta
- Sin tope. La cuenta más grande de aquí publica 219 prefijos.
- API
- 120 peticiones por minuto y token. Tokens ilimitados.
- Comprobación en el registro
- 6 ejecuciones cada 10 minutos, 25 prefijos por ejecución — los RIR limitan.
- Importación pegando
- 10 importaciones cada 10 minutos, 5 000 líneas por importación.
- Cuentas
- Registro abierto. Doble factor disponible, TOTP.
Preguntas que hace un operador de verdad
6.0 Preguntas
Un archivo CSV que lista tus prefijos y dónde están: red, país, región, ciudad y código postal. Lo define el RFC 8805. Los proveedores de geolocalización lo leen y lo prefieren a deducirlo de los datos de enrutado, que es la razón por la que un prefijo que se movió a Madrid el mes pasado sigue resolviendo a Ashburn.
Por tu objeto del registro, no por nosotros. El RFC 9092 dice que un consumidor lee el atributo geofeed: del inetnum o inet6num que cubre el prefijo — o una línea remarks: Geofeed <url> donde el registro no tiene atributo propio. Ponerlo en el aut-num es el error más común: algunos consumidores miran ahí, la mayoría no.
No. El país es la única columna que tiene que estar. El 9% de los prefijos publicados a través de este servicio indica alguna región, y todos son feeds válidos. Un feed correcto a nivel de país vale más que uno a nivel de calle que está desactualizado.
Sí, y se trata como crítica. El identificador de tu feed pertenece a tu cuenta y no cambia al añadir o quitar un ASN. Estas URL están dentro de objetos WHOIS de terceros, así que un 404 aquí no es una página rota: son tus datos de ubicación quedándose obsoletos en silencio en Google y MaxMind sin que nadie vea un error. La salida se verifica byte a byte en cada despliegue.
Los consumidores se quedan con la copia que tienen: el feed se envía con un max-age de una hora y un ETag fuerte, así que la mayoría de las consultas son revalidaciones. Un fallo devuelve 503 y no 404, porque un 404 le dice al consumidor que no tienes geofeed, que es la única respuesta equivocada. También puedes descargar los bytes exactos cuando quieras y servirlos tú.
Sí. Crea un token de API en el panel, GET /api/v1/prefixes para leer y PUT para reemplazar. La escritura se concede por token y viene desactivada. La respuesta son los mismos datos que muestra el panel, así que comparar con tu fuente de verdad es directo.
AP Interactive Solutions S.L., que opera como Hostealo.es, en España. Empezó como herramienta interna para nuestros propios ASN y hoy la usan operadores de ocho países.
Publica un archivo. Y luego entérate de quién lo ha leído.
Gratis, sin tarjeta, y el validador tampoco necesita cuenta.
curl -s https://geofeed.network/geofeeds/example.csv
