Come scegliere un ID router BGP quando si utilizza solo IPv6?


16

Di solito, quando si utilizza BGP, è possibile scegliere (o il dispositivo ne sceglie quattro) un ID router da uno degli indirizzi IP pubblici assegnati.

Ora, ammettiamo che esegui solo IPv6. Poiché l'ID router ha ancora un numero di 32 bit, non può essere copiato dall'indirizzo di un loopback.

Il draft-dupont-durand-idr-ipv6-bgp-routerid-01 porta l'inizio di una risposta, suggerendo di usare il proprio numero AS suffisso con una parte allocata localmente. Questo funziona solo con numeri AS a 16 bit.

Quindi, come scegliere un RID per i tuoi dispositivi? A caso ? In tal caso, come reagirebbero i dispositivi in ​​caso di collisione (entrambe le estremità di una sessione BGP usano lo stesso RID)?

PS: il problema riguarda anche OSPF, ma poi devi solo progettare uno schema di allocazione RID coerente. Cosa che non puoi fare quando usi BGP per scrutare con altri AS.

Risposte:



9

Colorami incerto su questa risposta ...

gli ID router devono davvero essere unici nello spazio OSPF, come hai detto.

All'interno di BGP, la mia comprensione è che vengono utilizzati solo per rilevare una nuova sessione di peering creata quando ne esiste già una ... a cui immagino che la soluzione sia abbattere quella vecchia.

Se le sessioni di peering arrivano su indirizzi di trasporto diversi, anche se gli ID router presentati sono gli stessi, verranno visualizzati come sessioni diverse perché provengono da indirizzi di trasporto diversi (indirizzi IPv6 nel tuo scenario).

Quindi ... immagino che la risposta sarebbe quella di scegliere i tuoi ID router per OSPF (presumibilmente v3) e probabilmente non è la fine del mondo se il tuo ID router finisce per duplicare l'id router che un altro peer (di terze parti) utilizza con un peer AS esterno


4

Supponendo che davvero non stai eseguendo affatto v4, nemmeno un loopback, il metodo che suggerirei sarebbe quello di allocare semplicemente un numero sequenziale per router e utilizzarlo, non è necessario segmentarlo affatto, e potresti avere un esistente numero di inventario che potrebbe funzionare (sebbene si consideri come potrebbe funzionare nel contesto di un RMA).

In particolare, ciò rende IS-IS molto più piacevole da usare rispetto al riempimento manuale di un indirizzo IPv4.

Se tu (per qualche strana ragione) avevi una rete in cui solo alcuni dispositivi erano IPv6, potresti voler compensare i numeri del manuale in modo che non vengano confusi con indirizzi IPv4 reali. L'uso di 240/8 è un'idea (suggerirei contro 255/8 o anche 254/8 per evitare che un cervello stanco operato alle 3 del mattino si chieda perché un ID router sia impostato su un indirizzo di trasmissione).


2

Il mio suggerimento sarebbe di adattare il tuo numero AS trattandolo come un AS a 32 bit (se non lo è già) - azzera gli 8 bit superiori e ORcon 0xE0000000(lo fa sembrare uno spazio multicast). Per semplicità di spiegazione, userò esadecimale (no davvero, che rende più facile vedere i confini)

ad es. se il tuo numero AS è 717232 (0x000AF1B0) ottieni inizialmente 0xE00AF1B0 e puoi aumentare l'ottetto più alto per ciascun altoparlante BGP nel tuo AS 0xE00AF1B0, 0xE10AF1B0 ecc.

Conversione in decimale? facile, dividi l'esagono e rompi il calcolatore del tuo programmatore preferito: E0.A.F1.B0 -> 224.10.241.176, E1.A.F1.B0 -> 225.10.241.176, eccetera.

Naturalmente, esiste un numero infinito di metodi che potresti escogitare per gestire questa situazione, il punto chiave è solo quello di essere proattivi nell'evitare i duplicati. All'interno di BGP, è necessario assicurarsi che i vicini non abbiano lo stesso ID router, tuttavia, è possibile eseguire il peer di due router separati con lo stesso ID su un terzo, basta tenere presente che routerid viene utilizzato come tie breaker per la selezione di bestpath.


1

Interfaccia loopback IPv4? So che Cisco IOS utilizzerà l'indirizzo più alto (numero a 32 bit) come ID router.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.