
Sistema de censo anycast longitudinal que sondea prefijos IPv4/IPv6 mediante ICMP, TCP y DNS para detectar despliegues anycast y geolocalizar PoPs, publicando conjuntos de datos diarios y una API.
LACeS: un sistema de censo anycast longitudinal abierto, rápido, responsable y eficiente
Contacto: [email protected]
Los archivos parquet de este repositorio se pueden descargar en formatos alternativos a través de la API REST de manycast.net:
| Formato | Ejemplo |
|---|---|
.parquet | https://manycast.net/api/v1/export/IPv4-latest.parquet |
.parquet.gz | https://manycast.net/api/v1/export/IPv4-latest.parquet.gz |
.csv.gz | https://manycast.net/api/v1/export/IPv4-latest.csv.gz |
.json.gz | https://manycast.net/api/v1/export/IPv4-latest.json.gz |
Sustituye latest por una fecha concreta (por ejemplo, 2026-03-22) para descargar una instantánea histórica. Tanto IPv4 como IPv6 están disponibles con los prefijos IPv4- e IPv6-.
Ejemplo:
curl -O https://manycast.net/api/v1/export/IPv4-2026-03-22.csv.gz
Consulta la documentación completa de la API para consultar prefijos individuales, ASNs y estadísticas diarias.
Proporcionamos un panel interactivo para consultar, visualizar y explorar los datos del censo:
Búsqueda y consulta. Introduce cualquier dirección IP, prefijo, ASN, dominio o TLD para consultar el estado anycast, la geolocalización de los PoPs detectados y la información de red relacionada. Hay instantáneas históricas disponibles para todas las fechas del censo desde el 21 de marzo de 2024.
Modo de comparación. Selecciona dos fechas de censo diferentes para seguir cómo cambió el despliegue anycast a lo largo del tiempo.
Integración con RIPE Atlas. Ejecuta el algoritmo de geolocalización sobre resultados públicos de RIPE Atlas.
Analíticas. Estadísticas a lo largo del tiempo, anycast por región, curva de Hilbert del espacio anycast, ...
El archivo census_helper.py proporciona funciones de conveniencia para descargar y filtrar el conjunto de datos. Requiere pandas, pyarrow y requests.
import census_helper
# Download latest snapshot and filter to high-confidence anycast prefixes
census = census_helper.download_latest("v4")
anycast = census_helper.filter_anycast(census, "v4")
# Or use comprehensive coverage (includes borderline cases)
anycast = census_helper.filter_anycast(census, "v4", confidence="comprehensive")
python census_helper.py --ip-version v4 --date latest --prefixes-only
python census_helper.py --ip-version v4 --date 2026-03-22 --confidence comprehensive
En función de los requisitos, recomendamos el siguiente filtrado:
Alta confianza:
(AB > 3) || (GCD > 1)
Cobertura exhaustiva:
(AB > 1) || (GCD > 1)
El censo utiliza dos métodos de detección:
Basado en anycast (AB): Detecta anycast mediante anycast. Un prefijo se considera anycast si múltiples PoPs reciben respuestas. Consulta MAnycast2 para más detalles. Se utilizan tres protocolos de sondeo: ICMP/ping, TCP SYN/ACK y DNS/UDP.
Basado en latencia (GCD): Detecta anycast mediante mediciones de latencia y cálculos de distancia de círculo máximo.
NOTA Proporcionamos resultados de geolocalización unicast cuando AB > 1 pero GCD == 1. Esto puede ayudar a determinar si los resultados de AB son FPs o los resultados de GCD son FNs.
Archivos más recientes (actualizados diariamente):
IPv4-latest.parquet
IPv6-latest.parquet
IPv4-latest.csv
IPv6-latest.csv
stats-latest
Archivos históricos (desde el 21 de marzo de 2024):
YYYY/MM/DD/IPv4.parquet
YYYY/MM/DD/IPv6.parquet
YYYY/MM/DD/IPv4.csv
YYYY/MM/DD/IPv6.csv
YYYY/MM/DD/stats
| Columna | Descripción |
|---|---|
prefix | El prefijo anycast candidato /24 (por ejemplo, 1.0.0.0/24) |
AB_ICMPv4/v6 | Ubicaciones encontradas mediante el método basado en anycast (ICMP) |
AB_TCPv4/v6 | Ubicaciones encontradas mediante el método basado en anycast (TCP SYNACK) |
AB_DNSv4/v6 | Ubicaciones encontradas mediante el método basado en anycast (DNS/UDP) |
GCD_ICMPv4/v6 | Sitios encontrados mediante el método basado en latencia (ICMP) |
GCD_TCPv4/v6 | Sitios encontrados mediante el método basado en latencia (TCP) |
partial | Indica si se detectó anycast parcial (solo IPv4) |
backing_prefix | Prefijo correspondiente de la tabla de enrutamiento IP (RouteViews) |
ASN | ASN(s) que anuncian el prefijo (MOASes separados por ;) |
locations | Datos detallados de geolocalización de los sitios detectados (ver más abajo) |
| Campo | Descripción |
|---|---|
city | Ciudad geolocalizada mediante el algoritmo de iGreedy |
country_code | Código de país de 2 caracteres (ISO 3166-1 alpha-2) |
airport_code | Código IATA de 3 letras del aeropuerto más cercano |
lat | Latitud del aeropuerto |
lon | Longitud del aeropuerto |
radius | Radio del disco RTT en kilómetros |
candidate_diameter | Distancia máxima por pares (km) entre las ciudades candidatas supervivientes; valores más pequeños indican mayor precisión |
num_constraints | Número de discos superpuestos que refinaron el conjunto de candidatos; valores más altos indican mayor confianza en el resultado |
Los tres últimos campos ayudan a determinar la confianza de los resultados de geolocalización.
Se proporcionan datos limitados en formato CSV para facilitar el acceso a través de la interfaz web de GitHub:
prefix,number_of_sites,backing_prefix
1.1.1.0/24,67,1.1.1.0/24
Utilizamos la lista de objetivos IPv4 de USC/ISI ANT (direcciones IP que responden a ICMP/ping clasificadas por /24), complementada con:
Utilizamos:
Para minimizar el impacto del sondeo diario, escaneamos con granularidad /24. Sin embargo, algunos prefijos contienen direcciones IP mixtas unicast y anycast (ver el artículo para más detalles), lo cual detectamos mediante sondeo multiobjetivo.
Ponemos a disposición pública todas las herramientas de medición y análisis bajo la licencia MPL 2.0:
MAnycastR proporciona implementaciones para las mediciones AB y GCD
MiGreedy es nuestra implementación optimizada del algoritmo de iGreedy para geolocalización IP, diseñada para censos de producción a gran escala. Admite geolocalización unicast, detección mejorada mediante intersección y métricas de confianza/precisión.
Cuando utilices este conjunto de datos para investigación académica, cita el siguiente artículo:
@inproceedings{10.1145/3730567.3764484,
author = {Hendriks, Remi and Luckie, Matthew and Jonker, Mattijs and van Rijswijk-Deij, Roland},
title = {LACeS: an Open, Fast, Responsible and Efficient Longitudinal Anycast Census System},
year = {2025},
booktitle = {Proceedings of the 2025 Internet Measurement Conference}
}