Résumé

  • L’ACSP 2023.1 indique que AS13335:AS-CUSTOMERS, envoyé automatiquement à l’API XML d’ARIN, a été publié en RPSL avec un très grand nombre de membres sur une seule ligne physique members:.
  • L’auteur de la suggestion a reproduit une réponse complète d’un miroir qu’il pensait exploité sous IRRd v3 : la résolution récursive ne renvoyait que sept ASN. ARIN a reconnu que des lignes plus courtes amélioreraient les résultats et a maintenu la suggestion ouverte jusqu’à mise en œuvre.
  • L’ensemble logique, les attributs RPSL, les octets sérialisés, l’objet importé par le miroir, la réponse récursive et le filtre finalement généré sont des états distincts.
  • Un reçu de sérialisation inter-miroirs devrait joindre le nombre et l’empreinte des membres aux octets exacts, aux limites de ligne, à l’importation et à l’empreinte du résultat, avec un signal explicite de rejet ou de troncature.

Une réponse de sept ASN n’est pas un objet source

Dans la suggestion ACSP 2023.1, Joe Abley explique que Cloudflare alimentait automatiquement AS13335:AS-CUSTOMERS au moyen de charges XML. ARIN transformait cette entrée en RPSL et plaçait la longue liste sur une seule ligne members:. Le texte affiché par la page ne reproduit pas tous les membres : il donne le début, indique qu’il y en a beaucoup d’autres, puis montre les dernières valeurs. Il ne permet donc pas de reconstruire aujourd’hui un compte canonique complet.

Le même dossier reproduit ensuite une requête !iAS-CLOUDFLARE,1 adressée à un miroir que l’auteur croyait être une instance IRRd v3. La réponse, présentée comme complète au niveau du protocole, contient sept ASN puis le terminateur. C’est une preuve historique fournie par le demandeur, non une expérience que cet article aurait rejouée. Le miroir peut avoir disparu, changé de logiciel ou changé de données.

ARIN n’a pas prétendu connaître sur la page le composant exact qui avait perdu le reste. Sa réponse du 7 février 2023 est plus utile parce qu’elle reste mesurée : limiter le nombre d’éléments par ligne donnerait de meilleurs résultats aux requêtes d’AS-SET ; l’organisation étudierait le besoin et programmerait la fonction. La fiche est encore marquée Open. Ce statut décrit le dossier public. Il ne suffit pas à affirmer que la sérialisation actuelle est identique à celle de 2023.

La portée doit rester tout aussi stricte. Rien ici ne prouve qu’un filtre de Cloudflare est aujourd’hui incomplet, qu’un routeur a installé une mauvaise politique, ni qu’une fuite, une panne ou un détournement s’est produit. Le fait établi est une divergence entre une publication riche et une réponse miroir dérivée très courte.

Une même politique traverse plusieurs formes

Le RFC 2622 définit members comme un attribut facultatif et multivalué, dont la valeur est une liste de numéros d’AS ou de noms d’autres AS-SET. « Liste » et « multivalué » ne signifient pas la même chose : un attribut peut porter une liste, et le même attribut peut apparaître plusieurs fois.

La représentation textuelle ajoute la géométrie des lignes. Une paire attribut-valeur commence sur une ligne ; une valeur peut se poursuivre si la ligne suivante commence par un espace, une tabulation ou le signe plus. Répéter members: est également permis. Plusieurs textes peuvent donc décrire le même ensemble logique tout en ayant des longueurs, des nombres de lignes et des empreintes binaires différents.

C’est précisément là que la mise en forme devient interface. Un lecteur récent peut absorber une ligne de plusieurs kilo-octets. Un lecteur ancien peut appliquer une limite plus basse, interrompre son analyse ou conserver seulement le préfixe. Le transport peut livrer tous les octets alors que l’importateur refuse un attribut. Une base locale peut garder l’objet précédent si la mise à jour échoue. Le dossier ACSP ne permet pas de choisir entre ces mécanismes ; il interdit donc d’en présenter un comme cause prouvée.

La conclusion utile est plus générale : la validité de la grammaire n’atteste pas la conservation de la signification à chaque frontière. Il faut mesurer le texte physique aussi soigneusement que la collection abstraite.

Le sérialiseur fait partie du contrat

La présentation actuelle de l’IRR d’ARIN précise que les objets simples envoyés en XML sont convertis en RPSL dans le système. Le guide de l’API REST décrit les représentations XML et RPSL et définit members comme la liste des ASN ou des autres AS-SET inclus.

L’éditeur décide quels membres il soumet. ARIN décide comment la représentation XML devient un flux RPSL. Dans le cas historique, la suggestion dit que le schéma XML ne permettait pas au client de fixer le nombre d’éléments par ligne ; le logiciel de construction d’ARIN faisait ce choix.

Découper la ligne est donc une mitigation raisonnable. Elle réduit l’exposition aux limites des anciens lecteurs sans modifier nécessairement l’ensemble logique. Mais elle ne constitue pas une preuve de bout en bout. L’affichage peut être replié alors que l’export reste long. Le miroir peut accepter les lignes puis appliquer une limite de membres. La résolution récursive peut diverger pour des raisons de sources ou de profondeur, même si l’objet brut est intact.

Le test pertinent compare des octets et des significations : même nombre canonique, même empreinte normalisée, octets attendus à la sortie, puis même ensemble après l’importation.

Le miroir assume une nouvelle garde

ARIN diffuse aujourd’hui ses données par NRTM, fichiers et Whois et indique utiliser IRRd Version 4. La documentation d’IRRd sur les miroirs décrit une copie qui télécharge un instantané ou des mises à jour, analyse les objets, les valide et les écrit dans sa propre base. Ce n’est pas une vitre passive, mais un système autonome avec une version, une configuration, une politique de sources et un historique d’importation.

Il faut distinguer trois questions. Le miroir a-t-il reçu exactement les octets publiés ? A-t-il stocké un objet analysé contenant la même collection normalisée ? Son moteur de requêtes a-t-il produit le résultat attendu avec les mêmes options de source et de récursion ?

Une transaction atomique empêche qu’un utilisateur voie un chargement en cours. Elle ne garantit pas que l’objet admis est sémantiquement complet. À l’inverse, un objet complet peut donner une réponse raccourcie si le chemin de requête applique une autre règle. Sans comparaison intermédiaire, l’opérateur ne sait pas si la perte vient du transport, de l’importation ou de la résolution.

La requête récursive est un calcul

La documentation Whois d’IRRd explique que !i renvoie des données traitées. Avec la récursion, le serveur suit les ensembles imbriqués et fournit une liste résolue. Il ne restitue pas le texte RPSL brut.

Une consultation de l’objet local répond donc à une question : quels attributs le miroir a-t-il stockés ? La résolution récursive répond à une autre : quels membres le graphe local produit-il sous cette politique de recherche ? Un générateur de filtres pose ensuite une troisième question en transformant ces ASN en préfixes et en configuration.

Le succès syntaxique de la commande ne garantit pas la complétude du résultat. Une sortie courte et correctement terminée peut être beaucoup plus dangereuse qu’une erreur explicite, car l’automatisation peut l’accepter sans alerte. C’est cette ambiguïté que le dossier de 2023 rend concrète.

Un reçu qui lie l’ensemble à sa forme

Un reçu de sérialisation inter-miroirs pourrait rendre la chaîne vérifiable. Il s’agit d’une proposition éditoriale, non d’un engagement d’ARIN, d’IRRd ou de Cloudflare.

À la source, le reçu porterait la clé de l’AS-SET, la version ou le numéro de publication, le nombre de membres après normalisation et leur empreinte selon un ordre documenté. Il identifierait le sérialiseur et ajouterait l’empreinte des octets RPSL exacts, la taille totale, le nombre de lignes et la longueur maximale.

Le miroir enregistrerait la source, l’instantané ou la plage de séries NRTM, l’heure d’importation, la version de l’analyseur et le résultat. Il comparerait l’empreinte reçue, puis publierait le nombre de membres analysés et leur empreinte. Le résultat ne devrait jamais être un simple silence : complet, rejeté, tronqué, partiellement analysé ou resté ancien après échec.

Enfin, le reçu de requête nommerait la commande, les sources, la profondeur de récursion, les exclusions, l’heure, le nombre de résultats et leur empreinte. Un générateur de filtres pourrait y joindre l’empreinte de son artefact sans exposer une configuration privée.

Ces reçus n’imposent ni logiciel unique ni décision de routage centrale. Ils font apparaître le premier endroit où deux représentations censées porter le même sens cessent de correspondre.

Sources