EBGP vs IBGP
Atât EBGP, cât și IBGP sunt termeni folosiți cu protocolul de rutare BGP. În termeni teoretici, principala diferență dintre cele două este rularea EBGP între două routere BGP în sistem autonom (AS) diferit, cu toate acestea, IBGP rulează între două routere BGP în același AS. Înainte de a discuta despre diferențele dintre EBGP și IBGP, să avem o înțelegere de bază despre EBGP și IBGP.
Ce este EBGP?
BGP rulează între routere în diferite sisteme autonome. În mod implicit, în EBGP (peering în două AS diferite), IP TTL este setat la 1, ceea ce înseamnă că se presupune că semenii sunt conectați direct.
În acest caz, atunci când pachetul traversează un router, TTL devine 0 și apoi pachetul va fi aruncat dincolo de aceasta. În cazurile în care cei doi vecini nu sunt conectați direct, de exemplu, peering cu interfețe loopback sau peering atunci când dispozitivele sunt la mai multe hopuri distanță, trebuie să adăugăm comanda „neighbor x.x.x.x ebgp-multihop”
În caz contrar, vecinătatea BGP nu va fi stabilită. În plus, EBGP peer va face publicitate tuturor celor mai bune rute pe care le cunoaște sau pe care le-a învățat de la colegii săi (fie EBGP peer sau IBGP peer), ceea ce nu este, în cazul IBGP.
Ce este IBGP?
În IBGP, nu există nicio restricție conform căreia vecinii trebuie să fie conectați direct; totuși, un peer IBGP nu va face publicitate prefixului pe care l-a învățat de la un peer IBGP către un alt peer IBGP. Această restricție este acolo pentru a evita buclele în cadrul aceluiași AS. Pentru a clarifica acest lucru, atunci când o rută este transmisă unui peer EBGP, numărul AS local este adăugat la prefixul în as-path, deci dacă primim același pachet înapoi indicând AS-ul nostru în as-path, știm că este un buclă, iar acel pachet este aruncat. Cu toate acestea, atunci când o rută este anunțată unui peer IBGP, numărul local AS nu este adăugat la ca-cae, deoarece peer-ii sunt în același AS.
Pentru a evita buclele în același AS, sunt utilizate două metode.
1. Topologie completă cu plasă: în aceasta, toate routerele din același AS trebuie să fie conectate între ele. De exemplu, dacă avem N routere, atunci trebuie să avem N (N-1)/2 sesiuni IBGP. Putem evita acest lucru prin introducerea reflectoarelor de traseu.
2. Utilizarea reflectorilor de rută: este o metodă alternativă pentru a depăși scenariul cu plasă completă. În acest caz, sesiunile IBGP sunt stabilite cu un punct central. Acest punct central se numește Route Reflector, iar celel alte routere IBGP sunt numite Route Reflector.
Care este diferența dintre eBGP și iBGP?
1. EBGP face peering între două AS diferite, în timp ce IBGP este între același AS (sistem autonom).
2. Rutele învățate de la eBGP peer vor fi anunțate altor colegi (BGP sau IBGP); cu toate acestea, rutele învățate de la peer IBGP nu vor fi anunțate altor colegi IBGP.
3. În mod implicit, egalii EBGP sunt setați cu TTL=1, ceea ce înseamnă că vecinii se presupune că sunt conectați direct, ceea ce nu este în cazul IBGP. Putem schimba acest comportament pentru EBGP folosind comanda „neighbor x.x.x.x ebgp-multihop”. Multihop este termenul folosit numai în EBGP.
4. Rutele EBGP au distanța administrativă de 20, în timp ce IBGP are 200.
5. Următorul hop rămâne neschimbat atunci când ruta este anunțată către IBGP peer; cu toate acestea, se modifică atunci când este anunțat la EBGP peer în mod prestabilit.
Acest comportament implicit al IBGP poate fi schimbat prin comanda „neighbor x.x.x.x next-hop-self”; acest lucru schimbă următorul hop, în timp ce faceți publicitate, ca rută locală.