Info
Border Gateway Protocol es el protocolo de enrutamiento principal en internet para intercambiar informacion de enrutamiento entre AS.
Datos
- Algoritmo de calculo: Vector Ruta
- Tipo de Protocolo: EGP
- Puerto: TCP 179
- Valores Tabla Distancia Administrativa
- eBGP: 20
- iBGP: 200
- TTL
- eBGP: 1 (puede modificarse con
ebgp-multihop
) - iBGP: 255
- eBGP: 1 (puede modificarse con
- Versiones
- Temporizadores
- Keepalive: 60s
- Holdtime: 180s (Se configura el valor mas bajo entre vecinos)
Terminologia
- AS (Autonomous System): Conjunto de routers configurados en comun
- ASN (Autonomous System Number): Identificador Unico, Rango privado especificado por la IANA en RFC6996 y Listado Oficial de Uso
- Rango Privado - 2 bytes(64.512 - 65.534)
- Rango Privado - 4 bytes(4.200.000.000 - 4.294.967.294)
- AF (Adress-Family)
- R-ID (BGP Router-ID): identifica un router dentro del AS, usualmente su IPv4
Estados BGP
Funcionamiento BGP
Fuente: Wikipedia - BGP Adjacency Status
graph TD Idle <--> Connect Connect --> OpenSent Connect <--> Active Active <--> OpenSent Active --> Idle OpenSent --> Idle OpenSent --> OpenConfirm OpenConfirm --> Idle OpenConfirm --> Established Established --> Idle
- Idle: Estado Inicial
- Connect: Esperando que se complete la conexion TCP
- Active: Conexion TCP no establecida, intentara nuevamente
- OpenSent: Mensaje Open Enviado, esperando ACK
- OpenConfirm: Envia ACK, esperando mensaje keepalive o Updates
- Established: Sesion Establecida, comienza envio de mensajes Updates
- Updates: Intercambio de actualizaciones de topologia BGP
Mensajes BGP
- Open: Iniciado despues de establecer conexion TCP para sesion BGP
- Keepalive (60s): Envia ACK para mantener la sesion activa
- Update: Envia Anuncios y retiros de rutas
- Notification: Enviado cuando se detecta un error, utilizado para terminar una sesion (codigo y datos)
Atributos Generales
Atributo | Categoria | Descripcion |
---|---|---|
AS-Path | Well-Know, Mandatory | Lista de AS enrutados |
Next-Hop | Well-Know, Mandatory | Siguiente Salto |
Origin | Well-Know, Mandatory | Codigo origen de la ruta Orden: (i)IGP, (e)EGP, (?)Incompleto |
Local-Preference | Well-Know, Discretionary | Preferencia Local (↑) Default: 100 |
MED | Optional, Non-Transitive | Metrica para elegir desde multiples salidas Default: 0 |
Weight | Optional, Local | Propietario de Cisco Se prefiere el valor mas alto |
Atributos Extra
Atributo | Categoria | Descripcion |
---|---|---|
Aggregator | Optional, Transitive | ID y AS del router para sumarizacion No se usa para seleccionar camino |
Atomic aggregate | Well-Know, discretionary | Al sumarizar nombra los AS No se usa para seleccionar camino |
Clusted ID | Optional, nontransitive | Identifica un cluster, Route Reflector No se usa para seleccionar camino |
Community | Optional, transitive | Etiqueta de Prefijos No se usa para seleccionar camino |
Originator ID | Optional, nontransitive | Identifica al Router Reflector No se usa para seleccionar camino |
Proceso de Seleccion de rutas
- Weight (↑): Propietario de Cisco
- Local-Preference (↑)
- Rutas originadas localmente (
network
oaggregate-address
) - AS-Path mas corto
- Origin mas corto (IGP < EGP < Incompleto)
- Med (↓)
- eBGP > iBGP
- Vecino IGP mas cercano
- Ruta mas antigua eBGP
- Vecino BGP Router-ID (↓)
- En caso de RR se sustituye con Originator ID
- Vecino IP (↓)
Regla del Horizonte Dividido iBGP
Split Horizon, es un metodo para que en sesiones iBGP, las rutas aprendidas por un vecino no se propagan para evitar loops de enrutamiento, RR (Router Reflector) configurado en el router con mas vecinos para poder controlar y progagar rutas entre vecinos.
Debido a la regla del Horizonte Dividido (Split Horizon), las rtas aprendidas de un vecino iBGP no se propagan, se configura RR en el router que mas vecinos iBGP tenga directamente conectados.
Ejemplo de configuracion en BGP-3
Multihop eBGP
El TTL en una comunicacion eBGP es de uno, por lo que solo puede llegar al siguiente Router, debera hacerlo a travez de saltos intermedios. Multihop permite aumentar el valor de TTL al paquete BGP, si no se especifica un valor, este sera del maximo (255). Ejemplo de configuracion en BGP-3
Verificacion General
sh ip bgp
: Tabla enrutamiento de BGP con vecinos y rutas- (*) son rutas validas
- (>) indican mejor ruta
- (i) para anuncios iBGP (e) para anuncios eBGP
- s son rutas que se suprimen (Porque hay rutas resumen)
- d son rutas penalizadas por no ser confiables
- h son rutas historicas, por lo que posiblemente ya no existan
- r son rutas con fallos y no pasaran a la RIB
- S son rutas viciadas, que continen inconvenientes
sh ip bgp summary
: Tabla enrutamiento de BGP resumidash ip bgp neighbors
: Vecinos BGPsh ip bgp neighbor [ip] received-routes
: Ve si esa ruta fue aceptada por un vecinosh ip bgp neighbor [ip] advertised-routes
: Ve las rutas posibles a esa ip a travez de vecinossh ip protocols
: Funcionamiento y Configuracion BGPsh run | s router bgp
: Configuracion BGP en el routersh tcp brief all
: Muestra todas las conexiones TCP (Sesiones BGP)sh bgp ipv4 unicast
: Tabla BGP IPv4 Internash bgp ipv4 unicast summary
: Resumen BGP, Numero AS Local, adyancencia, prefixsh bgp ipv4 unicast neighbor [ip]
: Informacion especifica de un vecino BGPsh bgp ipv4 unicast neighbor | inc ^BGP neighbor |Local port|Foreign port
: mostrar vecinos y puertos usadossh bgp ipv4 unicast neighor | inc BGP neigbor|TTL
: Ver TTL configurado
Troubleshooting General
Nota
BGP no funciona sobre rutas por defecto | No Ruta Estatica
- Numero de AS Incorrecto
show ip protocols
- Configuracion de Vecinos Incorrecta / Inalcanzable (state/pfxRcd no debe estar en 0 o idle o active)
show ip int brief
: IP Incorrecta o Superpuestashow ip route
show ip bgp
show bgp ipv4 unicast summary
ping [ip-neighbor]
: Para tener adyacencia deben conocerse
- ACL Bloqueando el puerto comunicacion BGP
show access-lists
- Interfaces Inactivas (Pasivas)
show ip protocols
- Redistribucion incorrecta
show ip route
show ip bgp sum
- Desajuste en los temporizadores | Info en Datos]
show bgp timers
- Estado Debug
debug ip bgp
: Comportamiento BGPdebug ip bgp updates
: Actualizaciones BGP
Extra
El comando network
permite que una ruta de la RIB, vaya a la tabla de BGP.
Los ASN se pueden usar para enrutar pero no para internet (enviado por as-path
de la tabla BGP), crearia problemas, se puede detener con el comando neighbor [ip] remove-private
- Permite filtrar rutas con ACL y Prefix-List para poder gestionar el trafico con Route-Map y PBR
- La Sumarizacion puede ser sin o con supresion de redes
- Permite ser integrados en uso de VPN con MPLS