EBGP vs IBGP
Zowel EBGP als IBGP zijn termen die worden gebruikt met het routeringsprotocol BGP. In theoretische termen is het belangrijkste verschil tussen de twee dat EBGP wordt uitgevoerd tussen twee BGP-routers in verschillende Autonomous System (AS), maar IBGP wordt uitgevoerd tussen twee BGP-routers in hetzelfde AS. Voordat we de verschillen tussen EBGP en IBGP bespreken, moeten we eerst een basiskennis hebben van EBGP en IBGP.
Wat is EBGP?
BGP draait tussen routers in verschillende autonome systemen. Standaard is IP TTL in EBGP (peering in twee verschillende AS) ingesteld op 1, wat betekent dat peers verondersteld worden direct verbonden te zijn.
In dit geval, wanneer het pakket één router passeert, wordt TTL 0 en wordt het pakket daarna weggelaten. In gevallen waarin de twee buren niet direct met elkaar zijn verbonden, bijvoorbeeld bij peering met loopback-interfaces of peering wanneer apparaten meerdere hops verwijderd zijn, moeten we de opdracht "neighbor x.x.x.x ebgp-multihop"toevoegen
Anders wordt er geen BGP-buurschap tot stand gebracht. Bovendien adverteert de EBGP-peer alle beste routes die hij kent of die hij van zijn gelijken heeft geleerd (of het nu EBGP-peer of IBGP-peer is), wat niet het geval is in het geval van IBGP.
Wat is IBGP?
In IBGP is er geen beperking dat buren direct verbonden moeten zijn; een IBGP-peer zal het voorvoegsel dat hij van een IBGP-peer heeft geleerd echter niet adverteren naar een andere IBGP-peer. Deze beperking is er om lussen binnen dezelfde AS te voorkomen. Om dit te verduidelijken, wanneer een route wordt doorgegeven aan een EBGP-peer, wordt het lokale AS-nummer toegevoegd aan het voorvoegsel in as-path, dus als we hetzelfde pakket terug ontvangen met onze AS in as-path, weten we dat het een loop, en dat pakket wordt verwijderd. Wanneer een route echter wordt geadverteerd aan een IBGP-peer, wordt het lokale AS-nummer niet toegevoegd aan as-path, aangezien de peers zich in dezelfde AS bevinden.
Om loops in dezelfde AS te voorkomen, zijn er twee methoden die worden gebruikt.
1. Full Meshed Topology: hierbij moeten alle routers in dezelfde AS met elkaar verbonden zijn. Als we bijvoorbeeld N routers hebben, moeten we N (N-1)/2 IBGP-sessies hebben. We kunnen dit voorkomen door Route Reflectors te introduceren.
2. Gebruik van route-reflectoren: het is een alternatieve methode om een volledig mesh-scenario te overwinnen. In dit geval worden IBGP-sessies opgezet met een centraal punt. Dit centrale punt wordt Route Reflector genoemd en de andere IBGP-routers worden routereflector-clients genoemd.
Wat is het verschil tussen eBGP en iBGP?
1. EBGP is peering tussen twee verschillende AS, terwijl IBGP tussen hetzelfde AS (autonoom systeem) zit.
2. Routes die zijn geleerd van eBGP-peer zullen worden geadverteerd aan andere peers (BGP of IBGP); routes die zijn geleerd van IBGP-peer worden echter niet geadverteerd aan andere IBGP-peers.
3. Standaard zijn EBGP-peers ingesteld op TTL=1, wat betekent dat buren verondersteld worden direct verbonden te zijn, wat niet het geval is in het geval van IBGP. We kunnen dit gedrag voor EBGP wijzigen door het commando “neighbor x.x.x.x ebgp-multihop” te gebruiken. Multihop is de term die alleen in EBGP wordt gebruikt.
4. EBGP-routes hebben een administratieve afstand van 20, terwijl IBGP 200 heeft.
5. Volgende hop blijft ongewijzigd wanneer de route wordt geadverteerd aan IBGP-peer; het wordt echter gewijzigd wanneer het standaard wordt geadverteerd aan EBGP-peer.
Dit standaardgedrag van IBGP kan worden gewijzigd door het commando "neighbor x.x.x.x next-hop-self"; dit verandert de volgende hop, tijdens het adverteren, als een lokale route.