Instradare il traffico su collegamenti diversi dallo stesso BGP AS


19

Ho due siti, A e B, in BGP AS 65000 e un terzo sito, C, in AS 65001. Tutti e tre i siti hanno connettività tramite carrier MPLS e c'è connettività interna tra i siti A e B. Sto cercando di influenzare BGP in modo che il traffico dal sito A al sito C venga instradato tramite il collegamento MPLS del sito A e il traffico dal sito B al sito C verrà instradato tramite il collegamento MPLS del sito B. La topologia è simile a quella descritta in questo esempio .

AS 65000 e 65001

I router perimetrali nei siti A e B vedranno entrambi il proprio collegamento MPLS come il percorso migliore, poiché le rotte EBGP sono preferite rispetto alle rotte IBGP. Tuttavia, i router all'interno di AS 65000 preferiranno tutti un collegamento o l'altro. Il mio obiettivo è forzare tutti i router in entrambi i siti a preferire il collegamento più vicino. (Purtroppo, al momento non sono in grado di dividere i due siti in AS separati.)

Esiste un modo sano per ottenere questo risultato pur consentendo la connettività di failover al sito C tra i collegamenti del sito A e B?

Modifica: avrei dovuto notare che non c'è IGP in uso qui. In effetti, le reti di ciascun sito esistono all'interno di un VRF come parte di una rete molto, molto più grande. Pertanto, qualsiasi soluzione deve essere interamente affidata a BGP.


Ehi Jeremy, ci sono due buone soluzioni a riguardo, ma non posso supporre che tu abbia il controllo amministrativo sull'IGP. Puoi chiarirlo?
John Jensen,

Non esiste IGP in questo scenario. Questo è in realtà rappresentativo di un solo VRF all'interno di una rete molto più ampia; i dettagli di cui ho tralasciato per motivi di chiarezza.
Jeremy Stretch,

Questo è ciò di cui avevo paura. :-) Grazie per il chiarimento.
John Jensen,

Qualcosa manca qui penso; Quindi siamo in due a supporre che ci sia un collegamento (forse molti, a causa di più router interni?) Tra A e B all'interno di AS 65000? Inoltre, cosa vedi che non è ottimale? Un / o molti router più vicini ad A (topologicamente parlando) inviano traffico via B, per arrivare a C?
jwbensley,

@javano il problema è che sia A che B (i router perimetrali) sono peer iBGP nello stesso ASN, quindi tutti i prefissi appresi da C su entrambi avranno 2 percorsi nel RIB su entrambe le caselle e il percorso eBGP avrà vincere sempre, quindi il traffico in uscita da AS6500 a AS65001 viene bloccato su un collegamento.
John Jensen,

Risposte:


12

Esiste una definizione chiara tra il sito A e il sito B?

In tal caso, cercherei di definire una politica sui router perimetrali per iniettare una comunità durante la ricezione di percorsi dal vettore MPLS.

Una volta che questa comunità è stata inserita nei prefissi (ad esempio 100: 1 per il sito A e 100: 2 per il sito B), è possibile quindi aggiungere una politica a ciascuno dei router del sito A per aumentare l'LP per tutte le rotte con community 100: 1 e allo stesso modo per il sito B con la community 100: 2.

Questa soluzione corrisponderebbe al requisito di utilizzare solo BGP e sarebbe anche abbastanza flessibile da consentire a B di utilizzare il collegamento verso monte A se perdesse il proprio collegamento verso monte.


1
Questo è probabilmente il modo migliore di procedere, ma se Jeremy sta annunciando un singolo riassunto di C, dovrà dividerlo in blocchi per farlo funzionare efficacemente.
John Jensen,

Penso che questo sia il percorso che prenderò. Dovrò cercarlo domani e vedere se rimango impigliato da qualche parte.
Jeremy Stretch,

@JohnJensen non dovrebbe esserci alcuna necessità in quanto entrambi i siti A e B riceveranno gli stessi prefissi dal corriere e quindi possono apportare modifiche ai propri prefissi "siti" con il tie breaker che scende sull'LP.
David Rothera,

1
Come ulteriore nota a pensarci di più, potrebbe essere meglio usare un attributo localmente significativo come peso piuttosto che uno transitivo come LP.
David Rothera,

1
@DavidRothera Se ci fossero più prefissi annunciati da C, avresti ragione: è possibile che ci sia un solo prefisso proveniente da C, nel qual caso non sono del tutto sicuro che l'impostazione di localpref con una comunità farebbe la differenza nel risolvere il problema di Jeremy, poiché esiste un unico prefisso con un'opzione di due comunità e due valori LP diversi, sarà preferito l'LP più elevato e il traffico verrà comunque bloccato su un collegamento. Anche d'accordo però che usare un attributo localmente significativo potrebbe essere meglio qui.
John Jensen,

6

inserisci qui la descrizione dell'immagineQuando ho fatto qualcosa di simile non ho usato eBGP tra i router. Ho avuto il router parlante BGP solo inviare la route predefinita ai router del sito A e del sito B tramite OSPF e quindi ridistribuire le route OSPF in BGP. Sul collegamento tra i due siti ho applicato un costo OSPF.

Ciò consente al sito A di avere rotte verso le sue reti, le reti del sito B e una rotta predefinita per uscire dal sito A (il costo OSPF mantiene la rotta predefinita dal sito B come opzione secondaria in caso di perdita del collegamento al sito A). Il sito A parlerà direttamente con il sito B, non usando MPLS a meno che non ci sia un errore di collegamento tra i siti.

Inoltre, i costi OSPF si traducono in BGP MED durante la ridistribuzione, il che fa sì che la rete MPLS del vettore preferisca inviare il traffico del sito A direttamente al sito A ma, se necessario, utilizzare anche il sito B per raggiungere il sito A.


3

Sento che mancano alcune informazioni. Perché i router perimetrali non preferiscono già il percorso migliore?

Hai iBGP full-mesh in 65000? O stai usando route-reflection?

Se si dispone di iBGP full-mesh, ciascun router perimetrale impara il percorso da entrambi [AB] e ricorre al confronto del costo IGP con l'hop successivo, che dovrebbe tradursi nella casella perimetrale più vicina.

Se è presente la riflessione del percorso, rifletterà solo il percorso migliore dal proprio POV, che potrebbe rimuovere il percorso migliore. Ciò è risolvibile anche aggiungendo un altro RR che sceglierà l'altro percorso nel modo migliore, quindi i riquadri di bordo possono ancora una volta scegliere il percorso migliore. Se il fissaggio di RR non è possibile in questo modo. È possibile aggiungere lo stesso indirizzo IPV4 in entrambi i loopback delle linee di confine e quando i router di frontiera pubblicizzano il prefisso su RR, impostano l'hop successivo a questo indirizzo anycast. Quindi, anche dopo la riflessione, seguirai IGP fino al confine più vicino.


2

Se hai il controllo sull'IGP:

Quello che abbiamo fatto è avere solo router eBGP nella rete iBGP. Il resto dei nostri router interni sono router OSPF. Ridistribuiamo da BGP a OSPF all'interno di ogni AS. La nostra configurazione è leggermente diversa dalla tua, ma ciò dovrebbe consentire alla metrica di costo di OSPF di influenzare il percorso del traffico indirizzandolo al router eBGP più vicino.

Se non si ha il controllo sull'IGP:

Forse puoi applicare una politica di importazione ai router interni per farli preferire staticamente gli annunci di rotta del router eBGP di uscita desiderato. Quindi, ad esempio, se iBGP contiene due annunci per un determinato prefisso (uno dal router del sito A e uno dal router del sito B, ma solo uno è installato nel RIB), è possibile aggiungere localmente l'annuncio prefissato appena viene dentro. Dovrei cercarlo, ma non vedo perché non funzioni.


Sì, sarebbe il modo migliore che immagino, supponendo che tu abbia la possibilità di usare un IGP. Sfortunatamente non è il mio caso. :( Ho aggiornato la domanda per includere questo dettaglio trascurato.
Jeremy Stretch,

Mi piace la risposta di David Rothera, poiché è la stessa della mia, ma aggiunge i dettagli sull'uso delle community :)
netdad,
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.