BGP Teoria


Historia
  • Actualmente se utiliza la versión 4
  • Es el sucesor de BGP 2/3 y sustituyó a EGP en los 90's
  • Destinado a enrutar entre sistemas autónomos AS


Los Hechos
  • Dos tipos de BGP: IBGP (actuando como IGP) y EBGP
  • Utiliza el puerto TCP 179 y mantiene una relación de vecindad con otros routers.
  • Por defecto busca el mejor camino a una red usando el mejor AS-PATH (es un atributo en BGP)
  • Las políticas de enrutamientos (routing policies) se configuran usando los atributos de BGP
  • BGP converge muy lentamente. IBGP manda actualizaciones cada 5 segundos y EBGP cada 30 segundos.


RFC 177
No tienes que decirle a un AS vecino como enrutar el tráfico que le llegue.


BGP Neighbors


Estados de una conexión BGP (los vecinos se configuran a mano, no hay auto descubrimiento)
IDLE -> esperando a un evento que inicie bgp
CONNECT -> sesión TCP completado
ACTIVE -> Intentando establecer vecindad
OPEN SENT -> Open enviado, esperando recibir open del vecino
OPEN CONFIRM -> esperando keepalive
ESTABLISHED -> bgp comienza a intercambiar rutas







Pongo un ejemplo al establecer una sesión EBGP entre los sistemas 100 y 101 de arriba
*Mar  1 00:22:35.083: BGP: 10.0.0.1 went from Idle to Active
*Mar  1 00:22:35.091: BGP: 10.0.0.1 open active delayed 28754ms (35000ms max, 28% jitter)
*Mar  1 00:22:59.099: BGP: 10.0.0.1 passive open to 10.0.0.2
*Mar  1 00:22:59.103: BGP: 10.0.0.1 went from Active to Idle
*Mar  1 00:22:59.103: BGP: 10.0.0.1 went from Idle to Connect
*Mar  1 00:22:59.111: BGP: 10.0.0.1 rcv message type 1, length (excl. header) 26
*Mar  1 00:22:59.111: BGP: 10.0.0.1 rcv OPEN, version 4, holdtime 180 seconds
*Mar  1 00:22:59.115: BGP: 10.0.0.1 went from Connect to OpenSent
*Mar  1 00:22:59.115: BGP: 10.0.0.1 sending OPEN, version 4, my as: 101, holdtime 180 seconds
*Mar  1 00:22:59.115: BGP: 10.0.0.1 rcv OPEN w/ OPTION parameter len: 16
*Mar  1 00:22:59.115: BGP: 10.0.0.1 rcvd OPEN w/ optional parameter type 2 (Capability) len 6
*Mar  1 00:22:59.115: BGP: 10.0.0.1 OPEN has CAPABILITY code: 1, length 4
*Mar  1 00:22:59.119: BGP: 10.0.0.1 OPEN has MP_EXT CAP for afi/safi: 1/1
*Mar  1 00:22:59.119: BGP: 10.0.0.1 rcvd OPEN w/ optional parameter type 2 (Capability) len 2
*Mar  1 00:22:59.119: BGP: 10.0.0.1 OPEN has CAPABILITY code: 128, length 0
*Mar  1 00:22:59.119: BGP: 10.0.0.1 OPEN has ROUTE-REFRESH capability(old) for all address-families
*Mar  1 00:22:59.119: BGP: 10.0.0.1 rcvd OPEN w/ optional parameter type 2 (Capability) len 2
*Mar  1 00:22:59.119: BGP: 10.0.0.1 OPEN has CAPABILITY code: 2, length 0
*Mar  1 00:22:59.123: BGP: 10.0.0.1 OPEN has ROUTE-REFRESH capability(new) for all address-families  BGP: 10.0.0.1 rcvd OPEN w/ remote AS 100
*Mar  1 00:22:59.123: BGP: 10.0.0.1 went from OpenSent to OpenConfirm
*Mar  1 00:22:59.123: BGP: 10.0.0.1 send message type 1, length (incl. header) 45
*Mar  1 00:22:59.239: BGP: 10.0.0.1 went from OpenConfirm to Established
*Mar  1 00:22:59.239: %BGP-5-ADJCHANGE: neighbor 10.0.0.1 Up 

 
- Los mensajes hello se envían cada 60 segundos y el holdown timer es de 180 segundos
- Es capaz de autenticar un vecino mediante clave precompartida cifrada en MD5


Regla de sincronización

Las rutas aprendidas por BGP han de ser validadas por un IGP antes de anunciarlas a otros vecinos BGP.

Si el AS 101 enviá trafico hacia R1 porque el AS 100 tiene esa ruta, pero los rutes del AS 100 no saben como llegar a esa ruta (no está validada), BGP no habrá sincronizado luego R1 no enrutará si no hay un protocolo interior que maneje esas rutas (IBGP, EIGRP, RIP, OSPF), se pueden producir “black holes” no saber como enrutar los routers dentro del AS















Regla del Horizonte Dividido
Las rutas aprendidas por IBGP no se reenvían a otro vecino IBGP. Es decir, no mas de un salto IBGP, para que funcione correctamente tiene que ser “full mesh” o utilizar route reflectors.

No hay comentarios:

Publicar un comentario