Come funziona BGP su TCP?


13

Per quanto ne so stiamo usando i protocolli di routing per raggiungere la connettività di livello 3, sono confuso con il fatto che BGP funziona su TCP che è L4. Come si può stabilire L4 / TCP senza la precedente connettività L3?

Risposte:


17

I socket TCP / IP stabiliscono una connessione end-to-end attraverso la rete, tra due endpoint specificamente indirizzati. BGP utilizza TCP / IP per comunicare tra i router (tutti i dispositivi che scambiano informazioni di routing). Le informazioni scambiate vengono utilizzate dai peer BGP, per scegliere meglio il modo in cui scelgono dove inviare, (ovvero, hop successivo) i pacchetti di cui hanno bisogno trasmettere.

Ai confini di Internet, le cose sono facili; "tutto è così" nei confronti del tuo provider Internet. Più nel mezzo, un router potrebbe avere più scelte. Quindi utilizza TCP / IP per spostare il traffico BGP tra i vicini di routing. Le informazioni BGP indicano quindi al router quali percorsi preferire quando ci sono più modi in cui un pacchetto può arrivare dove sta andando.

Gli end point (ad es. Browser web) e i router parlano TCP / IP. Ma i router utilizzano TCP / IP (comunicazioni BGP composte da pacchetti TCP / IP) per parlare di cosa fare con gli altri pacchetti TCP / IP che devono instradare.


Credo che "Ma i router utilizzano TCP / IP per parlare di cosa fare con gli altri pacchetti TCP / IP che devono instradare". doveva essere "Ma i router utilizzano BGP per parlare di cosa fare con gli altri pacchetti TCP / IP che devono instradare".
Olivier Dulac,

1
... Ho pensato di scriverlo così. Con la mia ultima frase stavo cercando di evidenziare come diversi dispositivi stanno facendo cose diverse con TCP / IP. Modificherò il testo.
Craig Constantine,

13

I protocolli di routing non "raggiungono" la connettività L3. Popolano la tabella di routing (forwarding) del router con le informazioni apprese da altri router.

BGP è una "applicazione" che funziona su TCP / IP. In altre parole, un router BGP utilizza TCP / IP per comunicare con altri router BGP per scambiare informazioni di routing.

Affinché BGP funzioni, è necessario disporre già della connettività L3 tra i router.


problema di pollo e uova. "Affinché BGP funzioni, è necessario disporre già della connettività L3 tra i router." Poiché BGP è il protocollo di routing Internet di fatto come la connettività L3 viene raggiunta in Interet
miscelata il

6
Nessun problema con pollo e uova. Come ho detto, i protocolli di routing non creano connettività L3. Gli altoparlanti eBGP sono (quasi) sempre direttamente collegati tra loro. Gli altoparlanti iBGP si affidano alla rete sottostante per fornire connettività. In altre parole, è necessario prima connettività, prima di poter eseguire BGP.
Ron Trunk,

Sto cercando di capire come è iniziato e qual è il ragionamento alla base dell'architettura di oggi. Quindi all'inizio c'erano un paio di ragazzi con reti private che gestivano IGP e dicevano che collegassimo le nostre reti? perché farlo su IP / TCP, che dire di vecchi protocolli come Novell o Appletalk
miscelati il

Quelle sono domande diverse (ma buone). Le risposte avranno bisogno di più spazio rispetto alla sezione dei commenti. Possiamo spostarlo per chattare, se lo desideri
Ron Trunk,

6

Il modello di rete OSI e la sua stratificazione sono utili per comprendere la comunicazione end-to-end tra host, ma non sono realmente concepiti per spiegare come funziona il piano di controllo della rete. Esiste un problema di bootstrap inerente allo stabilire la piena connettività BGP, ma il modo in cui questo bootstrap ha luogo è ben compreso e non ha dipendenze circolari.

In termini di BGP, il modo in cui si formano le adiacenze e lo scambio di informazioni dipende dal tipo di sessione.

Il più semplice è eBGP. In genere eBGP viene eseguito su una sessione TCP tra due router collegati direttamente. In questo caso, ogni peer sa come parlare all'altro perché entrambi hanno un'interfaccia sulla stessa sottorete, quindi non è necessario utilizzare un protocollo di routing esterno per formare l'adiacenza.

Con iBGP le cose sono leggermente complicate. Nella configurazione più semplice tutti i router all'interno di un sistema autonomo verranno configurati come parte di una mesh completa, con sessioni iBGP con tutti gli altri router della rete. All'interno del sistema autonomo un protocollo gateway interno come OSPF o ISIS per costruire la topologia di routing interna. Quando l'IGP ha fatto il suo lavoro, tutti i router avranno una tabella di routing popolata con instradamenti verso tutti i vicini iBGP che consentono la formazione della sessione TCP senza dipendenza circolare.

Dove le cose diventano un po 'più interessanti è in situazioni in cui non tutti i router all'interno del sistema autonomo funzionano con una tabella BGP completa. Se la mesh iBGP non è completa, è possibile ottenere situazioni in cui un router nel mezzo della rete ha una vista diversa della tabella rispetto ai suoi vicini diretti. Ciò causerà un routing non ottimale e, in alcuni casi, i loop di routing che porteranno al traffico che rimbalza tra i dispositivi fino alla scadenza del TTL.


5

Il collegamento ha indirizzi statici e voci di routing associate configurate, che vengono utilizzate per stabilire la sessione BGP. Utilizzando BGP, la tabella di routing viene quindi estesa con le voci che puntano ad altre reti.

Poiché BGP viene utilizzato solo tra peer diretti, a questo punto non sono richieste route diverse da quella che punta verso l'altra estremità.

Ad esempio, se volessimo eseguire il peer, saremmo d'accordo su una sottorete / 30 o / 31, assegneremmo un indirizzo a ciascuna estremità della rete e creeremmo un percorso di rete per quella sottorete a questo collegamento, quindi configureremmo l'altro come Peer BGP, a quel punto ottengo voci di routing aggiuntive per tutte le reti che annunci di essere inviate tramite il tuo router (che a sua volta fa parte del percorso di rete configurato staticamente locale).


Simone, piacere di risentirti. La tua risposta riguarda solo eBGP, ma i peer iBGP necessitano solo della raggiungibilità IGP (ovvero OSPF). Potresti aggiungere altro per il caso iBGP?
Mike Pennington,

0
                    ---        ---          ---          ---
                   | D |------| A |--------| B |--------| C |
                    ---        ---          ---          ---

Supponiamo che A e B siano router (in un AS diverso o uguale) e D e C siano host. Ora A e B sono collegati tra loro e possono comunicare. Ma come sarebbe D a conoscere la posizione di C in modo che possa comunicare con C. Lo stesso vale per C quando vuole comunicare con D. Ora se eseguiamo il protocollo BGP tra A e B, si scambiano le informazioni di connettività di livello 3 tra loro . In termini semplici, A dirà a B che D è collegato ad esso. Quindi o B può trasmettere questo a C o se B è il gateway predefinito per C, in entrambi i casi C può conoscere la posizione di D.

Quindi in questo caso le informazioni di connettività di livello 3 vengono passate tra A e B, dato che A e B eseguono il protocollo BGP.

Pertanto è necessaria una precedente connessione BGP tra due sistemi per scambiare informazioni di routing di livello 3. Ho appena mostrato un semplice esempio per rispondere alla tua domanda. In uno scenario pratico, molti più dati di routing vengono scambiati tra peer BGP.

BGP funziona su protocollo TCP. Quindi un socket TCP deve essere aperto tra di loro, solo allora possono scambiare dati di routing.


0

senza precedente connettività L3?

La "connettività L3" non è una cosa del tutto o niente.

L'amministratore che configura il router configurerà le interfacce con indirizzi IP e maschere di sottorete. Sulla base di queste configurazioni verranno create voci implicite della tabella di routing che consentono al router di comunicare con i vicini.

I protocolli di routing possono quindi essere eseguiti su questa connettività L3 locale per stabilire una connettività L3 a lunga distanza.

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.