Zusammenfassung

  • Das Protokollverzeichnis listete Typen auf, die eine Sonde bereits decodieren und zählen konnte; es war kein Speicher für nachladbare Parser.
  • Begrenzte Erweiterbarkeit fügte nur dort ein Kindmerkmal hinzu, wo Implementierungscode das Demultiplexfeld des Elternprotokolls schon kannte.

Das Beispiel mit UDP-Port 123 beginnt mit einer weitgehend fertigen Sonde. Ihr C-Code versteht Ethernet-Kapselungen, IP, dessen Protokollfeld, UDP und die Portfelder. Eine Tabelle kennt bereits 161 als SNMP, 53 als DNS und 69 als TFTP. Nun darf ein Manager 123 als NTP hinzufügen und passende Pakete zählen.

Die neue Zeile bringt der Sonde weder NTP-Nachrichten noch eine unbekannte Paketgrammatik bei. Alle schwierigen Grenzen bis zum UDP-Port waren bei der Implementierung codiert worden. Konfiguration ergänzt lediglich einen Wert an einer vorbereiteten, tabellengesteuerten Verzweigung. Genau deshalb nannte RFC 2021 das Verfahren begrenzt: Es musste im Code vorgesehen sein und reichte höchstens eine Ebene weiter.

Zuerst Inventar, dann Konfiguration

Abschnitt 5.2 bezeichnet das Verzeichnis als Inventar der überwachbaren Protokolltypen. protocolDirTable enthält je einen Eintrag für Protokolle, die der Agent decodieren und zählen kann. Er startet mit bekannten, ausgewählten Protokollen; er muss nicht jeden möglichen Ethernet-Typ aufführen und nicht beim bloßen Auftreten eines Werts eine Zeile erzeugen.

Ein protocolDirID, das der Agent weder direkt noch algorithmisch versteht, muss beim SET zurückgewiesen werden. Schreibbarkeit verändert also nur ein Vokabular innerhalb implementierter Erkennung.

protocolDirID beschreibt den hierarchischen Kapselungspfad. protocolDirParameters ordnet jedem Knoten in derselben Reihenfolge ein Parameterbyte zu und qualifiziert den Pfad. protocolDirLocalIndex ist eine lokale, agentseitig vergebene Referenz für nachgelagerte Tabellen: nur innerhalb einer SNMP-Entität eindeutig und nach Löschung bis zum Neustart nicht wiederverwendbar. Er ist keine globale Protokollnummer.

Auch protocolDirType meldet Fähigkeit, statt sie zu erteilen. Ein extensibler Elternknoten kann Kinder zulassen; ein Kind ohne eingebaute Unterstützung ist selbst nicht weiter erweiterbar. Adresserkennung braucht zusätzliche Logik. Bei managerseitig erzeugten begrenzten Erweiterungen muss die Adressabbildung deshalb notSupported bleiben.

Jede Statistik erbt diese Grenze

Die Protokollverteilung zählte Pakete und Oktette nach dem höchsten erkannten Protokoll. Host- und Matrixtabellen verwendeten lokale Verzeichnisindizes für Adressformat und erkanntes Protokoll. Sie entstanden nur, wenn die vorgelagerten Fähigkeiten und Schalter passten.

Ein Zähler belegt somit eine Übereinstimmung mit einem implementierten Klassifikationspfad. Er belegt keine vollständige Nutzlastanalyse, keinen Prozess, keine Anwendungstransaktion, Zustellung, Verantwortung oder Sicherheit. Selbst „Application Level“ meinte gewöhnlich nicht OSI-Schicht 7, sondern den breiten Bereich oberhalb von MAC und Netzwerkschicht.

RFC 2074 lieferte zunächst Kodierregeln und Beispiele. RFC 2895 ersetzte es 2000 als normativen Referenzteil; RFC 2896 trennte nicht normative Makrobeispiele ab, erklärte sie für Konformität als entbehrlich und vermerkte das Ende ihrer Pflege. RFC 3796 dokumentierte zudem eine IPv4-Abhängigkeit in den Adressdarstellungen von RFC 2021. Flexible Bezeichner beseitigten diese Grenze nicht.

RFC 4502 erklärte RFC 2021 im Mai 2006 für obsolet, behielt aber das Modell begrenzter Erweiterbarkeit und überarbeitete unter anderem Hochkapazitätsberichte und Größenbeschränkungen. Das einzige verifizierte Erratum zu RFC 2021 berichtigt vertauschte Nummern für RAM- und PROM-Downloadaktionen; das Verzeichnis ist nicht betroffen.

Der historische Wert liegt in einer sauberen Beweisgrenze: Ein Verzeichnis kann vorhandene Unterscheidungen sichtbar und steuerbar machen. Es verwandelt einen Namen nicht in laufenden Parsercode.

Quellen