BGP (Border Gateway Protocol)

Error wiki: El nombre de la sección no puede repetirse 'Ejemplo de Configuración EBGP'

Error wiki: El nombre de la sección no puede repetirse 'Descripción:'

Error wiki: El nombre de la sección no puede repetirse 'Configuración Ejemplo:'

Error wiki: El nombre de la sección no puede repetirse 'Explicación:'

Tabla de contenidos

1.

Resumen

1.1. 1. Protocolo de Vector de Ruta

1.1.1. Ejemplo de Configuración

1.2. 2. Conexión Basada en TCP

1.2.1. Ejemplo de Configuración EBGP

1.3. 3. Interconexión Global

1.3.1. Ejemplo de Configuración IBGP

1.4. 4. Escalabilidad

1.4.1. Ejemplo de Agregación de Rutas

1.4.2. Ejemplo de Filtrado de Rutas

2. Tipos de BGP con Ejemplos de Configuración [Editar]

2.1. Resumen de Tipos de BGP

2.2. 1. IBGP (BGP Interno)

2.2.1. Descripción:

2.2.2. Configuración Ejemplo:

2.3. 2. EBGP (BGP Externo)

2.4. 3. BGP Confederations

2.5. 4. BGP Multicast y BGP MPLS VPN

2.5.1. Configuración Ejemplo para MPLS VPN:

3. Establecimiento de Sesiones BGP [Editar]

3.1. Resumen del Proceso de Sesión BGP

3.2. 1. Idle

3.3. 2. Connect

3.4. 3. Active

3.5. 4. OpenSent

3.6. 5. OpenConfirm

3.7. 6. Established

4. Atributos BGP [Editar]

4.1. Resumen de Atributos BGP

4.2. 1. AS-PATH (Path de Sistema Autónomo)

4.3. 2. NEXT-HOP

4.4. 3. LOCAL_PREF (Preferencia Local)

4.5. 4. MED (Multi-Exit Discriminator)

4.6. 5. COMMUNITY

5. Configuración Básica de BGP [Editar]

5.1. Configuración de EBGP

5.2. Configuración de IBGP

5.3. Configuración de Router Reflector (RR)

5.4. Notas Finales

6. Configuración Avanzada con MPLS VPN [Editar]

6.1. Configuración BGP en el PE

6.1.1. 1. Configuración de la Interfaz

6.1.2. 2. Configuración de la VPN

6.1.3. 3. Configuración de BGP

6.1.4. 4. Política de Rutas en el PE

6.2. Configuración BGP en el CPE

6.2.1. 1. Configuración General

6.2.2. 2. Configuración de Direcciones IPv4

6.2.3. 3. Política de Rutas en el CPE

BGP (Border Gateway Protocol)es el protocolo de enrutamiento utilizado para interconectar diferentes sistemas autónomos (AS) en Internet. Es el protocolo clave que define cómo las redes se comunican entre sí en entornos grandes y complejos, permitiendo el intercambio de rutas y asegurando una comunicación eficiente y escalable.

Características Principales de BGP

Resumen [Editar]

Característica Ejemplo de Configuración Explicación
Protocolo de Vector bgp 65000, peer, network Anuncio de rutas basado en atributos.
Conexión sobre TCP peer 203.0.113.1 enable Sesión confiable en TCP (puerto 179).
Interconexión Global EBGP: peer ... as-number ... Conecta redes dentro y fuera del AS.
Escalabilidad aggregate, route-policy Reduce el tamaño de las tablas.

1. Protocolo de Vector de Ruta

BGP utiliza atributos para seleccionar la mejor ruta hacia un destino. Atributos principales:

  • AS-PATH: Lista de sistemas autónomos atravesados por una ruta. Ayuda a evitar bucles.
  • NEXT-HOP: Dirección IP del próximo salto hacia el destino.
  • MED: Define la preferencia para rutas de entrada en conexiones entre AS.
  • LOCAL_PREF: Define prioridades para rutas dentro de un AS.
Ejemplo de Configuración
bgp 65000
router-id 192.168.1.1
peer 192.168.2.1 as-number 65001
ipv4-family unicast
 network 10.1.1.0 255.255.255.0
 import-route static
   

Explicación:

  • bgp 65000: Activa BGP en el sistema autónomo 65000.
  • router-id 192.168.1.1: Identifica el router.
  • peer 192.168.2.1 as-number 65001: Establece un vecino BGP externo.
  • network: Anuncia la red 10.1.1.0/24.

2. Conexión Basada en TCP

BGP utiliza TCP (puerto 179) para asegurar la entrega confiable de mensajes de enrutamiento.

Ejemplo de Configuración EBGP
bgp 65000
peer 203.0.113.1 as-number 65100
ipv4-family unicast
 advertise-community
 peer 203.0.113.1 enable
   

Explicación:

  • peer 203.0.113.1 as-number 65100: Configura un vecino externo (EBGP).
  • advertise-community: Permite anunciar atributos extendidos.
  • peer ... enable: Activa la sesión BGP con el vecino configurado.

3. Interconexión Global

BGP puede interconectar redes externas (EBGP) e internas (IBGP).

Ejemplo de Configuración EBGP

bgp 65000
router-id 192.168.1.1
peer 198.51.100.1 as-number 65100
ipv4-family unicast
 network 10.1.1.0 255.255.255.0
   
Ejemplo de Configuración IBGP
bgp 65000
router-id 192.168.1.1
peer 192.168.2.1 as-number 65000
peer 192.168.3.1 as-number 65000
ipv4-family unicast
 network 10.1.1.0 255.255.255.0
 peer 192.168.2.1 next-hop-self
   

Explicación:

  • peer ... as-number 65000: Define vecinos internos (IBGP) dentro del mismo AS.
  • next-hop-self: Establece al router local como el próximo salto para rutas anunciadas.

4. Escalabilidad

BGP maneja tablas de enrutamiento masivas utilizando técnicas como agregación de rutas y políticas de filtrado.

Ejemplo de Agregación de Rutas
bgp 65000
ipv4-family unicast
 aggregate 10.1.0.0 255.255.0.0
   

Explicación:

  • aggregate: Resume múltiples rutas en una sola entrada para reducir el tamaño de las tablas.
Ejemplo de Filtrado de Rutas
bgp 65000
ipv4-family unicast
 route-policy BLOCK_EXTERNAL deny node 10
   

Explicación:

  • route-policy BLOCK_EXTERNAL deny node 10: Aplica una política que bloquea ciertas rutas.

Tipos de BGP con Ejemplos de Configuración [Editar]

Resumen de Tipos de BGP

Tipo Descripción Caso de Uso
IBGP (Interno) Opera dentro de un AS, requiere Full Mesh o Reflectors. Redes grandes dentro de una organización.
EBGP (Externo) Conecta diferentes AS. ISPs o conexiones entre empresas.
BGP Confederations Divide un AS en sub-AS para simplificar la gestión. Redes con miles de routers.
BGP Multicast y MPLS VPN Soporta rutas para multicast y VRFs en MPLS. Redes empresariales con múltiples clientes.

1. IBGP (BGP Interno)

Descripción:
  • Opera dentro de un solo sistema autónomo (AS).
  • Todos los routers deben estar completamente conectados (Full Mesh) o usar técnicas como Route Reflectors.
Configuración Ejemplo:
bgp 65000
router-id 192.168.1.1
peer 192.168.2.1 as-number 65000
peer 192.168.3.1 as-number 65000
ipv4-family unicast
 network 10.1.1.0 255.255.255.0
 peer 192.168.2.1 next-hop-self
 peer 192.168.3.1 next-hop-self
   
Explicación:
  • peer ... as-number 65000: Configura vecinos internos dentro del mismo AS.
  • next-hop-self: Establece el router local como próximo salto.

2. EBGP (BGP Externo)

Descripción:

  • Conecta diferentes sistemas autónomos (AS).
  • Usado para la comunicación entre ISPs o grandes organizaciones.

Configuración Ejemplo:

bgp 65000
router-id 192.168.1.1
peer 203.0.113.1 as-number 65100
ipv4-family unicast
 network 10.1.1.0 255.255.255.0
 peer 203.0.113.1 enable
   

Explicación:

  • peer ... as-number 65100: Configura un vecino externo.
  • peer ... enable: Activa la sesión BGP con el vecino configurado.

3. BGP Confederations

Descripción:

  • Divide un AS grande en sub-AS para simplificar la gestión.
  • Los sub-AS se comunican como si fueran externos, pero funcionan como un único AS desde la perspectiva externa.

Configuración Ejemplo:

bgp 65000
bgp confederation identifier 65000
bgp confederation peers 65001 65002
peer 192.168.1.1 as-number 65001
peer 192.168.2.1 as-number 65002
ipv4-family unicast
 network 10.1.1.0 255.255.255.0
   

Explicación:

  • bgp confederation identifier 65000: Identifica el AS principal.
  • bgp confederation peers: Define los sub-AS dentro de la confederación.
  • peer ... as-number: Configura vecinos dentro de los sub-AS.

4. BGP Multicast y BGP MPLS VPN

Descripción:

  • BGP Multicast: Distribuye rutas específicas para tráfico multicast.
  • BGP MPLS VPN: Utiliza BGP para enrutar tráfico en redes MPLS con VRFs.
Configuración Ejemplo para MPLS VPN:
bgp 65000
router-id 192.168.1.1
ipv4-family vpnv4
 policy vpn-target
 nexthop recursive-lookup delay 1
ipv4-family vpn-instance VPN_CLIENTE_A
 preference 20 200 200
 import-route direct
 import-route static
 import-route ospf 1
   

Explicación:

  • ipv4-family vpnv4: Activa BGP para VPN MPLS.
  • policy vpn-target: Aplica políticas para la instancia VPN.
  • import-route: Importa rutas desde otros protocolos como OSPF.

Establecimiento de Sesiones BGP [Editar]

El protocolo BGP establece sesiones con vecinos siguiendo un proceso estructurado en seis estados. A continuación, se detalla cada estado con su propósito y cómo identificarlo en configuraciones reales.

Resumen del Proceso de Sesión BGP

Estado Descripción Acción Principal
Idle Estado inicial; espera para iniciar TCP. Verifica configuraciones.
Connect Intenta establecer conexión TCP. Inicia conexión en el puerto 179.
Active Reintenta conexión TCP si falla. Reintenta conexión hasta un límite.
OpenSent Envía mensaje OPEN al vecino. Negocia parámetros de sesión.
OpenConfirm Espera confirmación de parámetros negociados. Verifica parámetros y compatibilidad.
Established Sesión activa; intercambia actualizaciones. Mantiene la sesión y procesa rutas.

1. Idle

Descripción: El router está inactivo y espera instrucciones para iniciar la conexión TCP con el vecino. Es el estado inicial de BGP.

  • Acciones en este estado: Verifica configuraciones y recursos antes de intentar establecer la conexión.
display bgp peer
   
BGP local router ID: 192.168.1.1
Peer: 203.0.113.1    Local AS: 65000
 State: Idle
   

2. Connect

Descripción: BGP intenta establecer una conexión TCP con el vecino en el puerto 179. Si la conexión falla, pasa al estado Active.

  • Acciones en este estado: Se evalúa la disponibilidad de la red y del vecino.
display bgp peer
   
Peer: 203.0.113.1
 State: Connect
 Last error: Connection timeout
   

3. Active

Descripción: El router reintenta establecer la conexión TCP. Si falla repetidamente, vuelve a Idle.

  • Acciones en este estado: Reintenta la conexión hasta alcanzar un límite.
display bgp peer
   
Peer: 203.0.113.1
 State: Active
 Last error: No response from peer
   

4. OpenSent

Descripción: Se envía un mensaje OPEN al vecino para negociar parámetros como el AS y el router ID. El router espera una respuesta de tipo OPEN del vecino.

  • Acciones en este estado: Se realiza la negociación inicial de parámetros.
display bgp peer
   
Peer: 203.0.113.1
 State: OpenSent
 Sent OPEN message to peer
   

5. OpenConfirm

Descripción: Se recibe el mensaje OPEN del vecino y se espera confirmación para establecer la sesión.

  • Acciones en este estado: Se verifica la compatibilidad de los parámetros negociados.
display bgp peer
   
Peer: 203.0.113.1
 State: OpenConfirm
 Waiting for KEEPALIVE
   

6. Established

Descripción: La sesión BGP está activa. Los routers comienzan a intercambiar mensajes UPDATE con rutas y atributos.

  • Acciones en este estado: Se mantienen actualizaciones periódicas para asegurar la sesión.
display bgp peer
   
Peer: 203.0.113.1
 State: Established
 Uptime: 10h34m
 Received prefixes: 25
   
Atributos BGP

Atributos BGP [Editar]

Los atributos en BGP son información adicional asociada a cada ruta, utilizada para tomar decisiones sobre cuál ruta es la más adecuada. Estos atributos permiten el control detallado del enrutamiento en redes complejas.

Resumen de Atributos BGP

Atributo Propósito Influencia en el Enrutamiento
AS-PATH Identificar la ruta y evitar bucles. Selección de rutas más cortas.
NEXT-HOP Especificar el siguiente salto hacia el destino. Validez de la ruta.
LOCAL_PREF Preferencia de rutas dentro del AS. Flujo de tráfico saliente.
MED Influenciar la selección de rutas de entrada. Rutas más preferidas entre AS.
COMMUNITY Agrupar rutas con etiquetas comunes. Aplicación de políticas personalizadas.

1. AS-PATH (Path de Sistema Autónomo)

Descripción: Lista ordenada de los sistemas autónomos (AS) que una ruta debe atravesar. Ayuda a evitar bucles y seleccionar rutas más cortas.

Comando:

display bgp routing-table

Salida Ejemplo:

Network          NextHop            AS-PATH
192.168.1.0/24   10.1.1.1           65001 65002
   

Explicación: La ruta hacia 192.168.1.0/24 pasa por los AS 65001 y 65002.

2. NEXT-HOP

Descripción: Indica la dirección IP del próximo salto hacia el destino. Si no es alcanzable, la ruta no se utiliza.

Comando:

display bgp routing-table

Salida Ejemplo:

Network          NextHop
192.168.1.0/24   10.1.1.1
   

Explicación: El tráfico hacia 192.168.1.0/24 debe pasar por el vecino 10.1.1.1.

3. LOCAL_PREF (Preferencia Local)

Descripción: Define la preferencia de una ruta dentro del AS. Cuanto mayor sea el valor, más preferida será la ruta.

Configuración:

route-policy SET_LOCAL_PREF permit node 10
if-match acl 3001
apply local-preference 200
   

Comando de Verificación:

display bgp routing-table

Salida Ejemplo:

Network          LocalPref
192.168.1.0/24   200
   

4. MED (Multi-Exit Discriminator)

Descripción: Influye en la selección de rutas entrantes entre diferentes AS. Un valor más bajo indica mayor preferencia.

Configuración:

route-policy SET_MED permit node 10
if-match community 65000:100
apply med 50
   

Comando de Verificación:

display bgp routing-table

Salida Ejemplo:

Network          MED
192.168.1.0/24   50
   

5. COMMUNITY

Descripción: Etiquetas que agrupan rutas para aplicar políticas específicas. Los tipos comunes son:

  • no-export: No se propaga fuera del AS.
  • no-advertise: No se anuncia a ningún vecino.
  • Definidas por el usuario: Para políticas avanzadas.

Configuración:

route-policy SET_COMMUNITY permit node 10
if-match acl 3001
apply community 65000:200
   

Comando de Verificación:

display bgp routing-table

Salida Ejemplo:

Network          Community
192.168.1.0/24   65000:200
   

Configuración Básica de BGP [Editar]

Configuración de EBGP

bgp 65000
router-id 192.168.1.1
peer 203.0.113.1 as-number 65001
ipv4-family unicast
 network 192.168.1.0 255.255.255.0
   

Explicación:

  • bgp 65000: Activa el protocolo BGP en el AS 65000.
  • router-id 192.168.1.1: Define un identificador único para el router.
  • peer 203.0.113.1 as-number 65001: Configura un vecino en el AS 65001.
  • network 192.168.1.0/24: Anuncia la red 192.168.1.0/24.

Configuración de IBGP

bgp 65000
router-id 10.1.1.1
peer 10.1.1.2 as-number 65000
ipv4-family unicast
 network 10.1.0.0 255.255.255.0
   

Explicación:

  • peer 10.1.1.2 as-number 65000: Configura un vecino dentro del mismo AS (IBGP).
  • network 10.1.0.0/24: Anuncia redes locales al IBGP.

Configuración de Router Reflector (RR)

bgp 65000
router-id 192.168.0.1
#
group iBGP_RR_Main internal
peer iBGP_RR_Main description Sesiones_iBGP_RR_Main_Locales
peer iBGP_RR_Main connect-interface LoopBack0
peer iBGP_RR_Main password cipher %^%#example_password%^%#
peer iBGP_RR_Main advertise-community
peer iBGP_RR_Main advertise-ext-community
 peer 192.168.1.2 enable
 peer 192.168.1.2 group iBGP_RR_Main
 peer 192.168.1.3 enable
 peer 192.168.1.3 group iBGP_RR_Main
   

Explicación:

1. Definición del Proceso BGP
  • bgp 65000: Activa BGP en el AS 65000.
  • router-id 192.168.0.1: Identifica el router de manera única.
2. Configuración del Grupo iBGP
  • group iBGP_RR_Main internal: Crea un grupo IBGP llamado iBGP_RR_Main.
  • peer iBGP_RR_Main description: Añade una descripción para documentar el propósito del grupo.
  • peer iBGP_RR_Main connect-interface LoopBack0: Usa la interfaz Loopback0 para establecer sesiones.
  • peer iBGP_RR_Main password cipher: Configura una contraseña cifrada para autenticación.
  • advertise-community y advertise-ext-community: Permite la propagación de comunidades estándar y extendidas.
3. Adición de Vecinos
  • peer 192.168.1.2 enable: Habilita el vecino BGP con la dirección 192.168.1.2.
  • peer 192.168.1.2 group iBGP_RR_Main: Asocia al vecino con el grupo iBGP_RR_Main.
4. Expansión para Grupos IPv4 e IPv6
group iBGP_RR_IPv4 internal
peer 192.168.2.2 enable
peer 192.168.2.2 group iBGP_RR_IPv4
#
group iBGP_RR_IPv6 internal
peer 192.168.3.2 enable
peer 192.168.3.2 group iBGP_RR_IPv6
   
  • Crea grupos adicionales para manejar rutas IPv4 e IPv6.
  • Los parámetros son similares a los del grupo principal (advertise-community, passwords, etc.).

Notas Finales

  • La configuración de EBGP y IBGP varía según el contexto, pero siguen principios comunes.
  • Los Router Reflectors (RR) optimizan el enrutamiento interno en redes grandes con muchos routers.
  • Es fundamental verificar la conectividad entre vecinos y parámetros como el router-id y el AS para evitar problemas de sesión.

Configuración Avanzada con MPLS VPN [Editar]

Configuración BGP en el PE

1. Configuración de la Interfaz
interface Vlanif1000
description DATOS_CLIENTE_A
ip binding vpn-instance VPN_CLIENTE_A
ip address 192.168.10.1 255.255.255.240
undo icmp name net-unreachable send
undo icmp name host-unreachable receive
undo icmp name protocol-unreachable receive
undo icmp name port-unreachable send
   

Explicación:

  • interface Vlanif1000: Configura una interfaz VLAN lógica para conectar el cliente.
  • description DATOS_CLIENTE_A: Describe el uso de la interfaz.
  • ip binding vpn-instance VPN_CLIENTE_A: Asocia la interfaz a la instancia de VPN VPN_CLIENTE_A.
  • ip address: Configura la dirección IP asignada al PE para la comunicación con el CPE.
  • undo icmp: Desactiva mensajes ICMP específicos para aumentar la seguridad.

2. Configuración de la VPN
ip vpn-instance VPN_CLIENTE_A
description CLIENTE_A_VPN
ipv4-family
 route-distinguisher 65000:100
 export route-policy EXPORT_TO_CLIENTE_A
 apply-label per-instance
 vpn-target 65000:100 export-extcommunity
 vpn-target 65000:100 import-extcommunity
 vpn-target 65000:50 import-extcommunity
 vpn-target 65000:200 import-extcommunity
   

Explicación:

  • ip vpn-instance VPN_CLIENTE_A: Crea una instancia de VPN llamada VPN_CLIENTE_A.
  • route-distinguisher: Asigna un identificador único (RD) que distingue las rutas dentro de esta VPN.
  • export/import route-policy: Aplica políticas para exportar e importar rutas.
  • vpn-target: Define las comunidades extendidas utilizadas para compartir rutas con otros sistemas.

3. Configuración de BGP
bgp 65000
ipv4-family vpn-instance VPN_CLIENTE_A
 as-number 65000
 default-route imported
 preference 20 200 200
 import-route direct
 import-route static
 peer 192.168.10.2 as-number 65010
 peer 192.168.10.2 timer keepalive 10 hold 30
 peer 192.168.10.2 route-policy RPL_CLIENTE_A_PRI import
 peer 192.168.10.2 keep-all-routes
   

Explicación:

  • bgp 65000: Activa el protocolo BGP con ASN 65000 para el PE.
  • ipv4-family vpn-instance VPN_CLIENTE_A: Configura BGP para manejar rutas dentro de la VPN.
  • default-route imported: Permite importar una ruta por defecto hacia la VPN.
  • import-route: Redistribuye rutas directas y estáticas hacia BGP.
  • peer ... as-number: Configura el vecino BGP con ASN 65010.
  • peer ... route-policy: Aplica la política de importación para controlar las rutas recibidas.

4. Política de Rutas en el PE
route-policy RPL_CLIENTE_A_PRI permit node 10
apply local-preference 300
   

Explicación:

  • route-policy RPL_CLIENTE_A_PRI: Define una política para manejar las rutas importadas.
  • apply local-preference 300: Asigna una preferencia local alta (300) para priorizar estas rutas sobre otras.

Configuración BGP en el CPE

1. Configuración General
router bgp 65010
bgp router-id 192.168.10.2
bgp log-neighbor-changes
neighbor PE_GROUP peer-group
neighbor PE_GROUP remote-as 65000
neighbor PE_GROUP timers 5 15
neighbor 192.168.10.1 peer-group PE_GROUP
   

Explicación:

  • router bgp 65010: Activa el proceso BGP con ASN 65010 en el CPE.
  • bgp router-id: Define el identificador del router.
  • neighbor PE_GROUP: Configura un grupo de vecinos llamado PE_GROUP.
  • neighbor ... remote-as: Especifica el ASN del vecino PE.
  • neighbor ... timers: Ajusta los tiempos de Keepalive y Hold.

2. Configuración de Direcciones IPv4
address-family ipv4
 redistribute connected
 redistribute static
 neighbor 192.168.10.1 activate
 neighbor 192.168.10.1 route-map PE_GROUP_POLICY in
   

Explicación:

  • redistribute connected: Redistribuye rutas conectadas locales al BGP.
  • redistribute static: Redistribuye rutas estáticas.
  • neighbor ... activate: Activa la sesión BGP para rutas IPv4.
  • neighbor ... route-map: Aplica la política PE_GROUP_POLICY para modificar las rutas recibidas.

3. Política de Rutas en el CPE
route-map PE_GROUP_POLICY permit 10 
set local-preference 300
   

Explicación:

  • route-map PE_GROUP_POLICY: Modifica atributos de rutas entrantes.
  • set local-preference 300: Establece una preferencia local de 300 para priorizar las rutas importadas.