De alguna manera, BGP es agradable y simple. Por ejemplo, solo hay un BGP: BGP versión 4. Muchos profesionales de la red se han estado preguntando si la versión 4 de BGP pronto será reemplazada por BGP 5. Sin embargo, no hay nada de qué preocuparse. Hoy en día, todavía ejecutamos BGP versión 4 como nuestro Protocolo de puerta de enlace Exterior (EGP). Incluso si el BGP4 de hoy hace todo tipo de cosas que el BGP4 de hace 20 años no podía hacer, como enrutar IPv6, multidifusión y VPN o usar comunidades. BGP ha demostrado ser muy extensible,pero todo sigue siendo BGP—y un solo proceso BGP. Pero BGP solo maneja el lado exterior del enrutamiento, también hay enrutamiento interior.

Protocolos de puerta de enlace interior
Y hay muchas más opciones en los Protocolos de Puerta de enlace Interior (IGP). Un viejo favorito es RIP, el Protocolo de Información de Enrutamiento. Incluso el RIPv2 mejorado es demasiado simple para la mayoría de las redes en estos días, al igual que RIPng (próxima generación) para IPv6. Como tal, Cisco creó su propio Protocolo de Enrutamiento de Puerta de enlace Interior (IGRP) y luego una versión mejorada llamada IGRP mejorada (EIGRP). Sin embargo, el IGP más utilizado es OSPF: Abrir Primero el Camino más Corto. OSPF es una implementación «abierta» del algoritmo Shortest Path First o de Dijkstra. (El nombre no se refiere a la posible apertura del camino más corto.) OSPF versión 2 se utiliza para IPv4; OSPF versión 3 para IPv6. Las redes que ejecutan ambas versiones IP y usan OSPF como su IGP, por lo tanto, necesitan ejecutar OSPFv2 y OSPFv3.

A finales de la década de 1980, cuando se desarrolló OSPF, la familia de protocolos de red OSI (Open Systems Interconnect) todavía estaba en disputa, y una gran cantidad de tecnología fue prestada / robada por OSI de IP y por IP de OSI. Como resultado, OSI tiene el protocolo de enrutamiento IS-IS para enrutamiento CLNP de OSI, que es muy similar a OSPF en muchos aspectos (o al revés). IS-IS significa Sistema intermedio a Sistema Intermedio, donde «sistema intermedio» significa «enrutador». IS-IS se amplió más tarde para admitir primero IPv4 y luego también IPv6 y se utiliza principalmente en redes IP muy grandes.

Con esa introducción fuera del camino, quiero centrarme en el caso más común: una red que ejecuta BGP como EGP y OSPF como IGP y ver cómo se dividen las tareas de enrutamiento en ambos protocolos y cómo interactúan los dos.

Redistribución
Con OSPF siendo un IGP y BGP siendo un EGP sugiere una división obvia del trabajo: OSPF maneja el enrutamiento interno, BGP el enrutamiento hacia destinos externos. Sin embargo, no es tan simple. Sí, OSPF se encarga del enrutamiento interno. Estas rutas aparecen como rutas » O «en la salida de» mostrar ruta ip » en un enrutador Cisco. Si la red se divide en varias áreas OSPF, que no son realmente necesarias en estos días a menos que tenga cientos de enrutadores, también puede ver rutas «O IA» entre áreas.

Las rutas O y O IA son solo los bloques de direcciones que se utilizan en las interfaces de enrutador que realmente ejecutan OSPF. Eso no incluye interfaces hacia servidores o PC y otros dispositivos de usuario final, o, en el caso de los ISP, clientes. Para que esas direcciones aparezcan en OSPF, necesitamos redistribuir subredes conectadas y/o redistribuir rutas estáticas:

!
router ospf 1
redistribuir subredes conectadas
redistribuir subredes estáticas
!

El 1 en» router ospf 1 » es el número de proceso o instancia de OSPF. Es posible ejecutar varias instancias OSPF en el mismo enrutador, lo que, por supuesto, requiere una planificación cuidadosa para mantener todo recto. Si la redistribución de todas las rutas conectadas y/o estáticas en OSPF es más de lo que necesita, puede agregar «mapa de ruta <nombre del mapa de ruta>» y luego usar el mapa de ruta indicado para filtrar las rutas no deseadas y evitar que se redistribuyan.

De forma predeterminada, las rutas redistribuidas se hacen de tipo externo 2 y se muestran como «O E2». También es posible redistribuir como tipo externo 1 (con «tipo métrico 1»). La diferencia es que en las rutas O E1 el coste de la ruta OSPF incluye el coste de los enlaces para llegar a la ruta externa, mientras que en las rutas O E2 se ignora el coste de los enlaces internos.

iBGP
Obviamente, BGP maneja las rutas hacia redes externas que son compatibles con BGP. Sin embargo, sería un poco embarazoso si todos los enrutadores BGP de la red le dijeran a sus vecinos externos cosas completamente diferentes. Por lo tanto, todos los enrutadores BGP de la red necesitan hablar entre sí para contar una historia coherente a las redes externas. Para esto está el BGP interno (iBGP). El BGP «regular» es, por lo tanto, el BGP externo (eBGP). Cuando digo todos los routers BGP, realmente me refiero a todos: si su red tiene 100 routers BGP, cada uno de ellos necesita mantener sesiones iBGP con los otros 99. Bueno, a menos que uses reflectores de ruta, pero eso es una historia para otro día.

Si estás acostumbrado a eBGP, iBGP requiere que te acostumbres un poco. A diferencia de eBGP, iBGP está bien trabajando sobre muchos saltos. Sin embargo, esto añade una complicación. Considere la siguiente red:
interfaces de bucle invertido

Supongamos que la sesión iBGP del enrutador A al enrutador D se configura hacia la dirección del enrutador D en el enlace entre B y D. Luego, cuando el enlace entre los enrutadores B y D se cae, la dirección de D en la interfaz que se conecta a ese enlace se cae, y con ella, la sesión iBGP configurada hacia la dirección de esa interfaz. Así que en lugar de configurar sesiones iBGP hacia direcciones de interfaz, configuramos interfaces de bucle invertido para esto. A diferencia de la interfaz de bucle invertido en un servidor u otro host, que siempre usa la dirección 127.0.0.1, los enrutadores usan direcciones «reales» en sus interfaces de bucle invertido, que funcionan de la siguiente manera:

!
interfaz loopback0
dirección ip 192.0.2.65 255.255.255.255
!
router bgp 9000
vecino 192.0.2.67 remoto-9000
vecino 192.0.2.67 actualizar fuente de loopback0
!

A diferencia de otras interfaces, las interfaces de bucle invertido pueden tener una longitud de prefijo /32, por lo que solo utilizan una sola dirección. El AS remoto para neighbor 192.0.2.67 es el mismo que el AS local (9000), haciendo de esta sesión BGP una sesión iBGP. La línea» update-source loopback0 » se asegura de que la dirección de origen en los paquetes BGP salientes sea la dirección IP configurada en la interfaz loopback0, por lo que coincide con la dirección que el enrutador remoto está buscando. Si ahora se cae una ruta entre los dos enrutadores iBGP, los paquetes iBGP se pueden redirigir a otra ruta y no hay impacto en BGP. Tenga en cuenta que para que esto funcione, es necesario que las direcciones de interfaz de bucle inverso 2 estén presentes en el IGP; por lo general, las rutas conectadas se redistribuirán para que esto suceda.
BGP en Grandes Redes eBook
También a diferencia de eBGP, iBGP no actualiza la ruta AS ni la siguiente dirección de salto. Esto significa que la siguiente dirección de salto en las actualizaciones de iBGP todavía apunta hacia la dirección IP del enrutador en la red vecina de la que se aprendió la ruta. Esta dirección residirá en una subred punto a punto entre su enrutador eBGP y el enrutador BGP de la red vecina. Su enrutador eBGP conocerá esta dirección porque está presente en una interfaz conectada directamente, pero sin más acción, el resto de sus enrutadores no conocerá esta dirección, por lo que la siguiente dirección de salto para rutas iBGP no se resolverá y las rutas iBGP no se podrán usar. Una vez más, redistribuir las redes conectadas en OSPF (o su IGP de su elección) resuelve esto. Alternativamente, puede configurar «next-hop-self» en sus sesiones de iBGP y el enrutador reemplazará la siguiente dirección de hop en las actualizaciones de iBGP con su propia dirección.

Redistribución de BGP
También es posible redistribuir rutas en BGP. Por ejemplo, en una red ISP grande, puede redistribuir rutas conectadas y estáticas en BGP en lugar de en IS-IS, porque esto mantendrá IS-IS magro y mezquino. Las rutas BGP adicionales son relativamente intrascendentes, y una buena ventaja es que si se desvían internamente, esto no activa ninguna actualización de BGP. Más bien, las siguientes direcciones de salto se resuelven de manera diferente después de un cambio IS-IS, que cada enrutador puede hacer de forma independiente. Por supuesto, hacer esto requiere buenos filtros que aseguren que la gran cantidad de prefijos pequeños utilizados por los clientes no se filtren en la tabla BGP global. Una buena manera de lograr este filtrado es agregando una comunidad a las rutas que se pueden propagar en eBGP y luego filtrar en función de esa comunidad.

En su día, no era raro redistribuir todas las rutas BGP en OSPF. Con medio millón de prefijos en BGP, esta práctica se ha vuelto menos común. Si realmente quieres vivir al límite, puedes redistribuir BGP en OSPF y OSPF en BGP. Luego, si sus filtros no son perfectos, las rutas pueden ser de ida y vuelta entre BGP y OSPF, con el resultado de que la ruta AS se elimine. Así que ahora estás anunciando a través de BGP un montón de rutas que no son tuyas, pero con un solo salto como ruta, por lo que muchos de tus vecinos comenzarán a enviarte tráfico para estas rutas.

Distancia administrativa
Por último, pero no menos importante, ¿qué sucede cuando la misma ruta está presente tanto en BGP como en OSPF? Obviamente, es difícil comparar una preferencia local de BGP con una métrica OSPF. Entonces, lo que hace un enrutador (Cisco) es asignar una «distancia administrativa» a cada protocolo de enrutamiento. La ruta con la distancia más baja gana. OSPF tiene una distancia de 110. Las rutas BGP tienen una distancia de 20 (mejor que OSPF y otros IGP) cuando se aprenden a través de eBGP y 200 (peor que OSPF y otros IGP) cuando se aprenden a través de iBGP. Las rutas estáticas tienen una distancia de 1 de forma predeterminada, pero puede cambiar esto incluyendo un valor de distancia al final del comando «ruta ip ip». Un valor de distancia de 250 los mantendrá fuera del camino de los protocolos de enrutamiento. La distancia administrativa es el primer número entre corchetes en la salida «mostrar ruta ip».