Passa al contenuto principale

8.1. Events for the BGP FSM (Eventi per la FSM BGP)

8.1. Events for the BGP FSM (Eventi per la FSM BGP)

8.1.1. Optional Events Linked to Optional Session Attributes (Eventi opzionali collegati agli attributi di sessione opzionali)

Gli input alla FSM BGP sono eventi. Gli eventi possono essere obbligatori o opzionali. Alcuni eventi opzionali sono collegati ad attributi di sessione opzionali. Gli attributi di sessione opzionali abilitano diversi gruppi di funzionalità FSM.

Il collegamento tra funzionalità FSM, eventi e gli attributi di sessione opzionali è descritto di seguito.

gruppo 1: Eventi amministrativi automatici (Start/Stop)

Attributi di sessione opzionali: AllowAutomaticStart, AllowAutomaticStop, DampPeerOscillations, IdleHoldTime, IdleHoldTimer

Opzione 1: AllowAutomaticStart

Descrizione: Una connessione peer BGP può essere avviata e arrestata tramite controllo amministrativo. Questo controllo amministrativo può essere manuale, basato sull'intervento dell'operatore, o sotto il controllo di una logica specifica di un'implementazione BGP. Il termine "automatico" si riferisce a un avvio che viene emesso alla FSM della connessione peer BGP quando tale logica determina che la connessione peer BGP dovrebbe essere riavviata.

L'attributo AllowAutomaticStart specifica che questa connessione BGP supporta l'avvio automatico della connessione BGP.

Se l'implementazione BGP supporta AllowAutomaticStart, il peer può essere riavviato ripetutamente. Altre tre opzioni controllano la velocità con cui avviene il riavvio automatico: DampPeerOscillations, IdleHoldTime e IdleHoldTimer.

L'opzione DampPeerOscillations specifica che l'implementazione utilizza una logica aggiuntiva per smorzare le oscillazioni dei peer BGP di fronte a sequenze di avvio automatico e arresto automatico. IdleHoldTime specifica la durata per cui il peer BGP viene mantenuto nello stato Idle prima di consentire il successivo riavvio automatico. L'IdleHoldTimer è il timer che mantiene il peer nello stato Idle.

Un esempio di logica DampPeerOscillations è un aumento del valore IdleHoldTime se un peer BGP oscilla ripetutamente la connettività (connesso/sconnesso) entro un periodo di tempo. Per abilitare questa logica, un peer potrebbe connettersi e disconnettersi 10 volte entro 5 minuti. Il valore IdleHoldTime verrebbe reimpostato da 0 a 120 secondi.

Valori: TRUE o FALSE

Opzione 2: AllowAutomaticStop

Descrizione: Questo attributo opzionale della sessione peer BGP indica che la connessione BGP permette l'arresto "automatico" della connessione BGP. Un arresto "automatico" è definito come un arresto sotto il controllo di una logica specifica dell'implementazione. La logica specifica dell'implementazione non rientra nell'ambito di questa specifica.

Valori: TRUE o FALSE

Opzione 3: DampPeerOscillations

Descrizione: L'attributo di sessione opzionale DampPeerOscillations indica che la connessione BGP utilizza una logica che smorza le oscillazioni dei peer BGP mentre è nello stato Idle.

Valore: TRUE o FALSE

Opzione 4: IdleHoldTime

Descrizione: L'IdleHoldTime è il valore impostato nell'IdleHoldTimer.

Valori: Tempo in secondi

Opzione 5: IdleHoldTimer

Descrizione: L'IdleHoldTimer aiuta nel controllo delle oscillazioni dei peer BGP. L'IdleHoldTimer viene utilizzato per mantenere il peer BGP in Idle per una durata specifica. L'evento IdleHoldTimer_Expires è descritto nella Sezione 8.1.3.

Valori: Tempo in secondi

gruppo 2: Peer non configurati

Attributi di sessione opzionali: AcceptConnectionsUnconfiguredPeers

Opzione 1: AcceptConnectionsUnconfiguredPeers

Descrizione: La FSM BGP permette opzionalmente l'accettazione di connessioni peer BGP da vicini che non sono preconfigurati. L'attributo di sessione opzionale "AcceptConnectionsUnconfiguredPeers" permette alla FSM di supportare le transizioni di stato che permettono all'implementazione di accettare o rifiutare questi peer non configurati.

AcceptConnectionsUnconfiguredPeers ha implicazioni di sicurezza. Si prega di fare riferimento al documento sulle vulnerabilità BGP [RFC4272] per i dettagli.

Valore: True o False

gruppo 3: Elaborazione TCP

Attributi di sessione opzionali: PassiveTcpEstablishment, TrackTcpState

Opzione 1: PassiveTcpEstablishment

Descrizione: Questa opzione indica che la FSM BGP aspetterà passivamente che il peer BGP remoto stabilisca la connessione TCP BGP.

Valore: TRUE o FALSE

Opzione 2: TrackTcpState

Descrizione: La FSM BGP normalmente traccia il risultato finale di un tentativo di connessione TCP piuttosto che i singoli messaggi TCP. Opzionalmente, la FSM BGP può supportare un'interazione aggiuntiva con la negoziazione della connessione TCP. L'interazione con gli eventi TCP può aumentare la quantità di registrazione richiesta dalla connessione peer BGP e il numero di modiche alla FSM BGP.

Valore: TRUE o FALSE

gruppo 4: Elaborazione messaggi BGP

Attributi di sessione opzionali: DelayOpen, DelayOpenTime, DelayOpenTimer, SendNOTIFICATIONwithoutOPEN, CollisionDetectEstablishedState

Opzione 1: DelayOpen

Descrizione: L'attributo di sessione opzionale DelayOpen permette alle implementazioni di essere configurate per ritardare l'invio di un messaggio OPEN per uno specifico periodo di tempo (DelayOpenTime). Il ritardo dà al peer BGP remoto il tempo di inviare il primo messaggio OPEN.

Valore: TRUE o FALSE

Opzione 2: DelayOpenTime

Descrizione: Il DelayOpenTime è il valore iniziale impostato nel DelayOpenTimer.

Valore: Tempo in secondi

Opzione 3: DelayOpenTimer

Descrizione: L'attributo di sessione opzionale DelayOpenTimer è usato per ritardare l'invio di un messaggio OPEN su una connessione. L'evento DelayOpenTimer_Expires (Evento 12) è descritto nella Sezione 8.1.3.

Valore: Tempo in secondi

Opzione 4: SendNOTIFICATIONwithoutOPEN

Descrizione: SendNOTIFICATIONwithoutOPEN permette a un peer di inviare una NOTIFICATION senza inviare prima un messaggio OPEN. Senza questo attributo di sessione opzionale, la connessione BGP assume che un messaggio OPEN debba essere inviato da un peer prima che il peer invii un messaggio NOTIFICATION.

Valore: True o False

Opzione 5: CollisionDetectEstablishedState

Descrizione: Normalmente, il rilevamento delle collisioni (vedere Sezione 6.8) viene ignorato nello stato Established. Questo attributo di sessione opzionale indica che questa connessione BGP elabora le collisioni nello stato Established.

Valore: True o False

Nota: Gli attributi di sessione opzionali chiariscono la descrizione della FSM BGP per le caratteristiche esistenti delle implementazioni BGP. Gli attributi di sessione opzionali possono essere predefiniti per un'implementazione e non leggibili tramite interfacce di gestione per implementazioni corrette esistenti. Quando i nuovi MIB BGP (versione 2 e successive) saranno supportati, questi campi saranno accessibili tramite un'interfaccia di gestione.

8.1.2. Administrative Events (Eventi amministrativi)

Un evento amministrativo è un evento in cui l'interfaccia operatore e il motore di policy BGP segnalano alla macchina a stati finiti BGP di avviare o arrestare la macchina a stati BGP. Le indicazioni di base di avvio e arresto sono aumentate da attributi di connessione opzionali che segnalano alla FSM BGP un tipo specifico di meccanismo di avvio o arresto. Un esempio di questa combinazione è l'Evento 5, AutomaticStart_with_PassiveTcpEstablishment. Con questo evento l'implementazione BGP segnala alla FSM BGP che l'implementazione sta usando un Avvio Automatico con l'opzione di usare uno stabilimento TCP Passivo. Lo stabilimento TCP Passivo segnala che questa FSM BGP aspetterà che il lato remoto avvii lo stabilimento TCP.

Si noti che solo l'Evento 1 (ManualStart) e l'Evento 2 (ManualStop) sono eventi amministrativi obbligatori. Tutti gli altri eventi amministrativi sono opzionali (Eventi 3-8). Ogni evento di seguito ha un nome, una definizione, uno stato (Obbligatorio o Opzionale) e gli attributi di sessione opzionali che DOVREBBERO (SHOULD) essere impostati in ogni fase. Quando si genera l'Evento 1 fino all'Evento 8 per la FSM BGP, le condizioni specificate nella sezione "Stato degli attributi opzionali" sono verificate. Se una qualsiasi di queste condizioni non è soddisfatta, il sistema locale dovrebbe registrare un errore FSM.

Le impostazioni degli attributi di sessione opzionali possono essere implicite in alcune implementazioni e quindi potrebbero non essere impostate esplicitamente da un'azione dell'operatore esterno. La Sezione 8.2.1.5 descrive queste impostazioni implicite degli attributi di sessione opzionali. Gli stati amministrativi descritti di seguito possono anche essere impliciti in alcune implementazioni e non direttamente configurabili da un operatore esterno.

Evento 1: ManualStart (Avvio manuale)

Definizione: L'amministratore del sistema locale avvia manualmente la connessione peer.

Stato: Obbligatorio

Stato attributo opzionale: L'attributo PassiveTcpEstablishment DOVREBBE (SHOULD) essere impostato a FALSE.

Evento 2: ManualStop (Arresto manuale)

Definizione: L'amministratore del sistema locale arresta manualmente la connessione peer.

Stato: Obbligatorio

Stato attributo opzionale: Nessuna interazione con attributi opzionali.

Evento 3: AutomaticStart (Avvio automatico)

Definizione: Il sistema locale avvia automaticamente la connessione BGP.

Stato: Opzionale, a seconda del sistema locale

Stato attributo opzionale:

  1. L'attributo AllowAutomaticStart DOVREBBE (SHOULD) essere impostato a TRUE quando si verifica questo evento.
  2. Se l'attributo di sessione opzionale PassiveTcpEstablishment è supportato, DOVREBBE (SHOULD) essere impostato a FALSE.
  3. Se DampPeerOscillations è supportato, DOVREBBE (SHOULD) essere impostato a FALSE quando si verifica questo evento.

Evento 4: ManualStart_with_PassiveTcpEstablishment (Avvio manuale con stabilimento TCP passivo)

Definizione: L'amministratore del sistema locale avvia manualmente la connessione peer, ma ha abilitato PassiveTcpEstablishment. L'attributo opzionale PassiveTcpEstablishment indica che il peer ascolterà prima di stabilire la connessione.

Stato: Opzionale, a seconda del sistema locale

Stato attributo opzionale:

  1. L'attributo PassiveTcpEstablishment DOVREBBE (SHOULD) essere impostato a TRUE quando si verifica questo evento.
  2. L'attributo DampPeerOscillations DOVREBBE (SHOULD) essere impostato a FALSE quando si verifica questo evento.

Evento 5: AutomaticStart_with_PassiveTcpEstablishment (Avvio automatico con stabilimento TCP passivo)

Definizione: Il sistema locale avvia automaticamente la connessione BGP con PassiveTcpEstablishment abilitato. L'attributo opzionale PassiveTcpEstablishment indica che il peer ascolterà prima di stabilire una connessione.

Stato: Opzionale, a seconda del sistema locale

Stato attributo opzionale:

  1. L'attributo AllowAutomaticStart DOVREBBE (SHOULD) essere impostato a TRUE.
  2. L'attributo PassiveTcpEstablishment DOVREBBE (SHOULD) essere impostato a TRUE.
  3. Se l'attributo DampPeerOscillations è supportato, DampPeerOscillations DOVREBBE (SHOULD) essere impostato a FALSE.

Evento 6: AutomaticStart_with_DampPeerOscillations (Avvio automatico con smorzamento oscillazioni peer)

Definizione: Il sistema locale avvia automaticamente la connessione peer BGP con lo smorzamento delle oscillazioni peer abilitato. Il metodo esatto per smorzare le oscillazioni persistenti dei peer è determinato dall'implementazione e non rientra nell'ambito di questo documento.

Stato: Opzionale, a seconda del sistema locale.

Stato attributo opzionale:

  1. L'attributo AllowAutomaticStart DOVREBBE (SHOULD) essere impostato a TRUE.
  2. L'attributo DampPeerOscillations DOVREBBE (SHOULD) essere impostato a TRUE.
  3. L'attributo PassiveTcpEstablishment DOVREBBE (SHOULD) essere impostato a FALSE.

Evento 7: AutomaticStart_with_DampPeerOscillations_and_PassiveTcpEstablishment (Avvio automatico con smorzamento oscillazioni peer e stabilimento TCP passivo)

Definizione: Il sistema locale avvia automaticamente la connessione peer BGP con lo smorzamento delle oscillazioni peer e PassiveTcpEstablishment abilitati. Il metodo esatto per smorzare le oscillazioni persistenti dei peer è determinato dall'implementazione e non rientra nell'ambito di questo documento.

Stato: Opzionale, a seconda del sistema locale

Stato attributo opzionale:

  1. L'attributo AllowAutomaticStart DOVREBBE (SHOULD) essere impostato a TRUE.
  2. L'attributo DampPeerOscillations DOVREBBE (SHOULD) essere impostato a TRUE.
  3. L'attributo PassiveTcpEstablishment DOVREBBE (SHOULD) essere impostato a TRUE.

Evento 8: AutomaticStop (Arresto automatico)

Definizione: Il sistema locale arresta automaticamente la connessione BGP.

Un esempio di un evento di arresto automatico è il superamento del numero di prefissi per un dato peer e il sistema locale disconnette automaticamente il peer.

Stato: Opzionale, a seconda del sistema locale

Stato attributo opzionale:

  1. L'attributo AllowAutomaticStop DOVREBBE (SHOULD) essere TRUE.

8.1.3. Timer Events (Eventi timer)

Evento 9: ConnectRetryTimer_Expires (Scadenza timer tentativi connessione)

Definizione: Un evento generato quando il ConnectRetryTimer scade.

Stato: Obbligatorio

Evento 10: HoldTimer_Expires (Scadenza timer mantenimento)

Definizione: Un evento generato quando l'HoldTimer scade.

Stato: Obbligatorio

Evento 11: KeepaliveTimer_Expires (Scadenza timer keepalive)

Definizione: Un evento generato quando il KeepaliveTimer scade.

Stato: Obbligatorio

Evento 12: DelayOpenTimer_Expires (Scadenza timer ritardo apertura)

Definizione: Un evento generato quando il DelayOpenTimer scade.

Stato: Opzionale

Stato attributo opzionale: Se si verifica questo evento,

  1. L'attributo DelayOpen DOVREBBE (SHOULD) essere impostato a TRUE,
  2. L'attributo DelayOpenTime DOVREBBE (SHOULD) essere supportato,
  3. Il DelayOpenTimer DOVREBBE (SHOULD) essere supportato.

Evento 13: IdleHoldTimer_Expires (Scadenza timer mantenimento inattivo)

Definizione: Un evento generato quando l'IdleHoldTimer scade e indica che la connessione BGP ha completato l'attesa per il periodo di back-off per prevenire l'oscillazione del peer BGP.

L'IdleHoldTimer è usato solo quando la funzione di smorzamento delle oscillazioni persistenti dei peer è abilitata impostando l'attributo opzionale DampPeerOscillations a TRUE.

Le implementazioni che non implementano la funzione di smorzamento delle oscillazioni persistenti dei peer potrebbero non avere l'IdleHoldTimer.

Stato: Opzionale

Stato attributo opzionale: Se si verifica questo evento:

  1. L'attributo DampPeerOscillations DOVREBBE (SHOULD) essere impostato a TRUE.
  2. L'IdleHoldTimer DOVREBBE (SHOULD) essere appena scaduto.

8.1.4. TCP Connection-Based Events (Eventi basati su connessione TCP)

Evento 14: TcpConnection_Valid (Connessione TCP valida)

Definizione: Evento che indica la ricezione da parte del sistema locale di una richiesta di connessione TCP con un indirizzo IP sorgente, porta TCP, indirizzo IP destinazione e porta TCP validi. La definizione di un indirizzo IP sorgente e destinazione non valido è determinata dall'implementazione.

La porta di destinazione di BGP DOVREBBE (SHOULD) essere la porta 179, come definito da IANA.

Una richiesta di connessione TCP è indicata dal sistema locale che riceve un SYN TCP.

Stato: Opzionale

Stato attributo opzionale:

  1. L'attributo TrackTcpState DOVREBBE (SHOULD) essere impostato a TRUE se si verifica questo evento.

Evento 15: Tcp_CR_Invalid (Richiesta connessione TCP invalida)

Definizione: Evento che indica la ricezione da parte del sistema locale di una richiesta di connessione TCP con un indirizzo sorgente o numero di porta non valido, o un indirizzo destinazione o numero di porta non valido.

Il numero di porta di destinazione BGP DOVREBBE (SHOULD) essere 179, come definito da IANA.

Una richiesta di connessione TCP si verifica quando il sistema locale riceve un SYN TCP.

Stato: Opzionale

Stato attributo opzionale:

  1. L'attributo TrackTcpState dovrebbe essere impostato a TRUE se si verifica questo evento.

Evento 16: Tcp_CR_Acked (Richiesta connessione TCP riconosciuta)

Definizione: Evento che indica la richiesta del sistema locale di stabilire una connessione TCP al peer remoto.

La connessione TCP del sistema locale ha inviato un SYN TCP, ricevuto un messaggio SYN/ACK TCP e inviato un ACK TCP.

Stato: Obbligatorio

Evento 17: TcpConnectionConfirmed (Connessione TCP confermata)

Definizione: Evento che indica che il sistema locale ha ricevuto conferma che la connessione TCP è stata stabilita dal sito remoto.

Il motore TCP del peer remoto ha inviato un SYN TCP. Il motore TCP del peer locale ha inviato un messaggio SYN, ACK e ha ora ricevuto un ACK finale.

Stato: Obbligatorio

Evento 18: TcpConnectionFails (Connessione TCP fallita)

Definizione: Evento che indica che il sistema locale ha ricevuto una notifica di fallimento della connessione TCP.

La macchina TCP del peer BGP remoto potrebbe aver inviato un FIN. Il peer locale risponderebbe con un FIN-ACK. Un'altra possibilità è che il peer locale abbia indicato un timeout nella connessione TCP e abbia abbattuto la connessione.

Stato: Obbligatorio

8.1.5. BGP Message-Based Events (Eventi basati su messaggi BGP)

Evento 19: BGPOpen

Definizione: Un evento viene generato quando viene ricevuto un messaggio OPEN valido.

Stato: Obbligatorio

Stato attributo opzionale:

  1. L'attributo opzionale DelayOpen DOVREBBE (SHOULD) essere impostato a FALSE.
  2. Il DelayOpenTimer NON DOVREBBE (SHOULD NOT) essere in esecuzione.

Evento 20: BGPOpen with DelayOpenTimer running (BGPOpen con DelayOpenTimer in esecuzione)

Definizione: Un evento viene generato quando viene ricevuto un messaggio OPEN valido per un peer che ha una connessione di trasporto stabilita con successo e sta attualmente ritardando l'invio di un messaggio BGP Open.

Stato: Opzionale

Stato attributo opzionale:

  1. L'attributo DelayOpen DOVREBBE (SHOULD) essere impostato a TRUE.
  2. Il DelayOpenTimer DOVREBBE (SHOULD) essere in esecuzione.

Evento 21: BGPHeaderErr (Errore intestazione BGP)

Definizione: Un evento viene generato quando un'intestazione del messaggio BGP ricevuto non è valida.

Stato: Obbligatorio

Evento 22: BGPOpenMsgErr (Errore messaggio BGP Open)

Definizione: Un evento viene generato quando viene ricevuto un messaggio OPEN con errori.

Stato: Obbligatorio

Evento 23: OpenCollisionDump (Dump collisione Open)

Definizione: Un evento generato amministrativamente quando viene rilevata una collisione di connessione durante l'elaborazione di un messaggio OPEN in arrivo e questa connessione è stata selezionata per essere disconnessa. Vedere la Sezione 6.8 per ulteriori informazioni sul rilevamento delle collisioni.

L'Evento 23 è un'azione pianificata generata dalla logica di implementazione che determina se questa connessione deve essere abbandonata secondo le regole nella Sezione 6.8. Questo evento può verificarsi se la FSM è implementata come due macchine a stati collegate.

Stato: Opzionale

Stato attributo opzionale: Se la macchina a stati deve elaborare questo evento nello stato Established,

  1. L'attributo opzionale CollisionDetectEstablishedState DOVREBBE (SHOULD) essere impostato a TRUE.

Si noti che: L'evento OpenCollisionDump può verificarsi in Idle, Connect, Active, OpenSent e OpenConfirm senza che siano impostati attributi opzionali.

Evento 24: NotifMsgVerErr (Errore versione messaggio notifica)

Definizione: Un evento viene generato quando viene ricevuto un messaggio NOTIFICATION con "errore versione".

Stato: Obbligatorio

Evento 25: NotifMsg (Messaggio notifica)

Definizione: Un evento viene generato quando viene ricevuto un messaggio NOTIFICATION e il codice di errore non è "errore versione".

Stato: Obbligatorio

Evento 26: KeepAliveMsg (Messaggio keepalive)

Definizione: Un evento viene generato quando viene ricevuto un messaggio KEEPALIVE.

Stato: Obbligatorio

Evento 27: UpdateMsg (Messaggio aggiornamento)

Definizione: Un evento viene generato quando viene ricevuto un messaggio UPDATE valido.

Stato: Obbligatorio

Evento 28: UpdateMsgErr (Errore messaggio aggiornamento)

Definizione: Un evento viene generato quando viene ricevuto un messaggio UPDATE invalido.

Stato: Obbligatorio