Zum Hauptinhalt springen

5. RSVP-Erweiterung zur Diff-Serv-Unterstützung

Die MPLS-Architektur setzt kein einzelnes Label-Verteilungsprotokoll voraus. [RSVP_MPLS_TE] definiert die Erweiterung zu RSVP zur Einrichtung von LSPs in MPLS-Netzwerken. Dieser Abschnitt spezifiziert die Erweiterungen zu RSVP, über die in [RSVP_MPLS_TE] definierten hinaus, um LSPs einzurichten, die Differentiated Services in MPLS-Netzwerken unterstützen.

5.1. Diff-Serv-bezogene RSVP-Nachrichtenformate​

In diesem Dokument wird ein neues RSVP-Objekt definiert: das DIFFSERV-Objekt. Eine detaillierte Beschreibung dieses Objekts wird unten bereitgestellt. Dieses neue Objekt ist auf Path-Nachrichten anwendbar. Diese Spezifikation definiert nur die Verwendung des DIFFSERV-Objekts in Path-Nachrichten, die verwendet werden, um LSP-Tunnel in Übereinstimmung mit [RSVP_MPLS_TE] einzurichten, und die somit ein Session-Objekt mit einem C-Type gleich LSP_TUNNEL_IPv4 und ein LABEL_REQUEST-Objekt enthalten.

In [RSVP_MPLS_TE] definierte Einschränkungen für die Unterstützung der Einrichtung von LSP-Tunneln via RSVP sind auch auf die Einrichtung von Diff-Serv unterstützenden LSP-Tunneln anwendbar: beispielsweise werden nur Unicast-LSPs unterstützt und Multicast-LSPs bleiben weiterer Untersuchung vorbehalten.

Dieses neue DIFFSERV-Objekt ist in Bezug auf RSVP optional, sodass allgemeine RSVP-Implementierungen, die sich nicht mit dem MPLS-LSP-Setup befassen, dieses Objekt nicht unterstützen müssen.

Das DIFFSERV-Objekt ist für die Unterstützung von LSP-Tunneln wie in [RSVP_MPLS_TE] definiert optional. Ein Diff-Serv-fähiger LSR, der E-LSPs mit der vorkonfigurierten EXP<-->PHB mapping' in Übereinstimmung mit dieser Spezifikation unterstützt, MAY das DIFFSERV-Objekt unterstützen. Ein Diff-Serv-fähiger LSR, der E-LSPs mit einer signalisierten EXP<-->PHB mapping' in Übereinstimmung mit dieser Spezifikation unterstützt, MUST das DIFFSERV-Objekt unterstützen. Ein Diff-Serv-fähiger LSR, der L-LSPs in Übereinstimmung mit dieser Spezifikation unterstützt, MUST das DIFFSERV-Objekt unterstützen.

5.1.1. Path-Nachrichtenformat​

Das Format der Path-Nachricht ist wie folgt:

         <Path Message> ::=       <Common Header> [ <INTEGRITY> ]
<SESSION> <RSVP_HOP>
<TIME_VALUES>
[ <EXPLICIT_ROUTE> ]
<LABEL_REQUEST>
[ <SESSION_ATTRIBUTE> ]
[ <DIFFSERV> ]
[ <POLICY_DATA> ... ]
[ <sender descriptor> ]

<sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC>
[ <ADSPEC> ]
[ <RECORD_ROUTE> ]

5.2. DIFFSERV-Objekt​

Die DIFFSERV-Objektformate sind unten gezeigt. Derzeit gibt es zwei mögliche C_Types. Typ 1 ist ein DIFFSERV-Objekt für einen E-LSP. Typ 2 ist ein DIFFSERV-Objekt für einen L-LSP.

5.2.1. DIFFSERV-Objekt für einen E-LSP:​

class = 65, C_Type = 1

       0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | MAPnb |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAP (1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// ... //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAP (MAPnb) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Reserved (28 bits): Dieses Feld ist reserviert. Es muss bei der Übertragung auf null gesetzt und beim Empfang ignoriert werden.

  • MAPnb (4 bits): Zeigt die Anzahl der im DIFFSERV-Objekt enthaltenen MAP-Einträge an. Dies kann auf jeden Wert von 0 bis 8 gesetzt werden.

  • MAP (32 bits): Jeder MAP-Eintrag definiert die Abbildung zwischen einem EXP-Feldwert und einem PHB. Der MAP-Eintrag hat das folgende Format:

       0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | EXP | PHBID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Reserved (13 bits): Dieses Feld ist reserviert. Es muss bei der Übertragung auf null gesetzt und beim Empfang ignoriert werden.

  • EXP (3 bits): Dieses Feld enthält den Wert des EXP-Feldes für die in diesem MAP-Eintrag definierte `EXP<-->PHB mapping'.

  • PHBID (16 bits): Dieses Feld enthält die PHBID des PHB für die in diesem MAP-Eintrag definierte `EXP<-->PHB mapping'. Die PHBID wird wie in [PHBID] spezifiziert kodiert.

5.2.2. DIFFSERV-Objekt für einen L-LSP:​

class = 65, C_Type = 2

       0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | PSC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Reserved (16 bits): Dieses Feld ist reserviert. Es muss bei der Übertragung auf null gesetzt und beim Empfang ignoriert werden.

  • PSC (16 bits): Die PSC zeigt eine PHB Scheduling Class an, die vom LSP unterstützt werden soll. Die PSC wird wie in [PHBID] spezifiziert kodiert.

5.3. Behandlung des DIFFSERV-Objekts​

Um einen LSP-Tunnel mit RSVP einzurichten, erstellt der Sender eine Path-Nachricht mit einem Session-Typ von LSP_Tunnel_IPv4 und mit einem LABEL_REQUEST-Objekt gemäß [RSVP_MPLS_TE].

Um einen E-LSP-Tunnel mit RSVP einzurichten, der die vorkonfigurierte `EXP<-->PHB mapping' verwendet, erstellt der Sender eine Path-Nachricht:

  • mit einem Session-Typ von LSP_Tunnel_IPv4,

  • mit dem LABEL_REQUEST-Objekt, und

  • ohne das DIFFSERV-Objekt.

Um einen E-LSP-Tunnel mit RSVP einzurichten, der die vorkonfigurierte `EXP<-->PHB mapping' verwendet, MAY der Sender alternativ eine Path-Nachricht erstellen:

  • mit einem Session-Typ von LSP_Tunnel_IPv4,

  • mit dem LABEL_REQUEST-Objekt, und

  • mit dem DIFFSERV-Objekt für einen E-LSP, das keine MAP-Einträge enthält.

Um einen E-LSP-Tunnel mit RSVP einzurichten, der eine signalisierte `EXP<-->PHB mapping' verwendet, erstellt der Sender eine Path-Nachricht:

  • mit einem Session-Typ von LSP_Tunnel_IPv4,

  • mit dem LABEL_REQUEST-Objekt,

  • mit dem DIFFSERV-Objekt für einen E-LSP, das einen MAP-Eintrag für jeden auf diesem E-LSP zu unterstützenden EXP-Wert enthält.

Um mit RSVP einen L-LSP-Tunnel einzurichten, erstellt der Sender eine Path-Nachricht:

  • mit einem Session-Typ von LSP_Tunnel_IPv4,

  • mit dem LABEL_REQUEST-Objekt,

  • mit dem DIFFSERV-Objekt für einen L-LSP, das die PHB Scheduling Class (PSC) enthält, die auf diesem L-LSP unterstützt wird.

Wenn eine Path-Nachricht mehrere DIFFSERV-Objekte enthält, ist nur das erste bedeutsam; nachfolgende DIFFSERV-Objekt(e) müssen ignoriert und nicht weitergeleitet werden.

Jeder LSR entlang des Pfades zeichnet das DIFFSERV-Objekt, wenn vorhanden, in seinem Path-State-Block auf.

Wenn in der Path-Nachricht kein DIFFSERV-Objekt vorhanden ist, SHOULD der LSR dies als Anforderung für einen E-LSP interpretieren, der die vorkonfigurierte `EXP<-->PHB mapping' verwendet. Aus Gründen der Rückwärtskompatibilität mit anderen nicht-Diff-Serv-Quality-of-Service-Optionen, die von [RSVP_MPLS_TE] erlaubt werden, wie Integrated Services Controlled Load oder Guaranteed Services, MAY der LSR jedoch eine konfigurierbare „Override-Option“ unterstützen. Wenn diese „Override-Option“ konfiguriert ist, interpretiert der LSR eine Path-Nachricht ohne Diff-Serv-Objekt als Anforderung für einen LSP mit solcher nicht-Diff-Serv Quality of Service.

Wenn ein DIFFSERV-Objekt für einen E-LSP, das keinen MAP-Eintrag enthält, in der Path-Nachricht vorhanden ist, MUST der LSR dies als Anforderung für einen E-LSP interpretieren, der die vorkonfigurierte EXP<-->PHB mapping' verwendet. Insbesondere erlaubt dies einem LSR mit konfigurierter „Override-Option“, E-LSPs mit vorkonfigurierter EXP<-->PHB mapping' gleichzeitig mit LSPs mit nicht-Diff-Serv Quality of Service zu unterstützen.

Wenn ein DIFFSERV-Objekt für einen E-LSP, das mindestens einen MAP-Eintrag enthält, in der Path-Nachricht vorhanden ist, MUST der LSR dies als Anforderung für einen E-LSP mit signalisierter `EXP<-->PHB mapping' interpretieren.

Wenn ein DIFFSERV-Objekt für einen L-LSP in der Path-Nachricht vorhanden ist, MUST der LSR dies als Anforderung für einen L-LSP interpretieren.

Der Ziel-LSR eines E-LSP oder L-LSP antwortet auf die Path-Nachricht, die das LABEL_REQUEST-Objekt enthält, indem er eine Resv-Nachricht sendet:

  • mit dem LABEL-Objekt

  • ohne ein DIFFSERV-Objekt.

Unter der Annahme, dass die Label-Anforderung akzeptiert und ein Label zugewiesen wird, müssen die Diff-Serv-LSRs (Sender, Ziel, Zwischenknoten):

  • den Diff-Serv-Kontext aktualisieren, der mit den eingerichteten LSPs in ihrer ILM/FTN assoziiert ist, wie in vorherigen Abschnitten spezifiziert (eingehendes und ausgehendes Label),

  • die erforderliche Diff-Serv-Weiterleitungsbehandlung (Scheduling- und Dropping-Verhalten) für diese NHLFE (ausgehendes Label) installieren.

Ein LSR, der das DIFFSERV-Objekt erkennt und der eine Path-Nachricht empfängt, die das DIFFSERV-Objekt enthält, aber kein LABEL_REQUEST-Objekt enthält oder die keinen Session-Typ von LSP_Tunnel_IPv4 hat, sendet ein PathErr zum Sender mit dem Fehlercode Diff-Serv Error' und einem Fehlerwert von Unexpected DIFFSERV object'. Diese sind unten in Abschnitt 5.5 definiert.

Ein LSR, der eine Path-Nachricht mit dem DIFFSERV-Objekt für E-LSP empfängt, der das DIFFSERV-Objekt erkennt, aber das besondere in einem oder mehreren der MAP-Einträge kodierte PHB nicht unterstützt, sendet ein PathErr zum Sender mit dem Fehlercode Diff-Serv Error' und einem Fehlerwert von Unsupported PHB'. Diese sind unten in Abschnitt 5.5 definiert.

Ein LSR, der eine Path-Nachricht mit dem DIFFSERV-Objekt für E-LSP empfängt, der das DIFFSERV-Objekt erkennt, aber bestimmt, dass die signalisierte EXP<-->PHB mapping' ungültig ist, sendet ein PathErr zum Sender mit dem Fehlercode Diff-Serv Error' und einem Fehlerwert von Invalid EXP<-->PHB mapping'. Diese sind unten in Abschnitt 5.5 definiert. Die im DIFFSERV-Objekt für einen E-LSP signalisierte EXP<-->PHB mapping' ist ungültig, wenn:

  • das MAPnb-Feld nicht im Bereich 0 bis 8 liegt, oder

  • ein gegebener EXP-Wert in mehr als einem MAP-Eintrag erscheint, oder

  • die PHBID-Kodierung ungültig ist.

Ein LSR, der eine Path-Nachricht mit dem DIFFSERV-Objekt für L-LSP empfängt, der das DIFFSERV-Objekt erkennt, aber die besondere im PSC-Feld kodierte PSC nicht unterstützt, sendet ein PathErr zum Sender mit dem Fehlercode Diff-Serv Error' und einem Fehlerwert von Unsupported PSC'. Diese sind unten in Abschnitt 5.5 definiert.

Ein LSR, der eine Path-Nachricht mit dem DIFFSERV-Objekt empfängt, der das DIFFSERV-Objekt erkennt, aber den erforderlichen pro-LSP-Diff-Serv-Kontext nicht zuweisen kann, sendet ein PathErr mit dem Fehlercode "Diff-Serv Error" und dem Fehlerwert "Per-LSP context allocation failure". Diese sind unten in Abschnitt 5.5 definiert.

Ein Diff-Serv-LSR MUST die Situationen behandeln, in denen die Label-Anforderung aus anderen als den in diesem Abschnitt bereits erörterten Gründen nicht akzeptiert werden kann, in Übereinstimmung mit [RSVP_MPLS_TE] (z. B. Reservierung durch Zulassungskontrolle abgelehnt, ein Label kann nicht assoziiert werden).

5.4. Nicht-Unterstützung des DIFFSERV-Objekts​

Ein LSR, der die DIFFSERV-Objekt-Class-Num nicht erkennt, MUST sich in Übereinstimmung mit den in [RSVP] spezifizierten Verfahren für eine unbekannte Class-Num verhalten, deren Format 0bbbbbbb ist, d. h. er muss ein PathErr mit dem Fehlercode `Unknown object class' zum Sender senden.

Ein LSR, der die DIFFSERV-Objekt-Class-Num erkennt, aber den DIFFSERV-Objekt-C-Type nicht erkennt, muss sich in Übereinstimmung mit den in [RSVP] spezifizierten Verfahren für einen unbekannten C-Type verhalten, d. h. er muss ein PathErr mit dem Fehlercode `Unknown object C-Type' zum Sender senden.

In beiden Situationen führt dies dazu, dass der Pfad-Setup fehlschlägt. Der Sender sollte das Management benachrichtigen, dass ein L-LSP nicht eingerichtet werden kann, und sollte möglicherweise Maßnahmen ergreifen, um die LSP-Einrichtung ohne das DIFFSERV-Objekt erneut zu versuchen (z. B. Versuch, E-LSPs mit vorkonfigurierter `EXP<-->PHB mapping' als Fallback-Strategie zu verwenden).

5.5. Fehlercodes für Diff-Serv​

In den oben beschriebenen Verfahren müssen bestimmte Fehler als Diff-Serv Error' gemeldet werden. Der Wert des Fehlercodes Diff-Serv Error' ist 27.

Das Folgende definiert Fehlerwerte für den Diff-Serv-Fehler:

      Value    Error

1 Unexpected DIFFSERV object
2 Unsupported PHB
3 Invalid `EXP<-->PHB mapping'
4 Unsupported PSC
5 Per-LSP context allocation failure

5.6. Intserv-Diensttyp​

Sowohl E-LSPs als auch L-LSPs können mit oder ohne Bandbreitenreservierung eingerichtet werden.

Wie in [RSVP_MPLS_TE] spezifiziert, wird zur Einrichtung eines E-LSP oder eines L-LSP mit Bandbreitenreservierung der Controlled-Load-Dienst von Int-Serv (oder möglicherweise Guaranteed Service) verwendet, und die Bandbreite wird im SENDER_TSPEC (bzw. FLOWSPEC) der Path- (bzw. Resv-)Nachricht signalisiert.

Wie in [RSVP_MPLS_TE] spezifiziert, wird zur Einrichtung eines E-LSP oder eines L-LSP ohne Bandbreitenreservierung der in [NULL] spezifizierte Null Service verwendet.

Man beachte, dass diese Spezifikation die Verwendung von E-LSPs und L-LSPs nur zur Unterstützung des Diff-Serv-Dienstes definiert. Unabhängig vom Intserv-Dienst (Controlled Load, Null Service, Guaranteed Service, ...) und unabhängig davon, ob die Reservierung mit oder ohne Bandbreitenreservierung erfolgt, sind E-LSPs und L-LSPs hier zur Unterstützung von Diff-Serv-Diensten definiert. Die Unterstützung von Int-Serv-Diensten über ein MPLS-Diff-Serv-Backbone liegt außerhalb des Geltungsbereichs dieser Spezifikation.

Man beachte auch, dass diese Spezifikation sich nicht mit dem in [DCLASS] definierten DCLASS-Objekt befasst, da dieses Objekt Informationen über DSCP-Werte übermittelt, die innerhalb des MPLS-Netzwerks nicht relevant sind.