In qualche modo, BGP è bello e semplice. Ad esempio, c’è solo un BGP: BGP versione 4. Molti professionisti della rete si sono chiesti se la versione BGP 4 sarà presto sostituita da BGP 5. Tuttavia, non c’è nulla di cui preoccuparsi. Oggi, abbiamo ancora eseguito BGP versione 4 come il nostro Exterior Gateway Protocol (EGP). Anche se il BGP4 di oggi fa tutti i tipi di cose che il BGP4 di 20 anni fa non poteva fare, come il routing IPv6, multicast e VPN o l’utilizzo di comunità. BGP si è dimostrato molto estensibile, ma è tutto ancora BGP—e un singolo processo BGP in quel. Ma BGP gestisce solo il lato esterno del routing-c’è anche il routing interno.

Protocolli gateway interni
E c’è molta più scelta nei protocolli gateway interni (IGP). Un vecchio preferito è RIP, il Routing Information Protocol. Anche il RIPv2 migliorato è troppo semplice per la maggior parte delle reti in questi giorni, così come RIPng (next generation) per IPv6. Come tale, Cisco ha creato il proprio protocollo di routing Gateway interno (IGRP) e poi una versione migliorata giustamente chiamato Enhanced IGRP (EIGRP). Tuttavia, l’IGP più utilizzato è OSPF: aprire prima il percorso più breve. OSPF è un’implementazione “aperta” del Percorso più breve prima o dell’algoritmo di Dijkstra. (Il nome non si riferisce alla possibile apertura del percorso più breve.) OSPF versione 2 viene utilizzato per IPv4; OSPF versione 3 per IPv6. Le reti che eseguono entrambe le versioni IP e utilizzano OSPF come IGP devono quindi eseguire sia OSPFv2 che OSPFv3.

Alla fine degli anni 1980, quando fu sviluppato OSPF, la famiglia di protocolli di rete Open (Open Systems Interconnect) era ancora in discussione, e molta tecnologia fu presa in prestito / rubata daSI da IP e da IP daSI. Di conseguenza, O ha il protocollo di routing IS-IS per il routing O CLNP, che è molto simile a OSPF in molti modi (o viceversa). IS-IS sta per Sistema intermedio a sistema intermedio, dove ” sistema intermedio “significa”router”. IS-IS è stato successivamente esteso per supportare prima IPv4 e poi anche IPv6 ed è utilizzato principalmente in reti IP molto grandi.

Con questa introduzione fuori strada, voglio concentrarmi sul caso più comune: una rete che esegue BGP come EGP e OSPF come IGP e guarda come i compiti di routing sono divisi su entrambi i protocolli e come i due interagiscono.

Ridistribuzione
Con OSPF che è un IGP e BGP che è un EGP suggerisce un’ovvia divisione del lavoro: OSPF gestisce il routing interno, BGP il routing verso destinazioni esterne. Tuttavia, non è così semplice. Sì, OSPF è responsabile del routing interno. Questi percorsi vengono visualizzati come percorsi” O ” nell’output di “mostra percorso ip” su un router Cisco. Se la rete è divisa in più aree OSPF—non proprio necessario in questi giorni a meno che non si dispone di centinaia di router—si può anche vedere inter-area “O IA” percorsi.

I percorsi O e O IA sono solo i blocchi di indirizzi utilizzati sulle interfacce router che eseguono effettivamente OSPF. Ciò non include le interfacce verso server o PC e altri dispositivi dell’utente finale o, nel caso degli ISP, i clienti. Per far apparire quegli indirizzi in OSPF, dobbiamo ridistribuire le sottoreti collegate e/o ridistribuire i percorsi statici:

!
router ospf 1
ridistribuire le sottoreti collegate
ridistribuire le sottoreti statiche
!

L ‘ 1 in “router ospf 1” è il processo OSPF o il numero di istanza. È possibile eseguire più istanze OSPF sullo stesso router, il che richiede ovviamente un’attenta pianificazione per mantenere tutto dritto. Se la ridistribuzione di tutti i percorsi collegati e/o statici in OSPF è più del necessario, è possibile aggiungere “route-map < route-map-name >” e quindi utilizzare la mappa del percorso indicata per filtrare i percorsi indesiderati per impedire che vengano ridistribuiti.

Per impostazione predefinita, i percorsi ridistribuiti sono di tipo esterno 2 e vengono visualizzati come “O E2”. È anche possibile ridistribuire come tipo esterno 1 (con “metrica-tipo 1”). La differenza è che con le rotte O E1 il costo OSPF della rotta include il costo dei collegamenti per raggiungere la rotta esterna, mentre con le rotte O E2 il costo dei collegamenti interni viene ignorato.

iBGP
Ovviamente, BGP gestisce i percorsi verso reti esterne che sono BGP-capable. Tuttavia, sarebbe un po ‘ imbarazzante se tutti i router BGP della rete dicessero ai loro vicini esterni cose completamente diverse. Quindi tutti i router BGP nella rete devono parlare tra loro per raccontare una storia coerente alle reti esterne. Questo è ciò che BGP interno (iBGP) è per. Il BGP “regolare” è quindi BGP esterno (eBGP). Quando dico tutti i router BGP, intendo davvero tutti: se la tua rete ha 100 router BGP, ognuno di questi deve mantenere le sessioni iBGP con gli altri 99. Beh, a meno che tu non usi i riflettori del percorso, ma questa è una storia per un altro giorno.

Se sei abituato a eBGP, iBGP richiede un po ‘ di tempo per abituarsi. A differenza di eBGP, iBGP va bene
lavorando su molti luppoli. Tuttavia, questo aggiunge una complicazione. Si consideri la seguente rete:
interfacce di loopback

Supponiamo che la sessione iBGP dal router A al router D venga impostata verso l’indirizzo del router D sul collegamento tra B e D. Quindi, quando il collegamento tra i router B e D scende, l’indirizzo di D sull’interfaccia che si connette a quel collegamento scende e, con esso, la sessione iBGP configurata verso l’indirizzo di quell’interfaccia. Quindi, piuttosto che configurare le sessioni iBGP verso gli indirizzi di interfaccia, abbiamo impostato le interfacce di loopback per questo. A differenza dell’interfaccia di loopback su un server o altro host, che utilizza sempre l’indirizzo 127.0.0.1, i router usano indirizzi “reali” sulle loro interfacce di loopback, che funziona in questo modo:

!
interfaccia loopback0
indirizzo ip 192.0.2.65 255.255.255.255
!
router bgp 9000
vicino 192.0.2.67 remoto-come 9000
vicino 192.0.2.67 aggiornamento-fonte loopback0
!

A differenza di altre interfacce, le interfacce di loopback possono avere una lunghezza di prefisso / 32, quindi usano solo un singolo indirizzo. Il telecomando AS per il vicino 192.0.2.67 è lo stesso del locale AS (9000), rendendo questa sessione BGP una sessione iBGP. La riga “update-source loopback0” assicura che l’indirizzo di origine nei pacchetti BGP in uscita sia l’indirizzo IP configurato sull’interfaccia loopback0, quindi corrisponde all’indirizzo che il router remoto sta cercando. Se ora un percorso tra i due router iBGP va giù, i pacchetti iBGP possono essere reindirizzati su un altro percorso e non c’è alcun impatto su BGP. Si noti che affinché ciò funzioni, gli indirizzi dell’interfaccia di loopback need2 devono essere presenti nell’IGP-in genere, le rotte connesse verranno ridistribuite per far sì che ciò accada.
BGP in Large Networks eBook
Inoltre, a differenza di eBGP, iBGP non aggiorna il percorso AS o l’indirizzo hop successivo. Ciò significa che il prossimo indirizzo hop negli aggiornamenti iBGP punta ancora verso l’indirizzo IP del router nella rete vicina da cui è stato appreso il percorso. Questo indirizzo risiederà in una subnet punto-punto tra il router eBGP e il router BGP della rete vicina. Il tuo router eBGP conoscerà questo indirizzo perché è presente su un’interfaccia direttamente connessa, ma senza ulteriori azioni, il resto dei tuoi router non conoscerà questo indirizzo, quindi il prossimo indirizzo hop per le rotte iBGP non si risolverà e le rotte iBGP non possono essere utilizzate. Ancora una volta, ridistribuendo le reti connesse in OSPF (o il vostro IGP di scelta) risolve questo. In alternativa, è possibile configurare “next-hop-self” sulle sessioni iBGP e il router sostituirà l’indirizzo hop successivo negli aggiornamenti iBGP con il proprio indirizzo.

Ridistribuzione BGP
È anche possibile ridistribuire le rotte in BGP. Ad esempio, in una grande rete ISP è possibile ridistribuire le rotte connesse e statiche in BGP piuttosto che in IS-IS, perché ciò manterrà IS-IS lean e mean. I percorsi BGP extra sono relativamente irrilevanti, e un bel vantaggio è che se vengono reindirizzati internamente, questo non innesca alcun aggiornamento BGP. Piuttosto, i prossimi indirizzi hop vengono risolti in modo diverso dopo un cambiamento IS-IS, che ogni router può fare in modo indipendente. Ovviamente per fare ciò sono necessari buoni filtri che assicurino che il gran numero di piccoli prefissi utilizzati dai clienti non perda nella tabella BGP globale. Un buon modo per eseguire tale filtraggio è aggiungere una comunità alle rotte che possono essere propagate in eBGP e quindi filtrare in base a quella comunità.

Nel corso della giornata, non era raro ridistribuire tutte le rotte BGP in OSPF. Con mezzo milione di prefissi in BGP, questa pratica è diventata meno comune. Se vuoi davvero vivere sul bordo, puoi ridistribuire BGP in OSPF e OSPF in BGP. Quindi, se i tuoi filtri non sono perfetti, i percorsi possono andare e ritorno tra BGP e OSPF, con il risultato che il percorso AS viene rimosso. Quindi ora stai pubblicizzando su BGP un sacco di percorsi che non sono tuoi, ma con un one-hop COME percorso, quindi molti dei tuoi vicini inizieranno a inviarti traffico per questi percorsi.

Distanza amministrativa
Ultimo ma non meno importante, cosa succede quando lo stesso percorso è presente sia in BGP che OSPF? Ovviamente è difficile confrontare una preferenza locale BGP con una metrica OSPF. Quindi, ciò che fa un router (Cisco) è assegnare una “distanza amministrativa” a ciascun protocollo di routing. Vince il percorso con la distanza più bassa. OSPF ha una distanza di 110. I percorsi BGP hanno una distanza di 20 (migliore di OSPF e altri IGP) quando vengono appresi su eBGP e 200 (peggiori di OSPF e altri IGP) quando vengono appresi su iBGP. Le rotte statiche hanno una distanza di 1 per impostazione predefinita, ma è possibile modificarla includendo un valore di distanza alla fine del comando “ip route…”. Un valore di distanza di 250 li terrà fuori dal modo di protocolli di routing. La distanza amministrativa è il primo numero tra parentesi quadre nell’output “mostra percorso ip”.