Zum Hauptinhalt springen

4. Betrieb

Ein Mitglied einer BGP-Konföderation MUSS (MUST) seinen AS-Konföderations-Identifikator in allen Transaktionen mit Peers verwenden, die keine Mitglieder seiner Konföderation sind. Dieser AS-Konföderations-Identifikator ist die „extern sichtbare" AS-Nummer, und diese Nummer wird in OPEN-Nachrichten verwendet und im AS_PATH-Attribut angekündigt.

Ein Mitglied einer BGP-Konföderation MUSS (MUST) seine Member-AS-Nummer in allen Transaktionen mit Peers verwenden, die Mitglieder derselben Konföderation wie der lokale BGP-Sprecher sind.

Ein BGP-Sprecher, der ein AS_PATH-Attribut empfängt, das ein autonomes System enthält, das mit seinem eigenen AS-Konföderations-Identifikator übereinstimmt, SOLL (SHALL) den Pfad auf dieselbe Weise behandeln, als hätte er einen Pfad empfangen, der seine eigene AS-Nummer enthält.

Ein BGP-Sprecher, der ein AS_PATH-Attribut empfängt, das eine AS_CONFED_SEQUENCE oder AS_CONFED_SET enthält, die seine eigene Member-AS-Nummer enthält, SOLL (SHALL) den Pfad auf dieselbe Weise behandeln, als hätte er einen Pfad empfangen, der seine eigene AS-Nummer enthält.

4.1. AS_PATH-Modifikationsregeln

Bei der Implementierung von BGP-Konföderationen wird Abschnitt 5.1.2 von [BGP-4] durch den folgenden Text ersetzt:

AS_PATH ist ein wohlbekanntes obligatorisches Attribut. Dieses Attribut identifiziert die autonomen Systeme, durch die die in dieser UPDATE-Nachricht enthaltenen Routing-Informationen geleitet wurden. Die Komponenten dieser Liste können AS_SET, AS_SEQUENCE, AS_CONFED_SET oder AS_CONFED_SEQUENCE sein.

Wenn ein BGP-Sprecher eine Route propagiert, die er aus der UPDATE-Nachricht eines anderen BGP-Sprechers gelernt hat, modifiziert er das AS_PATH-Attribut der Route basierend auf dem Standort des BGP-Sprechers, an den die Route gesendet wird:

a) Wenn ein gegebener BGP-Sprecher die Route an einen anderen BGP-Sprecher ankündigt, der sich in seinem eigenen Member-AS befindet, DARF der ankündigende Sprecher das mit der Route verbundene AS_PATH-Attribut NICHT (SHALL NOT) modifizieren.

b) Wenn ein gegebener BGP-Sprecher die Route an einen BGP-Sprecher ankündigt, der sich in einem benachbarten autonomen System befindet, das Mitglied der lokalen Konföderation ist, aktualisiert der ankündigende Sprecher das AS_PATH-Attribut wie folgt:

  1. wenn das erste Pfadsegment des AS_PATH vom Typ AS_CONFED_SEQUENCE ist, stellt das lokale System seine eigene Member-AS-Nummer als letztes Element der Sequenz voran (setzt es in die am weitesten links stehende Position in Bezug auf die Position der Oktette in der Protokollnachricht). Wenn die Voranstellung einen Überlauf im AS_PATH-Segment verursachen würde (d.h. mehr als 255 AS), SOLLTE (SHOULD) es ein neues Segment vom Typ AS_CONFED_SEQUENCE voranstellen und seine eigene AS-Nummer diesem neuen Segment voranstellen.

  2. wenn das erste Pfadsegment des AS_PATH nicht vom Typ AS_CONFED_SEQUENCE ist, stellt das lokale System ein neues Pfadsegment vom Typ AS_CONFED_SEQUENCE dem AS_PATH voran, einschließlich seiner eigenen Member-AS-Nummer in diesem Segment.

  3. wenn das AS_PATH leer ist, erstellt das lokale System ein Pfadsegment vom Typ AS_CONFED_SEQUENCE, platziert seine eigene Member-AS-Nummer in diesem Segment und platziert dieses Segment in das AS_PATH.

c) Wenn ein gegebener BGP-Sprecher die Route an einen BGP-Sprecher ankündigt, der sich in einem benachbarten autonomen System befindet, das kein Mitglied der lokalen Konföderation ist, SOLL (SHALL) der ankündigende Sprecher das AS_PATH-Attribut wie folgt aktualisieren:

  1. wenn irgendwelche Pfadsegmente des AS_PATH vom Typ AS_CONFED_SEQUENCE oder AS_CONFED_SET sind, MÜSSEN (MUST) diese Segmente aus dem AS_PATH-Attribut entfernt werden, wobei das bereinigte AS_PATH-Attribut von den Schritten 2, 3 oder 4 bearbeitet wird.

  2. wenn das erste Pfadsegment des verbleibenden AS_PATH vom Typ AS_SEQUENCE ist, stellt das lokale System seinen eigenen AS-Konföderations-Identifikator als letztes Element der Sequenz voran (setzt es in die am weitesten links stehende Position in Bezug auf die Position der Oktette in der Protokollnachricht). Wenn die Voranstellung einen Überlauf im AS_PATH-Segment verursachen würde (d.h. mehr als 255 AS), SOLLTE (SHOULD) es ein neues Segment vom Typ AS_SEQUENCE voranstellen und seine eigene AS-Nummer diesem neuen Segment voranstellen.

  3. wenn das erste Pfadsegment des verbleibenden AS_PATH vom Typ AS_SET ist, stellt das lokale System ein neues Pfadsegment vom Typ AS_SEQUENCE dem AS_PATH voran, einschließlich seines eigenen AS-Konföderations-Identifikators in diesem Segment.

  4. wenn das verbleibende AS_PATH leer ist, erstellt das lokale System ein Pfadsegment vom Typ AS_SEQUENCE, platziert seinen eigenen AS-Konföderations-Identifikator in diesem Segment und platziert dieses Segment in das AS_PATH.

Wenn ein BGP-Sprecher eine Route originiert, dann:

a) Der originierende Sprecher fügt seinen eigenen AS-Konföderations-Identifikator in ein Pfadsegment vom Typ AS_SEQUENCE in das AS_PATH-Attribut aller UPDATE-Nachrichten ein, die an BGP-Sprecher gesendet werden, die sich in benachbarten autonomen Systemen befinden, die keine Mitglieder der lokalen Konföderation sind. In diesem Fall wird der AS-Konföderations-Identifikator des autonomen Systems des originierenden Sprechers der einzige Eintrag im Pfadsegment sein, und dieses Pfadsegment wird das einzige Segment im AS_PATH-Attribut sein.

b) Der originierende Sprecher fügt seine eigene Member-AS-Nummer in ein Pfadsegment vom Typ AS_CONFED_SEQUENCE in das AS_PATH-Attribut aller UPDATE-Nachrichten ein, die an BGP-Sprecher gesendet werden, die sich in benachbarten Mitglieds-Autonomen-Systemen befinden, die Mitglieder der lokalen Konföderation sind. In diesem Fall wird die Member-AS-Nummer des autonomen Systems des originierenden Sprechers der einzige Eintrag im Pfadsegment sein, und dieses Pfadsegment wird das einzige Segment im AS_PATH-Attribut sein.

c) Der originierende Sprecher fügt ein leeres AS_PATH-Attribut in alle UPDATE-Nachrichten ein, die an BGP-Sprecher gesendet werden, die sich innerhalb desselben Member-AS befinden. (Ein leeres AS_PATH-Attribut ist eines, dessen Längenfeld den Wert Null enthält).

Wann immer die Modifikation des AS_PATH-Attributs das Einfügen oder Voranstellen des AS-Konföderations-Identifikators oder der Member-AS-Nummer des lokalen Systems erfordert, KANN (MAY) das lokale System mehr als eine Instanz dieses Wertes im AS_PATH-Attribut einfügen/voranstellen. Dies wird über die lokale Konfiguration gesteuert.