Zum Hauptinhalt springen

5.3. Fähigkeitsaustausch

Wenn zwei Diameter-Peers eine Transportverbindung aufbauen, MÜSSEN sie Capabilities-Exchange-Nachrichten gemäß Peer-Zustandsautomat (Abschnitt 5.6) austauschen. Damit werden Identität und Fähigkeiten des Peers erkannt (Protokollversion, unterstützte Diameter-Anwendungs-IDs, Sicherheitsmechanismen usw.).

Der Empfänger sendet Befehle nur an Peers, die die definierende Anwendung unterstützen. Ein Knoten MUSS unterstützte Application-Ids zwischenspeichern, um unbekannte Befehle oder AVPs nicht unnötig zu senden.

Empfängt ein Knoten ein CER ohne gemeinsame Anwendung mit dem Sender, MUSS er ein CEA mit Result-Code DIAMETER_NO_COMMON_APPLICATION zurückgeben und SOLLTE die Transportverbindung trennen. CER oder CEA von einem als Relay (Abschnitt 2.4) angekündigten Peer sind als gemeinsame Anwendungen zu werten (MUST).

Der CER-Empfänger MUSS den Schnitt seiner Application-Id-Menge mit allen Application-Id-AVPs im CER (Auth-, Acct-, Vendor-Specific-) bilden. Der Vendor-Id-Wert innerhalb Vendor-Specific-Application-Id darf dabei NICHT verwendet werden (MUST NOT). Der CEA-Sender SOLLTE alle unterstützten Anwendungen als Hinweis mitsenden.

Implementierungen SOLLTEN zuerst TLS/TCP und DTLS/SCTP vor CER/CEA aufbauen. Für ältere Implementierungen darf die Sicherheit noch über Inband-Security-AVP verhandelt werden (MAY). Ohne gemeinsame Sicherheitsmechanismen MUSS das CEA DIAMETER_NO_COMMON_SECURITY tragen und SOLLTE den Transport trennen.

CER von unbekannten Peers dürfen verworfen werden oder CEA mit DIAMETER_UNKNOWN_PEER erhalten (MAY); in beiden Fällen wird der Transport geschlossen. Lokale Richtlinien können erfolgreiche CEAs erlauben; die Peer-Lebensdauer entspricht dann der Transportverbindung. Bei Transportausfall können ausstehende Transaktionen verworfen werden.

CER und CEA dürfen nicht proxied, redirected oder relayed werden (MUST NOT).

Ohne Proxy für CER/CEA kann ein Upstream-Agent eine Nachricht erhalten, für die kein Peer die Anwendung des Command Codes bedient. Dann wird im Answer das Bit E gesetzt und Result-Code DIAMETER_UNABLE_TO_DELIVER (Abschnitt 7).

Außer Capabilities-Exchange-Request dürfen Requests mit Auth-Application-Id oder Acct-Application-Id oder anwendungsspezifischem Command Code nur an Hosts weitergeleitet werden, die die Anwendung (oder die Relay-Application-Id) ausdrücklich angekündigt haben (MAY).