Résumé

  • draft-xiao-fann-fast-cnp-with-proxy-05 fait parvenir une première notification UDP à un proxy, qui reconstitue ensuite un CNP standard pour l’émetteur RoCEv2.
  • Le CNP reçu permet d’agir, mais ne révèle ni la version de la table QP utilisée, ni le point de congestion d’origine, ni le nombre de notifications abandonnées par la politique locale du proxy.

Imaginons trois CNP identiques arrivant sur un serveur. Ils lui disent de réduire son débit. Ils ne lui disent pas que dix alertes étaient arrivées au proxy, que sept ont été éliminées par une limite de fréquence, ni quelle association entre QP source et QP destination a servi à fabriquer les trois paquets survivants.

C’est la frontière importante de la révision 05 de Fast Congestion Notification Packet with Proxy, publiée le 29 septembre. Le mécanisme répond à une vraie difficulté : un routeur P VPN peut être séparé de l’émetteur par un autre domaine de routage et ne pas disposer des informations nécessaires pour construire le CNP RoCEv2 standard que l’hôte sait interpréter. Un proxy placé au bon endroit reçoit un premier message, consulte son état, puis émet le second.

La traduction dépend d’une mémoire apprise

Le format 1 transporte, vers le port UDP proposé TBD1, le quintuplet IP du trafic et le QP destination sur 24 bits. Le proxy repère l’émetteur grâce à l’adresse source. Si protocole et port désignent RoCEv2, il doit produire un CNP RoCEv2 standard. Mais le premier message n’apporte pas directement le QP source : le proxy le retrouve dans une table QP source/QP destination, contextualisée par les adresses.

La révision 05 précise la contrainte topologique. Pour apprendre cette table, le proxy doit se trouver sur le passage du trafic RoCEv2 aller et retour. Il ne suffit donc pas qu’un protocole de routage annonce sa capacité. La traduction dépend de ce que ce nœud a effectivement observé, de la fraîcheur de cette observation et de la continuité du chemin.

Le format 2 remplace le QP destination par un identifiant de sélection NRP et emploie TBD2. Le proxy relie alors l’identifiant NRP à un QP source ou, dans le cas VPN, à un identifiant VPN. Là encore, le champ transporté sert de clé de recherche. Il ne certifie pas la table qui répond à la recherche.

Le drapeau P annonce une fonction, pas son état

Le point congestionné doit savoir vers quel proxy envoyer le premier paquet. Le projet associe donc Proxy Node Capability aux préfixes placés derrière le proxy. IS-IS et OSPF utilisent des bits P proposés ; BGP emploie un TLV de caractéristique dépendante du next hop contenant l’adresse du proxy.

Cette annonce établit une relation préfixe-proxy. Elle ne prouve pas que le proxy a vu les deux sens du flux, qu’il possède la bonne association QP, qu’il n’est pas saturé, que la fonction est activée ou que le deuxième paquet a atteint l’hôte. La propagation fidèle du bit entre niveaux ou zones ne transforme pas l’annonce de routage en reçu de traitement.

Les cycles de vie divergent. Un préfixe peut continuer d’annoncer PNC pendant qu’une route de données change et que la table apprise vieillit. Une association NRP peut changer sans que l’annonce de capacité bouge. Un tableau de bord qui affiche « proxy disponible » à partir du seul bit P masque précisément cette séparation.

La protection contre le déni de service retire des alertes

Le texte indique qu’en régime normal chaque premier message entraîne un second. Il autorise cependant le proxy à en abandonner lorsque la fréquence reçue dépasse sa limite, conformément à une politique locale. La section sécurité recommande aussi une limitation à l’émission et à la réception, exige un filtrage aux frontières du domaine et impose une option d’activation désactivée par défaut.

Ces précautions sont cohérentes : une avalanche de messages de contrôle ne doit pas renverser le mécanisme censé protéger le trafic. Mais elles signifient que le flux visible par l’émetteur n’est pas un compte exhaustif des événements amont. Le CNP standard n’emporte ni identifiant d’événement, ni compteur de suppression, ni motif de décision, ni version de table, ni identité du point congestionné.

L’absence de CNP reste donc indéterminée. Elle peut signifier l’absence de congestion, un mauvais choix de proxy, une table QP manquante, un filtrage, une limite atteinte, une fonction encore désactivée ou une perte du second paquet. À l’inverse, la présence d’un CNP montre qu’un proxy a émis un signal compatible ; elle ne localise pas à elle seule la file qui a déclenché le premier message.

Ne pas demander au paquet final ce qu’il ne transporte pas

Le CNP traduit n’est pas inutile. Il permet à un émetteur ancien de ralentir le QP reconstruit sans apprendre le nouveau format entre point congestionné et proxy. C’est un bénéfice d’interopérabilité concret.

Ce bénéfice ne doit pas être rebaptisé provenance. L’en-tête UDP et sa somme de contrôle ne lient pas cryptographiquement le second paquet aux octets du premier. Le CNP ne révèle ni l’heure de réception par le proxy, ni l’état de la table, ni les messages voisins supprimés. Il ne prouve pas non plus la baisse de débit ou le rétablissement de la file.

Une chaîne exploitable doit rapprocher plusieurs journaux : compteurs de file et nombre de premiers messages au point congestionné ; route PNC exacte ; génération et âge des tables au proxy ; acceptations, rejets, suppressions et CNP émis ; CNP reçus et réaction du QP côté hôte ; enfin débit, délai d’achèvement et effet applicatif. Le paquet standard n’est qu’un maillon.

La révision 05 reste un Internet-Draft individuel, sans stream, AD responsable ni statut formel à l’IETF. Les ports, bits et codes restent demandés ou proposés. La mention d’une mise en œuvre utilisant des paquets marqués ECN décrit une voie hors périmètre, pas un troisième format normalisé ni un essai d’interopérabilité.

Le jugement de direction est simple : la compatibilité déplace une part de l’autorité dans le proxy. Si une automatisation doit attribuer une panne ou modifier fortement le débit, le proxy doit rendre observable la décision qu’il a prise entre les deux paquets.

Sources