EBGP frente a IBGP
Tanto EBGP como IBGP son términos utilizados con el protocolo de enrutamiento BGP. En términos teóricos, la principal diferencia entre los dos es que EBGP se ejecuta entre dos enrutadores BGP en diferentes sistemas autónomos (AS), sin embargo, IBGP se ejecuta entre dos enrutadores BGP en el mismo AS. Antes de discutir las diferencias entre EBGP e IBGP, tengamos una comprensión básica de EBGP e IBGP.
¿Qué es EBGP?
BGP se ejecuta entre enrutadores en diferentes sistemas autónomos. De forma predeterminada, en EBGP (peering en dos AS diferentes), IP TTL se establece en 1, lo que significa que se supone que los pares están conectados directamente.
En este caso, cuando el paquete cruza un enrutador, TTL se convierte en 0 y luego el paquete se descartará más allá de eso. En los casos en que los dos vecinos no están conectados directamente, por ejemplo, emparejando con interfaces de loopback o emparejando cuando los dispositivos están a varios s altos de distancia, debemos agregar el comando neighbor x.x.x.x ebgp-multihop”
De lo contrario, no se establecerá la vecindad BGP. Además, el par EBGP anunciará todas las mejores rutas que conoce o que ha aprendido de sus pares (ya sea par EBGP o par IBGP), lo que no ocurre en el caso de IBGP.
¿Qué es IBGP?
En IBGP, no hay restricción de que los vecinos tengan que conectarse directamente; sin embargo, un par IBGP no anunciará el prefijo que aprendió de un par IBGP a otro par IBGP. Esta restricción está ahí para evitar bucles dentro del mismo AS. Para aclarar esto, cuando se pasa una ruta a un par EBGP, el número de AS local se agrega al prefijo en as-path, por lo que si recibimos el mismo paquete indicando nuestro AS en as-path, sabemos que es un bucle, y ese paquete se cae. Sin embargo, cuando se anuncia una ruta a un par IBGP, el número de AS local no se agrega a la ruta, ya que los pares están en el mismo AS.
Para evitar bucles en el mismo AS, se utilizan dos métodos.
1. Topología de malla completa: en esto, todos los enrutadores en el mismo AS deben estar conectados entre sí. Por ejemplo, si tenemos N enrutadores, entonces debemos tener N (N-1)/2 sesiones IBGP. Podemos evitar esto mediante la introducción de reflectores de ruta.
2. Uso de Route-Reflectors: Es un método alternativo para superar el escenario de malla completa. En este caso, las sesiones de IBGP se establecen con un punto central. Este punto central se llama Route Reflector y los otros enrutadores IBGP se llaman clientes de route reflector.
¿Cuál es la diferencia entre eBGP e iBGP?
1. EBGP está intercambiando entre dos AS diferentes, mientras que IBGP está entre el mismo AS (Sistema Autónomo).
2. Las rutas aprendidas del par eBGP se anunciarán a otros pares (BGP o IBGP); sin embargo, las rutas aprendidas del par IBGP no se anunciarán a otros pares IBGP.
3. De forma predeterminada, los pares EBGP se configuran con TTL=1, lo que significa que se supone que los vecinos están conectados directamente, lo que no ocurre en el caso de IBGP. Podemos cambiar este comportamiento para EBGP usando el comando "neighbor x.x.x.x ebgp-multihop". Multis alto es el término utilizado solo en EBGP.
4. Las rutas EBGP tienen una distancia administrativa de 20, mientras que IBGP tiene 200.
5. El siguiente s alto permanece sin cambios cuando la ruta se anuncia al par IBGP; sin embargo, se cambia cuando se anuncia a pares EBGP de forma predeterminada.
Este comportamiento predeterminado de IBGP se puede cambiar con el comando "neighbor x.x.x.x next-hop-self"; esto cambia el próximo s alto, mientras se anuncia, como una ruta local.