8.2. Description of FSM (Beschreibung der FSM)
8.2. Description of FSM (Beschreibung der FSM)
8.2.1. FSM Definition (FSM-Definition)
BGP MUSS (MUST) eine separate FSM für jeden konfigurierten Peer aufrechterhalten. Jeder BGP-Peer, der in einer potenziellen Verbindung gepaart ist, wird versuchen, sich mit dem anderen zu verbinden, es sei denn, er ist so konfiguriert, dass er im Idle-Zustand verbleibt, oder so konfiguriert, dass er passiv bleibt. Für den Zweck dieser Diskussion wird die aktive oder verbindende Seite der TCP-Verbindung (die Seite einer TCP-Verbindung, die das erste TCP-SYN-Paket sendet) als ausgehend bezeichnet. Die passive oder lauschende Seite (der Absender des ersten SYN/ACK) wird als eingehende Verbindung bezeichnet. (Siehe Abschnitt 8.2.1.1 für Informationen zu den unten verwendeten Begriffen aktiv und passiv.)
Eine BGP-Implementierung MUSS (MUST) sich mit dem TCP-Port 179 verbinden und darauf lauschen, um eingehende Verbindungen zu empfangen, zusätzlich zum Versuch, sich mit Peers zu verbinden. Für jede eingehende Verbindung MUSS (MUST) eine Zustandsmaschine instanziiert werden. Es gibt eine Periode, in der die Identität des Peers am anderen Ende einer eingehenden Verbindung bekannt ist, aber der BGP-Identifikator nicht bekannt ist. Während dieser Zeit können sowohl eine eingehende als auch eine ausgehende Verbindung für dasselbe konfigurierte Peering existieren. Dies wird als Verbindungskollision bezeichnet (siehe Abschnitt 6.8).
Eine BGP-Implementierung wird höchstens eine FSM für jedes konfigurierte Peering haben, plus eine FSM für jede eingehende TCP-Verbindung, für die der Peer noch nicht identifiziert wurde. Jede FSM entspricht genau einer TCP-Verbindung.
Es kann mehr als eine Verbindung zwischen einem Paar von Peers geben, wenn die Verbindungen so konfiguriert sind, dass sie ein anderes Paar von IP-Adressen verwenden. Dies wird als mehrere "konfigurierte Peerings" zum gleichen Peer bezeichnet.
8.2.1.1. Terms "active" and "passive" (Begriffe "aktiv" und "passiv")
Die Begriffe aktiv und passiv sind seit fast einem Jahrzehnt im Vokabular der Internet-Betreiber und haben sich als nützlich erwiesen. Die Wörter aktiv und passiv haben leicht unterschiedliche Bedeutungen, wenn sie auf eine TCP-Verbindung oder einen Peer angewendet werden. Es gibt nur eine aktive Seite und eine passive Seite zu jeder TCP-Verbindung, gemäß der obigen Definition und der untenstehenden Zustandsmaschine. Wenn ein BGP-Speaker als aktiv konfiguriert ist, kann er auf der aktiven oder passiven Seite der Verbindung enden, die schließlich eingerichtet wird. Sobald die TCP-Verbindung abgeschlossen ist, spielt es keine Rolle, welches Ende aktiv und welches passiv war. Der einzige Unterschied besteht darin, auf welcher Seite der TCP-Verbindung die Portnummer 179 liegt.
8.2.1.2. FSM and Collision Detection (FSM und Kollisionserkennung)
Es gibt eine FSM pro BGP-Verbindung. Wenn die Verbindungskollision auftritt, bevor bestimmt wird, mit welchem Peer eine Verbindung verbunden ist, können zwei Verbindungen für einen Peer existieren. Nach der Auflösung der Verbindungskollision (siehe Abschnitt 6.8) SOLLTE (SHOULD) die FSM für die geschlossene Verbindung entsorgt werden.
8.2.1.3. FSM and Optional Session Attributes (FSM und optionale Sitzungsattribute)
Optionale Sitzungsattribute spezifizieren entweder Attribute, die als Flags fungieren (TRUE oder FALSE), oder optionale Timer. Für optionale Attribute, die als Flags fungieren, müssen, wenn das optionale Sitzungsattribut auf dem System auf TRUE gesetzt werden kann, die entsprechenden BGP-FSM-Aktionen unterstützt werden. Wenn beispielsweise die folgenden Optionen in einer BGP-Implementierung gesetzt werden können: AutoStart und PassiveTcpEstablishment, dann müssen die Ereignisse 3, 4 und 5 unterstützt werden. Wenn ein optionales Sitzungsattribut nicht auf TRUE gesetzt werden kann, müssen die Ereignisse, die diesen Optionssatz unterstützen, nicht unterstützt werden.
Jeder der optionalen Timer (DelayOpenTimer und IdleHoldTimer) hat eine Gruppe von Attributen, die sind:
- Flag, das Unterstützung anzeigt,
- Im Timer gesetzte Zeit
- Timer.
Die zwei optionalen Timer zeigen dieses Format:
- DelayOpenTimer: DelayOpen, DelayOpenTime, DelayOpenTimer
- IdleHoldTimer: DampPeerOscillations, IdleHoldTime, IdleHoldTimer
Wenn das Flag, das die Unterstützung für einen optionalen Timer anzeigt (DelayOpen oder DampPeerOscillations), nicht auf TRUE gesetzt werden kann, müssen die Timer und Ereignisse, die diese Option unterstützen, nicht unterstützt werden.
8.2.1.4. FSM Event Numbers (FSM-Ereignisnummern)
Die in dieser Zustandsmaschinenbeschreibung verwendeten Ereignisnummern (1-28) helfen bei der Spezifikation des Verhaltens der BGP-Zustandsmaschine. Implementierungen KÖNNEN (MAY) diese Nummern verwenden, um Netzwerkverwaltungsinformationen bereitzustellen. Die genaue Form einer FSM oder der FSM-Ereignisse ist spezifisch für jede Implementierung.
8.2.1.5. FSM Actions that are Implementation Dependent (FSM-Aktionen, die implementierungsabhängig sind)
An bestimmten Punkten spezifiziert die BGP-FSM, dass BGP-Initialisierung stattfinden wird oder dass BGP-Ressourcen gelöscht werden. Die Initialisierung der BGP-FSM und der zugehörigen Ressourcen hängt vom Policy-Teil der BGP-Implementierung ab. Die Details dieser Aktionen liegen außerhalb des Geltungsbereichs des FSM-Dokuments.