Résumé

  • RFC 1227 permettait à des processus locaux d’enregistrer des sous-arbres MIB derrière un seul agent SNMP, qui répartissait les variables puis recomposait la réponse externe.
  • La priorité et l’« effet de montage du sous-arbre » déterminaient le pair consulté ; la valeur visible attestait donc une sélection locale, non un propriétaire permanent, une vue complète ou une vérité.
  • Un Set distribué recueillait d’abord acceptations et refus, puis envoyait commit ou rollback sans réponse finale des pairs. L’accord préparatoire ne prouvait pas l’application du résultat.

Le guichet unique ne possédait pas tous les dossiers

RFC 1227 part d’un problème de garde. Un agent SNMP savait lire le noyau et des fichiers stables, mais un démon de routage ou un autre processus détenait son propre état vivant. Plutôt que d’aspirer ces données dans un agent géant, SMUX laissait le processus enregistrer la partie de MIB qu’il savait servir.

Le pair ouvrait une association locale, annonçait ses sous-arbres et traitait ensuite les opérations correspondantes. La station distante continuait d’employer le SNMP de RFC 1157. L’agent séparait les variables, adressait des requêtes internes aux pairs concernés, corrélait les réponses et produisait un GetResponse unique. Une façade réseau homogène couvrait ainsi plusieurs détenteurs locaux.

La fiche du RFC Editor classe aujourd’hui le texte comme Historic ; le Datatracker en conserve le parcours. Ce statut ne démontre aucune installation. Il permet seulement de situer une idée : l’unité d’une interface n’est pas l’unité de sa provenance.

Les noms d’objets venaient de la SMI de RFC 1155, et le MIB de SMUX utilisait les conventions de RFC 1212. Une grammaire commune rendait l’ensemble navigable ; elle ne rendait pas les producteurs interchangeables.

Le montage gagnant cachait les autres chemins

Chaque enregistrement portait une priorité entière, la plus petite valeur étant la meilleure. Plusieurs pairs pouvaient proposer le même sous-arbre à des priorités différentes. -1 demandait la meilleure place disponible, mais la configuration locale autorisait l’agent à en attribuer une moins favorable.

Seul l’enregistrement prioritaire recevait les opérations. L’agent devait en outre appliquer l’« effet de montage » : lorsqu’un pair montait un ancêtre plus large, les enregistrements situés dessous devenaient invisibles à la sélection. Un objet étroit pouvait donc changer de répondant sans changer de nom.

La réponse prouvait que l’agent avait choisi un chemin selon sa carte effective du moment. Elle ne prouvait pas que les pairs masqués avaient disparu, qu’ils auraient donné la même valeur, que le gagnant produisait l’information à l’origine, ni que cette information décrivait correctement la machine.

L’agent devait refuser les montages autour des branches SNMP et SMUX, et pouvait interdire d’autres zones par politique d’implémentation. Être admis dans l’espace de noms était une décision locale et révocable, pas un titre de propriété ni une autorisation d’agir sur le service.

GetNext obligeait l’agent à contrôler son fournisseur

Pour GetNext, chaque pair se comportait comme s’il possédait tout le MIB. Il pouvait donc rendre un objet au-delà de sa branche. L’agent devait vérifier la portée du résultat et, si elle était dépassée, consulter le pair du sous-arbre suivant jusqu’à obtenir une valeur admissible.

La marche visible n’était pas la lecture naturelle d’une base unique. Le pair proposait un successeur ; l’agent décidait s’il appartenait au parcours public. Chaque OID pouvait être le résultat d’un nouvel aiguillage, d’un contrôle de portée et d’une attente locale.

Les identifiants de requête séparaient aussi les couches. Plusieurs PDU internes issus d’une seule requête externe partageaient un identifiant, mais celui-ci ne devait pas correspondre à l’identifiant original. Sans journal de corrélation, le GetResponse final ne permettait pas de reconstruire avec certitude le fan-out qui l’avait produit.

Le dernier ordre ne recevait pas d’accusé d’exécution

Pour un Set touchant plusieurs pairs, l’agent demandait d’abord à chacun d’accepter ou de refuser sans effectuer l’opération. Un seul refus entraînait rollback pour tous ; l’unanimité entraînait commit.

Le silence final est essentiel : le pair ne répondait pas au SOutPDU de commit ou rollback. noError au premier tour signifiait qu’il acceptait la proposition, non qu’il avait déjà modifié son état. L’envoi de commit attestait la décision de l’agent, pas la réception, l’application ou la persistance chez chaque participant.

Une preuve de résultat devait venir après : nouvelle lecture, journal du processus, état du dispositif ou observation indépendante. Le vocabulaire transactionnel organisait l’intention commune ; il ne transformait pas cette intention en fait accompli.

Une ligne présente pouvait déjà être invalide

Les tables SMUX décrivaient pairs et sous-arbres, mais l’invalidation d’une entrée n’imposait pas sa suppression physique. L’interprétation correcte exigeait le champ d’état. Compter les lignes sans leur statut mélangeait inventaire historique et activité actuelle.

SimpleOpen transportait un OID d’identité, une description et un mot de passe, lequel pouvait être vide pour signifier l’absence d’authentification. Le RFC déclarait ne pas traiter la sécurité. L’identité du protocole ne suffisait donc pas à établir une personne, une organisation, un mandat ou la fiabilité des valeurs.

Le transport TCP utilisait le port 199 et BER se délimitait lui-même. Le registre IANA des services et ports conserve le contexte d’un numéro ; il ne prouve ni écoute active, ni logiciel, ni déploiement.

RFC 1227 reste précieux parce qu’il montre le travail caché derrière une réponse uniforme. La réponse de l’agent, l’enregistrement choisi, la proposition du pair, la décision transactionnelle et l’état observé sont cinq pièces liées, jamais une seule preuve.

Sources